From 844bb92492d738a7461a1e410dff993d260f4463 Mon Sep 17 00:00:00 2001 From: Natalya Date: Thu, 29 Aug 2024 08:43:01 -0700 Subject: [PATCH] adding material and examples --- docs/1_slurm.md | 152 ++++++++ docs/2_python_venv.md | 167 +++++++++ docs/3_submit_job_to_slurm.md | 107 ++++++ docs/4_parallel_jobs.md | 48 +++ docs/5_command_line_args.md | 23 ++ docs/6_job_arrays.md | 80 +++++ docs/7_yen_gpu.md | 376 ++++++++++++++++++++ docs/README.md | 16 +- examples/1_investment-serial.py | 59 +++ examples/1_investment-serial.slurm | 17 + examples/2_investment-parallel.py | 60 ++++ examples/2_investment-parallel.slurm | 17 + examples/3_investment-parallel-args.py | 61 ++++ examples/3_investment-parallel-args.slurm | 17 + examples/array/4_investment-job-array.slurm | 24 ++ examples/array/4_investment-job-task.py | 25 ++ examples/array/combine_array_results.sh | 9 + examples/array/inputs_to_job_array.csv | 100 ++++++ examples/array/write_job_array_inputs.py | 23 ++ examples/mnist.py | 65 ++++ examples/requirements.txt | 4 + examples/train-gpu.slurm | 20 ++ 22 files changed, 1468 insertions(+), 2 deletions(-) create mode 100644 docs/1_slurm.md create mode 100644 docs/2_python_venv.md create mode 100644 docs/3_submit_job_to_slurm.md create mode 100644 docs/4_parallel_jobs.md create mode 100644 docs/5_command_line_args.md create mode 100644 docs/6_job_arrays.md create mode 100644 docs/7_yen_gpu.md create mode 100644 examples/1_investment-serial.py create mode 100644 examples/1_investment-serial.slurm create mode 100644 examples/2_investment-parallel.py create mode 100644 examples/2_investment-parallel.slurm create mode 100644 examples/3_investment-parallel-args.py create mode 100644 examples/3_investment-parallel-args.slurm create mode 100644 examples/array/4_investment-job-array.slurm create mode 100644 examples/array/4_investment-job-task.py create mode 100755 examples/array/combine_array_results.sh create mode 100644 examples/array/inputs_to_job_array.csv create mode 100644 examples/array/write_job_array_inputs.py create mode 100644 examples/mnist.py create mode 100644 examples/requirements.txt create mode 100644 examples/train-gpu.slurm diff --git a/docs/1_slurm.md b/docs/1_slurm.md new file mode 100644 index 0000000..7c62323 --- /dev/null +++ b/docs/1_slurm.md @@ -0,0 +1,152 @@ +--- +title: 1. Yen-Slurm Cluster +layout: page +nav_order: 1 +updateDate: 2024-08-29 +--- + +# {{ page.title }} + +Today we will be working with the scheduled Yens. + +The `yen-slurm` is a computing cluster designed to give researchers the ability to run computations that require a large amount of resources without leaving the environment and filesystem of the interactive Yens. + +
+
+

+
+
+
+
+
Current cluster configuration
+ +
+
+
+ +# Yen Computing Infrastructure +![](../assets/images/yen-computing-infrastructure.png) + +The `yen-slurm` cluster has 11 nodes with over 1,500 CPU cores, 10 TB of memory, and 12 NVIDIA GPU's. + +## What is a Scheduler? + +The `yen-slurm` cluster can be accessed by the [Slurm Workload Manager](https://slurm.schedmd.com/). Researchers can submit jobs to the cluster, asking for a certain amount of resources (CPU, Memory, GPUs and Time). Slurm will then manage the queue of jobs based on what resources are available. In general, those who request less resources will see their jobs start faster than jobs requesting more resources. + +## Why Use a Scheduler? + +A job scheduler has many advantages over the directly shared environment of the yens: + +* Run jobs with a guaranteed amount of resources (CPU, Memory, GPUs, Time) +* Setup multiple jobs to run automatically +* Run jobs that exceed the community guidelines on the interactive nodes +* Gold standard for using high-performance computing resources around the world + +## Preparing to Use a Scheduler + +First, you should make sure your process can run on the interactive Yen command line. + +Once your process is capable of running on the interactive Yen command line, you will need to create a slurm script. This script has two major components: + +* Metadata around your job, and the resources you are requesting +* The commands necessary to run your process + + +## Looking at Cluster Queue + +You can look at the current job queue by running `squeue`: + +```bash +USER@yen4:~$ squeue + JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) + 1043 normal a_job user1 PD 0:00 1 (Resources) + 1042 normal job_2 user2 R 1:29:53 1 yen11 + 1041 normal bash user3 R 3:17:08 1 yen11 +``` + +Jobs with state (ST) R are running, and PD are pending. Your job will run based on this queue. + +## Best Practices + +### Use all of the resources you request + +The Slurm scheduler keeps track of the resources you request, and the resources you use. Frequent under-utilization of CPU and Memory will affect your future job priority. You should be confident that your job will use all of the resources you request. It's recommended that you run your job on the interactive Yens, and monitor resource usage to make an educated guess on resource usage. + +### Restructure Your job into Small Tasks + +Small jobs start faster than big jobs. Small jobs likely finish faster too. If your job requires doing the same process many times (i.e. OCR'ing many PDFs), it will benefit you to setup your job as many small jobs. + +## Tips and Tricks + +### Current Partitions and their limits + +Run `sinfo` command to see available partitions: + +```bash +$ sinfo +``` + +You should see the following output: + +```bash +USER@yen4:~$ sinfo +PARTITION AVAIL TIMELIMIT NODES STATE NODELIST +normal* up 2-00:00:00 8 idle yen[11-18] +dev up 2:00:00 8 idle yen[11-18] +long up 7-00:00:00 8 idle yen[11-18] +gpu up 1-00:00:00 3 idle yen-gpu[1-3] +``` + +The first column PARTITION lists all available partitions. Partitions are the logical subdivision +of the `yen-slurm` cluster. The `*` denotes the default partition. + +The four partitions have the following limits: + +| Partition | CPU Limit Per User | Memory Limit | Max Memory Per CPU (default) | Time Limit (default) | +| -------------- | :----------------: | :--------------------: | :----------------------------:| :-------------------:| +| normal | 256 | 3 TB | 24 GB (4 GB) | 2 days (2 hours) | +| dev | 2 | 48 GB | 24 GB (4 GB) | 2 hours (1 hour) | +| long | 50 | 1.2 TB | 24 GB (4 GB) | 7 days (2 hours) | +| gpu | 64 | 256 GB | 24 GB (4 GB) | 1 day (2 hours) | + + +You can submit to the `dev` partition by specifying: + +```bash +#SBATCH --partition=dev +``` + +Or with a shorthand: + +```bash +#SBATCH -p dev +``` + +If you don’t specify the partition in the submission script, the job is queued in the `normal` partition. To request a particular partition, for example, `long`, specify `#SBATCH -p long` in the slurm submission script. You can specify more than one partition if the job can be run on multiple partitions (i.e. `#SBATCH -p normal,dev`). + +### How do I check how busy the machines are? + +You can pass format options to the `sinfo` command as follows: + +```bash +USER@yen4:~$ sinfo --format="%m | %C" +MEMORY | CPUS(A/I/O/T) +257366+ | 268/1300/0/1568 +``` + +where `MEMORY` outputs the minimum size of memory of the `yen-slurm` cluster node in megabytes (256 GB) and +`CPUS(A/I/O/T)` prints the number of CPU's that are allocated / idle / other / total. +For example, if you see `268/1300/0/1568` that means 268 CPU's are allocated, 1,300 are idle (free) out of 1,568 CPU's total. + +You can also run `checkyens` and look at the last line for summary of all pending and running jobs on yen-slurm. + +```bash +USER@yen4:~$ checkyens +Enter checkyens to get the current server resource loads. Updated every minute. +yen1 : 2 Users | CPU [#### 20%] | Memory [#### 20%] | updated 2024-06-20-07:58:00 +yen2 : 2 Users | CPU [ 0%] | Memory [## 11%] | updated 2024-06-20-07:58:01 +yen3 : 2 Users | CPU [ 0%] | Memory [ 3%] | updated 2024-06-20-07:57:04 +yen4 : 3 Users | CPU [#### 20%] | Memory [### 15%] | updated 2024-06-20-07:58:00 +yen5 : 1 Users | CPU [ 1%] | Memory [ 3%] | updated 2024-06-20-07:58:02 +yen-slurm : 11 jobs, 5 pending | 3 CPUs allocated (1%) | 100G Memory Allocated (2%) | updated 2024-06-20-07:58:02 +``` diff --git a/docs/2_python_venv.md b/docs/2_python_venv.md new file mode 100644 index 0000000..9541f79 --- /dev/null +++ b/docs/2_python_venv.md @@ -0,0 +1,167 @@ +--- +title: 2. Python Virtual Environments +layout: page +nav_order: 2 +updateDate: 2024-08-29 +--- + + + + +# {{ page.title }} + +Virtual environments are a foundational aspect of professional development, allowing developers to isolate and manage packages and dependencies specific to individual projects or tasks. This isolation is crucial in maintaining a clean and organized development workspace, as it prevents conflicts between packages used in different projects. Furthermore, virtual environments ensure that projects are reproducible and can be shared with others without compatibility issues, as all the necessary dependencies are clearly defined and contained within the environment. + +## Different Tools for Python Environment Management + +* [`venv`](https://docs.python.org/3/library/venv.html): built into Python 3.3 and later. (Recommended) +* [`Anaconda`](https://www.anaconda.com/products/distribution): third-party tool popular in data science. +* [`renv`](https://rstudio.github.io/renv/articles/renv.html): renv package helps you create reproducible environments for your R projects. + + + +## Best Practices for Environment Management + +1. **Creating a New Environment for Each Project**: This ensures that each project has its' own set of dependencies. + +2. **Documenting Dependencies**: Clearly list all dependencies in a requirements file or using a tool that automatically manages this aspect. + +3. **Regularly Updating Dependencies**: Keep the dependencies up-to-date to ensure the security and efficiency of your projects. + + +## Recommendations on the Yens + +{: .important} +We highly recommend using `venv`, Python’s built-in tool for creating virtual environments, especially in shared systems like the Yens. This recommendation is rooted in several key advantages that `venv` offers over other tools like `conda`: + +* **Built-in and Simple**: `venv` is included in Python's standard library, eliminating the need for third-party installations and making it straightforward to use, especially beneficial in shared systems where ease of setup and simplicity are crucial. + +* **Fast and Resource-Efficient**: `venv` offers quicker environment creation and is more lightweight compared to tools like `conda`, making it ideal for shared systems where speed and efficient use of resources are important. + +* **Ease of Reproducibility**: `venv` allows for easy replication of environments by using a `requirements.txt` file, ensuring that the code remains reproducible and consistent regardless of the platform. + +* **Terminal Agnostic**: `venv` allows you to work across various terminals—including JupyterHub, Linux Terminal, and Slurm—from a single unified location + +## Creating a New Virtual Environment with `venv` + +Let's navigate to a project directory: + +```bash +$ cd +``` +where `` is the shared project location on ZFS. + +Create a new virtual environment: + +```bash +$ /usr/bin/python3 -m venv venv # Note venv is a customizable name +``` +where we make a directory `venv` inside the project directory. + +## Activating a New Virtual Environment + +Next, we activate the virtual environment: +```bash +$ source venv/bin/activate +``` + +You should see `(venv):` prepended to the prompt: +```bash +(venv): +``` + +Check Python version: + +```bash +$ which python +/path/to/env/venv/bin/python +``` + +## Installing Python Packages within the New Virtual Environment +Install any python package with `pip`: + +```bash +(venv) $ pip install +``` + + +## Making the Virtual Environment into a JupyterHub Kernel +Install `ipykernel` package before installing the new environment as a kernel on JupyterHub: + +```bash +(venv) $ pip install ipykernel +``` + +To add the **active** virtual environment as a kernel, run: +```bash +(venv) $ python -m ipykernel install --user --name= +``` +where `` is the name of the kernel on JupyterHub. + +Example +```bash +(venv) $ python -m ipykernel install --user --name=venv +``` + +![](../assets/images/jupyter_venv.png) + +## Sharing the Environment + +Environments can get quite large and take up lots of space depending on the project. An easy way to share them is you share the requirements.txt file which is a list of all the libraries and versions. + +```bash +(venv)$ pip freeze > requirements.txt +``` +This will be different depending on which packages you install and can help users run the code you developed using that environment. + +![](../assets/images/requirements.png) + +To then replicate an environment you need to perform the following steps: + +```bash +$ /usr/bin/python3 -m venv new_venv # Create the new environment +$ source new_venv/bin/activate # Activate the new environment +(new_venv)$ pip install -r requirements.txt # Install the packages +``` + +{: .warning} +Once the virtual environments are created they SHOULD NOT be moved. This will break the environment and you may need to recreate it. + + +### Deactivating the Virtual Environment +You can deactivate the virtual environment with: +``` +$ deactivate +``` + +### Removing the Virtual Environment +If you would like to delete the previously created virtual enviroment, simply delete the environment directory since `venv` environment is essentially a directory containing files and folders. + +``` +$ rm -rf venv +``` + +If you created a Jupyter kernel you will also need to remove that with the following command from your home + +```bash +$ jupyter kernelspec uninstall venv +``` + +# Exercise + +1. Navigate to `examples/python_examples` +2. Create a new virtual environment named **venv** +3. Activate the environment +4. Install the packages in `requirements.txt` + +
+Click for answer +
+

+$ cd examples/python_examples
+$ /usr/bin/python3 -m venv venv
+$ source venv/bin/activate
+(venv) $ pip install -r requirements.txt
+
+
+
diff --git a/docs/3_submit_job_to_slurm.md b/docs/3_submit_job_to_slurm.md new file mode 100644 index 0000000..88fce29 --- /dev/null +++ b/docs/3_submit_job_to_slurm.md @@ -0,0 +1,107 @@ +--- +title: 3. Submit Your First Job to Yen-Slurm +layout: page +nav_order: 3 +updateDate: 2024-08-29 +--- + +# {{ page.title }} + + +## Running Python Script on the Command Line +Navigate to the `examples` directory. Just as we ran the R script on the interactive yen nodes, we can run the Python script on the command line. + +Let's run a python version of the script, `1_investment-serial.py`, which is a serial version of the script that does not use multiprocessing. View the complete script [here](https://github.com/gsbdarc/rf_bootcamp_2024/blob/main/examples/python_examples/1_investment-serial.py). + +Activate your virtual python environment, `venv`, first: + +``` +$ cd examples/python_examples +$ source venv/bin/activate +``` + +Run the script like so: +```bash +$ python 1_investment-serial.py +``` + +The output should look like: +```bash +Elapsed time: 12.10 seconds +Serial NPV Calculation: + NPV +count 50000.000000 +mean 0.091370 +std 143.905996 +min -641.639860 +25% -95.829987 +50% 0.081198 +75% 96.030578 +max 592.636589 +``` + +## Submit Serial Script to the Scheduler + +We'll prepare a submission [slurm script](https://github.com/gsbdarc/rf_bootcamp_2024/blob/main/examples/python_examples/1_investment-serial.slurm), called `1_investment-serial.slurm` and submit it to the scheduler. Edit the slurm script to include +your email address. + +The important arguments here are that you request: +* `#SBATCH -p` is the partition you are submitting your job to +* `#SBATCH -c` is the number of CPUs +* `#SBATCH -t` is the amount of time for your job +* `#SBATCH --mem` is the amount of total memory + + +We are going to make an `out` directory for storing all the output files, then submit the script: + +```bash +$ mkdir -p out +$ sbatch 1_investment-serial.slurm +``` + +You should see a similar output: + +```bash +Submitted batch job 44097 +``` + +Monitor your job: +```bash +$ squeue +``` + +- `JOBID` lists a unique numeric job ID for this job. +- `PARTITION` lists the partition the job is submitted to (`normal`, `dev`, `long` or `gpu`). +- `NAME` lists the job name that the user specified in the submission script (if no name is supplied, +the name of the submission batch script is used). Job names do not have to be unique. +- `USER` indicates the yen user who submitted the job. +- `ST` lists the job state. `R` means the job is running and `PD` means the job is pending in the queue. +- `TIME` lists the time the job has been running. Pending jobs will have time 0:00 until they start running. +- `NODES` lists how many different machines or nodes the job is running on (1 means the job is running on one node only and 2 means the job is running on two nodes, and so on). +- `NODELIST(REASON)` lists the hostname for the node that the job is running on (`yen11`, `yen12`, `yen13`, `yen14`, `yen15`, `yen16`, `yen17`, `yen18`, `yen-gpu1`, `yen-gpu2` or `yen-gpu3`). + + +For pending jobs, you will see a reason why this jobs has not started yet. Common reasons are `(Resources)` when the job is waiting on resources +such as CPU cores, GPU's or memory to be available before it can start and `(Priority)` when the job is lower in priority than other jobs in the queue +but the resources are available. + +Filtering this command for your user will display only your running and queued jobs: + +```bash +$ squeue -u $USER +``` + + +The script should take less than a minute to complete. Look at the slurm emails after the job is finished. Slurm email will summarize CPU and RAM utilization which you can use to adjust future runs if you are under-utilizing the requested resources. + +Since the job is executed in batch mode, you will not see anything printed to the screen. All print statements go into the specified output file. While the job is running, you can look at the output file with: + +```bash +$ tail -f out/npv-serial*out +``` + +### How Do I Cancel My Job on Yen-Slurm? + +The `scancel JOBID` command will cancel your job. You can find the unique numeric `JOBID` of your job with `squeue`. +You can also cancel all of your running and pending jobs with `scancel -u USERNAME` where `USERNAME` is your username. + diff --git a/docs/4_parallel_jobs.md b/docs/4_parallel_jobs.md new file mode 100644 index 0000000..869d0ef --- /dev/null +++ b/docs/4_parallel_jobs.md @@ -0,0 +1,48 @@ +--- +title: 4. Parallel Script +layout: page +nav_order: 4 +parent: Day 4 +updateDate: 2024-07-16 +--- + +# {{ page.title }} + +## Multiprocessing Script +We can modify the `1_investment-serial.py` script to use `multiprocessing` python package to make the serial script parallel since all of the trials are independent. + +{% include warning.html content="Because this Python code uses multiprocessing and the yens are a shared computing environment, we need to be careful about how Python sees and utilizes the shared cores on the yens."%} + +Again, we will hard code the number of cores for +the script to use in this line in the python script: + +```python +ncore = 12 +```` + +Consider a slightly modified program, [2_investment-parallel.py](https://github.com/gsbdarc/rf_bootcamp_2024/blob/main/examples/python_examples/2_investment-parallel.py). + +**Important**: when using the yens, you must specify the number of cores in `Pool()` call. Otherwise, your python program would see all cores on the node and try to use them. But if you only request 10 cores in slurm and `Pool()` tries to use 256, bad things happen and your program will likely to get killed. Match the number of cores in the `Pool()` call to the number of cores you request in the submit script. + +```python +# create a multiprocessing pool to run trials in parallel +pool = mp.Pool(processes = ncore) +``` + +We will have to adjust the [submit script](https://github.com/gsbdarc/rf_bootcamp_2024/blob/main/examples/python_examples/2_investment-parallel.slurm) as well to request more cores. We will request `cpus-per-task=12` (or using a shorthand `-c 12`) to request 12 cores to run in parallel. + +Change the `2_investment-parallel.slurm` to include your email address. + +To submit this script, we run: + +```bash +$ sbatch 2_investment-parallel.slurm +``` + +Monitor the queue: + +```bash +$ squeue +``` + +After the job has finished, look at the emails and output file. Compare the runtime of the serial and parallel script. diff --git a/docs/5_command_line_args.md b/docs/5_command_line_args.md new file mode 100644 index 0000000..92ae4bd --- /dev/null +++ b/docs/5_command_line_args.md @@ -0,0 +1,23 @@ +--- +title: 5. Command Line Arguments +layout: page +nav_order: 5 +parent: Day 4 +updateDate: 2024-07-16 +--- + +# {{ page.title }} + +## Multiprocessing Script with Arguments +We can modify the parallel script to accept the number of cores as a command line argument. + +We will use the value of `cpus-per-task` that we request from Slurm to pass it as an argument to the python script and use that value as the number of cores in parallel. That way we only need to set the `cpus-per-task` in `#SBATCH` line and use the value stored in the Slurm environment variable. + +The modified [python script](https://github.com/gsbdarc/rf_bootcamp_2024/blob/main/examples/python_examples/3_investment-parallel-args.py), `3_investment-parallel-args.py`, accepts one argument, the number of cores to use for parallel `map` call. + +Look at the [slurm file](https://github.com/gsbdarc/rf_bootcamp_2024/blob/main/examples/python_examples/3_investment-parallel-args.slurm) called `3_investment-parallel-args.slurm` and edit it to include your email address. + +Submit and monitor: +```bash +$ sbatch 3_investment-parallel-args.slurm +``` diff --git a/docs/6_job_arrays.md b/docs/6_job_arrays.md new file mode 100644 index 0000000..4bae470 --- /dev/null +++ b/docs/6_job_arrays.md @@ -0,0 +1,80 @@ +--- +title: 6. Job Arrays +layout: page +nav_order: 6 +parent: Day 4 +updateDate: 2024-07-16 +--- + +# {{ page.title }} + +One of Slurm's notable features is its ability to manage job arrays. + +A Slurm job array is a convenient and efficient way to submit and manage a group of related jobs as a single entity. Instead of submitting each job individually, you can use job arrays to submit multiple similar tasks with a single command, making it easier to handle large-scale computations and parallel processing. + +In this section, we will explore the concept of Slurm job arrays and demonstrate how to leverage this feature for batch job processing, simplifying the management of repetitive tasks and improving overall productivity on the Yen environment. + +Let's take a look at a [python script](https://github.com/gsbdarc/rf_bootcamp_2024/blob/main/examples/python_examples/array/4_investment-job-task.py), `4_investment-job-task.py`, that will be run as an array of tasks. + +The script expects two command line arguments - cashflows and a discount rate and outputs NPV value for those inputs. Alternatively to using `multiprocessing` and `map()` function in `2_investment-parallel.py` script, we can compute NPV values over different inputs to the script that only computes the NPV value for 2 given inputs (cashflows and a discount rate). + +A job array is a common scheme for parameter sweep tasks. Each job array task will run the same script but with different inputs. + +To prepare inputs, we first run `write_job_array_inputs.py` script to write 100 lines of cashflows and discount rates that will be passed as inputs to `4_investment-job-task.py` script later. Each line corresponds to inputs for one job array task. + +```bash +# Activate venv if not activated yet +$ source venv/bin/activate + +# Navigate to array subdirectory +$ cd array + +# Make out directory for output files +$ mkdir out + +# Run helper script to generate 100 inputs for job array +$ python write_job_array_inputs.py +``` + +You should see the following output: +```bash +100 lines of data have been written to inputs_to_job_array.csv. +``` + +Next, we'll submit a [job array script](https://github.com/gsbdarc/rf_bootcamp_2024/blob/main/examples/python_examples/array/4_investment-job-array.slurm), called `4_investment-job-array.slurm`, that runs 100 tasks in parallel using one line from input file to pass the value of arguments to the script. + +This script extracts the line number that corresponds to the value of `$SLURM_ARRAY_TASK_ID` environment variable -- in this case, 1 through 100. When we submit this one slurm script to the scheduler, it will become 100 jobs running all at once with each task executing the `4_investment-job-task.py` script with different inputs. + +Another advantage of job arrays instead of running one big scipt is that if some but not all job tasks have failed, you can resubmit only those by using the failed array indices. For example, if the inputs for job task 50 produced NaN and job failed, we can fix the inputs, then resumbit the slurm script with `--array=50-50` to rerun only that task. + +To submit the script that executes 100 jobs, run: + +```bash +$ sbatch 4_investment-job-array.slurm +``` + +You should then see 100 jobs in the queue. + +Each job task produces an out file with a computed NPV value. + + +## Job Dependency +Another useful Slurm feature is job dependency, where you can specify to run one job *only* after the first job finished okay (without errors) to chain script executions that way. +For example, we impose job dependency to combine all of the NPV results into one CSV file only *after* all of the tasks have finished (without errors). +After you submit the `4_investment-job-array.slurm` script, you will know the job array ID so you can then run: + +```bash +$ srun --dependency=afterok: ./combine_array_results.sh +``` + +Replace `` with your job array ID. This command will ensure that all job array tasks have finished with OK status and then run the shell script to combine the results. + +## Why Use `srun`? +`srun` respects job dependencies and ensures that the script runs only after the specified conditions are met, which might not be as straightforward if the script is executed directly. + +When you use `srun --dependency=afterok: ./combine_array_results.sh`, Slurm will: + +- Wait for the array job to complete successfully. +- Allocate resources for the new job. +- Execute `combine_array_results.sh` on a compute yen-slurm node. + diff --git a/docs/7_yen_gpu.md b/docs/7_yen_gpu.md new file mode 100644 index 0000000..a70c702 --- /dev/null +++ b/docs/7_yen_gpu.md @@ -0,0 +1,376 @@ +--- +title: 7. Run Jobs on Yen GPU nodes +layout: page +nav_order: 7 +parent: Day 4 +updateDate: 2024-07-16 +--- + +# {{ page.title }} + +## GPU Nodes Overview +The Yen-slurm has three GPU nodes: +- `yen-gpu1` node with 64 threads, 256 G of RAM and 4 A30 NVIDIA GPUs +- `yen-gpu2` node with 64 threads, 256 G of RAM and 4 A40 NVIDIA GPUs +- `yen-gpu3` node with 64 threads, 256 G of RAM and 4 A40 NVIDIA GPUs + +The A30 NVIDIA GPUs have 24 G of GPU RAM while the A40 NVIDIA GPUs have 48 G of GPU RAM per GPU. + + +## Slurm GPU Partition + +The `yen-slurm` cluster has a `gpu` partition to run jobs on the GPU nodes. See its timelimit with: + +```bash +$ sinfo -p gpu +PARTITION AVAIL TIMELIMIT NODES STATE NODELIST +gpu up 1-00:00:00 3 idle yen-gpu[1-3] +``` + +{% include warning.html content="There is a limit of 1 day runtime and 4 GPUs per user."%} + +See partition limits with: +```bash +$ sacctmgr show qos +``` + +### Constraining My Job to Specific Nodes using Node Features + +Certain nodes may have particular features that your job requires, such +as a GPU. These features can be viewed as follows: + +```bash +USER@yen4:~$ sinfo -o "%20N %5c %5m %64f %10G" +NODELIST CPUS MEMOR AVAIL_FEATURES GRES +yen[11-18] 32+ 10315 (null) (null) +yen-gpu1 64 25736 GPU_BRAND:NVIDIA,GPU_UARCH:AMPERE,GPU_MODEL:A30,GPU_MEMORY:24GiB gpu:4 +yen-gpu[2-3] 64 25736 GPU_BRAND:NVIDIA,GPU_UARCH:AMPERE,GPU_MODEL:A40,GPU_MEMORY:48GiB gpu:4 +``` + +For example, to ensure that your job will run on a node that has an +NVIDIA Ampere A40 GPU with 48 G of GPU RAM, you can include the `-C`/`--constraint` option to +the `sbatch` command or in an `sbatch` script. + + +Here is a trivial +example command that demonstrates this: `sbatch -C "GPU_MODEL:A30" -G 1 -p gpu --wrap "nvidia-smi"` + +This will get `yen-gpu1` node allocated (since it's the only one with A30 NVIDIA GPU) and will then print out the `nvidia-smi` output to a file. + +At present, only GPU-specific features exist, but additional node features may be added over time. + +## Python GPU Example +This example demonstrates how to run a short Python example using PyTorch or + Keras for deep learning training. +CUDA 12.1, PyTorch and Tensorflow/Keras are installed already so you do not have to install them yourself. + +### PyTorch Example + +To use `PyTorch`, you simple load the `pytorch` module which makes pytorch `venv` available and run the training example. + +```bash +$ ml pytorch +``` + +When you load this module, you will be in a `venv` running Python 3.10 that has `pytorch` and other AI packages installed. + +You can check with: + +```bash +$ which python +/software/free/pytorch/2.1.2/bin/python + +$ python --version +Python 3.10.12 +``` + +List packages installed in pytorch `venv`: +```bash +$ pip list +Package Version +------------------------- --------------- +accelerate 0.26.1 +aiohttp 3.9.3 +aiosignal 1.3.1 +arrow 1.3.0 +asttokens 2.4.1 +async-timeout 4.0.3 +attrs 23.2.0 +boto3 1.34.30 +botocore 1.34.30 +bravado 11.0.3 +bravado-core 6.1.1 +certifi 2023.11.17 +charset-normalizer 3.3.2 +click 8.1.7 +comm 0.2.1 +contourpy 1.2.0 +cycler 0.12.1 +datasets 2.16.1 +debugpy 1.8.0 +decorator 5.1.1 +dill 0.3.7 +evaluate 0.4.1 +exceptiongroup 1.2.0 +executing 2.0.1 +filelock 3.13.1 +fonttools 4.47.2 +fqdn 1.5.1 +frozenlist 1.4.1 +fsspec 2023.10.0 +future 0.18.3 +gitdb 4.0.11 +GitPython 3.1.41 +huggingface-hub 0.20.3 +idna 3.6 +imageio 2.33.1 +ipykernel 6.29.0 +ipython 8.20.0 +isoduration 20.11.0 +jedi 0.19.1 +Jinja2 3.1.3 +jmespath 1.0.1 +joblib 1.3.2 +jsonpointer 2.4 +jsonref 1.1.0 +jsonschema 4.21.1 +jsonschema-specifications 2023.12.1 +jupyter_client 8.6.0 +jupyter_core 5.7.1 +kiwisolver 1.4.5 +lazy_loader 0.3 +lightning-utilities 0.10.1 +MarkupSafe 2.1.4 +matplotlib 3.8.2 +matplotlib-inline 0.1.6 +monotonic 1.6 +mpmath 1.3.0 +msgpack 1.0.7 +multidict 6.0.4 +multiprocess 0.70.15 +neptune 1.8.6 +nest-asyncio 1.6.0 +networkx 3.2.1 +numpy 1.26.3 +nvidia-cublas-cu12 12.1.3.1 +nvidia-cuda-cupti-cu12 12.1.105 +nvidia-cuda-nvrtc-cu12 12.1.105 +nvidia-cuda-runtime-cu12 12.1.105 +nvidia-cudnn-cu12 8.9.2.26 +nvidia-cufft-cu12 11.0.2.54 +nvidia-curand-cu12 10.3.2.106 +nvidia-cusolver-cu12 11.4.5.107 +nvidia-cusparse-cu12 12.1.0.106 +nvidia-nccl-cu12 2.18.1 +nvidia-nvjitlink-cu12 12.3.101 +nvidia-nvtx-cu12 12.1.105 +oauthlib 3.2.2 +packaging 23.2 +pandas 2.2.0 +parso 0.8.3 +pexpect 4.9.0 +pillow 10.2.0 +pip 23.3.2 +platformdirs 4.1.0 +prompt-toolkit 3.0.43 +psutil 5.9.8 +ptyprocess 0.7.0 +pure-eval 0.2.2 +pyarrow 15.0.0 +pyarrow-hotfix 0.6 +Pygments 2.17.2 +PyJWT 2.8.0 +pyparsing 3.1.1 +python-dateutil 2.8.2 +python-dotenv 1.0.1 +pytorch-lightning 2.1.3 +pytz 2023.4 +PyYAML 6.0.1 +pyzmq 25.1.2 +referencing 0.33.0 +regex 2023.12.25 +requests 2.31.0 +requests-oauthlib 1.3.1 +responses 0.18.0 +rfc3339-validator 0.1.4 +rfc3986-validator 0.1.1 +rpds-py 0.17.1 +s3transfer 0.10.0 +safetensors 0.4.2 +scikit-image 0.22.0 +scikit-learn 1.4.0 +scipy 1.12.0 +seaborn 0.13.2 +setuptools 69.0.3 +simplejson 3.19.2 +six 1.16.0 +smmap 5.0.1 +stack-data 0.6.3 +swagger-spec-validator 3.0.3 +sympy 1.12 +threadpoolctl 3.2.0 +tifffile 2024.1.30 +tokenizers 0.15.1 +torch 2.1.2 +torchmetrics 1.3.0.post0 +torchvision 0.16.2 +tornado 6.4 +tqdm 4.66.1 +traitlets 5.14.1 +transformers 4.37.2 +triton 2.1.0 +types-python-dateutil 2.8.19.20240106 +typing_extensions 4.9.0 +tzdata 2023.4 +uri-template 1.3.0 +urllib3 2.0.7 +wcwidth 0.2.13 +webcolors 1.13 +websocket-client 1.7.0 +wheel 0.42.0 +xformers 0.0.23.post1 +xxhash 3.4.1 +yarl 1.9.4 +``` + +If you need additional packages installed, you can `pip install` them to your `~/.local` since this global pytorch `venv` +is not user writable. + +The PyTorch example script uses the MNIST dataset for image classification, and consists of a simple fully connected neural network +with one hidden layer. + +We will run the [`mnist.py`](https://github.com/gsbdarc/rf_bootcamp_2024/blob/main/examples/python_examples/mnist.py) script on the GPU node. + +### Submit Slurm script + +Change the [submission script](https://github.com/gsbdarc/rf_bootcamp_2024/blob/main/examples/python_examples/train-gpu.slurm), `train-gpu.slurm`, to include your email. + + +This script is asking for one GPU on the `gpu` partition and 10 CPU cores on GPU node for 1 day. + +Submit the job to the `gpu` partition with: + +```bash +$ sbatch train-gpu.slurm +``` + +Monitor your job: + +```bash +$ squeue -u $USER +``` + +You should see something like: + +```bash +$ squeue -u nrapstin + JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) + 190526 gpu train-gp nrapstin R 0:25 1 yen-gpu1 +``` + +Once the job is running, connect to the node where the job is running: + +```bash +$ ssh yen-gpu1 +``` + +Once you connect to the GPU node, monitor GPU utilization: + +```bash +$ watch nvidia-smi +``` + +You should see that one of the four GPUs is being utilized (under GPU-Util column) and the process running on the GPU +is `python`: + +```bash +Wed Jun 26 12:16:41 2024 ++-----------------------------------------------------------------------------------------+ +| NVIDIA-SMI 550.90.07 Driver Version: 550.90.07 CUDA Version: 12.4 | +|-----------------------------------------+------------------------+----------------------+ +| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | +| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | +| | | MIG M. | +|=========================================+========================+======================| +| 0 NVIDIA A30 Off | 00000000:17:00.0 Off | 0 | +| N/A 35C P0 31W / 165W | 1073MiB / 24576MiB | 3% Default | +| | | Disabled | ++-----------------------------------------+------------------------+----------------------+ +| 1 NVIDIA A30 Off | 00000000:65:00.0 Off | 0 | +| N/A 33C P0 31W / 165W | 1MiB / 24576MiB | 0% Default | +| | | Disabled | ++-----------------------------------------+------------------------+----------------------+ +| 2 NVIDIA A30 Off | 00000000:CA:00.0 Off | 0 | +| N/A 32C P0 29W / 165W | 1MiB / 24576MiB | 0% Default | +| | | Disabled | ++-----------------------------------------+------------------------+----------------------+ +| 3 NVIDIA A30 Off | 00000000:E3:00.0 Off | 0 | +| N/A 34C P0 29W / 165W | 1MiB / 24576MiB | 0% Default | +| | | Disabled | ++-----------------------------------------+------------------------+----------------------+ + ++-----------------------------------------------------------------------------------------+ +| Processes: | +| GPU GI CI PID Type Process name GPU Memory | +| ID ID Usage | +|=========================================================================================| +| 0 N/A N/A 3927692 C python 1070MiB | ++-----------------------------------------------------------------------------------------+ +``` + +`nvidia-smi` also tells you how much GPU RAM is used by the process. When training LLM or other models, it's important to fully utilize the GPU RAM so that the training is optimized. So if the GPU has 24 G of RAM, we can adjust the batch size to use as much data as fits into the GPU RAM and monitor `nvidia-smi` output so see how much RAM is used while the job is running. If the batch size is too large, your job will crash with OOM error. Try reducing the batch size then try again (while monitoring GPU memory usage). + +In the output example above, we are way under-utilizing the GPU RAM (using only 1 G out of 24 G). + +Once the job is done, look at the output file: + +```bash +$ cat out/train-gpu*.out +``` + +The output should look similar to: +```bash +[1] loss: 0.553 +[2] loss: 0.265 +[3] loss: 0.210 +[4] loss: 0.175 +[5] loss: 0.149 +[6] loss: 0.129 +[7] loss: 0.114 +[8] loss: 0.101 +[9] loss: 0.091 +[10] loss: 0.083 +Accuracy on the test set: 97 % +``` + + +### Make PyTorch into a Jupyter Kernel + +We can also add this environment to the interactive Yen's JupyterHub. Note that even though PyTorch will fall back to the CPU if GPU is not available, +deep learning and machine learning is much more efficient on GPU than CPU so you should not use the interactive yens for model training but +use the notebooks for visualization or other pre- or post-training tasks. + +Load `pytorch` module: + +```bash +$ ml pytorch +``` + +List all available kernels: +```bash +$ jupyter kernelspec list +``` + +Load `pytorch` module and make `venv` into a JupyterHub kernel: +```bash +$ python -m ipykernel install --user --name pytorch212 --display-name 'PyTorch 2.1.2' +``` + +Launch JupyterHub and click on Launcher to see a new `PyTorch 2.1.2` notebook kernel you can start up. + +Once you start up the notebook, make sure you can import `torch` but CUDA is not available (since interactive yens do +not have GPUs). + +![](../assets/images/pytorch-kernel.png) + +**Note:** The Yens also have prebuilt `tensorflow` module that can be used in a similar way to `pytorch`. diff --git a/docs/README.md b/docs/README.md index 83d2159..a6b87da 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,12 +1,24 @@ --- layout: home -title: Intermediate Yens Course +title: Intermediate Yens Course -- Fall 2024 nav_exclude: true permalink: /:path/ seo: type: Course name: Intermediate Yens Course -updateDate: 2024-08-16 +updateDate: 2024-08-29 --- # {{ page.title }} +#### What you will learn: + +1. What is Slurm and how to request resources for your jobs? +2. How to run serial and parallel research software on Yen-Slurm +3. How to monitor the queue of jobs +4. How to manage your Python virtual environment on the Yens +5. How to run job arrays on Yen-Slurm +6. How to use GPUs on Yen-Slurm + +### Contact Us +- Join #gsb-yen-users Slack channel where you can ask and answer GSB Yen related questions and share your Yen usage wisdom with the community - Yen users and the DARC team. We will also use this channel to announce Yen related workshops and poll users about the Yens to improve our services. In case the link does not work, open Slack application, search for #gsb-yen-users channel in Channels and join it. +- Email us at: gsb_darcresearch@stanford.edu. diff --git a/examples/1_investment-serial.py b/examples/1_investment-serial.py new file mode 100644 index 0000000..07da5e6 --- /dev/null +++ b/examples/1_investment-serial.py @@ -0,0 +1,59 @@ +# In the context of economics and finance, Net Present Value (NPV) is used to assess +# the profitability of investment projects or business decisions. +# This code performs a Monte Carlo simulation of Net Present Value (NPV) with 50,000 trials in serial, +# utilizing multiple CPU cores. It randomizes input parameters for each trial, calculates the NPV, +# and stores the results for analysis. +import time +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt + +np.errstate(over='ignore') + +# define a function for NPV calculation +def npv_calculation(cashflows, discount_rate): + # calculate NPV using the formula + npv = np.sum(cashflows / (1 + discount_rate) ** np.arange(len(cashflows))) + return npv + +# function for simulating a single trial +def simulate_trial(trial_num): + # randomly generate input values for each trial + cashflows = np.random.uniform(-100, 100, 10000) # Random cash flow vector over 10,000 time periods + discount_rate = np.random.uniform(0.05, 0.15) # Random discount rate + + # ignore overflow warnings temporarily + with np.errstate(over = 'ignore'): + # calculate NPV for the trial + npv = npv_calculation(cashflows, discount_rate) + + return npv + +# number of trials +num_trials = 50000 + +start_time = time.time() + +# Perform the Monte Carlo simulation in serial +results = np.empty(num_trials) + +for i in range(num_trials): + results[i] = simulate_trial(i) + +results = pd.DataFrame( results, columns = ['NPV']) + +end_time = time.time() +elapsed_time = end_time - start_time + +print(f"Elapsed time: {elapsed_time:.2f} seconds") + +print("Serial NPV Calculation:") +# Print summary statistics for NPV +print(results.describe()) + +# Plot a histogram of the results +plt.hist(results, bins=50, density=True, alpha=0.6, color='g') +plt.title('NPV distribution') +plt.xlabel('NPV Value') +plt.ylabel('Frequency') +plt.savefig('histogram.png') diff --git a/examples/1_investment-serial.slurm b/examples/1_investment-serial.slurm new file mode 100644 index 0000000..e57e181 --- /dev/null +++ b/examples/1_investment-serial.slurm @@ -0,0 +1,17 @@ +#!/bin/bash + +# Example of running python script in a batch mode + +#SBATCH -J npv-serial +#SBATCH -p normal,dev +#SBATCH -c 1 # CPU cores (up to 256 on normal partition) +#SBATCH -t 1:00:00 +#SBATCH -o out/npv-serial-%j.out +#SBATCH --mail-type=ALL +#SBATCH --mail-user=your_email@stanford.edu + +# Activate venv +source venv/bin/activate + +# Run python script +python 1_investment-serial.py diff --git a/examples/2_investment-parallel.py b/examples/2_investment-parallel.py new file mode 100644 index 0000000..27ca529 --- /dev/null +++ b/examples/2_investment-parallel.py @@ -0,0 +1,60 @@ +import time +import numpy as np +import pandas as pd +import multiprocessing as mp +import matplotlib.pyplot as plt + +np.errstate(over='ignore') + +# set the number of cores here +ncore = 12 + +# define a function for NPV calculation +def npv_calculation(cashflows, discount_rate): + # Calculate NPV using the formula + npv = np.sum(cashflows / (1 + discount_rate) ** np.arange(len(cashflows))) + return npv + +# function for simulating a single trial +def simulate_trial(trial_num): + # randomly generate input values for each trial + cashflows = np.random.uniform(-100, 100, 10000) # Random cash flow vector over 10,000 time periods + discount_rate = np.random.uniform(0.05, 0.15) # Random discount rate + + # ignore overflow warnings temporarily + with np.errstate(over = 'ignore'): + # calculate NPV for the trial + npv = npv_calculation(cashflows, discount_rate) + + return npv + +# number of trials +num_trials = 50000 + +start_time = time.time() + +# create a multiprocessing pool to run trials in parallel +pool = mp.Pool(processes = ncore) + +# perform the Monte Carlo simulation in parallel +results = pd.DataFrame( pool.map(simulate_trial, range(num_trials)), columns = ['NPV'] ) + +# close the pool and wait for all processes to finish +pool.close() +pool.join() + +end_time = time.time() +elapsed_time = end_time - start_time + +print(f"Elapsed time: {elapsed_time:.2f} seconds") + +print("Parallel NPV Calculation (using", ncore, "cores):") +# print summary statistics for NPV +print(results.describe()) + +# plot a histogram of the results +plt.hist(results, bins=50, density=True, alpha=0.6, color='g') +plt.title('NPV distribution') +plt.xlabel('NPV Value') +plt.ylabel('Frequency') +plt.savefig('histogram.png') diff --git a/examples/2_investment-parallel.slurm b/examples/2_investment-parallel.slurm new file mode 100644 index 0000000..f19d2b7 --- /dev/null +++ b/examples/2_investment-parallel.slurm @@ -0,0 +1,17 @@ +#!/bin/bash + +# Example of running parallel python script in a batch mode + +#SBATCH -J npv-par +#SBATCH -p normal +#SBATCH -c 12 # CPU cores (up to 256 on normal partition) +#SBATCH -t 1:00:00 +#SBATCH -o out/npv-par-%j.out +#SBATCH --mail-type=ALL +#SBATCH --mail-user=nrapstin@stanford.edu + +# Activate venv +source venv/bin/activate + +# Run python script +python 2_investment-parallel.py diff --git a/examples/3_investment-parallel-args.py b/examples/3_investment-parallel-args.py new file mode 100644 index 0000000..a59ab01 --- /dev/null +++ b/examples/3_investment-parallel-args.py @@ -0,0 +1,61 @@ +import time, sys +import numpy as np +import pandas as pd +import multiprocessing as mp +import matplotlib.pyplot as plt + +np.errstate(over='ignore') + +# accept command line arguments +# set the number of cores here from the command line. Avoid using mp.cpu_count() function on the yens. +ncore = int(sys.argv[1]) + +# define a function for NPV calculation +def npv_calculation(cashflows, discount_rate): + # calculate NPV using the formula + npv = np.sum(cashflows / (1 + discount_rate) ** np.arange(len(cashflows))) + return npv + +# function for simulating a single trial +def simulate_trial(trial_num): + # randomly generate input values for each trial + cashflows = np.random.uniform(-100, 100, 10000) # Random cash flow vector over 10,000 time periods + discount_rate = np.random.uniform(0.05, 0.15) # Random discount rate + + # Ignore overflow warnings temporarily + with np.errstate(over = 'ignore'): + # calculate NPV for the trial + npv = npv_calculation(cashflows, discount_rate) + + return npv + +# number of trials +num_trials = 50000 + +start_time = time.time() + +# create a multiprocessing pool to run trials in parallel +pool = mp.Pool(processes = ncore) + +# perform the Monte Carlo simulation in parallel +results = pd.DataFrame( pool.map(simulate_trial, range(num_trials)), columns = ['NPV'] ) + +# close the pool and wait for all processes to finish +pool.close() +pool.join() + +end_time = time.time() +elapsed_time = end_time - start_time + +print(f"Elapsed time: {elapsed_time:.2f} seconds") + +print("Parallel NPV Calculation (using", ncore, "cores):") +# print summary statistics for NPV +print(results.describe()) + +# Plot a histogram of the results +plt.hist(results, bins=50, density=True, alpha=0.6, color='g') +plt.title('NPV distribution') +plt.xlabel('NPV Value') +plt.ylabel('Frequency') +plt.savefig('histogram.png') diff --git a/examples/3_investment-parallel-args.slurm b/examples/3_investment-parallel-args.slurm new file mode 100644 index 0000000..28d5d12 --- /dev/null +++ b/examples/3_investment-parallel-args.slurm @@ -0,0 +1,17 @@ +#!/bin/bash + +# Example of running parallel python script in a batch mode passing a command line argument to the script + +#SBATCH -J npv-par-args +#SBATCH -p normal +#SBATCH -c 12 # CPU cores (up to 256 on normal partition) +#SBATCH -t 1:00:00 +#SBATCH -o out/npv-par-args-%j.out +#SBATCH --mail-type=ALL +#SBATCH --mail-user=your_email@stanford.edu + +# Activate venv +source venv/bin/activate + +# Run python script with the number of cores as a command line arg +python 3_investment-parallel-args.py ${SLURM_CPUS_PER_TASK} diff --git a/examples/array/4_investment-job-array.slurm b/examples/array/4_investment-job-array.slurm new file mode 100644 index 0000000..dcbcade --- /dev/null +++ b/examples/array/4_investment-job-array.slurm @@ -0,0 +1,24 @@ +#!/bin/bash + +# Example of running python script as a job array + +#SBATCH -J inv-array +#SBATCH --array=1-100 +#SBATCH -p normal +#SBATCH -c 1 # CPU cores per task (up to 256 on normal partition) +#SBATCH -t 10:00 +#SBATCH -o out/inv-array-%a.out +#SBATCH --mail-type=ALL +#SBATCH --mail-user=your_email@stanford.edu + +# Read in a specified line number from input file +# line number corresponds to job array task ID +export NUM=$SLURM_ARRAY_TASK_ID +export INPUTS=$(sed "${NUM}q;d" inputs_to_job_array.csv) + +# Activate venv +source ../venv/bin/activate + +# Run every job array task in parallel +python 4_investment-job-task.py $INPUTS + diff --git a/examples/array/4_investment-job-task.py b/examples/array/4_investment-job-task.py new file mode 100644 index 0000000..b1f751a --- /dev/null +++ b/examples/array/4_investment-job-task.py @@ -0,0 +1,25 @@ +import sys, time +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt + +np.errstate(over='ignore') + +# pick up cashflows and discount rate from command line +args = sys.argv[1] # this will be a long string that we need to convert into a cashflows vector of floats and discount rate as a float +args_list = args.split(',') + +# Convert the list of strings to a list of floats +cashflows = [float(x) for x in args_list[:-1]] +discount_rate = float(args_list[-1]) + +# define a function for NPV calculation +def npv_calculation(cashflows, discount_rate): + # ignore overflow warnings temporarily + with np.errstate(over = 'ignore'): + # calculate NPV using the formula + npv = np.sum(cashflows / (1 + discount_rate) ** np.arange(len(cashflows))) + return npv + +results = npv_calculation(cashflows, discount_rate) +print(results) diff --git a/examples/array/combine_array_results.sh b/examples/array/combine_array_results.sh new file mode 100755 index 0000000..acc51e4 --- /dev/null +++ b/examples/array/combine_array_results.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +cd out + +# read in data +cat inv-array-* >> final_array_result.out + +# clean up by removing individual out files +rm inv-array-*.out diff --git a/examples/array/inputs_to_job_array.csv b/examples/array/inputs_to_job_array.csv new file mode 100644 index 0000000..c857c08 --- /dev/null +++ b/examples/array/inputs_to_job_array.csv @@ -0,0 +1,100 @@ +87.78185489546752,-90.3770004972126,-3.6781770234731965,-8.907655228234205,26.41501986710115,75.36091069159738,99.65644457560438,-72.62202280833012,28.62514411651199,-31.402270164569316,87.17048259701235,-51.71441534710222,-63.455201623680615,-48.34190061279608,-19.851144205343402,38.06004289835252,-82.6499848691671,-18.92542945863147,69.79131672121548,-67.00562977978058,-24.792547257256416,-18.625560645140055,3.515139682663346,-74.2571866103475,92.0494649641821,-68.96694103310739,-25.202583290339348,65.00302331611161,90.31577428698662,-97.93612371023646,62.05857812087879,-59.24378201066551,-99.55060514030754,-17.391838700340273,-58.40771924582684,-74.5336799196066,-88.53235812214967,60.754219536120644,-3.188262644081391,34.36594442014177,50.729131239404694,-83.98632234987531,42.88975286907859,21.644940161010865,54.65038754353489,54.258859517761124,-9.692967260315982,16.612692609076404,65.23878688719438,-95.92062558077623,-73.57417808440042,96.05642097954185,-44.676594809135395,-77.8805320910893,41.08102458142156,16.000133237056517,35.131054972568506,-4.170881296481227,3.249058572863106,3.0743428814563885,-16.792695551319014,75.09416061293152,8.435506372762688,-18.677664593922373,-0.8238277029867049,-36.2132818211939,-51.40730476410287,-83.23455855501334,-19.235779140824192,94.7689867090032,-52.8374058913444,34.13949860688257,79.55794132315867,98.3574460378573,8.739918795263705,-21.121352558826032,34.60224172195265,-82.66041191197647,-17.2518071323247,-62.53204463216766,39.92069749730308,54.10070576934737,-43.01744152310594,-99.39121317616882,-80.84556889365892,-17.145276003478457,92.70515846401975,-24.91434300237887,-34.790274596445926,33.992973910371575,37.46944976980126,62.68397097411108,-31.297620705881172,96.05395103553067,16.667167667371757,24.466276583301024,62.532612890009545,6.435272327883752,-17.258548278503525,76.32935183264985,0.11623010787044592 +-83.47148186218188,97.75200146443396,-78.81281020682896,89.07768682984423,79.1035172697458,32.183988060057345,-0.16935007100956057,57.977224881476644,-32.583677485220505,-82.44325897453797,-83.81202538536603,-83.79340802086159,17.514471367903298,-51.84695799699557,3.9557651010629513,10.65950065123613,-23.69860137753878,0.2377058091641544,-63.71831892335762,-58.339249120017996,65.06002788635675,26.407191913924294,-92.04164389342688,-1.3002713864091362,92.18692986573319,-90.6965818482291,32.24196569579021,-83.57274561436677,-98.05151134587513,97.70880530346321,67.41008717471237,61.23085412061093,-85.36559535938966,40.64872697045803,-95.35597603390482,-88.17403486314697,-87.01117885324952,-16.058687267392926,-30.723262037183858,-88.62881169145902,-83.43205494563918,-31.923801150167506,85.56704594619322,-13.246210673531891,66.93783313765553,6.214807971297361,66.73505776951637,18.99249398325999,-81.87760124745623,-74.1734861053207,59.07164561894086,-4.8194536011870355,13.942291753034112,-19.931168326071443,-38.31895390141482,50.71103665107876,98.56353505271233,-58.164106571891864,56.11464939414131,-65.31767651544871,-51.336798912955196,-11.591957165513733,50.04773185049922,-85.57547662365971,17.106999015291024,68.327925404853,-83.18549814515355,-38.53205030706979,23.91589173542627,51.60015919899374,-96.92199317466165,-58.896140489595524,-85.70070284408344,59.92023397384821,-66.48322019300133,-17.86751235425828,-97.73661784751502,50.23430250306484,1.568047731418602,43.42212767707471,1.1083346308122373,41.392721992283015,95.44285865206504,20.145665827234822,-33.03306601880831,2.6426439150077954,88.91233712318959,-81.49516162758135,-99.32928182290564,-52.32192816717769,-18.366799893038618,59.56519273695929,-45.33913570409824,50.882655274437724,71.39163072218494,-1.1174306265557163,56.20699906028531,-90.16080602790595,-66.45815679779763,88.06174300201778,0.11019600292360597 +-72.16158120548594,-91.23112517324246,-54.001473989756455,67.75446413919477,-76.14655147412255,-25.368878174860825,37.17723707648642,-24.35366819190054,22.609659551729294,-66.9766297202463,-19.385198100026102,67.27219167089513,-47.74367784468472,-96.14523866108901,21.099768132941122,76.47836871587049,89.638996550764,-49.17965106118274,2.9418611453350394,-18.595917910708664,76.56171335375112,-82.88839784485027,-50.91694280600543,22.519686597984446,34.4058122608231,-66.05890624313697,16.731098058862614,-20.912824054604243,-65.69089811045465,-74.42347918229345,21.465931305714832,-22.067688594789715,38.959262417618106,47.1117461689023,95.1291299527947,-44.482676971679425,-82.73057613880961,-63.187951144164515,-17.47073797891416,14.379748712841135,-23.310741326424917,14.24213969992634,82.4894445149506,95.9779370730136,-77.54189897703709,13.242248186162087,13.269799851221208,-72.46426414063356,3.483974848486298,12.983397423771308,17.588001284362846,-48.38008309589634,-34.191888945227575,32.743740415132464,-76.88597207922922,-12.690047446262128,-60.06598933081069,-79.04849632629201,80.15751910251504,-28.76714804283955,-82.46609099747413,73.72157355196433,70.55633745529443,-72.97665153000557,59.68883649646955,20.680461498674333,68.04425029750075,-6.154490906165066,32.65998432183335,-19.823633099840322,6.781444098353191,-33.44091951153594,9.329199619736642,51.59831604315781,32.334290004822435,82.27346121459121,-2.9646159922779134,79.26938886095462,92.85489781734796,-68.97392038212567,-62.929638168658954,-82.83786349263356,-27.40569789656051,-13.355424217269984,-50.263353359517126,12.419317292256963,-95.44690840736368,-80.84991466015632,91.80125054853931,19.97201539226154,91.37013171086986,56.54206441715752,-69.06414772914884,79.67819919546972,69.68862955295089,-43.3289054514062,81.92091641236084,-78.64663226408283,-46.17163731505407,-96.54852126684379,0.12123625667406267 +-42.02433082327934,-59.3990593110427,42.00407778995785,-73.7673698870732,2.8645216049474413,-78.16400386053981,-65.10189697764126,-50.000929516112855,10.243392791707763,97.82158735544132,42.964814305320374,-46.0378728346029,76.69704465047019,-36.71132193933771,-45.16509003689979,62.864296227074334,11.064898082722351,-20.894414852084992,34.98524142727328,-94.30336544529723,48.70734653632337,64.48211052468596,-17.761508386782566,92.3616886215693,24.175985820548746,-18.39781492648298,89.97909026570915,-40.62186056409567,-89.02788495633658,-85.52810927313837,56.46389724609156,89.23810008117087,81.92340000555879,-23.194799312986518,-29.55049959668608,-28.406635000888713,-7.75947232445094,-57.05897711282193,-99.9223208022731,-24.33899071718335,18.292638251234237,-12.924056142089242,-1.2345494524355445,-78.12955736542683,-90.1610687233386,25.975785622897035,-60.34092042657599,69.50272676937561,85.12924542710095,6.592350200626825,71.5643886880336,86.51456957541629,-73.45138634657397,-58.92911798646716,30.695887645881612,-42.74768680231218,-9.715205409034525,-1.1535578920268676,-26.127377535492997,-85.00872985484726,62.296405949843745,22.42330574484592,80.11097271578066,-42.17376916005444,86.01772190434889,-45.570902614928485,-7.1073139551584035,-61.32075735236295,-10.39153871379635,57.16681678190747,31.109441168529514,47.86198347709973,-70.10597063513559,-59.463311693896756,-20.13284036990781,72.07418832618032,31.310945774895828,12.398241744115637,-28.37670644411483,-43.46906612830035,-22.370992465633876,12.990916754680455,-15.367668200595674,31.975716892956342,-94.03203905791501,33.43108432605095,-40.805280442222625,38.27037110009087,93.0483481319047,-33.895106735275206,17.240914838637877,44.59594001778498,-83.70083071859838,58.55900258019153,-13.42571916675314,-59.830736072149634,38.47547471113032,-95.10051824953689,-92.07327066030263,74.26013651540742,0.09180783926738666 +17.040524082961284,-91.69225727367842,-86.64158299451476,-96.41645071498681,-30.46620690654352,-92.42796263315152,98.67655003024257,-49.63208967013646,-73.29454656191203,83.08560659162151,-85.4120185483155,-66.80231498383898,-63.12311778979067,-2.597723073205273,-79.59206421479188,2.1279908484027885,77.68112675023193,-45.469401167973025,4.152257503840801,30.67071813737155,-33.460671567620935,-34.7666786619974,-37.16884712319881,16.481643260887253,62.32277992505081,-93.77097089594744,62.21111210640035,17.39617146251436,46.830157389669296,-82.09621772929361,17.8409248784029,53.17373251843105,86.73186577423519,-22.358072245278066,-42.21431326756291,-87.88426211754926,75.74902603506408,36.886064801736325,-59.522549536247446,31.524968512680772,-30.422484606696713,69.73322554919696,2.6419375527728164,65.38084630258646,83.4790997097358,67.13439888872355,-42.39003426380612,-83.31568929643767,35.84999522017756,-22.183319514273762,-80.30652342148221,28.90790197925699,-19.949988127669016,46.51340124289766,53.698541410155656,23.71270866252084,-9.70487639707649,-27.574083492282938,-67.59093388559354,61.93810967109175,90.49426868144735,65.05884483683516,16.874388656199983,-68.3718948757975,32.973541515697406,39.6237716872657,-80.47613738696668,28.851883652341513,-36.839899096790376,-37.325602102006215,-4.981540531016677,44.13852241827692,-28.739558811375773,-80.67724168650471,-28.557978907417848,-82.87224897477222,-40.42262362318687,24.596187161569347,-93.5309268171942,-18.60517617708912,-8.959443498049652,-53.78984544429426,16.655085164303657,-75.57280024284961,-9.402075594805098,97.28155725769318,-14.087000831606872,-26.963517756041156,8.444063057053228,-89.58957014977724,95.6453444720039,38.06742857317923,6.375238519523151,-77.56375981076975,-92.51425865026226,-48.25692601637839,58.47345184167588,-53.321016930581024,-75.22526527253697,65.58212601578236,0.14908063371129118 +-89.62259695642605,91.23151938796403,-76.51730291354855,-18.922542289636255,27.783080175174476,8.93797902272864,-0.330760270829785,-82.47783178499277,-29.34363215161224,74.87692625686421,-54.98341904326618,-80.95303607062118,27.666393349847638,88.12677172842274,-71.86076727186793,-19.08974839980992,-19.734415919985125,-51.83644556730462,-31.213421875818085,18.759162633431004,6.98314185382398,73.330973889814,26.31490794173679,-18.17290599902168,87.73610419267541,-20.11244411019446,95.94935757006107,5.228611809224432,89.17353977552486,-26.093961137322836,64.1784572137201,-16.474236903562172,97.54197445460923,53.81468489561513,-98.46674362158925,7.741503761307527,-7.52488440719037,21.277082779090122,-71.42900001225485,56.13648776136563,-59.601835556487856,-66.63840112443316,-2.2287616508338743,62.083674696225074,13.898748959815975,15.527124312832782,71.82771681378557,-96.27054253740135,-74.32370868105394,93.273111056852,-92.97399416033647,88.91645524377282,43.20042660909087,37.8422039764352,37.29534961377874,72.05988187523212,13.47109859487064,-67.78070967570122,17.850484731334532,95.69555373765442,95.87647568378094,-19.721136226834375,81.51970223676085,49.007057442608726,-72.44201014251202,97.15078751699531,2.68516347604006,-69.77434121843378,91.72525222453382,-52.88175025763757,-33.118724446373534,-28.911671139380175,-39.91067645613165,-47.26150527856194,-38.48201657672379,-15.284450768349103,-32.262155167133784,48.74171293842596,80.30645731924929,-25.618879769523858,-23.776838241172072,19.65707849688539,-93.67612978234786,42.67818397991107,91.03867744072022,-17.9535954629346,56.717220196795296,-84.13544415577093,88.0342985248493,-53.681952632970194,-59.269005492137204,-19.932865660241376,-32.90136706028599,85.97488424127243,69.14720547714364,-15.179110108908205,-98.69296525208826,49.082882427543495,-50.1863097941311,60.02365101688852,0.06895930447177015 +-43.5938810246157,-58.78418023672416,-70.42507818849329,66.89806935348577,-93.28526233639994,-58.71559238313895,-39.893134385178655,-73.00060026663408,-23.9209546155555,-11.663606339023573,-10.992292395240085,51.55118158123253,-66.21435283089954,-32.10178536030914,-55.114416515958894,93.61405950303714,94.40639463555735,-71.20972548109489,-13.42579239265325,69.87143924012929,-42.715900748624925,73.27717360371696,-93.01480175772738,32.61114048078596,-49.898852733643494,47.95518558519001,31.36132764336233,-78.32933188637148,22.250040244827133,73.88859207308414,80.49323749086872,-23.12335388464537,-10.636327945514324,-87.70339791844755,-99.24478903836811,-85.42574754709344,75.56815244365535,65.67765703324136,28.838567208302464,50.52811791487261,7.0207160671558455,-6.739497231436204,58.214821675948855,43.72830537685462,65.62557944268394,-52.9046726915374,84.19145401797343,29.519387345875174,-68.37083790173892,-49.90762762989842,-27.446776152029855,37.71418710453213,23.677155023220962,80.86999480974382,89.89090124680402,-34.55137815331699,79.85147536443799,58.40969689119973,62.070845166487516,-65.90217844663881,-60.76984862891794,31.24848813694223,75.1257891712508,18.528648336177326,26.783647217642297,9.3124589747609,90.20853696480938,97.07792136756532,-79.75569139641007,46.152926433464046,-79.89063726221428,-20.215701065948494,48.4828495779293,80.58217607419203,-91.64695052438924,-12.15883763137164,4.993789292291126,40.43009694758612,77.0817237911607,-38.15744844258173,-32.831667248932206,-65.95165719540151,-90.72521979113912,-24.61259031191068,-36.84249274117073,-82.313598428622,5.46588089283695,-88.52308179601884,25.770206104577227,8.715695208788702,23.10523967654059,28.82652029230411,-36.14962998463842,27.376535007545428,24.532742233978382,-9.973125165186175,-60.301213133918075,-37.032015625342375,13.61230816242616,43.80319219308396,0.11305442303475666 +-15.807680132513894,-47.38086679656375,-10.326391498685268,26.80516642526169,92.39630792581971,60.22566687443745,-95.30241633665395,25.94270042472418,-12.55353584731212,-11.982901386942444,47.42231336344156,90.16926583977153,35.06174583897189,-20.655286111375432,82.40936622391192,-8.953912620963138,-44.11440437728065,-50.69292980047282,-28.603736775422533,-54.485948430448296,-65.21967797469577,82.52716863285795,79.19183678591233,-99.96147056708278,-87.97768424339864,-56.373347430961715,-82.28078128254418,71.11030256657688,-71.27043482767095,-43.30413040978143,31.85182145871866,-13.002674944855315,95.00009957296007,-1.94567836803445,-72.82487827562869,7.854759725828259,-50.880055479101195,88.20649964041309,-47.37834983458298,87.52894222637235,85.99830596375227,-49.86337340933651,-13.922698025823578,54.217587266881225,99.92653002065956,26.298218851474473,-2.823942457447899,-82.41565581950746,-38.6785895916602,2.0553610934806983,-9.090735296800204,-92.2959077675336,25.665445787109917,-32.60545715223131,-14.025240890711245,19.694663111986372,76.55216354332214,80.96520263840384,5.6700023891450115,-38.81597366840266,24.30615142619547,18.985967945770852,0.20219577405897837,27.30686647127027,58.01483601614606,-79.26058931049147,-5.436407247931797,-67.96852041054521,6.585660931486899,0.49948219020414797,-43.08251337680162,-12.617159321749497,30.769701965165552,15.630303124535146,-78.20688069375058,-90.34381457537512,-89.77896482272199,59.90002214740747,-47.51294297299109,-63.57431465252601,-22.435651043395623,-27.395137463720374,77.67205930681249,13.051893858112777,54.43262581276173,-55.9828299404209,-34.26353832245171,82.11232491486595,-52.60043587389853,90.74835790849701,26.398368323912848,94.15027761984209,55.69375308286499,-58.2653485219226,-2.830491867423973,77.00861514968466,65.28845490657682,-94.92772331952015,28.674585096517262,-44.561450821682236,0.07477014784836299 +-65.58235844527995,-46.11833489039321,-19.061871146987826,-69.79416841827504,60.756985586739916,-15.83616017570013,-26.919555415120655,-45.56540728956628,67.52865914805383,-76.73740380661367,12.007068841853823,74.05979276494003,28.734209805624857,-88.66599812027931,-56.249892648295166,-59.561353201733525,-92.6758220413055,22.458157968194186,81.20623267546213,-68.97131695402604,-86.20376676687636,-91.81353024279547,-49.12726212223366,26.252977246075247,-47.37395953249379,85.73454041453869,66.89360601367477,-90.569312682044,11.204846358841735,-34.44133045121238,8.919928488002697,45.532551489862016,-37.41097100980886,56.28544053462463,7.13682465367711,99.49659123727108,89.56318031234167,47.00136160071119,-36.010746067100705,87.87624053221899,-95.51077685469673,-42.0564034343595,-17.499233866485582,-9.635348636921776,55.71185007226751,-34.41766981711494,68.11463761751642,-9.155232254860053,37.155548085500556,-90.77323663345645,98.14029916035366,94.01492433489202,66.89550107738913,-84.53464301716265,20.931982935344635,7.540320983028465,-25.89784313759789,-21.896909211148,76.29781443541233,39.1931549867636,31.665891595761508,-26.04511634218116,-58.014096525287506,-88.48421486095559,26.43398520557541,-88.59455033777064,-50.15535525298262,44.55035023493838,55.913598626360795,-6.714283630927767,-7.862922558164968,75.74706168233067,42.82537515798637,19.367888418762334,82.56289745631972,59.30194730820793,-35.43940295640459,-64.0575761672327,24.962418222180077,69.88388197684537,-15.481915178515735,-63.643940017655254,-57.07098864282063,46.3842187065589,57.998689449120945,50.2398491600039,69.23066998993511,21.050072865974272,87.05643844226628,50.21988435846504,55.04429508439577,76.80591556690186,83.27095516439331,23.00988499493448,-9.608644041957575,-53.110293873535966,-8.944454489893673,-18.662545235710937,44.78171139964843,38.42208810720129,0.05242690302464706 +-87.254081776855,-48.39895400161729,-39.86750816736786,-3.8847016528588085,77.73760141166503,-96.64801033152371,22.57100358976662,92.3766608209097,69.32638484573238,-39.416901381304356,-75.27080946010378,-29.306383272244645,55.19434197795971,-87.97062145984107,50.33124168999558,93.84589952628843,-55.28904165571098,-77.54126695639624,-22.050221940996977,-56.60790830918765,-38.692996743432026,64.4457483036874,-78.8250606385467,-22.493439420550615,47.99473652330846,-16.944689130262773,90.08739368739205,63.472575629817186,36.99499263246767,94.05413421306946,-40.272477594471724,16.138145119875162,-15.786459811506035,60.84663819995296,-54.290298941490775,-5.356248241229949,-60.03823657155123,83.767759223138,46.93243938198023,-19.748268513792283,-57.45780021020741,-51.367959680124486,3.8591380273193465,-74.78274709004009,57.53693185986003,-37.34726232603898,83.33137520639849,-14.055196785438142,98.15183485167157,9.652457144664297,-9.23561586998045,2.1673056070474956,35.079988236689104,69.43650822955533,-32.16887426712127,13.348884463172055,-32.17561472021468,-66.93419958719788,-84.53176549567232,9.50646748375405,42.94030741918124,83.84003259890133,-51.81169263682255,-17.70386599957692,-45.26702876922288,85.66358292939026,56.408358453580036,-26.817135348724364,-87.9434574498245,44.519713082994485,-50.344009065529605,6.092891248015661,-57.32397431522595,28.28923789002573,72.17810696567523,18.62256474912421,12.259958613041192,-15.3114801346442,9.662198411955146,99.95707652449627,96.18090309840818,-94.43150032748679,41.4296128000656,-33.71179771322534,-68.24611109261723,-0.4556640616711718,-58.72731507758202,-37.75828695662096,-12.369356758555128,16.053457594787915,-1.3931978822988782,-20.070746274841127,59.48146469999736,22.41845291200437,6.993323489660952,-55.3059792862612,81.42990606996591,6.362307111882785,-25.90440205144546,85.51190107841012,0.11758650321484275 +-28.050001793337188,12.478327770885485,69.6936219264839,32.152892842365816,38.261964853127836,-41.944948714332455,53.132400381459775,-62.89293174139212,-86.97213764567373,95.17157638593079,-64.80114470333957,33.641784883307196,59.135145889558856,-76.08713148952427,63.87324346703113,0.18100683941514717,-99.33390581684537,-71.34480430345994,-20.349117325653935,84.10397134647235,-32.45891779615732,-62.407205212278825,95.06471524102076,53.82530732622331,-2.2310947108435784,-4.6315195664177224,-96.37392426954929,67.64437973941017,-17.639781124332913,29.90103512265867,91.46075359408775,93.2386178327969,56.73168174741923,92.15355664018989,-41.3077025566343,-89.97518320422822,-94.28930426525686,-96.17870333839818,7.943495340792111,70.36087369411595,36.796217240137025,90.56222937395424,-85.62880921790115,-68.96267719763007,70.50958295041889,60.49443336956989,-24.582062768289802,-67.26769294989069,-93.7177605631908,49.46494663356208,-89.50666786479924,7.860517395391582,-99.88042478997991,-28.972041208843564,2.036493372238283,12.464266886311819,53.144415153115204,59.40953449844716,24.243321130901634,-25.854123139301038,-37.91259042640753,54.260341319211136,39.12688649264743,49.96562459364009,21.106977506233733,75.52552560517648,44.10373472313972,-29.321172497956923,-89.83211010499737,-4.669492133068758,-77.6423611378745,61.02046589202811,-99.17978411153521,-4.404004537354609,88.9301483828068,15.69581498193375,-54.430943252972156,-61.2542098334766,64.55860909692464,-22.08243350932389,49.286521657720726,70.90694128952714,39.27336208210889,-39.77332345026547,-98.36426232433853,56.38663049450142,-83.73624955487162,-82.20413153919317,82.04289749965076,-19.274935749990334,-34.138491887716626,-21.03635457575443,14.806438872674349,78.17540571327737,62.46350300340066,75.1349777154104,64.17546118727827,-24.395903280608948,68.0976231284034,-28.969814658820823,0.0905055530955422 +-84.12647135377986,-13.214098016489345,85.58994889185288,78.25843853706505,96.3941619976371,-56.26704080893445,19.302692730339317,-73.74686124016216,61.418222990068955,11.189269112343908,-6.331274676607606,19.974958878496125,18.23065162463891,10.854998000068889,-96.61398178746458,25.524550267825717,-40.40449029435118,76.10460996693891,24.959295257289398,-19.053012137417966,17.468168158039916,61.47044456416572,85.13764280686385,67.7316122764461,73.24884406578519,-64.34566138816918,-25.89565194494969,-45.03716543420715,-21.30431077342665,-61.962692454111256,-12.659806428040838,43.066867923268035,84.4431280901864,-99.54763363938058,-50.23101411492219,19.7627160683072,33.27487111476779,51.014015873939655,35.94647365652634,68.54320118895322,58.633305158388964,-87.40259457070172,47.0133048479797,-87.88629589519128,-45.676466184141454,-60.87412518659865,27.700571957530173,80.7771625690259,63.5760858966205,54.047432223913574,-33.136358335026344,-99.4660947630625,-49.32206690942134,67.74146740212049,-46.221032534572416,57.3620363843157,-87.28735687484719,-15.924995431963197,12.925964451546406,5.591405463351748,92.53618976659999,59.73013387937365,-88.61969013968532,38.68559323217431,-32.325254436888784,-28.9351329730345,73.76323161675381,19.65027843036522,16.493472453590513,-26.17430690439319,-14.30483808741026,81.6365055207998,62.870552349622386,27.922614920064206,-56.56673092185722,94.20173584647625,68.86599815174665,-74.6009148258966,-50.03605615611464,44.007483709340676,80.3924986783341,2.5453761770252186,-18.853525638421573,-28.32769725712896,-12.085906231546858,-53.260873621276076,-69.57021947517524,-0.2563948762567918,-69.60339853655633,-1.0882570516421026,-95.23543267938844,16.740358962455915,3.835576676994279,83.23846027209046,51.84331817014487,-16.81851040347655,-47.232841258563305,18.64813591529027,64.23430000396434,-9.296653645401491,0.1244080461282713 +28.706804127483394,-67.97526779630854,51.6756865668778,-18.19533916124672,-14.252613253550408,-47.395533686470934,18.427534801225192,-95.88747903184056,-59.30590240830289,-1.9037671408366208,9.491055610165716,84.34352309983416,-50.13626646789275,-62.42062759731364,-7.95889047197133,77.28314327708557,70.97162959230334,-85.83691421234096,76.05807764893859,79.65978289650985,-84.27409931885217,81.4487235820772,60.293664198641096,9.533579075132238,28.453692783268423,-38.35409123486282,-7.641345013702178,-26.2549545724099,-86.92357122632623,-5.778028300558248,-25.349095632322843,-48.17574386505503,12.970016035291266,-57.945623170107716,26.43794447230519,85.32010910802546,78.57740265908151,41.21253254425454,90.35028998329145,-9.130987695655747,87.82045336170088,-45.12007359196779,62.68196906514393,44.90039574459385,72.9612725607607,35.39131617504901,19.572108120283957,73.03413504621977,-68.31469696291953,8.39665565473193,41.63102856106181,22.144696383189654,-32.32505572624922,72.82693856945573,-92.13331880571936,0.22705007897675955,-41.197686408459845,-73.79192813143771,14.261154063919264,25.08252706477579,-60.36823306797798,-90.64857273658751,-17.280005886498458,23.7030570355588,31.40224334350944,-86.15173778403556,39.8480396617141,43.38612730918132,93.37000500490072,99.73059129605528,37.45373493909986,-99.7475530796537,10.086862298622748,37.64125954844246,74.39451629014013,61.05598475551514,87.19708094714741,86.34698140571447,12.641665138870579,80.1217502331383,80.89154297815679,-21.92014693998759,-14.340135660256692,72.33175193897264,-81.06758600772224,55.590945949802375,4.337380138802288,-76.45978493448602,35.57141324278072,19.69121415269572,57.624460686429046,81.50841161388814,-65.20246773887284,35.45071690895929,-31.086053765985525,-78.68890874799423,-75.99119435083958,-11.669963664270995,98.86668444273738,89.42456744433605,0.09133934241581768 +56.31691496387455,-92.04791588213688,3.4547402244019594,80.8435121041575,-41.36717196246198,26.916303757115642,87.72602764204359,-95.94602899181113,57.93107072083694,-44.09622449574486,83.4343421805402,27.501367060727063,-17.025853060671324,-38.26625606587872,60.04207776603414,-43.68650665135281,20.956708787636913,-67.88427685660945,-83.44888844373071,80.05799036361216,-11.357705915962455,85.35954438949963,64.16808118490778,24.03272358957129,14.399626445070894,29.14442238499487,90.19085736753397,-19.49169000861994,57.24732341249262,70.08641820720666,-86.70424668548571,-58.13973565634596,53.04849615224171,-79.32182164930335,-80.25692259129818,64.6733945765184,-29.959860287705837,-50.50245186336366,-23.626818880204993,-0.3083770677596789,88.00314046695254,14.709219705844262,90.48792780446558,-11.498127843467003,58.4076645577471,98.52338846566698,-40.81111148031182,-79.3858022044051,-93.38685957490848,-22.531278270795752,-95.86284285880065,84.79479417967929,7.44924098383531,-53.93938920717927,38.32126430130401,24.434825973711966,-43.4261450063677,-63.7410027193255,-41.972920223227185,68.87006876223924,-52.22551071260813,34.996571200690994,-2.0145327989971094,16.545298860705742,28.02316379223265,67.47750921226668,-47.884800755672075,-96.9706424587687,-64.33894742993336,-64.04441869858432,5.247520730636637,-4.71015705268114,10.797630172740824,-41.60060293087868,-36.536861802046246,-37.306826479439835,-8.884404424851851,-86.18077457303797,2.887747471032725,-23.05967461944975,-24.7629981394347,-17.333556291912444,-95.17432561938092,-61.23711526525479,52.33965535017282,5.917823529363503,38.978499504741336,-75.80271848709683,-0.1709672191397118,-80.77772959395958,-7.104797578678728,19.277184726574248,-27.128193690856506,10.648419245944922,-84.63673992764676,86.11298936675641,-28.86360829540277,-44.698218778604115,-93.23792564613895,92.50850417430564,0.1256452648143663 +-10.940138315969278,89.50505370228763,-11.602514566502833,-4.5850580507794945,-20.711978874462574,-11.343583665646165,36.2087849366398,35.08748166583763,92.29426730976644,-3.8083485272749584,0.6109093108663615,9.168339195022938,-11.88137814842753,94.81433248915687,-74.10470192603067,-36.908659477814275,60.964434690908064,-13.992225876131712,8.801204794762825,15.093896079684612,-74.72344346963507,39.218826909910376,-11.77793086405758,-69.95239976940121,27.74129673755243,-94.05061209671321,9.746727013608051,-61.96543372174612,9.645860842413029,-80.47624615345026,11.457665482171535,7.4898975918735715,62.339893826533455,99.43359575775997,11.576288637845522,63.616856945042315,-75.95258633338375,-47.9356371832158,68.42517319062179,-25.950094038574065,-54.96452133854079,21.95070153467718,-27.901063508009855,97.2728701216912,75.26546099295649,4.992838586545176,-11.744067144643509,22.779647715954283,9.793658493289598,-65.37765420581198,25.973262679865215,-23.952041550373536,69.48439890313952,12.36526929348392,51.43306410715422,-1.3467331755887955,99.78248156102705,69.9501545116442,-16.28247939887288,-96.54248676799524,-2.8808946501706316,81.14563943801599,98.48798014027165,6.704117044740428,-76.23243687916042,-31.235031723900363,20.71978262933547,61.51610054500645,-64.82716455401656,-80.85677179958438,60.881544228192155,94.16689354596727,-69.38602062319981,97.88553362158547,-61.84321042178171,-41.075003890227315,-64.91902974028834,8.848602574783342,30.977886880720632,-94.74284584753426,-9.464053856116777,51.68630288667586,-6.499338848923372,70.32045272743298,-87.73535672872062,-13.647597306058486,19.342890365611794,5.9886684049148045,82.54975505034221,-34.20685695300405,-8.628687392881787,-96.80314065026884,-18.193359668196535,65.74685294510115,18.291573383088576,86.37921224213937,-3.687965005435487,-4.61802951501862,-69.04450995963447,4.556760777442207,0.07628013660815106 +0.23085032887078683,55.459071632185896,5.704759323691249,55.02624225241945,43.16013792270519,-37.97788096305108,50.67843159233698,53.415153874985776,76.9286149785562,-74.95624165191184,9.019808590314085,35.13851473739905,-97.55338513512868,8.793060186274488,39.69466191183605,96.41996348619682,49.45323822357304,77.80622780250016,54.02194347264103,10.362491974314665,-59.213323804359334,28.110608656133138,7.620086474414904,-64.93982376960068,-72.30520276457746,-61.86997934885126,-45.82942084205692,-55.762044461398204,-55.944622487908724,-24.342037339040147,66.56676209019264,-9.172450426005312,33.39412611328035,-19.521233392352258,67.41478338907868,51.69052199735458,56.32513757830648,86.68848467212419,95.21853673084007,70.10095273233986,-69.18068596743304,68.87048373842109,-23.16812756336259,-93.77588703090771,-97.66404614906851,-83.29803220906706,-27.650131723269283,-35.898983630135035,-69.4801770655674,-24.612818418862517,-30.39635036978612,-97.51016751236278,-30.64323156463611,-46.66025877458764,-26.36085802906365,5.337031718650678,-80.02855401266973,23.361000919173634,39.02082692566813,-23.542565509234777,43.053056861231084,-40.58014570951984,-46.24327903485796,-6.210516866229554,66.65456283863111,23.064021461644543,85.84693714433871,13.297917339622956,-34.470888608315136,-0.535039353540185,-75.32383755337126,-3.095491285279749,-25.061790504210506,42.33210121270153,63.821611048946465,72.54778077370324,28.97343639602701,-35.901240136459506,32.831221611900474,3.498955154529426,-51.00542580790073,-8.324653179888884,-13.780880149672583,-15.7731118493774,72.85665530439576,75.83830471733614,5.590690885777661,54.63127439712707,-10.05373093270559,-38.11941317162599,10.816094270176961,-64.44319848068133,76.67344836473956,-54.85101718558927,3.333812923411571,51.81355565752847,-95.43644742251863,49.35159666637938,98.48352603804952,-96.05354820251748,0.08953822044865589 +71.6893927756727,-88.52238101856796,-29.821861110764885,-90.4982871701909,51.71395806582697,-88.10352079251965,-71.9823954339931,71.27519919314136,94.75044185081364,19.370177946071337,-51.567189265741,-6.848507619352745,62.489751253698046,25.697342535028383,69.2984356751902,93.50515977011472,-53.81481785491731,67.74184328309352,-72.73245407102922,-9.466598485632119,-0.888021111309186,79.38694783902505,60.38807409046575,74.50698525127993,48.090860276060255,38.3451072043635,22.53018364068167,-93.97070017405494,43.80909109804557,-15.701267357988428,53.79241172228481,-42.61511124838542,-18.606461696664823,-93.27521486262795,43.828169522195225,10.859374431659091,7.718028436879123,-38.70902119482338,7.429728249895518,-75.760118973348,-82.58580148082558,-11.302648597419875,97.46776041592054,-24.324787533871245,-75.93878549262121,-3.939376295483214,-81.41787761867965,-63.263929686615164,-84.63998532540286,-64.65279323508796,56.31326927689642,-46.15174635921766,-79.4057153898271,20.989547729259385,-60.83139134617856,69.66961532957697,-26.476976647977835,-25.60838715444538,89.47815010872804,-5.10041240750121,-69.74623868298606,-63.83843973358729,-16.610548507195617,-98.8783318173859,66.62713369946795,-59.11158698388246,-61.426195660620664,94.57044741160067,-3.174558731300749,42.2452898373686,12.990783902000985,-71.68597280892568,73.27345496563527,-79.28506280732348,-71.97247454875784,-62.875056836846625,-20.34633340226864,-5.784218348029356,83.95314165603682,64.76904657533217,47.34251207192406,67.49076917520378,40.766514046586764,-15.639514236161546,14.2891189686043,-70.45732856728782,-56.54121684527884,67.58055677875396,-51.58036361679823,52.415396706913896,71.57046819054429,88.60495380398973,-80.9594669210773,-94.60692208380604,-44.58998636098794,-94.845884708088,63.23045467804977,-6.22926595526927,-71.718136129167,69.69150063688465,0.05906337623086427 +-41.38287529223934,44.678352607895164,-7.018603417612425,-54.26053008048246,39.99116480988798,35.57876953926046,-93.82068271252419,-60.020436820956014,-60.321501994821716,16.4481853962009,-32.567064626070305,15.618425050168042,-85.1569768266769,-38.6980888643389,86.17475239105704,50.47063952831664,62.59219995694576,-15.648290507852039,55.8474751704089,71.81221269451538,-75.03436560132747,71.61168982822085,-4.050763222387673,-29.459013779873075,-78.39858481206375,91.9251925944065,41.163740776671546,-51.32461060924778,-4.200449764833451,65.62306085346543,-49.26216083385428,-56.67014523428939,-18.67510714313974,58.146656897489265,33.52217382006418,41.39830411254371,98.94815947775004,70.4631886838495,-18.707814715979666,94.95339444692371,-8.415959142455407,48.76057803668493,-4.505261899117357,41.93663368710159,72.95872907918735,26.877621114227153,-84.16327149660792,23.230161184900084,-91.25592510779134,-55.694294405909474,39.8677458298329,-32.9915655560674,-11.307443429425362,-37.700827307920235,-28.590044582531874,-46.049916399184966,-91.13307325753811,-96.75506430698677,-72.16501761788882,86.95342020945566,29.705798366925762,-64.66954926633187,45.02546635784071,79.88463369648886,65.39592221542614,-30.03418062108689,-89.71992573582135,-85.57982942618507,-64.81324929846014,98.18957684468944,-51.18836999215461,63.61355759195675,39.87394912438401,-29.970488062316903,30.38502924630788,94.20392781773953,33.556940202082785,34.76304799957799,71.05625187267276,8.525021418018625,84.54072325986638,-30.587525250569584,72.56424819006577,80.65171849841002,-8.228164840360066,94.45074282464515,32.9172760553474,-81.11200830585508,-19.316022896991342,-9.294363968171965,32.11868624621809,-69.31852657297469,-5.2677650167658925,-31.99895753198696,36.34693226656961,-52.13492481459041,32.48854378587677,29.60939301982745,13.891432206739765,68.3984850204312,0.1408996685325074 +-33.38981702080727,40.89374928727088,-66.5089529093706,-72.71648526521805,-37.66170546279768,96.67061436604817,-77.16803908915679,-5.648307068590697,66.0653617865656,-93.20854801463653,48.31675824002613,52.732511579226156,8.202658542170042,-84.93984848634616,38.00793107839468,35.24431640583623,-43.33592032221929,7.421725276288768,-87.98316658247208,-9.601927382028038,2.872373504056597,94.99967792560864,43.3557320645221,64.75302790630718,5.15914716988965,-88.80312810975333,-39.41366756647086,-76.38787301896761,89.6668910877707,-24.21702412216709,3.8722911104486,6.599074094639661,-33.71773179500278,58.99545282868311,-22.172686331352764,44.074941483432866,-1.6981468292099038,-24.273317548082176,-32.35409396178299,-87.71868830297569,96.07299975520601,14.622879377781885,-47.59797767467644,-80.35646302186636,9.565525288324508,30.982529661320484,-20.657947739566012,-74.25571615993118,54.24301400976151,-85.57795026697694,95.87247132406128,-68.53465417272699,16.33040545080175,27.79878188355633,69.9143661863026,-35.12218977340453,65.52174917391994,-26.31826987809343,73.63170818860215,14.691664819336879,72.81576958920132,73.35014974191424,58.73849038443166,95.53485478992562,43.749958706713386,1.0620765932309268,-76.10617093849943,-45.761279592705286,71.79867823465099,84.8013436837332,90.72541800255775,98.91115361491953,94.54761161247086,-26.594718868415512,-45.91525077258309,14.395042586438137,53.115230442641916,-79.19167122677459,47.91733779167737,-48.47735787727245,75.56171876412049,92.6280904247904,79.80936624669673,-85.94789579268192,-60.284907749898295,-86.91291840907888,-64.4659565100998,-54.870788661874336,-60.42731202740388,-41.14345676045774,70.586394670076,59.501854686810475,10.38410977190891,86.69165014381704,94.32978490745253,31.595860651549827,-92.88361024158307,27.9513703220386,-51.563180439083325,5.348077632059088,0.12291108574911692 +-9.515177906773502,19.804571568311502,7.178738562161328,-77.09116158917013,-67.6618520290813,-71.74801945159538,23.81086881397752,-26.459358331216862,41.77567702092256,-38.00345802259979,50.5250340501799,-60.621795266180634,70.21278961687301,37.38710597803879,-88.06703087492913,-0.9764189130836485,90.90459919297143,7.578161870271998,10.931002773264552,67.65291779290374,-53.859651182197425,32.455042488698496,12.302395446129566,-26.257344402810688,6.032333616547618,-74.54898322909767,72.15296202669893,-36.166153448627284,-88.51458766989626,-34.07285041216355,-66.17986542969024,-5.317029717384855,14.095359139033818,-19.71585513215524,-81.84318517446205,-28.69364479768244,12.703211373587834,-60.23316523197575,25.34705577850633,16.10984741211105,-58.417196411900065,-11.427186602490693,91.95450694604713,-2.4633812382533193,-77.77277693310913,65.08069767929695,-2.8007686145653565,-30.499824533747415,-63.02265916379017,-42.15474218073325,-61.90620760093479,-66.77192060062166,-53.0826558806083,51.208783701698934,53.615584487481186,-27.954152057358627,79.89766376164005,61.931094062642245,99.52343245949626,19.332382888048954,-86.30032820067814,-94.87025087934953,-31.982373438213756,39.13718345245016,83.92333940725194,-9.68723242595388,42.0065352301184,-66.54803721720737,-89.90548495467343,54.8375644106419,-96.00773377142544,13.280643898789265,-29.694129491085718,80.1199530191713,89.83052973013011,-74.60657781656474,-52.966256032454375,-60.353154715659606,7.151441583770307,25.614224289650636,49.70123345491311,-92.07631130017752,-21.541323971829797,-87.3637882100971,47.28189695292687,33.02062902032267,18.760837429546513,-78.20069361743478,48.17547794112903,34.97695364909822,-78.66592926817955,-43.71968994966016,84.50169532268217,-29.306492934747325,30.36429047383683,-23.108646019981734,76.44746484519968,-51.948549935260544,-99.66013340258549,-39.383036380077826,0.0912672183170105 +63.424909329136625,-10.931265089279776,59.39076179418615,-58.92793716616498,-97.3684502005862,-66.01888801929145,-88.22779374093157,-33.217639372343655,12.943396785406321,-25.251105297578775,-61.35660233679059,-69.38597700445357,55.503084993527125,-52.01815667711654,-42.679198641411546,35.673579973506264,-44.16220773627939,97.87275712554651,34.44641997655211,-17.29208163870257,20.91432481255677,7.25168740219415,-55.055491493394925,-86.13857837634794,-71.68365939506592,29.652753543681484,63.99235865679012,4.034894942377008,48.58521633505424,97.13004674123047,31.650956480641753,50.77421696057198,58.20690131048053,28.66791048639385,94.06066628527623,72.61455648078635,-89.90585019433486,-32.43627926089738,42.441013523808635,80.02950360166619,-14.842692082336399,-12.371128020940091,62.641790569047316,-86.07979480396352,-19.616160371660186,28.133462921213862,-0.6936914129568095,-82.95620312556642,-44.902865831094665,8.90937759227188,-65.3893275144778,73.34384355706288,3.517057251377139,-12.507353422865194,52.67539130782416,-67.26131469724379,91.32621037767345,68.38428333816802,-38.72838880002165,4.7725215479157015,-73.62116378869963,-49.54560779029542,6.538252851056669,20.77933113644592,-67.22013133051574,-50.80386202912241,87.7409910350494,-82.08033084130105,-95.47310291842066,-35.225958486036006,88.40073946024444,-46.84148788283118,20.301664633670512,-66.07268742372577,61.741511697624844,89.05745822827473,8.727371498806974,67.25939153137566,61.51485670344576,-25.748997615879517,-15.559168582389376,-79.96660646481735,50.91512335939362,88.40912072399695,-82.1132318824793,65.10961051144773,71.00846384340764,-75.58011128779862,30.799650078351902,-79.40318768489882,-96.37233170428436,-84.21389100288042,83.18251871926299,65.5471615946511,-82.85940723219443,36.2640453201889,71.67238920111251,-72.04345290753307,-96.27594550802219,67.28515958611055,0.07111606918270387 +9.596762603359707,66.61664480217536,-85.50342024372634,65.7090440826477,38.42236866883189,20.25411186890615,-84.30494884327801,83.24598680760559,-50.019727820110774,-2.246350177820972,-42.87735133410013,-50.714503894398334,-81.65945112129035,85.48458924070562,-92.15897679785203,-84.21732731932434,-27.619494965625037,-55.1182091561641,-78.4373938049264,-96.47177474218553,78.55814593125586,-64.31850775790187,-70.4839628734653,53.47131967423482,89.12829813391829,45.75586040124921,4.87003540844988,69.38972958912342,2.810509296806444,47.68630756123906,39.39786226929752,75.93702612592043,-94.58550405990916,-20.78770359318061,34.482788428684216,-73.72173514336227,36.514075602785965,31.775360969979744,-76.71217372311389,-11.928519183879118,-3.825427564654021,-19.918905455667257,-54.15168280798335,13.219248361005853,-35.720532120789514,-88.48113405838657,76.78363335389679,36.32374058853546,90.73431697014658,76.75810521712853,78.84127639495765,-54.24068215618807,81.29070242336735,-68.80977988835866,52.59086067217595,11.113968618817282,89.58050475266708,-67.26523689579382,72.02299535025361,-50.32290592667956,-32.144868296642585,48.39189972506409,-32.70891928792024,-90.4214468139713,-13.140724154626596,-31.34245548130015,22.912757785237716,-0.16665739301086546,28.418887071321677,-14.099683211816384,1.6890766680095766,-82.1581880272485,51.58712654286802,-50.71430397123022,-52.61441729688816,-47.37765876098965,-43.80308326816626,99.95320269674448,25.43914012272262,65.6273175042783,-56.66703325003226,-15.671706894739984,2.506250408348592,-5.768818516981881,-68.82513747214352,20.371514626347633,19.686655196424937,44.35361793225155,19.99902499603226,25.95446492133098,-68.84636582768749,-73.6059684778067,-95.85871391818239,59.564788373181784,18.325118259733443,19.028826797584088,80.53934592869572,28.290722405431012,91.30170896754584,-47.41886105776172,0.08762881928541123 +-84.55684720253859,-52.66491672144058,-88.23430885857506,-26.602805373699738,77.89521905837807,-24.169473342250484,-65.8361851433981,-15.013970902785715,27.75122493788662,-10.619904689313998,50.64109119639568,14.126617053268745,21.417718299907108,-42.87527449002877,65.84405553443179,-71.98359577887197,74.57800225468696,80.19147299110543,-49.426869829119966,56.80320556011884,-92.54729471755287,-55.916340208329075,68.59180642369367,-7.163866430087523,-75.38486028564327,-77.41455448417433,32.22391052499947,75.10953842403174,79.00811794922521,-27.23175853016855,29.575863348664228,-26.120908759850934,26.30385755122002,-22.912547859120963,31.54962313694182,82.97596759015013,-75.08568169239776,-61.46795768016329,37.0802946697938,-25.53072276218799,-75.26331250811684,-12.360668059373907,-58.08564042701134,-97.91288470880923,-40.05111458496822,46.84870702308848,-48.13969516180314,-20.926428476075202,-15.515936925119718,-39.95064342336823,2.5084988515795033,-28.104955332799904,-34.34124930458189,-83.19467329951804,-12.383234781641534,-28.002466398200582,-93.99144743538731,-40.08911445411179,23.239846953241525,65.96394994915264,89.92177594935649,-47.77920209244275,86.9823956790888,18.04042843883748,-56.62382377172042,-0.5833235555936795,84.31995569181942,-79.04219793445185,-58.2261168289383,50.34139108061683,-9.746249460572415,20.624456511224594,-42.17838686287219,-86.08885321046012,78.30990961536853,-55.57709428981737,77.28420593045661,19.763304011085566,-89.6306312938312,-22.00440299907794,8.600057263533586,-89.37464426251987,34.76630653314976,-84.94234150386563,-10.220096943983577,31.48138652451388,-45.570845630439,58.29864478905699,44.37957202406696,73.70502786384364,80.80827285016315,-80.93541990546595,-89.32521821628443,-73.73384139822947,-80.34940161577921,26.031745206981157,-28.156197682173968,60.577325610525634,63.63127100021731,1.6666827231811823,0.06150004323239594 +61.333035682721004,60.0247858490938,32.06791513016725,-65.8937334495252,45.238265184491866,48.16205474556875,-59.53303706110098,-28.285847299395826,-94.61007479886912,68.35654488818136,9.99339562443214,92.92953618423948,80.47713860329787,96.03788708442173,-39.41208190489831,19.160034966198538,26.20549935152748,-58.764909547544164,76.40184569886966,69.7223632965783,91.66698738691684,-0.6773103852350175,-65.19889936987104,-13.298492541918833,91.65463671758263,-19.19800994264638,35.334909969348075,20.00839022827728,-68.05029435631661,93.80656549866742,-92.84592324966899,38.47857939975839,-84.80719862095198,-93.08815530434474,36.06825794208132,93.56027419365913,-35.05392586976444,85.08845829234068,86.26228981373302,-1.8768566229251604,-26.422750263098834,-68.87533453283996,-75.55895856993277,35.48656354503757,39.745816156493476,-54.745066827655386,25.061653789707478,96.83088417613683,2.959881393022343,0.61228772326875,-93.91426390099105,41.34279409138202,-41.6952466494273,70.69992780395498,-92.86841168460663,-62.74719348765456,-62.60028627335969,-57.17404484985684,-9.985602053507847,-70.21011951004482,54.16420459466755,94.91244583260118,-25.499446784448892,32.948564778480716,0.561316344215939,39.57170943317047,-22.19013979684101,47.73740949855528,-75.61931051515177,19.25899768579174,-69.11540800901489,83.45950498214086,-53.55178940492051,-95.28576939688307,-29.307577520870495,-2.4949468610167713,81.1095754606666,99.99442050233449,11.429184561826403,-66.62554792583204,-50.95494898991919,34.32629798601309,-91.68841864471109,-33.68015554390955,-96.84083806353298,61.60440582716765,4.36382448407619,71.5147780195395,77.30379550814155,63.975593418753164,-51.47040228795863,-68.13337383049607,-70.10784776689165,34.6141969536005,76.24267080797577,10.637930414358038,-34.87560094151591,-17.75757359322982,34.63094228639994,6.583669135869457,0.1278340146796999 +-18.735070744412695,95.75057922006954,-82.65123486733475,-87.89325663495676,-2.836693125025903,73.45530496721244,42.610300694067575,1.8407323778365452,27.419254324289938,11.195099781303725,2.7890254296060846,43.68907898183889,97.00919370773514,-4.908785981585055,-60.05853798419783,-71.57771296666459,12.207467737773086,-75.89803895485217,-76.2840380528425,68.34580367772782,86.79947677729584,-77.50577484601169,-80.28696903486497,75.69753006811305,-78.8394373181962,-71.33822553900146,-85.14397665914541,-73.90846897970286,15.249506017868299,21.48996724707763,-23.95927728393555,59.99360377500528,-52.67616755033493,-10.543610428228263,71.53421675640985,6.673117144412714,51.95756988778365,-44.74988975366083,-64.81275125799044,-75.44235552751778,-53.21224950564003,17.883552227578008,73.82688500555463,54.15122745624029,5.907709454764529,98.19471920383862,20.115235159229528,44.19198342142863,76.26620480864895,-52.49793742730879,40.59783990544602,-36.042584517348274,-1.9467299467472543,-63.757665082039395,86.77763897194032,77.69833343990734,-80.96246265395948,77.50512422132866,6.720821822379278,35.450408886549695,15.564575186149,-83.63895112346209,-1.9593121703985759,3.203810433483639,-10.287755038321976,8.50764505333494,60.62161364304171,-68.70371129480908,94.85545838959496,77.47481426845536,48.864378671607085,-36.32763594664823,90.30671871960072,-28.01213414738146,-34.27618809533912,-9.106616452801418,89.92070764828006,51.21984228634889,-70.19237297986179,64.28648676786935,32.11037717520074,-90.75315203905974,-10.64569307403329,44.71531597894344,-86.81074204033526,-94.843951053118,35.83593307699272,-41.85979236234376,12.484670173899516,21.602328579658263,-92.43676869293526,-92.1841471422595,68.49355026367135,95.24601659735941,88.60198310344128,-83.33465103972256,-73.48035814384662,-3.9217092464467953,89.1559386481106,55.906390022864315,0.14562871972966573 +-69.86866447343269,-44.36904409876505,-84.33921244964411,65.27136764453007,-94.62289585245067,62.15993444965241,-88.37204614795593,88.87745271638704,-72.83797075530545,-52.08846342802158,-51.05981356498097,-80.44460840370293,-40.012150118544845,92.0439932959018,70.81342735080938,-63.526633931165556,-76.5083609974946,79.02787791214672,47.682966833952264,-76.16061938838992,-78.32720440895555,95.50185052050006,-98.78117712100709,90.45983258931295,-23.31462805824482,-24.98661622015061,78.91508259343942,21.985195417916614,-59.73224637729728,67.73721711916656,56.69387450323512,-0.13991501893784175,21.483427196985843,-39.028549555152445,94.06445035632638,77.24162948557978,77.40177807005054,93.03481098448088,-40.722763834363484,5.267472002942625,8.240913764706988,7.811396612102001,-71.59943707683338,-27.67442009570604,91.33944021585776,64.1451730994674,39.43702784968397,-61.895697943721004,-60.86277919117449,10.661647550574841,-86.72861320516954,-77.35869389131756,-43.191272963281754,-94.4635586732521,-60.45725339513295,-41.1473955273354,-24.572950932764485,-55.21616799999385,-12.321646606656273,-90.72843173061393,26.256221976868787,-5.8010740972048325,-76.51894206333405,-43.577295995008484,33.08934323080342,42.491987330432835,-33.30153076846618,85.42863939702238,87.90337457786657,27.54519438492771,55.048675849754346,-63.54986381255492,18.565862100491316,-44.05765642533033,-49.965120444698364,-58.04366345282794,43.691618884446314,72.58571221901855,-67.70957435423773,-44.76796944977972,0.9178323740002554,72.56073969268792,-76.46941961626636,-98.90405619584237,-86.45421011738287,-86.43774835050135,-15.46441956132874,-33.00212261358668,-61.26238887553763,78.58971128520551,-3.988454175522776,64.37649679415034,-4.739182192029162,22.208402939013183,-88.80872480221038,-50.01982442358906,-10.763843683187318,22.962341142549448,-80.80283099802202,60.26721551538944,0.13417468831666962 +-4.144838494182636,-98.86994655659436,40.47917476793151,-72.72041401011096,-39.39186159374177,92.1733159167392,78.50196090834501,-25.30498246534127,44.26774922764716,95.97070320087425,-11.106473767860606,-64.29624296363947,3.8161005007792994,-52.63301535342349,93.2633688186501,22.699010014614302,47.86849340084842,59.673039003755434,54.40748982693785,-11.692901293500228,5.697740386883282,-58.42672740104673,87.2321572784476,49.845023155166245,-18.50302373967125,7.262634100894289,-82.15626556741131,36.683234513805814,-88.27174724340827,65.84336310679598,-8.759949411520267,58.7781383495784,34.34180162013283,-35.1953123774402,-25.66867683367468,15.822437362164337,-14.4057850971502,45.23004884186693,8.370547282045763,73.63788481418942,-60.12826116803418,67.62323844606627,22.215147071680306,68.17478483582562,-71.11008520576345,-16.01177648365173,-4.400468507195868,91.88601347884676,-28.12617502322388,77.27841002175907,60.76963077183592,52.31354313281216,77.3606675605491,45.973538016075196,23.551423391698265,-74.47485891320922,17.81210557762178,-78.37662950609567,28.008818974629577,-58.384950417693496,30.068133491419644,16.380252618916387,-84.436163153697,-13.52454298984587,-13.860326747990044,-86.95529011855567,-48.404979951861485,-13.937463432296184,-56.104529895079416,-48.33477315664629,-99.63933929271896,98.42037222695302,72.88955170668646,-69.4239395062136,-82.85611047590882,-45.99690354311148,-25.934821607815266,-65.46943951400772,7.739124836960173,77.56535225481284,-80.16675547207912,53.220728470979225,-90.94239281865396,11.433797095227874,-41.85889537677172,55.586083121220014,-13.280699165578994,-94.36811397197408,-24.72511912837014,0.8608618521491991,-86.18167827233836,-10.816145791508404,21.43560178538506,-61.55709413141097,37.20093056110761,23.093864205197107,15.457857063327523,84.03876814694794,-68.65071730591058,15.82998354983917,0.08104686471052833 +96.09802476698809,-65.94154705033895,-94.91091320909355,-77.96259161914018,-15.387573636678397,-64.78853328756037,61.52915255099688,14.394193104956713,-95.2153865697014,29.76431650587213,55.002655230285,51.67576733912952,-8.273669424156722,20.1999160476976,-99.03788893383253,43.8688250421329,-96.52131272742118,-54.55097500594896,-3.032461712760309,69.47860818440782,59.67241550782148,-61.177943184916984,-72.17451611642147,28.36183930206215,83.83318682303798,33.103741301119214,79.14653564610202,-71.08750216650216,69.96506656304763,84.44801732678741,-93.62093415707216,-64.15257637955338,-1.1021955056599921,56.428925511938644,-47.39456169667522,51.42021371586978,-91.10514636256144,39.28324484917786,6.433676955778338,27.45232733811072,15.697199586384912,75.18298627301826,-67.53936223253487,42.96386616478128,70.14677588691438,-77.67320229871186,-79.19539267655749,-80.52724504238044,-30.913970993537873,87.27471943205111,15.982250404732184,-19.960468466665844,27.078795035512357,-87.65242944899234,60.62057614319846,10.023609005339495,-50.54039594146658,-43.44916995296517,-78.14347011328175,-94.40144951858585,-5.0602484599705235,28.509595058957842,69.38050895469999,-31.587559479178594,41.3250834122494,85.69810705235724,-26.9103220405039,-77.48875483414388,-90.91749198235448,61.44056302594757,9.369198783875191,-1.1370117326242166,-68.30477390928482,-14.553009841180753,-54.89625594604921,94.77211856326124,-65.67977571663084,-99.99497852907176,66.80026069963029,-81.21343091194231,8.463613009813926,72.76250771224394,69.120278281353,-18.947845873448983,35.073728034974806,-96.36294612474813,-91.7839594012418,43.128896020438305,-85.30469556645227,-33.86663221598023,92.0798612508166,65.15792461137502,5.0227162406968375,53.14514619042134,-66.49593429061767,68.28066550367919,24.731293611797128,-3.297229870373158,70.30618457027683,9.737652572322773,0.12135864854229639 +-59.018134683360124,30.932513471747427,-30.41453811870221,89.00644691357743,-85.34723887564158,1.7891145519256781,67.95941195055201,6.214457708782859,-64.90333131656645,-26.732289276134296,-61.08658692115425,71.54756013066162,56.42623123355469,-80.08293858822952,-19.971545038478936,-66.15236700240037,-33.78742427989991,-37.34714374748984,95.42233369772742,-2.9767913219060205,93.6246114970248,2.9500045811895887,-24.349646095752476,-70.96615868211359,6.730634283009223,-8.69622192202361,-53.81370478671536,-9.21691515730818,-46.28018683677706,63.888203121225786,4.074693277791226,50.84896252801411,29.15401442771349,-89.15814860017186,-12.774501653254063,-73.69510792683305,39.07962211526592,31.900558990573927,-11.800680362242332,48.53399079745026,-55.4115192473946,-49.15126558761522,-40.198645274945164,87.30767833011896,12.215107774224492,-21.09543604161108,-41.882829860738305,48.22003311027214,44.66258802253313,-45.84283155838938,93.17710105072064,91.8447855002467,-80.56079128955965,30.324555490328805,12.311672087538355,-20.54563025916478,7.809225011243413,67.70850458608282,96.07598708139832,94.22230099946322,21.347889046430907,-82.84529346108833,-76.51274174274003,65.56215597411276,47.64434936120074,-78.30696716501511,-83.16021263732156,22.798304543288566,-16.027803601983393,36.75180317370251,-68.54563720753653,33.92474420737685,-4.072532081498451,-4.6990487994825685,-38.21540286129177,-37.34886019219965,50.75564649309419,11.14249596548018,84.45787384503129,7.480847060501091,42.51754056331379,43.32381689586637,88.50054264962165,-91.32266720005747,47.915802616895235,71.55290433831078,-23.74907838246739,-78.01378200780317,-49.181930608660494,24.907586129974277,63.048046184347896,14.222620108632512,66.51950039728291,-53.712701711132695,-60.8103502233851,67.76262179278126,-88.82555744344137,-18.790999532044978,-80.58844052515524,90.65203809828944,0.06375382066577312 +84.53615147422681,24.928110630558578,94.3610541178702,47.33509215427296,-87.8107886060836,-82.34401973286964,9.67736909635039,42.56790210850494,-3.314696576971855,-98.25993800510584,7.911295746307644,-11.994210335285544,55.65416535510127,-47.87418994860326,-5.99269183945141,8.487665795842588,55.188678505051485,-48.361700764543095,-70.68906824872985,-32.96565584900313,26.551920166645232,48.45486098305284,-11.009409068305715,21.394173173599725,94.62552381684836,53.00285722992908,-46.258291901093386,-37.363522071627116,-16.858025017226282,-29.016224960562,-88.36976551399007,86.93165481872524,-48.799596424513744,-6.724181013742097,35.613588144752754,-39.15269807704118,-46.05330949188853,-67.37088273099675,-12.040128862893923,97.05063935474212,80.49695351253206,-4.79163093521197,14.207068287769147,25.451070825555732,-26.74515937440154,68.83915806235137,-85.11726805043682,16.27392469841942,71.79777994348422,53.78691832083382,74.96070848134303,8.609021620563723,-3.5927945899061626,-89.74400665273082,78.804838338553,60.695579890207256,23.1084496007048,13.90077023922656,-64.73173272102383,32.812824349897085,73.70523141231504,6.3419499582283265,-68.34953014468488,28.903754990063163,-38.76770918794505,94.38403355158255,-15.413026157118665,-25.290918431036772,26.015289856658484,-73.37645456541549,-29.439844994148686,75.74165994248793,-59.9200847593788,-28.615254959480936,-90.91627279734178,74.49870195010467,-23.43559160690735,-90.83204558401236,-21.078698750696546,97.33575683380258,-4.956665942322758,-57.94796577350891,91.91059859080639,-14.12850778238463,84.30104580144564,-73.96609224016395,-53.369603102928444,-35.0425846187929,-93.36113022053816,-78.08496117625243,78.13717084266742,59.47383823230271,78.11890550695935,-20.8608719070579,38.292234829837156,-8.982253388550234,43.097105689916106,34.791047756643565,-55.9490746044736,13.798096587420844,0.05911778721752046 +-22.80250416431275,3.2407778651710117,-47.12963378685544,-70.03015064604136,-11.247116968352103,-77.31917027081286,91.18219130377611,-62.532927241161154,-4.030335301919607,69.25423033805623,64.87837887479634,81.22646402211595,-94.68256996871463,-86.62156030118831,-67.40052520042119,76.70264358290194,-92.01153947207314,38.564840020901215,8.969284300096405,49.9864302240299,-46.114334601957175,14.170680023241673,-25.319812235633066,-82.03633728771015,60.83178856443246,-98.52114159839746,-5.749147225586924,35.41061792082789,-25.86727722604165,-48.962228907646235,95.91865482354086,-79.32432026732246,93.55475025466194,38.920068522916864,-52.31351678605029,41.50629733565384,38.71490997169994,83.51501915703943,-18.932884860621726,53.33214046826521,9.08407692149001,73.9998598941367,83.97930496591806,-7.9161587815788295,-43.027729218334,13.276800000954324,-80.00513525338049,-35.137056869721704,-83.57108529821689,-85.27811886336023,84.52693622533278,77.08328049761835,63.542295109688524,49.40425137836144,-26.122912373674595,-76.09599537092478,48.46701828928727,-35.93053082209734,73.18738127612815,69.37291026916358,-59.167151311830054,2.3909222792308498,-59.28617023899441,4.318607384731706,-32.14337246876222,-86.04676228331974,71.16437156095924,12.179783738825861,-43.78666535479505,8.871983391546067,-29.42422478922728,59.84876632854744,13.829442918136053,12.595646695274269,32.11585765778696,-39.69574532383364,-4.253354470783236,-22.078378446699446,-89.13374392813624,-6.69912122428984,9.86653290688922,4.469680638578282,5.491165823626702,85.5231193976829,-98.64764876969738,-99.63384762386356,41.04920847431785,2.4194676608196914,44.39147067356606,98.18721467453614,-11.136185949843622,-69.39762691518838,14.761880804448865,45.35134177074269,-70.0384505043936,-58.09482502209109,-66.40136898224375,75.87922296395394,83.37026001010977,60.39823662284772,0.11811434715240599 +-27.402244407142007,56.04944363903061,79.18428760274992,46.45846437608583,3.0750142084029477,-66.69442901160551,-25.13077344929293,37.493909938295786,74.70610903420206,-87.88053775692141,20.885834720392253,78.70018378541658,-13.759616977032437,-89.1894848914336,42.61470703476479,35.56938415900214,89.25352101219707,75.14727490601868,-58.37403750205545,-60.390850268854294,57.06186635793756,31.66132480861924,75.02072849239676,5.217143280505425,-81.49955651731086,-11.663949395434472,42.71032160819897,-9.352465827125968,3.7426349049430883,52.877006966119666,82.22137964999087,38.64690967952086,-72.54732508698095,-38.921490289521344,-84.62959098546168,84.17407316074662,-11.580317946922065,-9.975112588716996,41.52043935164642,-31.51686933087103,-26.23626113234978,-52.02905651672138,68.0013592252721,38.767463015958214,-78.6230106210529,24.88076137972581,44.17399433284524,26.566382731236544,-84.65186666714337,85.02158245388415,91.97144814183667,-31.37427433366338,35.37184190121849,-28.225763266112565,-62.68690389900189,-9.792774612963399,-5.240748413973435,-27.06267150531876,9.040838984405752,55.73145546492364,-94.0544106524621,59.48919767635991,77.39661687230921,6.427762335791073,-28.496728912508388,-53.776234743446885,31.318472178797407,-61.49743022985634,-82.35345153268526,6.955956417319541,19.42638600479016,-70.52146291668055,33.40617844244025,42.67672303298659,13.224361999523637,36.825801574308144,-73.1920471064883,17.59710676829303,7.47632885058411,69.72979643025457,-30.123436617608036,-86.83181372369523,-47.09165277776491,-55.52968523533737,56.60337706726108,-36.33400239710814,-4.053458910946617,-90.23211559395415,47.706143144714275,41.85496258511404,24.936059076592514,-0.3800214802374171,-45.26993743647489,91.88188792273908,46.042979115865734,-95.72030613737708,-57.638756896817725,-43.58346296516859,-8.388673186993586,-77.20597229307727,0.12018261995134234 +7.474267267403789,99.37757857344113,22.202128527730252,26.284880188692597,59.75674474360267,-43.80334638870074,-29.65335280122163,62.748030064119206,78.15207116814281,-55.42366547654498,61.64989100981546,-71.02872782429267,28.17741005489583,8.236635328374774,-66.89534903204895,84.32438305623211,-25.743061647058354,14.148134474210522,-72.80896176651639,-99.12724352229358,-69.63257141335122,18.627451010943346,-63.79998892853502,75.94568209589522,-37.11106400498445,38.98095939878078,2.43334011406003,-46.88224180401408,-90.96204903339961,71.23150382043954,46.75580194062738,-65.53939277847824,-13.299163581463816,80.81385965693443,64.62486024811227,-56.70432628162154,25.908140752333125,-20.302919922318807,81.33095255553354,-98.08233909242486,88.33682667056169,18.047906027264645,56.78407322271096,75.70589071183414,-21.51428541580455,-15.71782090147363,-81.31440314495562,-0.5599598479463168,-9.57945769403112,-76.56046946646178,85.93570907313389,31.369042071862907,-3.8230174522864218,-75.01852815546661,-6.99703219965923,-39.254724630766866,45.100678429198695,-59.00130397065957,-54.76584066958081,-23.85027583871762,-88.39607793363702,74.04159442659738,-96.35506602619719,-30.90877770019773,8.514922281493781,-41.58332292477378,86.65458553296338,-49.855623168024074,-67.93717993403277,-68.9427617349425,-48.80054878454825,58.880623878735605,61.63226720686316,48.43720109687851,3.174018541469323,-69.47535364539661,94.05572897468454,70.27630225050697,96.76438396063227,-32.99642320876082,50.93738664518108,14.173513722020587,-22.63244436578131,42.76641665846935,-76.77839587943218,-79.94329164535496,0.19851852253943036,54.451405289647425,4.069652301233418,-16.382396958478623,76.68098028458758,1.6695482384482432,5.481485947461735,87.97120753203504,-40.0927302313985,-52.580429388416135,-87.31116967272587,23.928894612163546,39.70574420571563,42.022239013944386,0.11591598043569826 +56.965938874051346,-80.334155900154,7.998118043792161,-26.30367983254274,-59.82667623185798,-31.231932483648706,-66.64171314967561,7.9507624034025355,15.602422972390869,-39.35742414822174,-86.44673064816226,56.02646566418716,3.0278700359301496,-70.79257347061072,-41.24285970087329,58.10072186333488,4.224574551623945,24.567251163753383,81.44294158574951,-8.781220159010928,-1.9186227417648922,-46.12403780322323,-91.79343335313985,-78.37946166063266,79.60457180589026,42.27600759490463,-89.94832834432339,-41.16321446700406,99.40825703513215,-60.489494376099714,-88.24056461503108,98.48797339973393,-65.0946329078154,-28.721643962780078,91.63470302526062,-70.94670780955587,25.456251173403444,-91.47117528110368,43.54584545966733,30.82356230935511,-88.71630136228192,-27.58109979065371,-47.526017109947816,7.368310679612605,-83.58004494685092,-29.571687962711437,-75.43786332917337,-36.702311481746584,-47.955432467017324,98.08319564995952,24.738302291014193,-57.875451387029585,0.21933611454963398,-68.55566079073658,48.946846712689705,-66.91159237360552,48.88357266719021,-93.47227550419032,-70.38946977831837,-99.15426615737266,-50.14876915522437,13.124219334833413,-86.14254014519989,6.157587274415775,56.312616778182644,-3.1761842199527166,-90.14264803764826,64.66968214093208,60.60421638914303,15.584334561101159,-57.314859770008965,-64.33612125019339,-37.91555896681298,-19.56196381825241,92.5070828921398,-22.60397277848074,51.05685342308877,7.9708058468156935,-67.34400009928973,-44.7489942543887,-97.7559222759772,9.43710711937527,41.49806578739813,40.822722887421065,16.87708398049861,74.04070398687966,74.04351458384158,23.063182087858976,31.642883348489732,-39.76180107016165,9.355867179643369,-79.65638040345151,62.67508630514442,-55.015147489441475,18.349957773635168,-68.67180061041617,-12.41108789941876,-41.94728276264481,-55.02685763813406,80.28510940033973,0.12836737968650697 +32.69467005758844,-31.067867766654118,-55.60642994384879,-40.756536806281794,97.51999812825895,27.493139757780156,-65.04902977724714,11.452496167894566,38.5793716600476,-44.653490860003565,-47.71044459076694,77.00445016267645,60.0575016229287,-61.08818703636416,51.91858148196519,-38.85028766231222,24.9089457897461,-60.41920267491119,-19.01616164822954,44.568981659829944,49.29935555167319,-12.08536273003682,6.798053904768153,-89.52932854476683,-83.37768226209496,-35.08574739256896,38.790327040277475,82.8977837721626,-72.1525782006373,5.90562839223665,-16.116171528654476,-57.126600632167964,-43.46333041434431,1.8797653776000232,70.02393925043503,15.945552024013125,87.30402537581548,64.08040570959938,-40.88313253386924,-60.9565918427704,35.3234206513786,-77.9210713574557,-48.9756680555609,-6.26692021078064,-42.09133294038243,-52.99383469566526,-47.408109839760805,30.590605920390374,39.99773364777201,-45.754299142309975,63.40906947811354,-79.01319003514851,13.992022937725238,-71.51184176670411,-52.63798971945084,41.86001100402527,32.72583116492851,53.491748756847926,26.258161659498967,3.8847943739711326,-66.17935122152957,-31.162656967629943,-48.36425911565738,42.62352720839252,-52.29227494841497,-91.62030269072012,-61.33249100938782,72.32208918291568,-73.27029546648973,-24.754096818644626,86.5997553752405,-60.43555474321683,90.44141564909688,-9.228066883973398,-98.24584137953676,-93.88166396662916,75.21654763891962,35.13714715068045,-23.921582117315367,-91.80914940071364,92.57342181181221,-21.683632565974136,59.411135000931836,29.462172750443784,-97.30810668871031,-42.95465770111393,11.090261652068705,-26.807478490836644,-66.06409527103631,73.62390199161936,53.444284086168864,-87.32555695841322,15.951766408830622,-56.48445844523102,87.72473185614865,37.89047028009466,60.60724581194924,-37.190691699476154,15.22276968525253,52.255001385924686,0.06327631795462427 +53.35600698106623,-72.64449621642255,-60.84258237794311,-71.46931968551812,31.121021728360944,-44.823743809788866,49.79256213047964,-99.45198830287669,6.188916581985097,-47.51838335921346,86.94668025871931,7.717024048589337,70.25341628456897,32.593080461028165,-57.5192481530012,71.39172648715714,-33.62286587474965,-60.431715662757156,28.37776869457423,-10.577444611659104,22.123647557791443,1.806768582154092,-25.25700374206663,56.182316991522555,-19.674299227467344,47.530786441867406,96.11951560172767,2.656571717951465,33.91039234056632,40.63639337944525,-74.3537827400786,17.732756413669478,-92.15573580636622,-92.34187665847287,-33.09744654350769,-26.79035518290516,-59.03318376458837,99.82012872513224,-47.49968063423107,-32.372148267514575,72.02568860222772,-82.44539787441683,57.87279859618923,-54.05164060671024,52.47146625892583,-67.20136257535273,-47.11535016990611,8.045692136253706,2.473564301523197,33.64343575139006,95.00196059354056,-8.914908386801073,-34.512480706842524,-73.88405180339063,-72.93400341732554,-23.401891439764213,-50.06303819789186,86.77882885508907,-52.896640995099006,15.140055128862627,72.80498855584352,-60.94897137729556,61.05968665431604,-65.78649187482756,98.65685006400352,-4.794885088833141,91.83638785595102,11.620474709877612,-6.251456456919399,-92.83642586479233,64.2484244513447,37.12645447268039,17.105620357827675,60.75775901487569,-58.50137036378551,-73.11416580725525,3.107145804417513,94.89968955991947,-69.98633602258334,-30.11158826619497,-4.258875973691573,-53.63419796076017,60.769177258333855,49.65277040705132,81.35110711832411,52.45363271382624,-50.66459991112626,-10.291906896895384,-18.321701166106834,-93.26039435560547,-82.8598219488712,-47.026386899578256,47.93581153028782,31.940931112796733,-7.528598661823466,-23.377288811525787,12.356866905588234,-47.588558018205006,-16.216228996669898,-35.2567099297068,0.12192005448601365 +-49.3956685746132,73.37334136793251,-24.499427591199236,34.89335627122722,-72.95650598213368,-68.55858551599155,96.1696929027695,70.21198285052628,-67.97487177253527,-37.724300808071675,64.77703665910542,92.42909801701867,-42.482606546688714,12.228200727477102,-31.85227082934105,67.06094835383962,38.83983778887165,1.6168212852944777,-59.587235055354924,-92.3158372412982,-83.16712035173468,-0.6162409300006715,-85.90004730198206,-51.15478971999623,-51.94345398412881,68.42798479313547,-29.71530723298457,65.56039140884761,-82.05571340428605,77.58049025897736,55.15683469908237,-61.75027954310161,34.35716089925813,-99.11749145072119,98.80364768128493,-94.72381071917624,-76.68052471488065,-18.824728626348588,91.41962631439256,25.665001957887995,-80.81565011952286,-69.9355521946054,-97.06755207826434,-24.44588390926215,12.895431827679786,45.38740669851262,-29.708527462996926,87.13909913397703,-83.92682250336406,47.37521888823716,-4.829888989664482,-24.436072353168157,37.447681789158196,-76.0358569274098,-15.99574011064098,99.92658699875255,-34.24688684406425,70.76083800171037,49.38397641451962,-7.600227877284311,47.19334753312992,38.58080613971438,-66.45242065855362,-43.97713634844504,59.99770550669942,-89.09397672638624,22.67981996051958,-6.649012405218002,73.32969708041693,3.7255285981772346,61.892551063399054,38.15605415834921,11.325194136471012,-91.53988100903653,-8.575525544521128,-83.27853132105925,-7.570057872343,-93.78870065239423,27.98925449829457,-26.06036214771585,-79.44639682967235,50.64701168133797,98.85386359360862,2.136578950661189,-6.548715917744289,-60.182371041749974,46.25524103736126,-52.88781979359658,81.18047349473113,-77.5516461981729,-2.677113372252265,47.126168121643644,46.24270020172045,-85.24517226061714,89.09606083295299,7.787930260894711,78.09187050916077,-43.838115132507546,-53.39125184629465,70.51315039478885,0.10777496661864139 +-5.863764803846209,22.41777202035003,81.02834163019529,82.1835007434129,30.372601929073937,6.099654897470401,-1.5867750515943726,-38.51494321651365,7.16363961557289,29.539731555829178,89.23253576168642,-98.13157908465035,-93.2428343385287,16.655746789837366,-8.813224530732185,-63.04559097399125,-27.3073156696352,64.81371296384924,62.81351050964679,22.41895265369274,38.641315619576005,-70.01268994549044,-67.7116979053061,-63.87979236133503,79.9100368076007,0.22917774693951287,60.15302483784387,-60.88517312735118,-20.030349071635783,-62.71208652392233,-10.328853159203732,2.030143907890917,-86.86806908162026,28.38976154763145,-19.049190238088883,95.30191355896602,99.87478936795614,59.29386118449648,-2.4250553221515787,-81.85461286749563,-25.165679615694785,29.58917586505936,-40.000910978572456,63.58196104506254,76.11490233235429,-52.38008445062143,-56.278908721138656,-60.42988601975969,-40.51269357484812,5.469372240159558,54.620762012740585,77.91608947728622,-39.81253272347702,21.351218063350387,83.23789023687016,87.91169466553819,16.884145726907434,-82.8221912590096,20.684262552044586,-70.09554896559318,-11.275301639879714,-44.8578454214313,93.7491992961578,-26.9031188215924,-36.97322479705658,-17.204674197357875,72.65498647924287,-84.30123201165283,-19.203691453469702,34.004768457371824,59.52516990576845,-89.46448472168542,-80.58598842698323,-29.28891806455607,-83.25579901698224,-97.41623823241683,-77.03517063622903,-69.07909723307482,-4.142897545525187,2.785801342413265,49.69942389741567,-0.48110095003673337,43.8912125531223,81.615262747153,50.93589600960274,33.007474422306984,17.443980280569477,-57.759586315442554,29.904473309721936,20.39419259733937,67.74189340302004,-91.65033376933138,-45.159169484231775,94.52205496879012,49.227051305954916,59.00063813437973,25.076557054806827,-46.635244100509475,-46.09515598348477,-5.951630460623548,0.07087543312099234 +3.8073334191308845,-11.511745771319951,-84.902788727208,39.28334248090093,-35.22796901580763,18.77857707297143,15.899004266771527,-69.22978808251428,9.004363577685794,18.855845406203926,8.96611494913158,-98.44885640507871,-51.79480812284996,-14.449149332857345,-25.49991319108726,-84.5360793148805,53.30711175881112,12.41219329460192,59.35894119952519,-78.38072212573127,-9.182794110904084,96.40974223293273,-22.732126361972732,-6.936314860536342,6.165583787973048,41.963224693740415,54.143815164764504,83.67055911290956,81.5409246321907,30.69126450645402,-32.01128910086133,7.461620487751318,62.43744355574506,-54.792551239696394,80.11846162677105,-5.715240152017586,-78.54165376314705,-20.70778055203506,-23.459863963851575,-53.451839986808494,-94.30833121255999,-12.25138691569181,63.00916577666996,-31.57578696793975,56.73667708231244,-19.030768930437006,4.922156845281805,-64.9172583896027,10.731434733113446,59.244808665263236,-78.46586827076156,-34.83003730014795,62.69240221422285,91.55009400994993,-95.54154422343402,73.31758745040554,55.64600564701695,-88.2675102781053,63.8851255628328,-85.53590761559778,-5.066836767806009,18.43834956164811,98.54747564776514,-12.927485519371459,12.740577513720709,59.946982431223574,-18.439024431643162,33.23852343539261,-35.24450281420019,25.959151748736375,-92.60233192496426,-47.8896444399183,-50.384961125909086,14.58694591822784,67.81758873520468,-58.23279154178098,-28.7309058188539,65.2093031117603,90.19103123964476,99.808281496885,-82.03377727431969,40.379372627140754,39.95369261663174,-70.99856047661537,43.3964996037152,64.0747806473882,16.28979320333906,49.88250572846741,-50.4562264649302,25.74767200187644,-67.18671991458025,10.463631621527242,-64.4543374402765,41.65772911644049,37.08656986756,-95.64833804468627,89.33894308680419,-0.002580976380400557,83.17039990325952,-95.1239785747372,0.14516572737067274 +-1.6107745782257439,-52.5907678908887,-44.09047251779066,40.70147123553454,34.49406699948699,-86.09911016256753,60.01983174349408,-93.4558032746702,87.44272690729707,-76.28210147317729,43.467340107070356,32.50458275412518,8.848581210995945,-77.6538076886732,-56.246222872992746,49.65129614847481,82.64056519661881,-72.21768343398543,19.421051122246908,-30.21656210411902,-80.65604292101054,14.121766105357409,74.24635836103633,-72.13004693497771,-55.801916024753126,49.694296002604744,-88.28358717041473,-78.70867006253705,-41.23701532171153,92.41230083955156,-37.124791344510385,-13.581108428932652,-22.329947936289415,77.31223153565793,84.3592403136411,98.77992202626493,-26.545613547715945,84.56215583333201,53.581536048330975,-94.37862292780352,78.69623006045433,85.71898916274364,-6.914161238185798,22.421324867450593,16.8163147129694,-3.2637500136231807,91.67828170478253,54.4055273489237,-0.15516731197674005,-48.26768972336157,46.28481494850371,-72.57261706072183,50.20460985039023,-44.499669598291305,84.25545305411526,66.76202795120457,49.51092520413917,-83.00067168445597,56.84980823484301,-93.76266003275902,-24.180681544885346,59.8518155983968,17.04520689984443,-6.255570612047805,-66.0119680519692,59.49157967950026,70.16793512506209,64.99597641088224,49.41570523770588,39.785488089767085,70.32506386363787,-86.87138519980984,32.32571715573721,-43.93125464910001,-96.44313496469441,-53.41603739521146,38.64696826167119,19.601666360181994,-5.278739637795951,16.17909526779914,72.42835796921193,-19.057874615041072,-79.00920831219595,-31.333533036575645,93.59216867441339,63.36014773022495,-6.855737224253232,-76.99481231564928,-1.2225448187227244,98.49711468439807,-73.8536048097356,56.55490863800222,-65.45370904504604,35.71510587793881,33.01186118055105,-9.423176947091221,-69.00364846829945,-1.6691333196998386,56.45740249009785,86.66712899060747,0.08871822115980023 +-3.770858678093788,-26.15475315788845,-5.299799749026505,-72.67722815299379,75.14850129140135,-92.06108171264427,34.51154540422044,-37.18254271422923,72.50060686683764,-12.445326543490467,37.687521916648336,-35.81100417647234,43.77909758787703,13.490058961975564,-17.97643447299116,92.93368266598353,45.51691933175388,-83.13722911089752,-23.64363026290954,19.9132756697622,-31.87531625760596,-41.276183151857126,87.16379655769953,-72.42990092823231,-73.86131754369364,13.403214920267374,11.869164697962617,9.106367359553616,42.18518554033798,96.36289271102856,64.78242726257906,17.833495512288962,-18.06949293231355,-91.75143738341156,21.86155288986062,-19.841542170038835,0.021132651626956545,11.729647683337035,-65.7463931358617,-28.66177400523972,-38.522463408159325,26.634319938583644,12.656088525195003,5.935106821618135,0.012098693197231114,-86.09656379795567,-32.53665643172654,54.97691708856394,-46.67538492611831,-34.65312777111002,-24.061260943959127,-24.08079044468947,57.88023141928048,6.678530185988677,61.808224212967275,44.32130312137815,83.37299502953493,-56.906814852874255,-95.38803639109665,79.34051486349233,-13.19279063924013,19.527178856150627,81.16300436713257,66.01418388150455,-3.8718537391517316,13.038568181646355,-18.444900164889248,-87.28080615001063,-26.90558211310281,55.703320016844,19.767471369618605,-88.64932064003838,68.49956559550861,39.31000213864206,-62.52165619316781,-20.634268723833443,-42.23376078052148,-4.7188426059329345,94.60862206933137,-81.74413502122448,74.2578580153089,88.49175999603602,78.48161911291464,-28.993519937651584,-76.18355555197954,12.163531692393718,93.66014323965342,2.940658837916004,-24.521972446978594,87.87983422836567,-25.371951987997377,44.15194537953863,34.86992589294243,22.56423902518692,-82.11872110776687,-5.44028913498768,31.669100234894813,-75.4956308250093,-30.714392539326127,58.952671910279406,0.11470749886442336 +-68.8233061683388,-16.77156681981498,-97.69016744338674,74.32480334763602,-21.257032457444524,-17.600494623962717,3.5367527363934244,-39.91338466541632,-76.50426373726451,65.79528953276994,35.602538407008836,-5.73842440957722,-26.15080519449225,-91.35797643674277,-81.3724767306133,-42.35869351941987,80.72314052574771,-10.290862798118411,48.06589535381528,-1.8824958076208276,-94.01157179485634,35.88233434947023,-62.7025131503814,65.65158564841144,70.04385505440735,61.09505146204546,33.05027353715394,-30.783619904588136,89.82614639176782,86.54605221358403,-84.30703208356061,43.633287664664294,41.078862996246926,92.47341859323981,51.52041891450568,84.79024557237008,-95.44947450387049,-31.631044344033214,-17.997771737703005,71.01575736990844,-4.67170734724958,39.2964418482575,-98.19233401084321,-23.64700767987422,4.995487813465502,-29.527055157954464,-80.20819052845417,-61.312826247267104,42.22335229788544,-25.816918355204294,44.420091991580534,-1.66311285351226,33.88977509576344,50.252681787733394,97.3960517794041,39.32578497583623,-79.32468946822024,-16.603915438911997,30.61717962757851,-51.78965377673348,25.56804398713271,-58.992326500901335,-64.62328005662741,90.23091247639175,68.89415523269597,-3.6843585145647637,87.14727605526173,-28.692376439675087,-77.91130720924411,-17.606092932228705,29.96306804904887,33.67697798291138,-83.12193871633953,42.20838190339663,-11.885507827983474,55.04150060135032,79.25060234950175,-21.752601447320615,9.490923384207406,-80.86557095310805,-95.38065613684157,-4.684655078756862,-22.277232577434063,-67.87794767220402,92.92839408687249,56.641784433141,-86.90849542033119,79.17978598145339,64.86204873800176,34.57877576548162,67.36112144784175,56.56046608952872,-45.70170303829095,85.0037489503566,25.753322450772686,-76.18229835473008,4.406318740217131,81.42511626511691,71.8145175910453,63.78938458726597,0.0779525179499069 +28.169566449140234,-68.94306460990798,-96.51331050510454,88.51893147736928,39.24943181615694,74.1345310788987,61.49796756101475,-73.58716333558321,-55.826242794996574,23.91845890432785,-82.29045370189196,-40.32700890671342,58.62158069010536,50.978227506301835,-12.181396014007916,-79.86352138795291,-27.399275127981838,56.732926262851066,19.735589133419424,9.156983934427458,8.331977905191295,43.04381991044687,24.779800184194983,-18.940424486840442,66.48311566886193,20.492864744717835,-84.89785250004765,54.03584812083676,-46.96201621766165,85.5938809972885,6.839718082247373,13.43927688133914,76.1956408084132,-28.927333111348304,-77.50616258254283,27.9485063692902,50.03173393949004,-32.66421203360119,-60.18053394078456,2.2761962149319146,-11.499405023356331,25.10585390065532,-96.70538684107197,10.78313832864741,-92.50656698625377,-76.6305022004666,60.11433166734267,-82.80534557291492,-66.85230265856677,-50.01736638514711,-91.2274412629181,29.19689245288569,-7.078567041447087,57.76278920580458,28.097083118726772,46.108000820780546,-36.78676622215031,80.30867384821877,18.266799463360712,19.522017474838123,13.697238320642782,-12.303487129507403,-70.29786209160487,18.994163354996047,-85.17949178861035,-96.7329699112528,-68.39217571950225,-92.77712769773328,0.6291313804313461,-41.10191923874738,-82.86960010662068,-24.696250313268237,-13.020007315628462,73.02299198594474,4.536652571277202,-36.71161176827604,-33.89810677504903,-88.54818284701298,-99.18274968767655,-15.772003156058261,64.86452005402748,-61.299021113528184,-59.467514122697175,-35.32850795542895,-58.250043701432965,-61.30491884295128,-55.41311918295617,-67.03036727766417,-37.19473902627512,41.694401051139096,70.4159778085648,-77.93998832800798,-43.30265862126359,67.98441477089364,-72.26516638920894,-75.20078594284116,54.06856091781867,29.302854964904526,82.748713329488,42.65671193420414,0.12897481474110842 +-21.995939586164084,-16.555835806978905,49.36283099444728,36.68398815253485,96.65911152444485,25.030690462023102,52.56788474541469,35.13055140190903,68.77337947721816,-47.41704347121478,-73.28471861376835,80.09861987144927,73.11969705018001,24.545836405447247,10.501109091442643,54.9378454024739,-37.31838534428833,75.82818970462475,-31.897065467345413,-34.634839168956375,56.06974778949839,-29.453053549955627,57.74765054570179,5.456757664016749,1.584513086915365,-54.812000079220184,99.20734573021645,69.50597373552552,10.688197824626371,14.077272005569185,7.387231182751037,-39.05479860090561,-24.099763785897494,-60.933092951242315,64.25422028490584,-62.453042721088025,-20.24100638737778,43.58871693669445,-62.19217728500701,-30.589129132250605,-50.497132358294984,55.38786474781608,67.44265746263557,-75.373313369382,62.85412743615154,50.27050312636021,-63.497219488002,63.462293167142604,-55.78271825554122,28.385071548822566,-16.75264979110578,-82.81112272772685,91.1996647531636,93.39698821726455,-39.044637562132145,78.2643218781756,-57.729844936406316,-33.499952590115626,45.29495413910553,-33.43997673428083,58.3111257316973,94.12454198944062,60.48295979656396,96.69155694183902,40.058592928261874,0.7771323797135068,-8.861412328185096,47.508085339880324,-1.5785404852654636,-60.81234136444862,-70.07499011263583,-49.0435073734766,-54.83408300252523,-39.7661430390283,-42.032790668657995,-84.33449674593341,34.322007127661124,-33.37427149314867,-50.75967552116947,76.11415924985278,-61.53271200295276,23.714356335932862,46.20547944830679,35.97880638625725,-86.81378002055263,63.396315015259944,0.629383480486041,-81.21743960391314,-45.74595125515641,53.69958416001603,-61.74431041980179,64.92244482119548,39.62788661359474,96.32762981471313,46.62993572884767,90.75421295493408,-46.927494131266286,23.430742213086603,-30.04716729233901,51.8133856074937,0.11338732387360764 +13.462735924639091,-18.525097423143052,63.342810152682034,-70.03255439510549,-14.252476560244645,9.19237555051157,34.297764909090716,55.86307886967316,19.263602163629457,-59.03644858577308,82.51988596324102,-66.17647601583036,-77.43224746327692,12.052834213230483,-97.59402606563954,50.43263080955711,-88.23309821411762,-81.38106267385268,-31.70595007247114,-98.69515876858512,-58.92048001655912,41.92560184090161,6.276686356768408,66.71969681646766,-61.46216377115812,-98.20022023637662,30.9988401341312,-50.162358540369766,99.10720775461775,1.7706523362457176,-2.679419603332022,-13.4223269006485,-56.80864414755502,-72.21075300870805,-44.78837467505119,-83.75274893379306,-40.61512341417195,24.36749467364136,-24.060031710503907,90.2957679413806,48.22670917431725,57.843708037521594,-9.890046264877881,-4.183255531152398,-62.23628124325129,9.921067793362283,94.50749232797295,-72.05558232699885,-42.09881853710162,-56.350320779990895,-3.0119744762298524,49.792774297169814,29.95602482745511,37.268839620662675,98.91047262041576,-69.49928758204857,-72.71937064310524,42.48669909853433,-55.341072789783595,-16.893218210341686,-40.45331232456093,-88.4771108289109,-30.202084150405256,-31.77143437505964,-57.429886203750755,67.90988413467295,-67.77925679904375,-51.07159325746158,78.76222508637028,-97.61277546138842,72.84778715550098,-74.31313772723098,-65.65181159821782,-16.689001719638853,-20.002888522316994,-0.21287760993604365,35.66436851021254,71.43680792429956,-21.8224107044974,-88.58355975524988,-75.79119033172354,23.40892064251983,-95.19197264508328,-77.62321144581914,86.07198245158284,-6.066344403883448,63.95600468402347,54.02414215088166,-90.1602264023244,-12.086999365499395,61.99513374662621,96.84116499873653,83.82181727932081,58.09441769385714,-98.54330171565569,-53.286783246348676,90.69871280308897,-33.35918683960237,10.368566992179922,64.12385801072293,0.13706585185619613 +-33.08527563570868,-89.34303408949171,89.29236052396544,-50.49029011336636,91.78742185871934,-77.8267687859003,71.2174656937461,-85.72716609216404,-66.79811634103791,-0.6683189880451863,-98.36326074321617,4.221850140823264,5.841093725144788,-26.996551731563585,37.38222372228185,57.47402664593264,27.493495169449062,22.764436935492768,29.386477363589734,-83.09036274581689,42.40611080458086,-26.560953704715644,-95.4204326972523,66.20580351530933,61.06713700647555,48.994889429384045,90.50899652839738,85.80598752612033,-56.35935667662093,-80.49126851216575,21.248884443756126,74.74497839470783,-10.686429914987144,-74.18598999187228,-75.45285894279172,65.32323526854157,78.46393238136042,-20.971512312490987,-15.42634953195072,46.766668304709015,22.750290742573213,69.50395998754132,-6.462995958428806,-58.192812071232815,24.891025954659312,53.35685846370154,3.9239488427816696,62.88195277250733,44.110053429462255,-63.35075685106535,93.7575247023295,-71.82078729433039,-83.12674466405227,-21.79299553445209,-27.14553745313924,20.798728748974554,46.027234170189445,-79.36935976661525,40.12565043694673,-92.61331344537507,78.54649713061966,61.91818685327422,80.52767328389206,91.40212772313384,30.31491210924247,94.24819566707819,-21.872766114310394,-29.439416686804634,-45.774165849410544,11.758765816737693,-69.74707276755447,-7.923589275926716,-46.920716259767325,-53.37696916774315,45.020039734508686,-31.86089619183869,-27.15816953555354,-54.895036044085586,18.828188199066048,-79.75604746504716,7.721381519657953,-34.75851346696453,-44.77347781419263,62.36712753207152,72.78177090057554,30.28144816010692,56.131962706484785,33.408730698490814,84.7703721877167,39.89484476810915,63.95589498546829,91.83068105085934,-96.73268488447162,2.92557120541197,-46.24091467393148,12.42806633982994,1.0685858070368113,20.22358631933811,-94.35148866002233,61.775529507846784,0.1113099169869705 +-82.20815300352203,18.565283742772465,-52.954200095398576,-43.06963805927844,44.62087388746255,-98.37892395320446,21.666571480629912,-94.35317407896532,-25.662877924769205,5.753199928125198,-68.32163893139361,-26.291935706649113,-17.027818173038483,-52.098888151407905,-78.69063511073979,-8.099549149849608,-72.73562846224762,69.1229856539089,62.31873317768384,29.67616389270438,-72.0151546356476,73.18020819990443,49.13565654764125,-85.52729861612771,-75.39763347795407,48.04866721285245,44.68896038342558,-49.37952450986312,91.48714369961078,45.60233610757615,-97.37594796149365,29.514297829398856,93.03439864331611,75.03341520862816,96.37872343656906,-37.510792308167694,10.95421740018216,-21.000471151584406,93.24122356456823,-17.722823822368895,-91.17595887981189,16.332228475754576,84.79177850584676,-18.275915065021778,-4.530694704478734,-13.027999179605175,56.135993064962435,-99.63024322816847,-19.50005836346429,61.801221697605285,-66.31578046843887,-96.1541053227178,-99.50473890257759,-23.422548930809555,-57.28535763907268,-92.45735268478504,-70.68096913970203,76.68299998904814,19.510640571216783,5.186018728368566,-81.0872212838251,13.081349544818167,46.17944313367775,18.04648255899255,-29.391171363849992,47.22426739406086,-76.05286911336464,-14.871892427016235,-63.19992222045392,-63.65012316061169,-1.9719337146954103,-35.32693027563769,-54.28674992077147,22.764699441221865,34.73015101600993,-68.70183919067551,-32.813534332415585,78.91570282097834,-51.973582064482436,-5.0665928222716445,85.79328036766503,74.92427809784675,-95.70099136436703,55.771842233000655,-98.1587403036734,-58.743530397065925,16.05988793433619,-13.508906600911331,-23.577245939436068,20.432656440806696,-25.08223539955985,4.5441388060127395,11.71345794510519,57.23027397875023,4.462372525826396,-53.95759102726283,71.1865507895279,-52.4611007995538,27.276928786707828,-73.63323855210888,0.09502595438300512 +26.930293312594472,-88.19512468055493,-10.900810971427518,41.83626167377855,-51.94010926066552,69.15491637864875,-5.805295056146818,32.97270071889403,8.354271140399788,70.48105176764261,63.36008934194081,8.713167283847994,-24.34276398010313,-48.786476532168386,-22.814064833551754,59.8177992234711,78.41971567551244,50.348017297337634,60.52854459558327,83.41139319566554,-7.914074243989376,-14.333134306906459,97.31741790076018,81.15124751934883,68.53783737534212,93.91684284899523,93.2603003194512,-87.77949851027901,-48.44285060268119,66.6573079063196,-31.383459820856288,33.921711083184704,-98.23731240472102,-77.20152850225426,-19.883171772222767,-36.51929310786852,-32.9564607853909,85.38319487318361,63.2800473206421,-72.49304124210406,-69.68078231434424,-11.45916650334604,-50.77913182641139,3.0334207740559265,65.1847733762782,-89.84281592921792,37.53334982538223,-15.88304433900116,75.12570785056948,-54.703866442904236,-82.46772241321145,-28.862726786532306,-55.726476123169874,28.204447830487823,-30.968172317420354,59.004218776174355,-24.54819951654889,7.1859846232183315,77.13358728678998,94.44567230176824,-42.32348029097499,-1.5949806037893808,-95.21263829861164,-82.85058412393738,35.559219656881766,99.25272722865327,-37.92819042654121,-2.5769402741688197,21.90719202494637,62.22078016249378,36.18960605788166,-55.07178171039282,27.09950962486751,98.71558340082603,30.599417340642077,-63.713135703496526,11.808813813723802,-80.20846650084532,-1.4012324606875097,-83.19889853567727,42.25593938106246,21.594825737129227,-17.587812317833425,41.70085311535527,87.9937316548573,-77.94592765707952,-39.304735529840684,52.09897203214922,68.29799868883859,87.82729656161573,-29.104629153662188,84.02414185314208,66.41695719141168,57.05936165595807,24.283913630891306,0.7617361579866326,-82.24591918221486,-56.35699258404643,88.90677730447806,69.02761165350907,0.06299353086945036 +75.24588771633395,33.7724674809256,-46.25238306262944,89.67310226101617,-37.328684846854124,9.670260222046949,-2.141251510526928,52.4760272127063,43.78549712778815,-0.9753050763063271,-91.71129278903176,6.680727721540606,-86.93146309092194,-81.33514884951043,-89.13510935368139,62.398199522874364,-90.1702589001172,69.21778798799164,-66.5804942121412,9.687286917125505,-0.9113123236388105,-67.6142707326074,-1.5557252300554438,84.43111819391294,64.73446426893025,-42.945361709252964,68.36705588699598,12.492604448574227,-18.83289094830569,-90.84785345138087,-31.88314247211879,-61.138677720603575,-44.632624674473085,14.053618708065343,-61.53774743822371,-47.70369533270653,20.201543911390758,-77.58462617852481,-64.05920567197687,22.997834672211283,-55.92161714809338,94.62828673545496,17.11883305207455,-25.349886227288422,16.464406221509307,13.670073428967285,-57.00674635312117,-82.94093010115111,-53.24758478375748,-26.160869087739243,-82.53570377280641,-98.90217719833151,36.061835377753994,53.212285076187555,83.8419997645376,-41.93110405046121,-38.294453402432225,-91.73260200299998,99.1447463867978,-52.36457401975541,-9.340065112871372,-84.50543597709785,-53.091443772481384,43.241492096382586,84.13682300716869,-83.06342948852739,-7.336408480641325,-56.550444200194775,-85.36118149531377,-9.693254683200479,59.84783111001002,64.98806109705285,52.35972380593313,48.79986932657445,95.84119551898621,-8.859676116575457,-33.758508917545925,60.93485629889591,79.65268219003954,-37.01672049117883,94.44424387187695,17.713033378875693,5.969608298170655,20.219304724140883,60.30937877197374,-8.157079896133126,-27.708692825492264,39.10098265482506,-15.24825075194991,40.73969696054726,-44.40451685146043,80.46853550999015,38.58990387404384,37.39783114712341,-15.986558001923726,-58.262743331297926,-6.646261618799571,10.560100720434491,-74.69600828168028,58.64112730559219,0.13561404798563376 +-10.229272777442631,45.33840341963719,80.33598164436705,-68.69644134016981,-50.09994421984838,12.712734305140543,66.44664970326858,-79.51202056796058,-91.18202279167457,79.72732390451756,71.21523650152787,-58.97462269997726,-48.75882403562184,-28.35129240871352,-32.47669317223591,67.58406778373086,-88.005002331708,-88.87228696434109,73.19490655902854,-81.5095265807104,70.63147811996049,-99.71920286122507,97.76939771625484,-82.24918070706168,-80.5371533246631,36.546099036564016,75.40599994561018,-90.6827634250309,-3.3779070278398677,8.991565167049401,-10.00663448181875,9.4491764148338,-35.43241741890226,-25.91014113988315,-46.03494273693636,64.3409190608568,2.8894507153759434,-88.94073241157277,61.41877561003096,97.41919892072471,41.83844767376121,-50.602158242825745,33.197897822002176,-78.31112564744407,36.75104430435292,27.688918390258436,-21.333435078180216,-5.007507752053343,94.5415162473895,87.825067633858,-78.58015119214743,-11.151016317420343,89.09101107267955,40.060764933607516,-63.60561908901834,23.036361971396175,-83.2308486187543,2.6158075757241335,53.87008238368921,-84.04231662475523,-36.29762065025761,-66.5013285205786,-42.93711251007477,29.303962983613275,53.482353054469684,0.25854894470258216,-27.281685267248662,51.092710730337984,-52.586044463651206,-9.789685996373194,35.114259648618,-82.97535335331679,56.200872178135484,-87.02128563532195,-92.09665583655192,80.01485209454208,39.936675148396034,8.211393408145426,-10.698599572963758,-64.55880190452905,-59.939522890977685,-42.38422170613612,-34.24323279333112,57.67575266869346,13.580859457444646,89.22952607885415,18.240160180616982,32.2500355557531,-47.28594963267876,-40.14813895324936,0.940481714236924,-51.199739229584495,33.20233463296617,21.577314776629876,77.81438602706979,75.25428287164053,6.802198643497974,-1.24985671011828,73.99581345958168,-28.020472097975556,0.05097174564474452 +-44.78907120602207,-26.568674221603672,13.694616650058933,60.04162019778252,68.78305640497297,-58.80395411994104,-56.49346271369211,61.97033192940464,97.97523279623758,20.124790113071867,-95.06547627927613,-48.64458217679564,22.15139744369121,-97.81963793439328,-91.64834209743108,-53.31346887909354,81.65204036222445,-38.853895596264664,26.736179882335435,15.592526752280264,75.22958793581853,14.866347161536623,-1.5821720574039801,-54.83704531538807,-63.71946394261669,14.927091645503324,-31.934124134437965,-15.328841648052375,87.33917350970913,53.59975592882981,88.86189797004832,-58.93058858754225,12.926188562232639,-79.86386600809607,-20.725390291255195,48.80150935725004,-42.57294132632865,-14.264988255171886,-28.294167480582928,-32.32537296780956,59.13580342703062,-62.7636978452591,-35.14225865758094,86.49189712904649,-35.718427081744025,-93.60923020244279,-77.54606913501888,54.511612865264055,-76.63591318155002,-70.20443079607008,95.09264017214647,-42.897705965492825,92.71064854965098,-40.4530695773981,20.75237770578839,-39.56735416539314,90.26082715728285,28.04567584320992,-60.25619720688924,-47.607854427433914,61.40152094873676,-53.977025877795,19.404625679239416,-70.763071890786,82.48858563245182,-66.49459269703144,-84.68201007221852,91.67391326023414,9.959183904375408,-11.597191879231275,55.01159077088491,91.19436959088094,-16.81550877147204,-64.40568465125027,12.378672788330292,68.37915878443229,-99.41493246701513,61.14635835717368,-5.624072051876254,-90.74711290313893,-50.233160845278604,-93.3489528053687,-59.54674295265474,86.0184004675819,33.49761264646594,35.1865456579022,-85.5534774260126,53.07675046404944,-5.899362366989152,-70.55399984124391,-71.98988403662614,-20.891444566381352,11.199697927355643,-15.559499197187705,24.256180422716483,-46.208060215963556,64.00799294394696,-32.50531938985081,87.25826356032061,-13.161413087382101,0.13661519273334705 +-69.9461122853585,59.0888494223241,-97.9522853892319,27.82918156283425,-5.56625662130736,-62.44551619101837,46.73838536105913,-77.64444045789205,53.79210823478019,-14.7696962417521,63.74829137757436,38.94953417439538,6.7416765150770175,-1.2112352114354934,17.808003879669513,-15.394504646632285,-30.07960273328834,-56.795171804289055,69.75083576127099,-64.5188863618188,53.741568977323595,-34.04663706395242,-79.01079032191822,-99.85044711345546,37.76068233483721,39.99871450152483,60.31388776049741,9.191126027815116,16.526514490960537,43.28456662970399,2.581125994661406,-44.96806247851693,-89.97725881872766,88.71471093646463,24.1724113874092,-8.00253241156858,62.17723830765621,-59.75001587836273,19.616219812312337,8.05970314428366,16.254052882126487,-90.36084155750896,90.7952134008973,66.96136860644137,-66.29839384217067,82.96536771801104,-5.534716612431694,-69.08858247351928,27.335013240495414,-6.600624722965335,-32.7690262418858,14.271281637552775,0.5744113161070317,-98.40256841461694,-97.03246205700245,58.68425155640861,-50.46426869177818,95.94903803628915,46.43762645021013,76.20296563007986,65.84538931038512,-7.8517770926622035,40.71708055466263,-52.45621290947853,58.68257724991702,-38.5609214418418,25.054513456363154,21.61971376740759,40.17884081793966,5.555841997139723,92.38800510376703,-42.045541830533196,-95.29820714651136,-51.997376075374824,37.39508431266296,-39.68874792914969,-47.49355879434671,-84.61256233522676,7.0092313333572065,46.802543242136636,99.4595956821872,76.690451043412,33.76230979682387,-92.89582718223173,59.732750563416204,24.795357959545925,69.27462048350898,-70.59980652528338,90.40219737072954,-57.43110416010448,-97.91946014502066,-37.241034281744675,-48.894385069761,12.743723478151693,-59.54692972732671,-33.08117177737249,-22.737516750626583,-80.2901254012544,62.75296894106799,-46.273118295169205,0.1453638072944366 +48.76291417811626,-41.69937375255592,-74.99658089629881,-27.787669445094764,94.37259466954754,99.8370177193109,-83.08340312293026,57.144565750502835,-13.893227835171459,91.0807975591317,59.39866489655071,-92.46181388323846,-72.70202560371537,93.65551212220782,24.545482759317366,-35.72934351507351,64.47502544526768,-24.19166701970552,16.556304018019773,-33.1822243926007,3.0380751323583155,89.77229120234941,-92.31774830295866,89.32375896052372,2.128392922720465,46.28783334691454,-45.68044595002816,64.70628628748648,-86.51293178994177,97.92887050754749,-32.41771501674788,7.816810168750038,37.584222626998724,-3.9265963232850964,-71.20567458076164,21.238521477613716,93.18259017953184,62.59165937120804,81.72748721529311,82.35607705876095,-44.636914492050316,-93.2336366433981,-87.6024212915275,55.862548225541104,-13.738463675118481,-55.16300380475761,-46.59069548373993,24.505935831870644,-63.68815362518523,-14.539333871919482,-13.219892746254658,-29.41660863506077,41.96210642882366,63.0387969109932,60.51678922395368,42.383779104034005,-15.18416427460474,89.76025490000171,-43.05944622289029,35.920360763885526,69.3446571065347,28.127530225637372,86.45310064141782,46.88965952578991,-68.0471041825468,-22.093507931632786,98.27308831395334,-14.613669744863131,-42.52517573097876,-50.13576488759557,-40.23572132503395,-66.97766383652865,81.63573616664524,76.97535499077318,-59.808646776611866,-38.13147966342538,40.266899150513325,-74.66047101758593,-7.906040110828954,23.58081191536023,21.467327613010937,47.904903384589005,3.469323956035879,4.083127810273339,65.01325024532497,-65.87333956650683,-84.03677450190368,-42.469427264120526,26.102866770560667,-33.90757887394717,69.07883344809625,-94.98004222700487,11.005410268187404,-92.90716586995657,37.13574954700317,88.84853028333995,-78.32331234435661,-6.286299686225206,19.089287106967106,31.703365058368774,0.10249094838929368 +-22.289631842859592,47.8492905849574,5.748759150795706,-85.00548425708101,67.82350076267346,-65.00119702169587,70.07102895531011,77.93309025997772,7.824580386979619,-22.696624486331714,22.111232371959602,-59.65565486390434,90.0562104811533,81.51577832697839,-14.659672356636236,-67.1770289661245,10.951904258966351,96.23759466842102,-58.02552787853048,14.574197661455088,-65.98899386440775,99.41564809893194,-65.64155715666502,-75.9066161845619,11.276892399214901,75.56185349367254,-51.63859893989964,2.9920638503008377,1.9312835181181782,89.65271698436916,54.87860339985801,-13.430478913942508,-75.50279135315634,43.90926230863897,-61.10742095082511,-39.80220291802552,-67.326926228286,-21.677087096794494,19.534785102986277,6.454307489046869,-27.28842651188566,-63.69844384085302,-27.035710369237393,60.89718828884537,78.96667116632764,-75.59987952632173,51.41283661143299,45.98872272735352,73.79494469436847,32.72106509870906,88.25044770045258,24.72544471934752,-91.57011491984497,5.22009147887637,81.46337429866708,7.668986592553367,43.498073608931264,-76.23118427787603,-84.49948728510233,4.457767940179465,15.365999824971084,28.457014514667947,21.09050789186695,69.14955565967654,-90.67864226318947,22.483452422857425,-30.366004821507815,18.62909483693001,-80.82334498610864,-21.551811869859108,-22.0110887668947,91.29050484208204,-36.95068397516577,-61.77898328733189,-72.41770309441091,-11.441962212762505,11.254218934422894,-22.284417020050043,69.84434416170419,74.75858736955627,-98.49567971920618,60.23837150629734,4.979261632181405,93.83348023709596,-1.4194398795375207,64.55955209857649,16.893422147531624,27.446952338827813,-4.8630047000969086,89.11810114184735,10.928906059876127,-41.03674200601215,33.876935467578164,83.65994021956834,36.834917785063084,-6.038101053381013,-23.14885232848451,28.41212121793768,57.77000601117135,-45.72598116134869,0.0991850646662206 +-86.02167511278522,-36.370723018194,-16.13532907192321,33.724921645469664,29.45669670664566,-58.59816924546626,-98.82279601488307,40.42745813506383,72.41917460538843,-82.61331001022947,49.847822310289615,-21.84082140770782,64.12137355182603,-25.43399893157614,-48.077773784962076,-49.428000408972196,10.774678864000961,25.0875452446262,-49.044694423094825,-3.263195258321616,-71.62236289189572,96.92520313960702,-76.12546588554693,-16.307413725460535,14.559387813265772,-54.79515196817586,4.348043672264495,67.97778780604128,87.04116473837271,-63.175490114422004,84.00803596878731,41.54074157826395,18.223922336060156,8.291792075584965,-3.120713032500703,92.81450338502782,-73.93764904066045,48.115406443165,-17.162622127304573,-19.807690935746948,45.0564044416673,90.62648282865655,53.430460296899014,30.061705414578967,-80.78490324665691,-3.0783949965826167,72.74836402119132,35.31658516858772,-88.69649699891431,-45.92541274874937,67.78261244249782,-39.812734655846896,-6.277327297588116,-55.97579824643606,-70.86366989060937,28.77698680205475,-0.2741557851146865,40.763585587362826,-92.67125421705138,-62.579217000783146,66.58539098271851,78.92873647566796,-82.25732594889124,-49.54570285166287,74.82763551510752,68.82292461181802,34.47551623347334,-55.01228055491134,45.88003620129919,35.71360414266417,65.8087252018131,83.26901965751583,84.24456645932023,66.99580036851853,34.382444558332,71.82120875207781,16.269400962346253,-37.91400705681358,22.39564029543402,87.66511255696665,46.982720163854026,72.21438531242387,-84.17742483348876,88.77299017361156,-65.2971278211419,47.7683418777863,49.04394552225838,32.17194076985581,19.257380436027447,-42.655806204140426,82.76509356625382,-53.35453199933586,10.42917794895935,-24.26883873645913,47.7147270876126,45.62762742898775,-89.64611893741471,-23.65920625608659,79.71286384466964,-37.648135062367615,0.1164416390494357 +-27.861770339647478,-11.660486479934164,-98.11598223831395,58.35510391269557,-74.55348645908211,96.42891202251107,-40.30343710967293,-58.062316530833115,-58.58767653538281,72.8173069817573,-55.246084479651536,61.801028942824274,-23.439647864140298,81.01381614992334,-48.533331426915026,89.66051221852962,59.45592144796706,26.524444561432986,51.511999209181226,-31.102595998634257,-37.880888293737435,26.408147002119534,91.10044145809027,99.78815479450336,-95.65924549307128,76.83203401043184,90.67772210802679,-80.15058073601827,-95.49186015279858,91.00530952579274,-24.347491981757457,-79.20183347880818,19.897131335427147,-71.82340485054186,-71.105003774546,-54.37857095021099,-45.865642191757395,14.55684600300313,-87.37749803053882,50.4612518114248,-31.249749466679162,96.87759822928405,-26.996610714188193,-3.9516213827408393,-50.68802120441085,54.62595365907404,91.68120504852001,-42.17725361002926,-83.09356678161811,72.4810112379503,-43.9740887434189,58.63718917010564,-98.7401621770333,1.0663036361421803,-33.74188914434886,-14.024089164197548,24.666583440294957,35.1712291568013,34.877023799255824,-23.842272399136675,-14.418024313209912,70.45624901941437,3.0165272789356408,-98.58624033477031,-95.10321726809192,65.02917225912023,19.556515683459907,-78.67937137795647,-62.24470987954292,35.02205471766703,-98.6506407419466,34.89181362373844,-31.604415704560452,-8.953251184963193,89.72097137214894,86.3348208513801,73.54814658555688,18.71271426770788,14.721320719218895,46.97944661997627,-82.22868931933287,-41.524380866486844,90.12453702643128,64.1580317578051,-82.34703555460689,-96.99177743746468,69.76245777607579,-18.766555851897976,-93.35876999988184,2.414631601694765,57.82015813674482,-34.679251194876144,49.00184187455156,86.49946553253278,-59.5472682856889,-24.99948047752258,61.87319803169774,-31.16073872955951,-55.791762784167666,-65.46874749782941,0.12039580691267936 +-7.349525329579578,36.797524941553974,-47.283754883802764,-97.39616299827586,-72.15585757938297,27.869912163446358,-66.87728686810425,47.081439950715776,-28.926705071956846,-58.078812641378065,16.60296227201046,19.764007666980604,71.6978731768757,46.945692623496456,15.066032495618686,-14.977912327345535,-4.121058524287349,-94.8068826968617,-93.77103475864195,62.15698582652405,-70.81831763673203,11.938919626759343,16.95574598838408,-87.49058039735336,-98.26223830794811,-72.86661108548486,-93.64056143648507,-58.854813646593776,-23.92648561835165,-59.31682792077591,-71.33469287899909,66.64543580509249,82.22512840616358,29.17852726932543,-49.282536833610195,2.744503983209384,-86.11528710260671,93.29100597203202,88.7031492556064,50.618488666596534,82.77262142309766,-90.05119700586575,26.530395026327284,-94.44070155222602,70.62700166448192,93.39285447098905,-86.86686525606686,11.226696633154347,-18.46047094076812,-97.42023547904508,39.598996743691146,-84.92259426066222,78.67494272935869,83.22222101974688,54.897916098432944,-35.77345849347904,-8.84829258433166,-94.27772426473429,-10.063923829764448,7.146376592916923,-14.609576029780797,41.30263773154624,-60.51829371869757,29.353967834773357,-27.95885492944477,-49.520548141586616,-96.90458957285767,61.25626215369792,-63.632380075329166,49.36083292321882,11.659230590609965,-77.67910769262787,34.628114505934406,42.46335119337894,-20.684973951583302,-61.8250366379091,-22.579122195397687,52.600700909247195,20.84657106029381,-33.84461557573614,95.7769621587384,-1.7973961323746863,26.14254198303641,92.66747769884424,-34.822161315864435,-22.312896797563695,2.7843575052525154,-0.15810795080200535,-36.312404009997024,-51.29745926256375,98.57281456692428,6.778378745946,79.73016181518778,10.609751815482099,15.76367945863852,70.40758788066063,88.40219210160231,-8.430293069994747,5.8089412862115495,-13.195380038401467,0.05609555140441629 +-24.671774521723222,83.91115187425973,83.9085691490186,99.24271408661275,25.7016780457906,-99.11581898840642,-69.36752026876931,-52.80040016643288,-3.1925675032903484,52.66390162144506,4.867946785825822,36.54372806903726,-7.65865883747972,2.4154807125267723,-62.05066944502098,59.099457053633216,-53.33917568617566,-35.57280531447759,-12.158694229242073,-56.11337197731012,-90.36298627334327,91.4090772401859,-68.96480183805323,91.73367062740044,-41.821804744757515,-47.06282084179707,69.01305974277591,-75.00222546830464,36.37597060192826,79.26674020526448,-10.130563261497144,86.52844633105246,-10.008815147845468,-97.75005030335042,4.944042372818046,-39.63061882637078,-23.970013677627563,-74.25446137161211,88.73724580493777,-42.704237940467074,48.810327972474965,-92.7621499766208,19.678485295215566,-90.4411662297295,-72.14375410245424,14.156601420807505,13.281001098131966,-84.71441579671756,91.13356942557056,60.42710810259277,-49.50948630551344,-40.18831874981501,11.30981803538127,-15.848769568599266,87.92681474972838,67.54929021580878,-39.09856533492275,55.50228553355413,-80.63574864078814,84.85809085491653,-91.55553015168036,-24.353893581928958,32.65283419152661,-56.369950795919664,-75.39353731379892,-82.00875732411339,69.78397555365538,-44.305097386890615,68.8081538542786,27.153715922144443,-18.076684715683868,-63.15008379289391,-29.372000685651315,23.535740158294487,-81.50981711366964,-75.90333573221153,-19.035101989026245,-12.675098027465097,-4.702476868957135,13.037325925549496,-35.628408939472294,43.006118104702495,97.57989066788417,-95.79590324432613,-86.82459424337625,-95.68134473568068,18.134197516361226,-55.379603914435464,-83.97382089555101,22.33449453543686,26.20112347359462,36.18453461032436,-77.03487427039039,31.256913282753715,-16.35668563227513,-99.71139893064208,12.894454199101872,66.86186592591253,0.5710876179538644,36.88521869485376,0.08322821772921914 +-82.0314076786884,51.04597004199576,29.296128587171808,14.972817902180523,-97.71140089291217,-2.981935034346648,-24.62815824712112,-26.45939195579743,-42.65724335637806,59.12225753823677,4.028278068168987,52.71101073239723,-81.78955590898245,-57.525002484649335,35.06306672166431,53.28272467822512,-53.56601051980834,-31.239499042486457,45.0801254265844,79.27490813882545,-25.88554098936524,87.95413834583294,89.99830945777154,49.48592313515542,-99.43041615425933,9.271354657059348,53.90410098512223,-21.583623548390875,-73.27918940017938,-19.84507858893801,2.2985203773571214,-47.305626924723356,-3.1218783731997064,97.5241503128928,99.32770587678752,10.434714624576145,65.31880158932216,4.271013759294178,-30.452798150939657,57.378391762793115,21.027434402609074,7.675662565563798,24.07194118026166,-84.97281766529254,88.47625811296885,-97.67729059491843,-54.032777281761234,-71.50296229427494,-51.604459910098676,-6.989079113287474,-29.220242742958447,71.84294725378254,79.22241720277526,43.485030669138695,62.31304512866086,25.725266543691433,5.04758159514796,49.21369437171535,-36.15002079645715,21.285717441408792,29.12856893064634,75.67219214934994,-89.63491744793333,-8.96342130240295,81.20109200408683,-74.74760215753598,-24.353357271686036,-38.514468013946,29.95057385150301,30.384115728026586,-55.38667837865194,-55.01058880258307,-30.229997158575046,67.53917376840423,79.84793206323971,-46.06629856448501,-40.12955059884955,-63.077069219207104,-73.29616968856594,19.439189484008907,-74.39806170839879,-6.4918054925093,-25.98098688166668,78.45224421446127,77.28879104343852,-38.271570038130534,-80.27536974035097,-74.48224598666062,-75.71208511370118,-88.07253788351869,43.263116113626324,57.00844296784652,-74.16423400836598,91.3557507709738,4.805193781145306,-11.494857795489821,-12.282874480303448,-83.39739308667066,-33.0703130268939,85.83291051655581,0.08328641160563119 +-74.94315763762063,77.75129850610898,32.237016595680046,-23.02097499091542,36.56375565318476,38.680813760664904,77.42555676134236,-23.64640801034848,-23.41407566095117,69.04508104622315,-61.02154872700791,-14.857192494841925,-32.110868408828026,-56.35510771051315,79.57622907053678,-8.270374072015144,17.033860044545264,60.003900158785854,-26.84173161928804,-16.21570321712369,58.18696440502822,74.06370112102667,46.020455188598504,97.54918358618144,18.430142209128036,-88.4163588701685,-1.1135557057106524,-80.2265594610262,-76.67104697209112,-7.357341153952078,75.96904234952137,93.10610320356986,-51.01665194739049,-13.534698622988103,51.824860545554714,-41.06196043135577,27.619996891173628,-42.320801635138764,10.626770124567102,-64.39325126139066,97.56030496915483,42.784822351930586,-96.3619632033393,6.7569938293869996,-20.0537732159773,26.79698320352611,35.95650474264963,62.20706017175593,-93.41467949898276,34.918845252173924,-39.23346830489063,-61.144197026106184,-72.72600837023123,-0.6924899787214258,11.030178183386411,81.06309009291468,-51.85090215258996,71.01803841784721,-11.953719670631074,69.23977223360282,-95.94458047299386,-50.13913554845067,-54.95508362023891,-30.657355735514486,72.29076150724498,-39.597718356813935,-44.30110774118712,83.30788813255211,-83.6520366616526,38.79318298286253,96.52098972961824,47.05048807092328,-88.92768866037912,69.07008872678341,22.617780284238307,30.416374900598242,-18.638721894613823,-27.567384136399326,-3.2193851258882233,83.16341174160743,-37.23826961992902,28.660604808786076,1.0044875427962126,-35.189884125900804,-57.21681171382467,7.430332998405518,52.39168605056449,-51.79409995871487,43.66786014406756,41.32386956368197,9.604616332442788,-44.34066325751071,35.77512792701194,75.7177965754062,-67.18598125368558,19.134461364853223,-12.421171845709395,-90.91779295016042,77.24030227423853,27.34394694602061,0.14355964779424688 +94.34598438962755,-13.33313156553399,-55.292025051951214,83.97718555189505,-59.7828084866574,-54.17838853377761,-29.35934685553299,51.98821074715153,22.360451112811845,3.8761490145131887,-18.186587187007603,-95.81163969487054,-44.27612769907252,25.875903167785097,19.72135327032602,52.466882845203855,14.657310703253472,-77.32945758229386,68.80441316466565,90.44661793956669,10.675494992060777,-7.00686361437721,-78.02827293023817,-0.9015441928523842,-63.59645083072074,87.21644018409071,-78.99154575458032,-65.93024381386523,-11.239834324230657,66.21559475441455,-40.786563728973576,-69.09037202104464,-88.64423808157547,33.888458235082055,-7.582193424929542,-25.295091561514084,88.28337530396334,-3.083017807902806,8.871571939420633,-15.484263699068805,-71.65217011751733,-11.54165533921325,-60.519182694131565,-92.01641391967752,22.383811889846257,-1.1431288740827483,16.915715005183827,-68.07643226728182,-79.39086336637997,31.56489734348571,12.5253091273172,-35.828650889045605,-13.47888893837434,46.86608397870745,-19.800864418119772,-2.9575668430384923,-43.55860951419746,32.317068755364716,-58.30139792421465,-37.044177804447955,38.945222911790154,93.32317808299624,82.22509238304778,-68.5260741678322,73.18628936301243,-57.0759973424529,25.71174040909912,-57.035527778577475,34.611174599457314,82.58881138984995,-37.17976928658155,5.532064125189677,0.8108927855507062,-16.783899436299592,53.771602596107044,-10.13375401219146,72.57079527401515,2.966986614171077,96.61450433430696,-53.68521440027245,19.787839949860157,66.36438207045654,61.58875114186267,51.66407284204942,80.63972894310035,-54.464382366892195,-19.720194916989954,17.62934086125334,19.062207785756584,12.750115108471945,-93.13818099404314,-74.95217202706878,38.198668147037665,93.23633519025458,65.82755834425609,-91.64161763076962,-38.551535561611885,2.855786398266517,71.4018212594923,-89.89694188999123,0.08425398692430758 +2.1871797668736406,-56.788501780478654,-27.399540923791847,59.14486325698698,-93.48180813825064,-49.94073673229123,-87.23754057061652,16.593428189799425,-89.6568255353551,-48.51073351702932,-13.167399562259632,-29.85617739038591,34.13586592387182,-69.02261816949948,-89.02704566641664,-44.88937639005888,58.962795265479684,10.502541349081753,-89.79669537007251,94.87734987797603,70.89382831725419,-11.365354900932317,35.9538492066558,58.78746867140717,-74.79701323439639,72.14575454071513,89.77264953910375,59.54213362838709,96.76346085716412,-62.25626770425843,-95.03572682524867,8.997238377787099,-62.937182217919975,-89.45447576462497,5.808532091627811,-23.499580208058134,-67.43082709721575,-54.4077312483098,-96.379798053504,80.78908446847407,95.6228657184856,5.700445988113302,43.26491686447292,45.782454378445976,-80.88256343580385,-30.97982040778892,-3.749403145951973,-18.688513041444253,6.61591175790268,-11.278666953675895,-45.81670449635431,-71.5827715973177,3.1294890239435063,-91.64488751677106,17.352898556908187,49.240436289996325,-52.836059283909684,-44.121291257613905,42.39485356583185,20.808427771074122,25.46370497378598,-63.580713517304744,83.5878096471599,-1.9345643765087601,66.3451687924219,9.702893563922913,4.59860511160521,86.79083968419965,-88.91950013522056,15.400232552247076,59.54165970416071,22.293019185828754,-47.054799147502344,-76.81117416746895,41.2951184182115,-70.86069926979579,-6.310223151152016,43.63541368802211,92.31848121354855,40.96151328633513,59.552241388237064,53.86320247504685,-42.075380903202756,-97.10199803611302,-70.25500757542049,23.237521260079163,57.06569977691001,-91.26416200397006,-44.99068993251403,-99.53314389721126,19.0856200046577,-38.07219357463205,48.88482993709886,-27.948767308938088,-31.089631270839945,26.243594773874236,74.36404659703126,-97.18418015962575,-2.238862016992897,2.328276350346826,0.08529125846426093 +-83.69636788048531,1.9603784166604754,-25.075694155095277,11.454112937824277,33.424877199890744,-10.633253591700708,-8.477079567489753,-29.391544583910047,-48.341010766450054,35.409746391984186,-99.72788086781517,-73.25479609764301,-87.3821973317792,-72.6375534657637,-85.79981455709793,90.82418940031255,-88.3131179944285,-6.571554588429635,-34.24052461070343,-0.21783053393559726,86.55316118578713,85.20923469622338,16.411612047961086,61.13641571387279,-69.51410635367037,55.3452316305646,35.534551023596265,13.291326118599628,61.69962787606201,69.53227451606696,94.30299768341564,8.42693043863872,-62.792958912215525,4.289813872955392,5.265129528888764,-95.39080899846346,-32.64360953207715,-19.78428056520829,22.009354673314462,-83.49479180549773,47.918969225931164,5.281000673668018,-7.093995836329185,16.941536123134398,-49.35862021608302,55.88608890091476,62.657414492968456,84.7163320398555,-43.30668955460402,-71.43384642005684,-18.896524187498514,-52.20248759827268,-40.75728883039904,-26.84838762761244,95.64108787176906,32.60415516209656,-93.45000092404318,32.49241328079094,37.75362932156267,-32.33110538048696,-60.52798616355357,2.271683909964551,47.12071404782438,-47.62270150499606,88.76070203136328,13.338513700398764,-34.323595057117956,21.210804775829246,-53.44928326697356,16.514377453333793,49.70267472889347,-56.90566596039328,83.47982913942948,-30.5829180712808,66.96769936553437,84.29061248304976,-97.5538490624296,73.58149886912537,-23.37905708571509,-58.92884063393233,-31.37605735318286,48.23783693587305,79.63386366112945,-96.40725557599599,-83.01142678428717,-34.845470462310416,-79.92806738002476,28.519684174263432,7.444951060759905,-83.36971968338443,-85.70905435807387,96.13266376186891,53.56278757021167,-71.97098121725836,-10.737440089497056,-0.31301011466737805,46.52562912604748,19.047284010073113,80.0056421128111,-34.56635248188675,0.08121185910690501 +70.22827307307949,-70.71554537625416,-68.62150188871337,85.59591364231483,-66.99910709304366,-32.403225597688646,-30.445560892696363,-56.894754903317946,-26.379092171053983,-58.0543822624086,26.601896169863323,-94.24380920649371,-46.16207295817423,85.13138113550141,-35.65611631764824,11.152254506549312,36.589256820558404,8.172026792676263,-34.972527178811475,46.99458092245595,-80.87081736611346,84.88823811516056,-61.235956819960016,5.700697522899503,11.801496558949509,-18.76842278075388,-35.42175843642643,8.152771299988018,-66.06793856973867,99.12675601305185,-32.93285080838703,-2.8785236590111793,85.58499870466471,-61.76105589281473,13.191596750178519,69.30732155785952,60.93208680822423,14.846334597061244,-59.22376420512903,-57.099979124820834,-47.57314072032035,-48.12959538938728,42.87530512395426,20.418856972645855,67.69685732762471,-32.85219593093167,32.28047949063,10.917682303137724,-46.625526599670344,88.47413126803724,-6.161193472607636,4.425750352260579,3.652003162986432,-73.55685603551758,77.90293007565253,-67.12910870981337,-62.6825147265929,-51.80991037615903,74.27241824457255,-38.58270123152712,3.241343252290278,-52.901522825317485,52.06597563824573,-99.10973738272351,41.89629478532646,63.79569833921613,66.5437191488275,43.46818394674986,43.93813388261739,-42.30200802026323,-1.5315906400222872,-21.52303646333094,33.092408380081395,-79.71786541510821,-19.865900820910156,62.84307442775972,-32.990249656709,-47.125070372681876,34.78565151275399,61.120818227806154,20.003202741341227,36.98050132083381,90.0456918036275,-3.724250383131576,-7.940045643855214,-40.79426383413487,-61.43214507475574,-2.821117408011304,-40.73059013279765,-51.76518172834659,-21.119667845911664,34.052057484460335,92.19054698664678,-7.713344456578582,-45.47101750267235,-34.22505976724848,-11.961803819659451,40.1534855156676,3.128445940104882,-74.2788501424073,0.09750741923380774 +-80.28390346671132,68.96426540520355,-53.721420806168354,48.17297892189569,80.18748617804923,50.07642901218793,-98.51591369253893,-55.38806064389155,-68.79245922469855,63.642851206984545,-21.55713697763197,-15.134710176143543,51.95553362145483,-36.258256009027676,-88.53647725791214,-41.317904589314836,-79.14148180437984,-94.32652782963709,60.31680358670897,-35.636810618573534,80.71757209023696,28.314839592530348,56.62336414155905,54.14904560216698,36.804923769645114,96.51336239082121,93.70027262551815,-53.511715833999695,31.028172098334664,-32.26773902976939,-93.89213358484287,19.185971983068015,-45.65426990119188,-19.410643562019246,-34.834398703217445,-20.2895844594877,70.67579218566604,0.6205178134567149,96.02094018399521,75.28464911900289,-3.004967164878906,34.93450831353192,-71.2175935192897,-84.84916935521511,-55.53867576041929,-5.500366843416771,20.61935222891745,50.14420173524371,84.96584723767873,-41.965312275297165,-63.0046888971163,-28.102922059168137,77.7804384155607,38.520340696535726,0.3895731866489882,-67.03239024599368,94.64913895862463,-89.8062554114205,-93.04403301642425,-80.72725871016888,-74.88832489356463,-2.270770075591173,31.08346473052862,91.91025449704856,-53.77162865069334,95.24095407429778,-11.44264669261193,-1.105021078253813,-4.592597639251153,12.598189846607738,-84.11185917821244,44.17947568975646,66.31674983317373,-43.30222555974319,-91.01926014102625,0.6043971742570449,9.221653422428517,23.65549316647875,97.92299840337657,75.75126630361447,-44.27521001549191,-11.774805740813292,-67.66015751104915,-19.135068463279097,-49.64661125796002,6.742408892117908,-84.08561020194496,92.57781882322288,-34.18960705120023,-62.980667646720015,48.56742477453295,30.57116296966305,69.06659559592075,2.353086754022698,-23.371310493365982,77.04103995903014,-92.97925229467118,-53.69089359864483,-2.296761797546452,62.33090432486799,0.062091810958184196 +30.722325393215698,-36.34869247796213,-74.72013602154772,22.142621701944137,-97.18155577192849,-83.86025267581346,-67.67106615009087,-16.167480004894458,3.3296523222735175,45.91340119075028,-51.87590179763399,-50.68229960572064,49.96263427127036,84.23487273798531,-55.90598063632919,95.98074684425308,-77.37829956056532,-52.4173333857999,-24.253248398433442,-16.283618144433092,-60.73870519561968,-89.67810405714623,-65.50091277956898,-61.235330849785456,-85.80021663166002,41.90912567456013,-95.63423869789915,34.942308682403564,-82.17160606402068,0.9101274084972744,-53.38684834474672,-27.367485099612892,-16.477695399427944,23.794698299946532,-67.82688006227902,-48.60624079007525,15.240666398557863,-71.47753423341817,-4.792955989025344,46.844260926063924,45.309197431170475,-25.731969838412994,-21.82677044193602,69.52548558673206,-14.933000549569059,91.42523939100812,61.417221683698585,-15.743143521248925,6.012977991995399,37.038836215493205,88.49462376335464,59.056049872533805,73.97379930283395,-21.550824063603898,34.02333915303777,-91.2710859310949,-57.049902536576,64.39701072505792,94.12983177558331,-77.68210269111253,-43.196308347429316,11.35795579770378,-40.3820178406489,26.804117284309143,14.582927263302238,41.67069494725931,-46.29921389194558,-5.11188214072034,90.07577834673782,87.42181873530248,40.46576569116442,-37.70796763610662,89.70847830019977,53.92789081982005,1.2417319734427963,-72.47912785925104,-17.189699915337386,-15.272839773464256,7.222123744593944,15.469326000898207,6.302193143668404,12.21033325746825,39.24142830374424,-77.77884562637556,-42.96119333222177,-7.974960810245207,-16.333743984403213,-0.4442910099278663,-45.219914933265756,27.098143436292688,-93.20595034216987,-62.188770325528274,-90.89140495575575,-90.6972761959313,-57.224724936530635,-15.62527251139447,-74.2936573870403,72.04601577595938,27.524173413305306,-44.26569381345475,0.05834955389921618 +51.260856363708,55.27526882691694,38.08042390729577,79.44434507129517,64.13859023339714,-45.553655902096345,-9.242125724253043,-67.68810840587449,-89.4016622925725,53.62472316682823,-52.47350334613932,-89.63629235499282,-43.64672028385521,16.251896682908068,37.938418061415206,80.91108395043403,29.674404932150026,-2.2388439211478754,59.87015532191464,54.14197666458881,83.55053326810005,87.31442077398208,15.020865028821248,59.44858364580281,-74.27080919819669,63.50535509094223,-28.289544607654406,93.9776310830076,-7.1711848445442,50.04344341177841,-7.999758492177577,15.929161272449434,7.879740475378753,-26.749627448062867,-54.37941368391635,-14.458354565760146,-66.13967207258659,88.11222102646522,52.58014486627002,82.92935558159382,58.790435048501735,1.4372815966143975,99.34671405332577,32.00235806279741,68.42881510088762,44.71096590783364,21.418312584658068,-96.33824908095407,-51.163582017106265,-4.114931800803646,80.6964382332566,44.08703410454052,-46.7922809877213,66.99444190957857,-66.81547342311676,67.75904577562093,-90.86409337806126,-13.48335330661665,-24.729917987406026,-58.036845755232115,-57.1836849569916,-64.66806498899408,-2.0210839185722023,-48.955023673484476,-57.015761520290994,26.727854836997423,-67.24127983886008,11.654072836117763,-6.427272146766043,-78.74113865573906,-76.42401787449676,-33.48458303162025,-60.486577368601125,25.864061328734422,96.19018143959843,-93.23426605328817,91.77039196012615,51.06580424557501,22.795419964955883,53.43399912510151,40.20272206685678,-68.0252118314082,26.956721691731005,39.75739180649225,-10.11288859678487,36.94503519250378,-71.98398857689168,97.05592353081664,-65.6296996131661,77.92234063982431,-50.037555008647416,-42.77099575845909,76.06288727905303,-15.56952669029603,93.2792377729931,97.35003465476234,-13.023211735363944,-70.0727376749005,16.833834458590303,42.67936761109746,0.07905262460519716 +53.82496709426664,-7.863392306941549,-53.31253676061913,50.37166774795452,-38.07540574953152,-23.700620919231596,-44.868445722314966,96.20319793410675,-34.635339822815325,-21.45601346767907,-50.084505837288916,-44.57782437229436,21.976041937345485,-36.45907041019982,-59.28924603317696,-28.43852307054506,-53.00250665162265,74.4122096271362,75.10345049676971,11.829198558739648,-55.58954350225833,20.35221775946229,23.554520088024972,-89.62736473918822,41.94128797378079,59.98239541863998,-13.863002068673595,-69.60301885051743,18.996693388525927,-46.56322102648345,-59.2916657781545,-94.82957316766078,56.12861647945084,76.98035935361139,-82.55538558497429,-28.321691750375933,-80.99166544461107,-70.30812695754456,-78.76653641294553,96.32825540187301,44.90027510095541,37.04888160446379,90.03905998804939,75.1074070108659,-74.15211195757414,-37.970219984506734,-25.757097397881765,-29.064136992136696,-25.078794364341817,54.48810125365915,86.39736561999419,-55.52796139241507,-18.78912486726965,-13.379401190300058,36.66410272549646,-31.548653947021307,-47.31034206401681,38.61924482360607,-4.50131026768193,-17.012964535521704,9.898106921928033,34.75750227557171,-42.23066763716352,-5.843591167098182,-96.1028711131357,-35.026003062206385,55.065534210789025,70.47221758134921,-69.95454971196398,83.71167016116266,-99.98649874129623,-47.11987819836334,57.45609077182013,52.48554577539838,-62.84921303290283,97.4811518000462,-13.286751098085418,-16.800084635456926,79.19373867006212,-96.84690491389945,-70.01162121393698,29.057996659241496,87.81007769590605,32.22462069909423,45.12167548518477,53.367490242294764,-3.3128367594976,54.83858467277429,82.67538380068387,-44.62694847505588,-54.64558228318002,87.83788813252912,-41.67408102547019,-13.65291030963796,-47.22735402676022,-76.24638855602646,-67.87081926857503,-10.784071847126356,69.04040484779543,74.45070257907952,0.0949668242837998 +-70.05496630859949,-73.49661866217765,-97.24598837057046,48.33084541024667,98.03732197902241,98.94096334476524,92.05662554398174,-30.711080907583295,16.062550257060977,63.79779448654142,-97.94649792595662,-63.18710405230294,-5.438391298310719,90.4546027465907,58.804792581262035,-66.81042775232285,-56.68525115363223,-52.023113233118345,-38.21316340673127,97.25452054045226,73.20286549008085,36.94437961546754,16.23057395579275,-24.669531327091704,-50.17462883194328,-8.709237277211628,-74.62577276429367,86.95896358213349,10.517699007444904,-26.906609966076147,49.19235449411653,3.2499462351093484,72.95099424097495,38.87648098827529,80.7243475816054,86.71445995539571,5.413584966891634,85.50045587192966,17.150636337724194,-35.424817961808074,71.39881101353544,-49.11294632116938,10.165102309596307,68.57906143936216,-39.00507856583968,-9.437322801888243,98.46461207354199,81.30066998298676,-49.89035030639029,-63.04578591515564,-96.96431771910625,-0.5376565853825639,73.37669498204627,-29.371158979266482,9.205255475347812,-48.036958868577216,-41.609761286581914,-3.406575651726712,-73.17061528582474,-80.60548848420324,56.15887900731397,82.02332698389262,88.20565180628768,-9.9182173224237,85.71904962067873,42.57271576811394,82.12770668980832,-50.90666535706991,-16.300485491670997,-38.23447462069349,-61.21359349137292,93.00280482949273,21.587996503576562,-39.506583860319175,60.35511389402336,77.52869914421095,-40.381803333788156,-27.258190026410006,81.69393728167094,6.858574035388358,-48.95980984480119,61.536523335535776,-25.43185375274946,6.977439758336402,-37.13163119018854,5.164585699439385,20.183426320947788,-78.813895293651,47.02157479991163,84.59575924139727,-10.063259870001872,56.66168308240918,33.682446278048985,-87.99956934207853,-92.31917790812983,-48.99296998528013,60.187959539304245,-68.13975224349392,-39.55329221029291,54.87778958666246,0.08551708091263842 +37.22899664555388,49.55754581136745,-91.6939449478377,-46.792628396034864,64.23068520616619,48.77719378977156,76.98767983368697,91.88393479716248,77.08131461358491,-11.221635502704942,-61.687791619453215,-24.16702526429428,-1.5357305428348837,-38.640967389265455,83.89214564631953,92.7588780622387,-81.01150006220006,-62.53611221102089,-36.15437904021419,-94.66157203421845,62.680779649533264,16.85722206137217,64.3616020388973,-24.10667162219768,86.94822546235932,94.42228191386602,-73.77398498702638,-95.1807868325355,18.725700376641626,83.22031002698972,27.014186621724605,-37.753235320014845,-45.932112457506456,71.00673742520297,54.234359922376825,73.28795769357191,43.583167306569095,-88.73751774361168,6.702148756406572,-57.08830287042037,-71.8559227495629,-12.942641498165159,-97.07593950832316,26.49629719010518,-69.24926089909775,-75.83971143192883,27.377229728729475,-37.67163903850521,-25.029629277209423,38.84988109993631,-33.671088937428266,-92.63639998167554,-33.959186128286035,-72.64261275562592,83.56677460401377,93.01565374055448,30.96020684410462,75.85900842294572,34.0660213250749,83.6759213675225,-5.786985761002782,-40.44108113998206,-60.79675471747132,30.575930794903826,-74.07143059395625,84.92010232123195,32.90701237599512,-10.729151611275142,56.63527372257698,-39.0190384718484,-13.40380639522543,-57.800316269051756,3.1408726459736016,89.5928318797682,-69.80837924704635,56.70097913325799,-28.195115112916298,-62.96935721043111,62.41835074680117,-53.468285271880944,-38.630476876739706,-80.2056357237695,40.857532911083325,1.6652201234983437,-27.397056377891587,14.489001489825327,-23.596228020739616,5.843320823248391,17.68301726477594,-93.8265774919517,-6.088517010575245,98.80157617928651,-91.61766243540607,99.74681519845365,8.247352746457693,30.243482924190317,-59.71741179905141,-92.65624236164143,-4.577688006805289,-6.339703630418043,0.11979093449647653 +32.95782415822282,68.68187348367354,64.6502829435274,-83.72386180997822,-30.979613687276085,-76.4831958874693,-63.37116291187683,49.73846826378423,59.230841765710096,-69.72929573176141,-37.40258868315658,52.33310876537763,-10.874486480852937,-36.16872008145926,75.24878217676277,-96.11649082006493,48.3171115741693,-78.78241032776418,-29.016837316896016,-98.29419946381795,-30.397770557211402,-59.160967994919986,96.15760783571602,-23.160856582332528,18.183369005053663,65.26963167566115,-91.90908194519112,52.8818284380572,34.866812327125615,75.72017606110359,22.67465552435172,-5.816208064807029,-80.49088938468935,-60.735620107194976,66.50959468787909,-93.55540390775484,89.37083766812506,13.896020714552776,-73.67978192966658,-92.73421928104501,72.12461666838504,40.77007653681915,-77.83699397772668,-38.5538381254948,-42.953633493659105,-77.39980298804966,-55.549051272334246,53.622331860965886,-46.437222300369285,-7.440600026771222,37.931500341469416,95.1242055281584,-28.44773095624366,-7.30486565733213,89.60424112134962,13.16249140611778,59.811899547998536,97.82869599465579,61.05382753339879,-63.81073348230897,-80.47008766379753,-62.25014848459733,71.52020507983826,61.758593768349925,-33.485631731064075,-46.176998910676126,-55.979004598396465,23.298710623552935,63.712952626328814,9.000154259084951,17.34605595968381,-52.422573997381086,75.95498139479889,-78.99618702887301,-93.04528657707935,-36.589867976702116,45.43685859768823,94.72014082026791,71.6420857115969,-77.73970833944553,-6.749193564215929,-45.44890292591441,-93.6575844614522,-4.414546107146407,-47.47296678257611,-95.83280868753977,4.317926039369695,32.20966417416281,-7.451389508841217,-50.724131211672564,-81.0434366813837,84.8493891028424,8.849665639810382,-32.525427887902254,-16.693814088250306,-33.03821814116115,-52.04278119982486,90.5769927451974,-76.08919863832551,30.0070287031767,0.11393606456091743 +5.91182623721609,62.3800612064646,-99.98282304515169,14.952124604246535,59.313340796912996,-31.157174832879747,-85.97609415558335,-78.07521013232662,5.246393803085041,21.80255338677179,-46.403033045928076,99.51804350316075,23.99894170122714,-47.136395460827174,96.45026283392815,53.39436420775459,95.67446288291339,-54.679830374027524,96.65206833988145,-51.03444896469882,2.6947452810193226,77.69314484105328,27.94775782759214,-85.24824709987033,86.87079412971477,-27.240619699745807,-45.485478864757646,29.13834542723376,29.335987011035996,18.567458407929564,19.682631382235755,35.6686096957109,45.57164705852165,-52.67169407472245,65.03281928315957,-73.1481378017744,77.44481847821737,-89.2032993625888,-84.2036056235757,87.8912156932513,-10.030981788832023,53.50789034262604,60.75254571028742,-10.970826635212518,12.47563305869015,35.06227040263079,24.139645665327848,-9.699398975912075,38.12979058761593,-18.814411976579493,-38.2312715625988,-22.062103887703486,-56.522852900413746,-40.40686937839584,-3.146256933641723,-73.88937114922174,-93.184153680663,-35.62302278167566,67.13913482593398,-54.0729954395952,14.053046400013145,74.25908076493766,83.20196783846231,67.69620703767714,-37.952050235218636,-24.511407185576957,84.53596677587922,32.20879948516708,-21.4615974633096,59.61120150350939,80.79720314446172,89.43863913074935,-75.8589609645858,-60.972863154226985,-1.8269780751058846,-65.03603977779468,-29.272652714624826,-20.764721480693083,97.14243054953263,30.671949610967317,-96.62725941856525,72.22957868800697,43.10252711572306,-92.6848869066476,65.68774117500394,-77.0143769158384,84.12745621604392,75.94683775529606,16.219951215027734,-56.541734438952695,80.86473284898713,67.52703325084309,-16.395329127601272,-30.468581906394093,-0.49448282556390666,47.452898206410396,-1.5950534618706342,-50.42031040211281,-61.886677760908306,-15.224453693369071,0.09295380767369851 +66.97510421666598,-18.37357593276299,86.48179070983403,-15.826832267976869,-84.57866368679703,-7.753640288040714,-48.500476121679114,-90.87614622737578,40.20469067896653,13.875086848629394,-80.2504871553686,-12.793021690466716,-44.07902246606679,-99.18545915629493,-15.91070829421892,-2.9619925968552394,-90.46011874146829,5.234615641684968,-92.25347575821728,-81.40245020845005,-21.80401692829848,84.22070470794011,-51.8087178526945,88.14795628561785,70.60636478220013,88.04837673699706,12.268383212690608,-34.31109087007209,-92.45326564208042,5.024798675416349,-8.854732554964471,7.3130421904523075,29.530269862528854,0.6811964518447269,7.601062543167345,-33.412225258365595,-91.0844333962132,77.54585303083519,11.997374595177376,-46.58303614577479,82.46227476292094,15.81795707416704,34.973547286486735,83.10435230950159,-83.64253198061849,-39.256971954811526,50.71111351585458,95.15473217498206,73.37157993400228,56.345673445819784,-87.61593587310625,11.429325189030621,6.711133129091934,-45.97590378154888,73.1483468543517,-64.92547700497626,22.65029558814875,-21.35852335955512,-4.40953636578358,-80.44790106404722,57.45802214949421,-57.7954948724845,12.153766099517085,77.13078419373511,-95.4440834212054,90.42490232947983,39.62855445341623,94.85424271813284,-42.496107461366805,-43.864555987936704,4.160744763322228,-80.02540958072191,82.80238644004157,97.45775693991496,81.79858186729652,64.73572694442609,50.39609581618615,53.70126252371094,52.89236610281927,62.728572090697156,-22.896026175004238,-17.683806147738636,-31.864406738116898,-88.7790615211193,-47.9452095071571,74.73476516116318,-83.90024837513867,32.2402329044115,29.966661496484818,40.111534368626764,-72.16832731965414,-14.435743432031515,32.66976129561684,59.486077819094305,35.93883310397683,-36.37187397593111,94.66104334368544,-31.443368167559555,-11.521112231678671,24.76732396934223,0.07552581829588825 +0.21722754366240338,-76.6355427116828,12.019308150560335,72.375279342661,-10.448719177072064,-66.79764165768327,-59.48489563970478,4.7147489191729335,45.99299080313568,27.664695214410727,3.293677688880223,64.25324653549382,35.05030555724187,-99.63441284712162,81.00608376402872,-46.09723197449962,-14.375186681776725,99.6448658686345,93.20279152625304,-73.68325771222703,-88.96122513664695,-23.456159624468185,-54.645711414895025,36.688284849651666,-62.252375064229646,-88.3476471099939,21.98484171843201,3.3725654029232572,20.992256712253862,-28.09609795329169,46.341902244990024,67.98691753944306,-59.925834559695204,85.5345206436119,-98.48585520429532,-60.93137340831043,85.94625915979375,71.61239412238709,-66.13990757688927,25.033882588068465,-17.951133826166227,7.325995645221013,-21.532916332438063,-53.6666342764917,-88.78904909351184,78.491023046451,-59.50510921439698,63.170336028417296,33.75834730374001,-24.584345626546124,49.217335380798545,17.906067419877587,48.33580309185544,-38.79750502460419,87.98592141792398,48.39226960023268,-74.97581631080877,-12.425271634322655,32.455393574569,-42.87344454779534,68.84758216816013,-51.726923841180074,13.29052781206832,42.141470477284,77.17553889457503,98.89274778193172,-81.2843658565956,-60.620255309555326,-53.548483896691664,-32.36784882079216,-49.666121224109496,40.53913321111159,72.79156758728652,-13.48197306507592,-55.858249195926966,-65.1895503263056,80.06516478733752,70.49002554650289,63.11036862805619,8.546502334568544,-11.951041705648962,-37.719317870103566,-2.0706333453195356,29.296290333738483,54.95752417069721,54.10524874197344,-78.56229494737717,-22.652479891255624,-9.078299462734577,-89.2201643064084,-91.72861962588273,-52.307502434423235,92.2586686602638,-89.02606931070108,-93.69225477196022,-70.71751771997934,83.31538112491029,36.61757092773766,-63.703694966075844,6.424742566931286,0.13160556923987915 +-82.76676935027595,-91.40826764341222,22.97873794021376,74.50991931756252,22.152244635965474,94.42233702661613,-54.05636148628816,-64.54403549765834,-14.898696068439207,-2.0746214090196418,-59.97872545713221,92.35986735893246,-62.75673470659741,-1.5200034176762216,-93.3634478305577,-40.54732368771112,32.48060728547992,89.68122587408612,-14.151618877288357,-58.58154513865257,43.745342573743415,97.46198707860111,-33.79355797883194,8.09691979371867,-50.39114146451811,8.015310906353989,-29.51166697814797,-29.92019457153843,89.7265328411716,-58.18803460661226,-21.85587621317589,-12.924720239802355,-27.66706357812197,59.91517616353477,-88.15026223933631,-85.85808765407934,83.15204387675286,45.25705725207462,-99.74034623485312,93.02167507426273,-59.098285718460495,56.22594449767578,-8.685439200384295,-98.72706164183194,25.355591372933148,12.849159010573842,-20.453310489738058,-32.482877791510404,53.664973768138424,-93.03725139708787,94.0093505913535,-0.07755712734527265,77.4611552154519,-4.781765284877309,-60.388790055015185,-31.986707119489992,-26.573941405087794,-1.7954590806051698,88.84284836028127,-97.70892853213904,94.84931210578037,-28.873965280993602,2.5032446842946143,46.887013756976984,3.7191693579178065,17.46542664794262,-88.2215913176759,-98.27374031029927,83.04603399272611,-23.634025803794785,52.89244138548645,-71.45165915977807,60.78590499807436,58.713999842302826,-6.015581113387199,-52.61904884535964,16.100197703958514,80.02257344175825,-62.4303141978261,52.846746227017206,-22.937702442836397,-16.297413051986624,-50.257983052321386,97.28939421346823,41.73973724541116,-15.825594844625982,79.31574991049055,-70.9851413017986,86.21342799427742,-57.83207489254571,-0.8460571197340272,50.95823654268682,-81.34682541270548,-78.84941717138719,42.3563630562104,65.04428113576213,8.262477329763485,-31.716410735247294,-64.75129668557344,2.351565196996148,0.12024280179380248 +-98.62178144645308,-20.063850261764117,27.63558687377703,10.83750577515437,81.06952472114338,21.893945351280465,-14.203956976636306,-95.00346437805705,-44.27073504205732,70.71185702886541,27.819124807748423,-97.31093563496725,-77.69164551029921,24.115060103367256,-99.4332910718936,-61.468692507711765,50.88260557934839,-97.34792031588755,-87.09477514727708,-51.4370332859073,-59.69671537897776,34.84207655323263,89.8437002544299,81.96279525112683,-0.8202324406231867,32.944181218921784,-89.67835452713035,-58.939850915422824,29.215597187131834,22.19132106803889,-52.8414223540862,-60.6359722711207,31.1063045533719,69.21819471423993,98.37688550872073,-75.54283436662503,-14.257379854510106,92.81012781897158,40.28509368630674,-14.34353975432326,-61.424397163050706,-70.926487107697,37.916490783246246,45.52156087397063,61.3170339908483,-39.046813931723094,8.68300073971217,56.80474528626763,-49.21450771329996,67.47024409953886,78.39679513487721,30.269844894012465,-74.04307881182262,47.88815511273441,-70.55373095546375,52.74835577173087,-24.056646434150537,62.4051918905823,75.09191497739997,2.199035196248005,83.42121524353166,-5.212496889654702,12.575790462843031,-28.708082712336008,1.4676462523488283,-40.9864850795544,59.5621822052596,-59.866534386904924,27.212023480872773,17.197942183267088,-97.71161188685633,-11.620739879113117,-73.13065285819724,-16.59593734492472,-84.97928475642695,-67.96798284264958,27.604859406350755,54.09625104137589,33.94081524815056,6.101083887212198,95.91747901943927,-88.18303340777334,69.0398918453586,27.845014946979703,-64.22829057977629,86.98111530865401,38.62524286990535,65.51284428671067,12.005892273717109,73.24216961507614,28.87594500638184,-71.4419023154781,58.590583429160716,94.20495736893116,-70.0769373156927,24.692003817793264,3.1980571645862597,48.665408171674954,45.95722378516467,43.11503312678849,0.08604636128193184 +-17.76851400021151,33.58945032489916,-57.079168028468175,-76.99882510695464,7.26930195041345,-28.643716291631847,62.04493874186639,-1.4834366916454798,4.656348320992777,30.077274436593484,21.4761582590221,-61.826503815773414,82.84189758890645,-17.729629507179226,40.981513268777576,75.11052291491939,-79.30010539703503,-36.816279024688534,23.425182550254746,81.02529136278503,63.57126894480484,49.67389280298647,-13.216724267896467,-41.89213998573476,80.07059548836531,-32.59943349826173,21.722071528878246,-63.33927812905935,30.275891637881358,77.69139170732132,-80.09201623300027,10.838498829701294,-39.434048562790444,93.36973394409364,6.000373464727659,14.803088063562612,-94.45685589560955,-50.67340834713965,17.000024506809083,-99.26418095376626,-11.954130826564068,-53.63519758101476,-10.798070056882551,-18.985490154812695,-66.89792477916879,-27.665670369624863,-20.38549629225423,-3.7963379754433646,62.0472308206586,-50.14043410164939,33.154860457349315,-29.34346055545747,-9.078311583175179,75.73035292002089,-3.324192805001175,42.27548237359153,18.208497059642227,-63.288930416581834,-77.11833518708575,-87.03859567450286,-96.71882689224796,-93.64621503202748,74.5541358792338,-29.496245063145608,-81.20173927785781,33.010925643340926,-15.439259434557258,76.42774770047151,-37.321906339144896,73.18365731975712,59.365467143908575,-28.84375553307204,-58.85068565991267,-40.67891676761999,-7.795867856943971,57.516305286323956,-49.385733289472114,40.34144968902925,-20.76116897997666,-86.93466726528784,-19.095450137050406,-75.80257333920824,94.21991293482046,-60.02327063988662,-30.502930367172553,-48.969952517388606,-77.92475973384691,-3.488843825200874,45.311579488356614,10.159435351806607,-10.354532099510408,-47.84256307917567,45.21792754888054,-99.38123925050022,-73.2354792929722,-2.8196684259259825,-33.55430170258815,61.893625190411,-34.49143209468227,79.86651422446863,0.08124367045159891 +-76.62242509463118,18.80710458127352,-70.25167056065204,8.624455142751188,-59.673055779561345,99.79287237139795,-27.403183710219864,-14.789877291411642,69.82416383699334,69.88500876125238,-48.083648046386806,-54.723068819386,-19.67396936239581,-39.567546639753616,-79.96278971709842,67.40657649892839,26.553801014741012,85.04525582360094,99.33670091387106,-90.73577895640048,-69.02872814026173,22.72691080588838,-59.33207340619771,73.13249978426816,-90.87854202564654,-1.2127404832220208,95.23170726829113,8.339162599965633,-36.55221674467115,-33.549286063868095,-30.174766196382947,-3.669555828330246,8.5904488198223,56.43005938821858,-2.676983412282482,-69.22666096331417,-29.315995866837838,44.476093311263014,-58.05209298249139,83.25707666466619,-22.285845652696295,61.53796124662114,53.35863153553473,73.03680345405886,-18.191252270213496,77.56840954416691,-48.32951577359752,8.896068115220174,-61.87789244562114,87.86925374143172,65.34757677245312,-80.51213519584425,28.671478996305524,-8.131786812344359,-84.39943390979579,42.88520179028424,-22.67804583543392,-59.6266522818977,23.213954873860104,-41.1938653482089,-77.07332051855597,13.95732935615493,-59.225633838026816,59.18764039089689,8.08707036841379,81.27323275233064,-99.75927093060561,80.08268008072375,63.28886772686349,-91.4891975366776,-99.73173113142673,-62.039137283770614,-43.88643074330074,77.67444760972714,-44.3564520139408,-59.80864560283623,-2.662178030725414,-94.1812439503569,-20.143004895196583,-46.47590579425469,-25.986246774177573,79.85711379607807,-2.0772032430734555,-37.548809898911514,85.7188252151544,23.882050440949058,-67.87510821444276,28.55602152043508,-82.1008053354586,-29.793812814238763,99.2849041196481,-65.99151516763689,23.024692421655615,50.928323697941465,42.14436830286465,58.12631296094253,-0.9460825002714159,-51.284523163227625,52.888446119684374,35.70780665945463,0.08536388614602795 +-49.929511249706124,-9.671518097357364,-16.983309175208376,42.18063332933457,-27.900030606703467,34.62076412979184,10.867494180865208,-22.726660648364643,86.60704936043564,-98.10015982323054,15.952535186738515,4.910938002026228,-82.93699878026234,97.79404158220171,87.19007920717485,-54.470428064869395,-61.26070864759241,-18.905168131807315,0.45783462951160914,-88.73302334183451,95.69410573657203,9.024780660110338,-0.2610878211068979,-9.23916089301784,-34.58821434613368,-98.61582528463254,8.776585626384417,5.81693146591536,24.527092973616732,83.20941559715851,6.17317134740567,30.100746945600775,82.32685745627387,-74.54152981248805,-22.175242922852618,-22.256791975629227,-67.67438537503283,21.35006168730476,87.99707413380901,-97.9136034949631,36.75686268970918,26.89300559733043,26.052129191896015,-51.68368726928543,20.709106678768393,-62.449307510832284,89.39474508075992,-3.0092496999199767,-69.28304284330068,-9.270688803979766,-28.46220882338939,-62.551273171301624,81.23732055443583,55.10669858655103,98.00073090209213,95.888589263493,86.18356607785222,-12.008649688771357,-50.31195460648821,-72.67430406459737,-79.42303142092499,86.44349863934934,7.073847501897319,8.17057073653848,-67.7929257936172,-66.97455799957345,92.23168135911581,20.883279377314025,-56.146991898884366,17.90040218578251,-91.0294405218246,-7.710774428018155,47.93085449981896,-32.916258474835544,-35.36624768829341,47.09745105875962,23.827145948821197,44.8066517827738,-4.266005509650157,-72.33188207498607,-3.358704595757004,61.90022317458181,-78.86137836828686,67.00877295142908,-0.4170943099599498,14.015001091453911,-29.354709977925978,85.57931463233626,-60.99483843702169,36.485531084292035,64.74660267150443,-12.674936594126436,-82.52614071731338,84.41491097616861,-70.63185010133574,76.0012591379587,-90.34331676295156,-92.83740481086862,-39.85201868618737,-36.61253985864408,0.12458878209602371 +43.27290128516313,7.309948717567295,-44.42113149894862,50.004042152750145,4.188475846874567,38.459185292095555,76.71823486825514,-97.96485598036533,-39.52237398913421,-79.66301584497796,32.5803366251875,-92.15474187705632,-62.30639971662764,96.97489509360435,81.08623492637625,68.81861215470022,83.51650179481123,-35.93183985729107,79.24460508087492,55.259509427180404,89.5597898255933,7.046101771340247,-68.48681983939848,18.99883955928847,-26.279585274848884,18.100339654279367,-18.85978487164401,59.48123012591441,-43.43632853798391,75.52391585193209,47.60895952658964,-6.057502456368439,96.3414663919759,17.76199977703439,8.635742918866711,40.37387057663375,1.1311944470807163,23.65953088420278,-81.93462353882461,3.7309316056905573,-95.71386650230305,-30.409917799916414,83.45314225423769,98.24231225053569,50.30993653034042,-94.58200877029654,-28.722109969883178,-41.86165755615063,29.209078703657042,96.84043628980831,90.1101437742474,54.46496169386245,10.712809025122255,86.39764076944624,-23.595046983967194,37.81097733575362,35.60403443128595,19.26527570361658,-80.9828072135684,75.77819168417372,-45.159490995877505,92.99137365334158,63.30730546778952,-43.559336937709034,-93.16423297213043,-48.03317505896347,25.425808912609526,57.44977844283156,96.77163559796196,-42.43576518647538,30.68159158523335,-89.25272286528549,-14.97071353861324,-73.66288316893836,-44.917842607963564,-4.453173680176548,-0.0012757212078753355,73.17960640742137,55.98691626507676,17.569140694538945,32.466703692112304,-83.27285916056823,90.98188128188835,0.5244540246029032,60.72869202713423,-93.12411159652147,-0.8579832979251023,-86.93575308641587,13.878307950181522,23.33722520903663,72.84394694409596,71.30919436533338,-19.969960658112385,-55.817610256498185,11.955902436158965,44.44145678355201,54.94111124579922,-0.5250145758459297,-49.0136305560037,16.507693332373535,0.13854293791215933 +41.253275077695974,-21.500721391702115,-22.50216979049486,64.01874025594813,58.430452817052526,57.1725192931645,-96.96099455925884,92.77191744741319,-65.90822519615233,42.0291495223,94.9787337761455,-73.65951516323462,-42.86873447527309,78.88606475948643,75.6831240981002,63.354639030702316,44.2173496719295,64.25103251799987,39.62972691534611,-96.50564475346349,88.82558058735464,-70.87818528110495,-50.20943791590793,3.3922015731920396,-33.67533340915388,-38.97638045067473,84.95385671718097,36.40858680955898,-52.966782309144534,39.18728362337882,-40.59873001914423,9.31912228148137,3.517465079491842,-49.633693962772064,-96.51136966767699,67.54060805907204,40.09970832704494,-41.42542245866385,-40.756888861472305,46.859928340505576,-81.95203613549592,-91.6163947565807,86.30302326369718,57.9520244685136,71.40946782265232,-88.05604380083795,8.475825653392548,-34.555289641022526,-42.06645700873142,52.29645338940446,3.850995045528819,-71.67367384959115,8.135534702030839,63.40567333254248,43.84685761464132,-19.388637631996744,4.9711780310978355,63.23003604312825,68.06503999019051,-86.88746940449248,37.06838772499188,-63.792830697122824,7.098996454322943,60.977987728631376,-12.642811095281601,-82.23286111357314,62.99719206747875,-26.775960436318556,32.07658820503855,55.666168320941324,82.80377679937098,95.82101424950469,64.73220996345043,-29.356308775953565,1.4317331624738046,-9.225385839486265,46.7787941625308,23.228543735529428,35.41074533767181,72.54533493073532,-17.27208191558192,-51.49398474678932,-52.18034231874784,-49.3791798005506,92.6728062969728,-38.922504597596784,16.157343156287368,-91.26765521509795,65.61334281791844,26.96884768763286,-98.64346142309385,34.28745629419157,54.16774462676227,86.93029859202835,-60.593166203121385,39.24387338372301,-62.4781485475278,57.65554785471633,-87.26067682644043,-28.04279618585059,0.10624206736790526 +-19.5791943229259,-13.55349476789958,-14.279060721533241,-69.15305849562701,28.979098105704367,71.81324226531572,-90.0702599104487,-76.26966506603338,-97.32429500711477,-94.84563540023039,-97.5211070450221,-91.67568683155034,-51.47268194569159,-47.04980372406516,-14.254463844963738,-38.83947054342434,71.183679185785,-40.8781766143371,-11.77945312539454,37.214654704006364,-1.975073459696162,-81.32664449135291,-8.467603247407169,32.64931345619516,59.44704124536349,-90.55530095451712,-32.60186603007118,-91.65817612807447,15.451956681891431,3.100972395964135,56.87132496692908,82.23174066285105,-58.58754627089642,-77.14353221978183,-15.417970177514746,4.023890316386854,-91.53850942468237,51.403765105834964,46.37734968000669,73.94483699186253,-67.43552177415847,13.01250006900483,33.794130924390714,40.75887820078495,-56.926105221582766,26.444793445377982,-61.42647322158214,6.947123663007318,97.79090890893349,80.92698248107138,80.08831219875731,-24.11800366934041,-5.233276778555023,-98.82781973232653,48.86593758229827,-81.58028492540079,-24.15927550466263,-71.0179546304191,-42.69983562870374,-37.35524977843892,-30.921943517252927,79.74745864617802,39.41136703439503,31.276129427555617,-28.855788443440147,-59.61381349111996,-16.507829144728035,65.87739144372057,-29.71931561494418,-25.075289291765856,-20.218207460851986,96.1955061972385,-25.35424517959264,45.62576443005753,12.827314693629788,68.6943841381408,-95.13146616791668,13.254887055687533,66.3830282002611,83.09064480877831,-27.180705682207048,65.65577115961904,-44.66380388326707,-50.53691817089045,15.658747441345895,40.750521657771344,-59.950046077727,-7.115164369763079,-68.13544531004231,-91.28410635398478,-21.097481692682578,-68.37750457829867,5.390143598517994,-63.47605183036957,-11.569279601739012,70.05320448625213,14.406158423943396,10.0794064223805,88.57295375973226,85.80634303848254,0.10192661855018104 +67.46371049792904,-10.518908589271163,-63.85389271081199,15.01392491425706,-67.94701127362185,58.08476989250573,-90.92634128967944,-61.354564726964945,-30.981377537385583,-84.54650110207098,72.81086171226363,92.45719026464718,40.44373060411891,-89.41594721297426,41.696947407009986,36.219570584408615,58.056105762805146,33.18160695861744,-89.69508994068262,59.53532006192083,79.2819901454665,-0.8059346610547635,23.3974031576696,-34.276710798172275,-89.80116540147552,94.02686276390341,-80.20606759772208,-11.456407214759025,-25.21595421195795,-39.29146139480888,-7.007826334406687,-67.74096305788356,45.491129063222445,-63.36184483588694,-32.87540527207669,32.3776597897255,-59.741884128134636,-54.28746878502131,4.007361949809081,67.68899455347724,-29.292748341717584,-20.066095213692563,-18.42700964917408,53.31472624929569,75.02762970152102,-11.774105548715895,92.14694782545106,78.65366283185406,17.824442373674046,-52.072066190204346,7.032240218910474,69.31530587231421,-5.116060369032496,41.89968055104612,-54.18165265406769,48.8510691397357,-68.97953753323284,-65.01220133591715,-21.44325940772174,3.7580083312905685,-32.304665114132305,4.526200418070857,53.434747576609624,18.117224540086156,40.20804747012713,64.3072670513387,-36.18052693238509,89.52331661134608,88.06772543281178,76.38775230769306,-8.297703313063721,-3.3032858201781607,88.62601513921874,25.869620122711012,-10.43029616550939,-26.398491245735613,-97.6306063073429,-57.83691864314211,-64.3944880436457,-83.65347682147579,10.533550846737768,88.35762946769495,34.202480418797506,1.273820135539495,-77.71499504238741,-46.65610172975671,-81.51581110225831,-55.97476061403135,84.96555788835798,51.131344772087544,26.249042301579564,-79.46524436327162,-2.3461444061095875,23.668178794967233,-6.955492397987342,-61.53812204869165,-15.91486355046203,-11.71070120417312,62.41724507391041,68.00553839350113,0.0687387572726939 +-41.98856049478199,20.865545364362376,39.35630150081451,72.49714624587702,79.03840499708798,-98.2125067346798,-65.39144744305301,-27.07202225893414,-32.47707081429827,42.57604832626507,-61.91913257808854,-5.77570521588386,-56.578219210930534,-68.56673148450174,-28.299713533744026,-62.160357993309276,-53.490666299017995,86.65793358244747,-19.752825374270515,47.348964242728414,19.601520733589822,-61.30012433098013,10.26405698129767,93.19192753920481,51.935311913730885,-28.798043317156825,35.38288264436079,-0.4946226612880622,-57.18536577402864,-94.1943639215609,70.35750725836351,49.268656967457474,46.24676127743851,41.67616016210633,17.62614204380138,83.7944475860507,-24.654992574151095,27.197690047176096,52.27461035393506,69.40664176422248,65.48153309145593,-70.68574313478453,9.0576410033742,-83.53917333732015,94.3629839987602,-69.77878054949889,23.712840119588535,53.14711406753415,-59.93952527804636,80.57381229798042,-22.052583805326748,4.259589491504869,-8.688976846583856,10.642023248110164,-61.188818799039254,-67.69130676983626,96.87279886798831,-81.74724515242187,-76.134015321375,-37.78490301989004,-34.6479457792022,32.61734706583826,37.94720649975574,47.26376567221649,19.28095162258343,-90.04892603754028,81.24114727098092,97.39828565062078,-11.419315868164134,-25.641748308175366,-1.5011030341917717,-65.42154100032727,50.429765533352565,78.2577748146663,45.494311067688415,-86.996132681939,-5.082187695064761,25.84984794821561,14.359536383039725,56.439538734341824,33.4452616426434,-48.35875255153348,-70.1136978309588,-32.60519423555017,-70.65007424797227,98.07519744878866,-80.7534316410237,-64.63529021829379,-12.371273508429766,-48.211520652239905,-55.78027169390194,62.06243372925792,-49.37820919865994,-11.76551135187664,37.792251363955444,63.21782397046559,-74.23017476470605,34.19643735143734,85.33126333914785,43.022330404108146,0.08674564550274602 +28.529128767200575,-66.68388354523857,-47.15071829995492,-61.26371295126718,93.07514253136344,-96.4547342881699,20.308190779077307,72.29635454003676,60.42556433576897,-14.761330660867358,27.512431515461742,29.916391616546207,-40.927595695608645,89.16701344291371,-36.36523203501638,93.13833012582793,15.657451063905526,35.74841471297404,-55.90414884285635,-75.40963036008026,-97.0251035927935,-62.9706149829655,8.091525174073183,92.78116315560828,21.8179353952179,42.624087374691214,4.727820387164613,12.436484562309587,-42.24930002117093,69.96881181817287,31.39403596147133,-5.4626448286452245,39.007302754203124,-6.4473809348369,-93.05867264945475,-17.782285269610384,26.639943039670072,0.35195443132067794,43.775316366385795,-72.80578739551493,-30.732807449834837,-73.46450852250119,37.07682553346896,46.6735548045705,73.21954983121975,33.72303854145463,73.55833622943913,23.396229950631337,67.26239920712342,-96.77245997874215,-14.541257889615594,68.54021001382193,-82.47214208603486,-56.769790100682236,8.376891347469353,35.67316130713107,79.78119264322297,48.05686248192018,-16.997156556639425,-85.97377779637812,-59.89386293023375,1.495728095229623,-20.502032903957783,-21.110115443046865,-13.550455068186636,-40.72411191910004,-62.27365538773837,30.82532166828352,-81.16753815373696,37.746231026090015,99.09500923393225,-90.64969445242959,-81.26699853459536,9.652721520688317,49.21927591704312,34.61963437822547,-28.795326945382655,69.01418295678795,90.60470946752713,-70.14190967034699,33.25077701890808,12.496270474778285,48.80555808733723,45.90170181954892,70.21240498831679,-49.13829532656515,-93.80496487101897,-42.115612816117995,-97.92012686728395,-69.9094981472489,59.86381212395111,29.491379149718256,52.259546797686994,82.65892931941784,25.957320245024178,63.668808091343834,-91.02449353777497,50.042474064494996,48.18154809187675,-40.04267073523691,0.11630630610961053 +-82.1650436512607,43.615962027872115,46.57074281763286,-9.117840942193368,-19.6507370358366,46.63901608699439,-28.111864493044322,75.36277244718272,-5.232316494320301,64.69898028584609,-14.060285017336966,13.252452011925712,0.3679511075386728,-5.349424878095618,-97.85800498390036,-27.511603954204446,37.24180314433028,90.04570359538403,60.29345857955778,-40.29179335042991,83.91415541640313,-77.09234415152949,48.70501043787604,27.237829929349687,-96.75816344714502,42.772945634562376,-34.76375243681353,-34.375582146538974,28.89242586611411,86.43811902143673,-99.51673284241733,33.753029297395784,15.940583897342236,91.65647830724723,85.78685366910784,91.81451288301164,48.62164825350777,20.783726210342195,31.17994602295434,36.47858322884622,-31.415003195045003,-54.97261801666051,-45.91176471222853,-87.70088906917557,48.80879270352324,-29.401362877689735,-77.49146170467469,61.588718940567844,68.06614516799493,-5.867492178203946,-26.65805925338327,21.51316621921444,-52.32517246453738,2.161379054500827,-66.619841858225,-39.34190686484864,56.62299340405443,-7.70869742822515,86.06258319341558,23.06017710630863,52.377540310457505,-94.45966637434668,19.45702467104269,-93.30455980643788,6.073998221942986,32.771890139450875,-65.79788046696373,27.999434852938293,-6.241635492706976,78.66982207021681,60.28494812914715,-24.258258577694832,54.97818637700675,22.564781432948067,50.30976463213912,23.22959751495661,69.1290942399036,66.14980700862074,12.235060766285557,-93.47677399880416,29.109306196355135,-94.90729810526221,59.01484930198248,-22.4226748646404,46.30451955456385,-13.470865456336114,-49.13074026437971,-69.12652171679446,63.968964154739325,62.474783470853765,-47.48727080011572,29.06292188049187,73.68350827558453,-13.940527308349871,-93.34277187466728,75.5906177862478,-3.595200742915395,19.15491076394855,19.04236985710537,-22.99164806035752,0.08316758133769236 +25.51789682380361,-10.955446973492485,43.709193524892385,83.35404152633302,-83.14954830587762,41.07053425138241,-71.94889439536601,20.001083235129258,86.77752777347342,19.222179403952808,-72.38888263323848,-56.795798639937445,-14.283088340182431,-57.75097902017694,60.63543015895533,-73.11560005337945,19.541215071939845,30.295323803738995,12.377877866553206,-85.75125623287113,33.434346517691864,9.209293564437587,-34.94432865683717,43.646171551001146,72.68361038115881,72.20430723229319,73.2932362945854,6.025528304268121,-38.32610370298441,40.16177100805706,53.78684021733363,-80.82349963859976,-37.96270079134811,-37.12995545946913,-35.71183887153444,75.61628510299744,-29.05062712054118,22.59805424360644,-3.782100212525137,-46.35688865504295,20.23356097197184,42.492397031747714,-21.095421139591423,63.460002086654356,22.30201492963036,-41.464445123250336,-44.31265569276488,-0.5107233787416732,80.17621290954173,-91.69683817371539,83.75409028468155,-46.352239564091356,-34.083930389024616,27.66487083172518,66.08373776221976,-55.62934625671379,48.304375496632076,42.40433934314515,6.867822372535713,40.96253827483602,-77.18912430790718,13.36563654793268,-25.359893995299544,40.80228657782504,-85.12394125698142,-63.06894325346533,-85.38021565961729,-75.40183992929678,96.21146759504876,87.63866372811901,-46.51844957393827,93.69265791123107,-1.8420036128791821,22.205924409070917,-33.96667898098433,-69.27831922740076,-18.02581077837739,-80.42861709152145,-64.47618668208088,-94.11911870532288,-21.888578798176056,-0.23386182759701057,54.65145092822496,-33.8540766420645,-69.46791977616886,77.0611519137415,72.72390730203344,73.83150789893253,54.7186574827264,-97.37675592895658,-42.48237257697409,-8.944906133405624,3.147131988959373,-3.6673157786792956,61.06595110591459,94.06565617854946,-20.575695107322446,-97.46042653760003,35.001634892311216,83.29697463483646,0.10197714987594018 +-32.109535158236696,75.60543852468624,-42.85519973881438,90.29425570531998,65.18883560141245,-60.875127711751055,58.762844511871464,-45.47210314700683,0.29935670890630206,-32.49126236793049,37.75860080209986,-53.38414920028389,50.64387487380756,-21.254083280803954,-2.734048994303521,89.92721075256671,72.70966394049901,35.50843918420696,-47.84425938647261,90.95520341490601,-12.562661307381944,-77.716931221158,3.3958970047521575,62.81774033436952,-79.23473567022,-4.953617437298647,95.0400618253222,-21.17950377597741,73.94364407164312,-43.67183440574025,33.390339587669786,-5.007827695068585,68.43285326471968,43.851515129991526,-94.84508458745707,-56.61948494158449,42.11884723457794,-2.0863190716462725,-71.51730008506058,60.73856308306199,43.3775593979629,-66.28354587684876,50.63123856324822,19.76442055568033,71.68595034045535,96.52932226049239,-37.36070039775519,85.43954108472832,46.15364256464022,-69.46385850698,-39.938867359618335,65.0207633444391,14.629528986424205,66.75735662951092,-67.6609114191028,-80.40867888716691,-94.81034214339428,73.93588368099145,32.07705644773867,73.21475371497769,-16.46784521710984,-87.59311821060156,60.06532501556205,-59.705904674272745,-43.94089861805504,-30.066095011568052,-79.3372616522275,26.781719494243987,-97.95624894410449,-28.38420754653835,67.88787173695158,52.37164625861729,-42.915465451449755,69.92083895911406,35.67382097666126,-48.445368154431634,43.78881422475277,32.27307172120615,-17.963485648172224,-62.69440804129738,57.96856622402669,37.61017075704979,76.63963564187557,-4.492445288206753,-22.407165161155504,38.48537128761791,-11.622197572434345,-31.536479115074044,18.94641212229797,38.61077585168897,20.719211574702783,-93.15301974045545,-9.182649497132076,-77.61078157963979,18.33886008012462,34.481663503980826,72.74979618298337,32.036691153347306,89.69987696588245,83.94674492279947,0.07732537344020582 +-26.473661716495656,-62.14875193204408,57.90561104599257,-67.54940814819588,99.44922354626402,10.149355089694296,-96.06023762741842,-81.65028384502622,51.236338851715516,56.996617939331486,83.94427385878092,-17.3163989459658,69.88107892934093,-6.50365856522852,69.89540857203099,14.287868927257904,8.547058319439515,19.667805852658034,8.38251452419118,58.01568170725366,-86.33633946569807,16.033130755233145,-42.13660391262446,77.1986107312533,-82.23062733575198,-53.92575645332589,20.4547086615613,-0.772289194604852,-58.8008888122592,26.576251055379657,-79.0836692469847,-98.77365991106369,-77.92276476925464,-51.775841087597826,-64.61372212791366,-41.28521458181933,-63.5899620063876,-53.38306117206617,15.725558665302032,66.2177573761548,-65.1725796356071,-28.970073598730067,-84.32555608559429,9.740178312400502,72.52826087314892,64.41062189573887,-4.150516681728703,-90.80036706495183,-75.50069247249178,-15.467355763625477,-39.07623902049275,-38.2230277925033,28.161673244440976,-56.954527575366896,13.73820101593877,-32.61894182786958,-78.88167448946437,71.39514329120894,31.62386411474509,-12.15655497102901,34.72417217444672,76.32633198059705,-90.53303022858815,73.02140228773112,43.630117200791915,-20.14549946343074,-81.2193059577821,-43.729568831924425,99.34413598057279,-54.41451460527284,-37.28782418348642,-30.628027350417184,3.989932894227934,-68.98744752556136,56.90389358940254,54.839624363056856,4.244896733387222,-57.22836314212305,76.09632475555534,78.69963830332884,53.8945275750979,20.14808738045113,-92.72421443010101,79.68506888764585,56.58378251249064,-90.2184859192204,11.800628133869935,-46.77624376634495,-41.99891189957512,68.97763843992487,-4.247318264955524,44.309715397647494,-93.82861328859437,-55.94647755681215,73.48178699917833,-48.82551948252385,-80.12510541094869,-90.69058606923159,68.5818817125041,66.7853264303804,0.12073722831716786 +-67.64900436351593,-40.29006048224868,-63.59705000669711,-90.78749873362824,-73.20101165033,8.104131133817432,-58.47235829778816,-18.935197485831395,93.92224280407186,-10.51975432961099,3.7829645218542964,62.08429181224204,-49.42156775857094,-70.76216207623278,91.81953062745899,-19.23083372983689,-25.932083268465192,15.130489967181575,-20.354695736026798,-67.87869775586562,0.8149704116889183,-90.51246238525474,78.36963608197556,-83.83016590438768,81.33586306965441,-26.194786240726003,51.930123076642275,99.39374531790713,-57.77377740997909,-22.229198218156412,-98.0212555735547,25.013767797944382,-86.66011860443771,-65.89822779203749,14.93593293772608,83.1595409185507,-5.108511351980255,-60.55033485899446,-15.675519829121853,39.14087036504651,-63.97188060348442,18.19854600663504,76.9698052494862,-20.540062328601593,10.10689307800341,-95.68711306645032,34.388277984405335,20.647056133276138,-0.9514179330398065,-52.14355550424605,-82.2784346316106,-29.757040189798857,-65.52621909301254,-77.35767830570872,39.02185216081688,-88.23108632279337,-99.97469052189885,-9.3084873933376,-3.9403510644141733,-94.0898639273738,90.64070573849557,62.23601213054229,-58.33386545092345,75.0659262407828,72.35879902646855,4.070848579488143,78.4348324177833,-39.941217111086026,7.715120280065008,-76.88590291716136,22.596520551845217,-23.563381266617327,-0.16015814328187616,-30.448026479629874,90.91307614618248,95.34038648508988,41.57094541294751,-39.42086242826337,18.014673283019505,47.33205907803389,39.3425397299751,66.90240414676182,19.948232144333147,-2.544566513171631,-30.35587309906336,24.573324213851592,37.86309985279652,90.16636050237366,96.15512992563418,-69.30823675584804,44.60370470010679,1.5292624013751492,-77.48277572618257,-68.077562123217,-16.932601485017898,-18.901568328638945,-11.514098819166364,-88.74902421904503,12.99698731624099,5.70859254492602,0.08092957054906166 +82.79547938469,-33.850662126977895,-78.96628508313957,-85.99978495217246,57.14104004454549,17.79512147257178,81.69157367018221,-38.02550451136823,77.82380498693152,-68.04382297652245,-96.84729891502883,-8.254567902893513,-90.44753428597143,-53.47044565537939,-47.84183306298839,-27.96272984271573,14.235742361321087,27.292910600973315,24.495060901742676,-21.11905030883463,-90.2976872027035,13.522016095317596,-47.96675339106209,-83.84563801211733,-59.28663889228856,87.52482625206656,-96.16153739249114,40.11013322211227,-26.974817614727556,6.144533854856775,-32.564166215958195,-24.568104937224547,92.09095887643454,-54.273831240139046,-40.68586255208475,61.55625543740294,-33.94579756985341,-79.82437777800386,-46.13488659976728,-4.820526668755477,71.21656771954642,-6.896673630673206,-28.64826143292764,-84.62244430502481,-16.301873168360032,-14.51960519525474,-77.2719703328879,-60.18180549340067,31.095701254983396,83.74786140844535,85.47177833966012,69.73086641434813,20.96811654958357,89.55121750341118,-17.808002357287705,82.19674052478712,-37.5130389395093,66.85223201784297,58.5997744723806,-65.35369006045593,-14.989443888924427,-75.42816813758459,76.49540662787507,-65.65409444671153,69.72104185057393,2.580971729347212,-2.242406914520359,-45.98261105603068,37.188402891575265,18.684868389049413,87.45538927291011,75.95568341878322,47.21735318487717,-86.55294006395982,28.704356123637353,32.355675506825804,43.92678484337944,-6.9561966271908915,29.774712894144784,97.82443898297242,-24.59319944850364,-60.12377394637183,-17.452925869330954,-93.95774155507675,86.03373229892122,5.476179301060284,-5.2190859518542965,-82.42957655959908,-48.02410860911779,-59.3092241851576,32.351188393801294,37.39693421279807,-68.38852677749045,-18.455847953264254,-1.6791682126463314,30.913469822790063,21.366951070743582,-90.35211970745145,-96.99017614463925,-31.44727399525334,0.09778430822394454 +-47.04949584145521,-86.64568158849212,-1.498673372170643,-43.15336835159016,32.64173402225401,69.70799219831542,60.52809179173326,-96.65150073130349,3.4068553118348177,72.04952615664709,39.221033588685,-19.031844178436728,-9.366324589352203,36.17612247378966,76.22911589009621,-85.91416903832045,-33.02442074423686,-57.62102004728782,-63.990329520834585,-79.25868193240888,25.149338935363062,-42.87651480661017,-15.02177728941561,65.8034029625795,-83.3709003894732,88.49988375371098,-5.050886398537656,-0.24580292062373132,21.319641105822427,-78.46047168932384,42.37762137348906,48.31783384030294,-30.783122611245645,39.520115035737575,-50.2518754853905,88.75773620448064,83.55118306156174,14.182554233051576,17.691893457775578,73.27810047644078,-9.202005538295154,47.390551515658075,-64.66551959648012,18.13934862748232,36.583122709584075,69.851977118923,-17.72239375244105,-72.38144115904723,-3.539020299549378,-21.462151103366423,74.83255987678405,7.799576061497021,66.76547326369871,15.60705749006921,33.35443437393005,-45.91005113607159,84.02211434857784,93.85361456119045,-67.42084481254432,-46.80578867786949,-47.836137329639364,86.15650235807962,20.313310123677937,24.61365577102316,44.53493992792582,83.66358705662665,-59.42250437941146,66.90241091986769,-40.81050912857669,-90.24968813751877,64.86770655555429,-63.13194652704661,63.46648980902293,-58.80316714676124,-24.565776014906476,9.39128140886578,18.951565513657314,-30.35410262105546,-88.31876192959443,6.130235955598721,-36.10515657070194,6.157327635797344,48.50096045089282,55.42263990027462,-20.37192490239464,-52.90086006017536,81.80648353059928,41.17968624444114,-23.72922821715848,31.60332271878474,-99.32685484005022,78.61769728797677,-1.4620531217717456,30.033970283181617,-23.228752979864083,55.42901997203859,-25.75764910639566,-44.22464188406712,65.31161516017428,-83.23324969121333,0.14178773793702898 +10.431330709122804,-96.18533798103033,-1.8752287892914694,-80.05045784339508,-27.63225117639638,-55.59141702736934,81.67107155574567,16.767914227574266,54.28519087785958,-62.12949774558394,-87.34784362283257,-66.48273685356182,-69.64844793671057,-3.4472202441440345,-52.34836861854482,41.809887566735,-27.259723313952122,-25.576905232716143,90.22739907067398,-12.041639440208172,-65.40812789331511,-55.35337134057634,66.78985846162595,-26.26244581320158,-87.34677007310839,50.6557567941702,-1.1721524282322946,24.600507995585446,30.754545737298486,-2.346819292269913,-81.25640544582413,33.94920349878447,83.54485928171411,27.39355362470009,-27.855298411431036,-32.707218088470995,-83.77471524946006,94.05657244462455,-51.141664286921085,-30.682714686868678,-55.03515102291949,-14.060925741470712,-54.98466939640512,-14.269688418256948,7.061940587200041,-35.288055243835714,74.07148908609736,30.816920436901682,78.06894621762649,38.26911748391092,85.24368852833112,26.59250342191693,-71.77724752660322,-79.39668405018571,97.21074958964485,34.16675669250708,-50.23970963923927,-34.13653886025372,96.16561009899092,-75.98164150359602,-54.192043000055804,-33.36608303941941,-65.95899448410819,75.05953472458421,88.83207686858267,59.049680148180386,-73.79030895204556,-75.05133980482195,-93.80069468099401,82.04143019873729,72.72652996108329,-35.117863203112165,48.99536258141822,-39.04999658775314,-66.97227134605268,3.983284208893224,-16.44366539888466,-39.76431962108424,-32.08960825594845,88.40262238943347,-65.78790471370988,-92.62205032064873,-20.115852001917858,-21.786707910136016,-56.82104159414567,22.962504950269164,20.93465117346811,-23.22298443146326,66.37306133028676,49.55195466356244,23.728878146899063,27.71982193411698,26.34657016807185,-5.8269655443689885,97.55621586828241,-91.16939732252752,-7.333060591564063,-91.19953429814707,-75.5262169640259,54.749439077138874,0.05887354428599248 +-6.7842792278951265,-88.01872317150091,75.46332048278742,-3.625717455813387,33.18310751517993,-80.8599337907753,84.61038180698165,72.23417892717353,-7.125328068751145,7.233822514941906,73.00455316177704,16.536132420574972,90.21443492682488,97.99708951484035,-92.38902860370928,-43.74252694276481,46.285699799581295,90.91584509409688,50.54749807999161,-29.184713144007745,-2.342077290460921,69.99359145416477,-45.485521482523986,-94.87044164341245,-40.72788649077464,92.81817986672152,-21.59918173735265,-95.16291537152935,57.79926122633202,42.65103414876546,34.989709098750865,-72.1919782426541,-76.9471515048102,98.382387198581,-9.013908697886677,95.43730295143459,-82.25103664785902,-64.52533655553407,-57.15736872201327,32.84820269851417,65.45722326871578,49.25602139400152,85.82153275148701,-88.53194216374672,75.00701197745897,66.10221155718966,94.71873107606856,66.52222679059287,15.933609689900237,-14.501128202698553,-5.168715631297857,11.66386450082399,-71.46283253968424,30.70061885224959,42.54810330720801,-24.783551359613497,-75.53157049496366,19.8330291946516,76.37312887340101,-55.75099713867526,-70.12705789949109,22.73337548808854,49.94109956132701,4.813180976520215,64.46896922622585,-29.344803725018394,-95.48632649133853,8.97518984230976,-98.76375512371422,80.47687175727697,-4.576897019865584,-33.99784981324669,-72.85618186946132,70.19902701169426,33.35951732060974,-19.97660275338764,16.64746686125656,-78.54714080820777,-26.65204693094438,-94.58722615478862,29.631460860600924,-79.07979919682211,23.760345625122966,98.32178334665122,-60.71288182591707,15.441160704010741,-73.94883108972357,-99.71503436726874,-55.74917057947864,-16.48990953077862,-57.7745339022719,-22.232531715599563,-46.92699453071376,-7.185162590041855,4.444261285380421,-53.31995216139198,-2.6292634976461216,-16.75388599011609,98.71609766729168,49.83210467083197,0.1091901877136811 +-54.51959792375418,25.319273260573453,11.853570420494066,-95.60704241361175,-71.16465931991887,-28.286353243535657,90.93017822879585,65.38639215039171,-42.3580531823573,80.91967379241146,-15.73066288687015,-98.14039508555301,70.85331131621697,32.61997070599335,-62.83833222190229,80.32486481370455,-30.519102805472897,86.17174908235492,-64.31366006599674,-22.012654712342368,67.20456188430677,-28.59994007298387,9.389239472212523,-71.60172700004826,-63.39635015470488,-60.51218815641113,37.452667380479596,59.21105207754351,93.83778672557051,59.77696375205093,-70.45768193187811,-18.052355653867764,-59.12915089066004,-90.80598808451947,85.09590840756627,-5.069052720204553,18.747693090903965,21.512352740781665,-62.39075662254492,48.90182867747174,15.52353827102668,14.967579611256411,61.78946500720568,-30.640580107042652,-25.306644626616674,24.682238125495218,37.20423183965673,-96.58738134015645,-39.02075406704808,-44.96255525516404,-66.6037295564696,17.3656250329918,0.7939529304018578,-3.071078893124607,8.62969189286072,-20.041376006813323,67.30924348687981,-73.89743530792971,-78.66388891017323,-7.192563138403955,16.60835368991225,-30.078316824763476,-97.57127140017855,-55.873525091015416,-33.07850908241525,-59.21111023138585,-92.21270508930104,58.83921842659234,-23.719476186880456,62.35765023518752,4.800887220140382,21.309743798952738,78.70741150859234,38.78077780448632,78.27980569092617,71.23820755798943,21.786326528415145,45.128607956502265,-15.037071530615663,-50.1566723530039,2.7593542204627823,-48.25353902432739,-9.402136202007782,66.13653947297843,25.134400813650572,44.90722927690828,99.91267187770129,-15.936613097110495,-17.771909187666893,-50.45083269735733,77.42440399868246,79.61893777879689,91.68834471031423,-59.92506455536542,97.1649820752022,43.122207854403314,-35.68232943767471,81.70324476031817,84.20942496524489,59.70119916024882,0.10354834650696443 +-67.71034944524894,27.29168161001121,-0.5307295771828819,-59.256761002556324,-54.386243063752595,-24.860680440188872,14.727854541032741,47.457326048996805,-44.513222573895405,13.03120113369593,-58.93144251023441,-25.015400404629133,20.90576858527413,-79.84725537669597,-41.41623203109,19.863022237849194,5.571483063864747,-11.001200927167318,-12.477969650656291,-6.824073015465842,27.229540529498593,-2.1677745423821335,-64.38100256332177,28.44533562032359,52.958627858210605,-76.67101470986924,-91.2692971729937,20.74577449416188,10.042208549058728,-77.9488086961866,-76.03630670832263,67.01550104923396,52.02095161498099,-78.43853109348275,8.53135943393606,-38.8463769847792,35.08827443854045,-50.153943218416885,-75.05582536168367,-39.40605901743304,51.90643064583949,38.33747823977805,-86.44649924405789,-93.15099325916101,-51.665230002776916,-73.02788171568531,58.59895856930021,18.56905764967472,-42.289093731617825,60.9036000306817,-5.066406843841037,2.2456763422448205,-59.85821411490733,-64.64514583138848,83.46495576762138,-28.052902623385137,-88.12601544311892,-50.04038351656186,45.738122845391786,-24.18967264988845,35.71307434672002,88.57240556176984,44.55612973353607,88.68714841471854,-87.12924988746002,-81.12259492330507,-50.21013896327653,-9.917180294841941,14.992170864604404,-76.0516428204413,-28.29758003267473,50.05292585678987,-81.7325347997847,-4.441485111362425,-72.49764281240891,-12.922058586896497,36.66825697574842,30.725542944074704,-17.490863132998527,-6.691683492180928,-36.94804974926451,-20.572860189625146,-94.65572494736163,52.037825513157316,-3.567358558410106,-65.19981529472103,62.00188714236424,-84.88428610250534,-37.25150288095118,-89.02531372113887,-29.687503518223863,48.48236444080257,39.54462911564141,-14.399844003586097,-45.48374806680175,-30.145527308757764,99.85448016808965,82.01584977494639,-79.83308498879553,-71.28527523270449,0.12447156477666232 +-78.61457456801733,60.49972217448047,-24.313003229934054,-2.7305462312241247,44.830854452471584,-1.4819408430376484,-79.5026827299953,-28.362420866161813,-44.32445196894468,-30.813842696895264,-89.39886632281029,28.438873599668113,30.79119728195593,-59.38374741264116,7.666564454632521,-43.27723695223122,50.50824533342208,-35.275011198105034,-60.09674068570852,-36.74836944199733,4.1661367373790625,7.946972701920714,81.33638681217113,29.50224692924718,65.46895472687447,-29.487362963664026,43.615277722704434,93.78929819077285,-18.480112243522555,30.17852175264545,28.75953576197682,38.790458060592016,65.33056653725396,0.19027112746121588,-58.07347127766924,-26.583650435443346,81.0130809699977,39.27062549248237,26.808320424913575,-63.4797079906692,-51.84969481100914,39.97226160917725,78.25864005956441,40.57904415860074,91.74577821186946,-88.9792627599956,-34.08573130089536,9.985248252426388,-0.33964183927746205,-52.707344003601975,1.4390398210381221,93.57749391708535,79.66664669882891,22.31734387807029,89.21781951833523,46.1972811782793,28.158441142169153,76.84471554782411,-49.5835411199443,-38.048132477442834,-80.81893757868859,26.607312570292294,-89.98942085789116,78.62859383498963,-42.17866906753551,-25.32349446507473,4.354323649316186,67.54741753966152,40.31561355732822,13.319013643416525,-84.57102764684856,52.403671009584514,-72.85037233612593,58.91008245286818,43.52758051466009,-38.79112675833869,53.072182562695815,36.52993995587778,-13.017751445023578,92.5875389942918,57.88463088741392,16.239847753205154,85.5988252689628,25.104698587155383,94.21862920946808,11.751888332277943,-65.3715941494024,94.22880069196157,87.24506067065832,60.49014391249031,94.54580890583631,-10.939666429998866,-79.6544511144041,99.61853988676205,48.936946916546674,44.53771322929484,49.95763257793965,-21.04807404716169,51.32170076020341,-37.62038935941365,0.10697960643268678 +-19.127743242698926,61.73217651974062,48.2200263989308,85.96362711557424,9.54555897432536,-16.42337547793582,-51.30165369395214,-22.888545070986453,7.265541772214718,-74.15123655236843,57.98140193976528,-95.43877251096224,-45.7054721150089,63.82508009721988,-38.91829234738344,-37.91137314075761,37.69942504822666,-19.421701981038453,54.41809738777056,30.876010914640403,-56.22717243030068,13.916832317955823,-38.657437232795225,-91.5751637293434,-61.102823696874076,-36.024832351199684,77.9685074140792,-54.674537521767164,24.361207721261195,75.68478730299182,15.796783370990937,87.59837031849034,-88.50707329996547,-65.2754104203488,-48.4610988463932,11.670150301068986,90.14027349272487,82.87133608637967,2.2453906742131267,87.95513255981089,5.03807975044181,-52.955499774789104,-33.12664716712051,94.4723598662911,64.4425112888166,-39.01923642165428,-81.30040388707778,64.1131924198036,57.14965551439778,-54.50443681204919,-19.656338869305557,-18.944800451289638,30.375353306857022,61.53385327748495,-80.87922760563926,-37.68624947628616,40.282024349228976,24.309051877294976,-19.15136127669321,23.223936432367424,-68.03852280052543,27.65234442422249,-40.31569720214403,29.90170267930597,-86.38391940855192,17.010158667224147,14.105198154162963,52.405133336338196,21.914837659439783,51.117303309686974,-69.1025720899132,-44.50157554409338,18.295143511204643,-68.22973890131914,46.524279322401924,-40.55746152469683,-15.187712454939842,15.742600088608,22.815148938511726,48.317309362607375,-76.69968870192103,-30.8522247915362,49.71183836477738,-91.11989725867187,-64.17542283531242,88.81681854085542,14.412078067660843,-59.51258447231227,-91.47773489323711,81.10928431423395,-74.56820558294672,-69.74348674760299,51.69509702828984,-36.0717709671581,85.75481264908896,49.346132812500855,-55.93711374785786,80.21090515264336,-8.743453914771464,-34.93872633279551,0.09454773405857829 +-46.26084514975402,37.01074560027996,61.45370613638025,81.67297709681529,-79.8253928815814,-47.854397309325904,83.892527308296,-78.9423958875412,17.500385866823095,-44.01100319449589,29.28179318615264,28.590718204238186,-31.35415925806049,-88.24561025683897,19.783844834042185,82.74209635387399,34.25732743333552,-21.56850083302922,18.69552898716674,62.696620862698666,1.4673619961114213,-60.05551391351225,-71.61123484309009,-73.77516410577451,52.33180744876657,-64.46147817026761,-85.2814271920991,-8.276454251607817,-91.03776853206364,-58.874056136256605,-71.42519993606011,-64.93366300757904,37.34844992851811,25.633337495566693,81.83947095103014,-36.65237769225709,66.48206851351816,31.122978684618147,-24.571931413287956,19.516369145824,66.54139027666392,24.279237936311574,46.49682627069561,23.42712642513665,-46.22846495560904,87.51453447200424,44.71340893256894,18.20737549409847,82.94938311407151,-0.2913205889699242,78.63356411215659,21.61653376488573,-57.75719885535702,-85.13391964736196,98.95072795593026,9.970311503756221,65.64860764355299,98.78654098192362,17.797771977676206,-3.5056297782236356,-44.73082305483782,-65.00396753069562,-83.00037415403195,59.77228632602544,-94.08902012399398,55.95989354857781,-29.44799848502251,-17.157456779420414,40.94545451634235,-67.73237128353837,79.33265667183599,48.49364760681922,5.708316647533039,47.37729666621104,67.44685013553763,-53.32302884657627,30.775399437565937,-41.93936256047914,-49.90189567653487,-54.24663917713033,-66.43704718757577,47.37766704968129,-61.369816114112965,69.53678756227478,-30.527615931849965,35.46881897742483,3.896017709772053,63.02944673198073,56.610675471028685,57.0805740708511,-73.42778035129001,-7.204246596638825,96.70314846918524,-98.90499395531198,-95.98803517258374,-75.14838310776624,-49.68505332999265,-98.67843150655679,45.226386478087534,73.92309989448549,0.1429870017464152 +32.33192811568543,-80.65633185963748,-84.26832179197629,1.734232037389532,-14.189902506260069,-26.125129347461495,-58.94730224991116,-73.47111625871284,-2.329292262153743,2.8547004430734972,38.13845163634764,76.90054828011165,44.82307816952505,-34.685883654386245,-3.5009401193076997,47.75754827035311,-10.873231941041567,-84.35127627613392,-61.93994528467199,2.977505231723285,-48.6638747989194,-45.54470607135759,-64.6124083805242,97.1974188025066,-34.891877426306124,-54.582553971016345,63.35726960557767,-15.344739940740922,-0.9750098536788414,22.00889731380566,28.869427484914013,35.83745942319297,94.37569342685376,-98.60748304497653,96.84132282612165,-98.13400678765065,7.230428561127297,-51.49763804206686,-99.4578357161203,-7.950348879827615,-72.41877417984306,78.64688383097885,54.543284401601,9.379483773390334,-80.8913599536177,84.1041514602104,78.06827379284476,88.11730248752886,95.48680417594005,6.698860376050845,45.41687925233862,-17.82443412977159,-93.40052306984316,64.21906955304138,9.911820696658353,34.33205696038638,16.560483628884384,82.27733794263622,82.35461752306267,79.91123428106067,65.65763847411284,-87.87592866082028,-35.90778521778533,58.77029774422786,69.85899700375091,-54.074618137927686,-42.35963134852347,66.13296501188864,-30.069652135326663,-91.21338817504856,33.46065276943227,-36.56948401522839,72.83693060780482,-45.358748812273575,63.893758166206624,34.757404126631116,4.958336165548658,96.04129361549514,30.34650033083156,-92.66336598730571,98.68116083887955,-63.476657529557976,29.500620899134134,-92.18708327879881,-72.14641350505191,-79.96019072651717,2.122339394604026,53.72006329058357,49.00819999635584,55.23153023759369,-72.82750671692229,84.48546352280127,-29.11948420313952,-9.476748278848618,-58.061786456985985,57.010529790058825,10.618378619821954,84.59627663407903,-68.79679823424817,-55.837131019077745,0.06928284238421903 diff --git a/examples/array/write_job_array_inputs.py b/examples/array/write_job_array_inputs.py new file mode 100644 index 0000000..1ff260e --- /dev/null +++ b/examples/array/write_job_array_inputs.py @@ -0,0 +1,23 @@ +# We specify the number of lines you want to generate with num_lines. +# We write a CSV file with two columns -- "Cashflows" and "Discount Rate" +# This file will be read by the job array with each task reading one line +import numpy as np +import csv + +# specify the number of lines you want to generate +num_lines = 100 + +# Create and open a CSV file for writing +with open('inputs_to_job_array.csv', mode = 'w', newline = '') as csv_file: + csv_writer = csv.writer(csv_file, quoting=csv.QUOTE_NONE) + + # Generate and write num_lines lines of data + for _ in range(num_lines): + # first, output cashflows as a vector of length 100 with random cash flow over time periods + outputs = list( np.random.uniform(-100, 100, 100)) + # second, append a random discount rate + discount_rate = np.random.uniform(0.05, 0.15) + outputs.append(discount_rate) + csv_writer.writerow(outputs) + +print(f'{num_lines} lines of data have been written to inputs_to_job_array.csv.') diff --git a/examples/mnist.py b/examples/mnist.py new file mode 100644 index 0000000..fe86471 --- /dev/null +++ b/examples/mnist.py @@ -0,0 +1,65 @@ +import torch +import torch.nn as nn +import torch.optim as optim +import torchvision.datasets as datasets +import torchvision.transforms as transforms + +# Define the neural network architecture +class Net(nn.Module): + def __init__(self): + super(Net, self).__init__() + self.fc1 = nn.Linear(784, 256) + self.fc2 = nn.Linear(256, 10) + self.relu = nn.ReLU() + + def forward(self, x): + x = x.view(-1, 784) + x = self.relu(self.fc1(x)) + x = self.fc2(x) + return x + +# Load the MNIST dataset +train_dataset = datasets.MNIST(root='./data', train=True, download=True, transform=transforms.ToTensor()) +test_dataset = datasets.MNIST(root='./data', train=False, download=True, transform=transforms.ToTensor()) + +# Define the data loaders +train_loader = torch.utils.data.DataLoader(dataset=train_dataset, batch_size=100, shuffle=True) +test_loader = torch.utils.data.DataLoader(dataset=test_dataset, batch_size=100, shuffle=False) + +# Define the neural network and move it to the GPU if available +net = Net() +device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu") +net.to(device) + +# Define the loss function and optimizer +criterion = nn.CrossEntropyLoss() +optimizer = optim.SGD(net.parameters(), lr=0.01, momentum=0.9) + +# Train the neural network +for epoch in range(10): + running_loss = 0.0 + for i, data in enumerate(train_loader, 0): + inputs, labels = data + inputs, labels = inputs.to(device), labels.to(device) + optimizer.zero_grad() + outputs = net(inputs) + loss = criterion(outputs, labels) + loss.backward() + optimizer.step() + running_loss += loss.item() + print('[%d] loss: %.3f' % (epoch + 1, running_loss / len(train_loader))) + +# Test the neural network +correct = 0 +total = 0 +with torch.no_grad(): + for data in test_loader: + images, labels = data + images, labels = images.to(device), labels.to(device) + outputs = net(images) + _, predicted = torch.max(outputs.data, 1) + total += labels.size(0) + correct += (predicted == labels).sum().item() + +print('Accuracy on the test set: %d %%' % (100 * correct / total)) + diff --git a/examples/requirements.txt b/examples/requirements.txt new file mode 100644 index 0000000..a20dbc3 --- /dev/null +++ b/examples/requirements.txt @@ -0,0 +1,4 @@ +numpy +pandas +seaborn +matplotlib diff --git a/examples/train-gpu.slurm b/examples/train-gpu.slurm new file mode 100644 index 0000000..4826290 --- /dev/null +++ b/examples/train-gpu.slurm @@ -0,0 +1,20 @@ +#!/bin/bash + +# Example slurm script to train pytorch DL model on Yen GPU + +#SBATCH -J train-gpu +#SBATCH -p gpu +#SBATCH -c 10 +#SBATCH -N 1 +#SBATCH -t 1- # limit of 1 day runtime +#SBATCH -G 1 # limit of 4 GPUs per user +#SBATCH -o out/train-gpu-%j.out +#SBATCH --mail-type=ALL +#SBATCH --mail-user=your_email@stanford.edu + +# Load pytorch module +ml pytorch + +# Run training script on GPU +python mnist.py +