Repository: mikel-brostrom/boxmot Branch: master Commit: a35982f74c12 Files: 230 Total size: 2.7 MB Directory structure: gitextract_wj9e62ae/ ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug.yml │ │ ├── enhancement.yml │ │ └── question.yml │ ├── scripts/ │ │ └── uv_ci_install.sh │ └── workflows/ │ ├── benchmark.yml │ ├── ci.yml │ ├── docker.yml │ ├── docs.yml │ ├── label.yml │ ├── publish.yml │ ├── stale.yml │ └── update.yml ├── .gitignore ├── .pre-commit-config.yaml ├── AGENTS.md ├── CITATION.cff ├── CONTRIBUTING.md ├── Dockerfile ├── LICENSE ├── MANIFEST.in ├── README.md ├── assets/ │ ├── DOTA8-MOT/ │ │ └── train/ │ │ ├── P0861__1024__0___1648/ │ │ │ ├── det/ │ │ │ │ ├── det.txt │ │ │ │ └── det_obb.txt │ │ │ ├── gt/ │ │ │ │ ├── gt.txt │ │ │ │ └── gt_obb.txt │ │ │ └── seqinfo.ini │ │ ├── P1053__1024__0___90/ │ │ │ ├── det/ │ │ │ │ ├── det.txt │ │ │ │ └── det_obb.txt │ │ │ ├── gt/ │ │ │ │ ├── gt.txt │ │ │ │ └── gt_obb.txt │ │ │ └── seqinfo.ini │ │ └── P1142__1024__0___824/ │ │ ├── det/ │ │ │ ├── det.txt │ │ │ └── det_obb.txt │ │ ├── gt/ │ │ │ ├── gt.txt │ │ │ └── gt_obb.txt │ │ └── seqinfo.ini │ ├── MOT17-mini/ │ │ └── train/ │ │ ├── MOT17-02-FRCNN/ │ │ │ ├── det/ │ │ │ │ └── det.txt │ │ │ ├── gt/ │ │ │ │ ├── gt.txt │ │ │ │ └── gt_temp.txt │ │ │ └── seqinfo.ini │ │ └── MOT17-04-FRCNN/ │ │ ├── det/ │ │ │ └── det.txt │ │ ├── gt/ │ │ │ ├── gt.txt │ │ │ └── gt_temp.txt │ │ └── seqinfo.ini │ └── file_banner.txt ├── boxmot/ │ ├── __init__.py │ ├── configs/ │ │ ├── datasets/ │ │ │ ├── FastTracker-Benchmark-MOT.yaml │ │ │ ├── MOT17-ablation.yaml │ │ │ ├── MOT20-ablation.yaml │ │ │ ├── SportsMOT.yaml │ │ │ ├── custom.yaml │ │ │ ├── dancetrack-ablation.yaml │ │ │ └── visdrone-ablation.yaml │ │ └── trackers/ │ │ ├── __init__.py │ │ ├── boosttrack.yaml │ │ ├── botsort.yaml │ │ ├── bytetrack.yaml │ │ ├── deepocsort.yaml │ │ ├── hybridsort.yaml │ │ ├── imprassoc.yaml │ │ ├── ocsort.yaml │ │ ├── sfsort.yaml │ │ └── strongsort.yaml │ ├── detectors/ │ │ ├── __init__.py │ │ ├── detector.py │ │ ├── rtdetr.py │ │ ├── ultralytics.py │ │ └── yolox.py │ ├── engine/ │ │ ├── __init__.py │ │ ├── cli.py │ │ ├── evaluator.py │ │ ├── export.py │ │ ├── inference.py │ │ ├── results.py │ │ ├── tracker.py │ │ └── tuner.py │ ├── motion/ │ │ ├── __init__.py │ │ ├── cmc/ │ │ │ ├── __init__.py │ │ │ ├── base_cmc.py │ │ │ ├── ecc.py │ │ │ ├── orb.py │ │ │ ├── sift.py │ │ │ └── sof.py │ │ └── kalman_filters/ │ │ ├── __init__.py │ │ ├── base.py │ │ ├── xyah.py │ │ ├── xyhr.py │ │ ├── xysr.py │ │ └── xywh.py │ ├── postprocessing/ │ │ ├── __init__.py │ │ ├── gbrc.py │ │ └── gsi.py │ ├── reid/ │ │ ├── __init__.py │ │ ├── backbones/ │ │ │ ├── __init__.py │ │ │ ├── clip/ │ │ │ │ ├── __init__.py │ │ │ │ ├── clip/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── clip.py │ │ │ │ │ ├── model.py │ │ │ │ │ └── simple_tokenizer.py │ │ │ │ ├── config/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── defaults.py │ │ │ │ │ └── defaults_base.py │ │ │ │ ├── make_model.py │ │ │ │ └── make_model_clipreid.py │ │ │ ├── hacnn.py │ │ │ ├── lmbn/ │ │ │ │ ├── __init__.py │ │ │ │ ├── attention.py │ │ │ │ ├── bnneck.py │ │ │ │ └── lmbn_n.py │ │ │ ├── mlfn.py │ │ │ ├── mobilenetv2.py │ │ │ ├── osnet.py │ │ │ ├── osnet_ain.py │ │ │ └── resnet.py │ │ ├── backends/ │ │ │ ├── base_backend.py │ │ │ ├── onnx_backend.py │ │ │ ├── openvino_backend.py │ │ │ ├── pytorch_backend.py │ │ │ ├── tensorrt_backend.py │ │ │ ├── tflite_backend.py │ │ │ └── torchscript_backend.py │ │ ├── core/ │ │ │ ├── __init__.py │ │ │ ├── auto_backend.py │ │ │ ├── config.py │ │ │ ├── factory.py │ │ │ ├── registry.py │ │ │ └── reid_handler.py │ │ └── exporters/ │ │ ├── base_exporter.py │ │ ├── onnx_exporter.py │ │ ├── openvino_exporter.py │ │ ├── tensorrt_exporter.py │ │ ├── tflite_exporter.py │ │ └── torchscript_exporter.py │ ├── trackers/ │ │ ├── __init__.py │ │ ├── basetracker.py │ │ ├── boosttrack/ │ │ │ ├── __init__.py │ │ │ ├── assoc.py │ │ │ └── boosttrack.py │ │ ├── botsort/ │ │ │ ├── __init__.py │ │ │ ├── basetrack.py │ │ │ ├── botsort.py │ │ │ ├── botsort_track.py │ │ │ └── botsort_utils.py │ │ ├── bytetrack/ │ │ │ ├── __init__.py │ │ │ ├── basetrack.py │ │ │ └── bytetrack.py │ │ ├── deepocsort/ │ │ │ ├── __init__.py │ │ │ └── deepocsort.py │ │ ├── detection_layout.py │ │ ├── hybridsort/ │ │ │ ├── __init__.py │ │ │ ├── association.py │ │ │ ├── hybridsort.py │ │ │ ├── kalmanfilter_score.py │ │ │ └── kalmanfilter_score_new.py │ │ ├── ocsort/ │ │ │ ├── __init__.py │ │ │ └── ocsort.py │ │ ├── sfsort/ │ │ │ ├── __init__.py │ │ │ └── sfsort.py │ │ ├── strongsort/ │ │ │ ├── __init__.py │ │ │ ├── sort/ │ │ │ │ ├── __init__.py │ │ │ │ ├── detection.py │ │ │ │ ├── iou_matching.py │ │ │ │ ├── linear_assignment.py │ │ │ │ ├── track.py │ │ │ │ └── tracker.py │ │ │ ├── strongsort.py │ │ │ └── strongsort_kf.py │ │ └── tracker_zoo.py │ └── utils/ │ ├── __init__.py │ ├── analysis/ │ │ ├── mot_ds_kf_tuning.py │ │ ├── mot_seq_bb_plot.py │ │ └── ray_results.py │ ├── association.py │ ├── checks.py │ ├── clean.py │ ├── custom_mot_challenge_2d_box.py │ ├── dataloaders/ │ │ ├── dataset.py │ │ └── video.py │ ├── download.py │ ├── iou.py │ ├── matching.py │ ├── misc.py │ ├── mot_utils.py │ ├── ops.py │ ├── plots.py │ ├── run_mot_challenge.py │ ├── timing.py │ ├── torch_utils.py │ └── visualization.py ├── docs/ │ ├── modes/ │ │ ├── eval.md │ │ ├── generate.md │ │ ├── track.md │ │ └── tune.md │ └── trackers/ │ ├── boosttrack.md │ ├── botsort.md │ ├── bytetrack.md │ ├── deepocsort.md │ ├── ocsort.md │ ├── sfsort.md │ └── strongsort.md ├── examples/ │ ├── det/ │ │ ├── efficientdet_boxmot.ipynb │ │ ├── obb.ipynb │ │ ├── rfdetr_boxmot.ipynb │ │ ├── torchvision_boxmot.ipynb │ │ └── yolox_boxmot.ipynb │ ├── pose/ │ │ └── torchvision_boxmot.ipynb │ └── seg/ │ └── torchvision_boxmot.ipynb ├── mkdocs.yml ├── pyproject.toml └── tests/ ├── __init__.py ├── performance/ │ ├── __init__.py │ ├── test_cmcs_p.py │ └── test_tracking_p.py ├── test_config.py └── unit/ ├── __init__.py ├── test_base_backend.py ├── test_cmcs_u.py ├── test_cuda.py ├── test_dataloader.py ├── test_exporters_dynamic.py ├── test_inference.py ├── test_kalman_filters_modes.py ├── test_postprocessing.py ├── test_reidbackend.py ├── test_tflite_backend.py ├── test_tflite_exporter.py ├── test_trackers.py ├── test_visualization.py └── test_yolox_batch.py ================================================ FILE CONTENTS ================================================ ================================================ FILE: .github/FUNDING.yml ================================================ # These are supported funding model platforms github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] patreon: # Replace with a single Patreon username open_collective: # Replace with a single Open Collective username ko_fi: # Replace with a single Ko-fi username tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry liberapay: # Replace with a single Liberapay username issuehunt: # Replace with a single IssueHunt username lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry polar: # Replace with a single Polar username buy_me_a_coffee: mikel.brostrom thanks_dev: # Replace with a single thanks.dev username custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] ================================================ FILE: .github/ISSUE_TEMPLATE/bug.yml ================================================ name: Bug # title: " " description: Report a BoxMOT bug labels: [bug] body: - type: checkboxes attributes: label: Search before asking description: > Please search the [issues](https://github.com/mikel-brostrom/boxmot/issues) and [discussions](https://github.com/mikel-brostrom/boxmot/discussions) to see if a similar question already exists. options: - label: > I have searched the BoxMOT [issues](https://github.com/mikel-brostrom/boxmot/issues) and [discussions](https://github.com/mikel-brostrom/boxmot/discussions) and found no similar questions. required: true - type: textarea attributes: label: Bug description: Provide console output with error messages and/or screenshots of the bug. placeholder: | 💡 ProTip! Include as much information as possible (screenshots, logs, tracebacks etc.) to receive the most helpful response. validations: required: true - type: textarea attributes: label: Environment description: Please specify the environment information you used to produce the bug. placeholder: | - boxmot v12.0.0 - Python 3.11.5 - torch-2.6.0MPS validations: required: true - type: textarea attributes: label: Minimal Reproducible Example description: > When asking a question, people will be better able to provide help if you provide code that they can easily understand and use to [**reproduce**](https://stackoverflow.com/help/minimal-reproducible-example) the problem. placeholder: | ``` # Code to reproduce your issue here ``` validations: required: true ================================================ FILE: .github/ISSUE_TEMPLATE/enhancement.yml ================================================ name: Enhancement description: Suggest a BoxMOT enhancement # title: " " labels: [enhancement] body: - type: checkboxes attributes: label: Search before asking description: > Please search the [issues](https://github.com/mikel-brostrom/boxmot/issues) to see if a similar enhancement request already exists. options: - label: > I have searched the BoxMOT [issues](https://github.com/mikel-brostrom/boxmot/issues) and found no similar enhancement requests. required: true - type: textarea attributes: label: Description description: A short description of your enhancement. placeholder: | What new enhancement would you like to see in BoxMOT? validations: required: true - type: textarea attributes: label: Use case description: | Describe the use case of your feature request. It will help us understand and prioritize the feature request. placeholder: | How would this feature be used, and who would use it? - type: checkboxes attributes: label: Are you willing to submit a PR? description: > (Optional) If you have a good understanding of this package and feel like contributing to it we will gladly review your [Pull Request](https://github.com/mikel-brostrom/boxmot/pulls) (PR). options: - label: Yes I'd like to help by submitting a PR! ================================================ FILE: .github/ISSUE_TEMPLATE/question.yml ================================================ name: Question description: Ask a BoxMOT question # title: " " labels: [question] body: - type: checkboxes attributes: label: Search before asking description: > Please search the [issues](https://github.com/mikel-brostrom/boxmot/issues) to see if a similar question already exists. options: - label: > I have searched the BoxMOT [issues](https://github.com/mikel-brostrom/boxmot/issues) and found no similar bug report. required: true - type: textarea attributes: label: Question description: What is your question? placeholder: | 💡 ProTip! Include as much information as possible (screenshots, logs, tracebacks etc.) to receive the most helpful response. validations: required: true ================================================ FILE: .github/scripts/uv_ci_install.sh ================================================ #!/usr/bin/env bash set -euo pipefail if [[ $# -lt 1 ]]; then echo "Usage: $0 [additional uv pip install args...]" >&2 echo "Example: $0 '.[yolo]' --group test" >&2 exit 1 fi editable_spec="$1" shift python -m pip install --upgrade pip setuptools wheel uv uv venv uv pip install \ --python .venv/bin/python \ --no-sources \ --torch-backend "${UV_TORCH_BACKEND:-cpu}" \ --index-strategy "${UV_INDEX_STRATEGY:-unsafe-best-match}" \ -e "${editable_spec}" \ "$@" ================================================ FILE: .github/workflows/benchmark.yml ================================================ name: Benchmark on: push: branches: [main] pull_request: branches: [main] workflow_dispatch: env: UV_TORCH_BACKEND: cpu UV_INDEX_STRATEGY: unsafe-best-match permissions: contents: write pull-requests: write jobs: mot-metrics-benchmark: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-latest] python-version: ['3.12'] tracker: ["ocsort", "bytetrack", "botsort", "deepocsort", "hybridsort", "strongsort", "boosttrack", "sfsort"] timeout-minutes: 50 env: SMOKE_SOURCE: assets/DOTA8-MOT/train/P0861__1024__0___1648/img1 steps: - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} cache: 'pip' - name: Install requirements run: | sudo apt-get update sudo apt-get install -y jq curl unzip bash .github/scripts/uv_ci_install.sh ".[yolo]" - name: Restore MOT17 dataset cache id: cache-restore uses: actions/cache@v4 with: path: boxmot/engine/TrackEval/MOT17-ablation.zip key: mot17-ablation-dataset-cache-v3 - name: Cache MOT17.zip if not already cached if: steps.cache-restore.outputs.cache-hit != 'true' uses: actions/cache@v4 with: path: boxmot/engine/TrackEval/MOT17-ablation.zip key: mot17-ablation-dataset-cache-v3 - name: DOTA8-MOT OBB smoke tracking id: obb_smoke run: | source .venv/bin/activate if boxmot track --yolo-model yolo11n-obb.pt --reid-model lmbn_n_duke.pt --tracking-method ${{ matrix.tracker }} --source "$SMOKE_SOURCE" --project runs/benchmark_ci --name ${{ matrix.tracker }} --exist-ok --save-txt; then echo "obb_status=✅" >> $GITHUB_OUTPUT else echo "obb_status=❌" >> $GITHUB_OUTPUT fi - name: Evaluation and summarize MOT metrics run: | source .venv/bin/activate OBB_STATUS="${{ steps.obb_smoke.outputs.obb_status }}" if boxmot eval --classes 0 --yolo-model yolox_x_MOT17_ablation.pt --reid-model lmbn_n_duke.pt --tracking-method ${{ matrix.tracker }} --ci --verbose --source MOT17-ablation; then STATUS="✅" else STATUS="❌" fi if [ -f ${{ matrix.tracker }}_output.json ]; then HOTA=$(jq -r '.HOTA' ${{ matrix.tracker }}_output.json) MOTA=$(jq -r '.MOTA' ${{ matrix.tracker }}_output.json) IDF1=$(jq -r '.IDF1' ${{ matrix.tracker }}_output.json) else HOTA="" MOTA="" IDF1="" fi mkdir -p results TRACKER_NAME=$(echo "${{ matrix.tracker }}" | awk '{print tolower($0)}') if [ "$STATUS" = "❌" ]; then fps="" else declare -A tracker_fps tracker_fps["deepocsort"]=12 tracker_fps["bytetrack"]=720 tracker_fps["ocsort"]=890 tracker_fps["strongsort"]=11 tracker_fps["botsort"]=12 tracker_fps["hybridsort"]=25 tracker_fps["boosttrack"]=13 tracker_fps["sfsort"]="6000" fps=${tracker_fps[$TRACKER_NAME]} fi echo "$TRACKER_NAME,$STATUS,$OBB_STATUS,$HOTA,$MOTA,$IDF1,$fps" > results/${{ matrix.tracker }}.txt - name: Show Results run: cat results/${{ matrix.tracker }}.txt - name: Upload Results uses: actions/upload-artifact@v4 with: name: results-${{ github.run_id }}-${{ matrix.tracker }} path: results/${{ matrix.tracker }}.txt combine-results: runs-on: ubuntu-latest needs: mot-metrics-benchmark steps: - uses: actions/checkout@v4 - name: Download all results artifacts uses: actions/download-artifact@v4 with: path: results - name: Check downloaded files run: | echo "Downloaded files in the results directory:" ls -la results/*/ || true - name: Combine results run: | : > combined_results.csv for file in results/*/*; do if [ -f "$file" ]; then cat "$file" >> combined_results.csv fi done sort -t, -k4 -nr combined_results.csv > sorted_results.csv - name: Show Combined Results run: cat sorted_results.csv - name: Set up Git run: | git config --local user.email "yolov5.deepsort.pytorch@gmail.com" git config --local user.name "mikel-brostrom" - name: Update README with tracker results run: | RESULTS_FILE="sorted_results.csv" README_FILE="README.md" cp "$README_FILE" "${README_FILE}.bak" declare -A paper_links paper_links["boosttrack"]="https://arxiv.org/abs/2408.13003" paper_links["deepocsort"]="https://arxiv.org/abs/2302.11813" paper_links["bytetrack"]="https://arxiv.org/abs/2110.06864" paper_links["ocsort"]="https://arxiv.org/abs/2203.14360" paper_links["strongsort"]="https://arxiv.org/abs/2202.13514" paper_links["botsort"]="https://arxiv.org/abs/2206.14651" paper_links["hybridsort"]="https://arxiv.org/abs/2308.00783" paper_links["sfsort"]="https://arxiv.org/pdf/2404.07553" new_table="| Tracker | Status | OBB | HOTA↑ | MOTA↑ | IDF1↑ | FPS |\n" new_table+="| :-----: | :----: | :---: | :---: | :---: | :---: | :---: |\n" while IFS=, read -r tracker status obb hota mota idf1 fps; do paper_url=${paper_links[$tracker]} tracker_link="[$tracker](${paper_url:-#})" new_table+="| $tracker_link | $status | $obb | $hota | $mota | $idf1 | $fps |\n" done < "$RESULTS_FILE" start_marker="" end_marker="" awk -v start_marker="$start_marker" -v end_marker="$end_marker" -v new_table="$new_table" ' $0 == start_marker { print $0; print new_table; in_table=1; next } $0 == end_marker { in_table=0; print $0; next } !in_table ' "$README_FILE" > temp_readme.md mv temp_readme.md "$README_FILE" - name: Sync docs benchmark table run: cp README.md docs/index.md - name: Check for changes in benchmark docs id: check_changes run: | if git diff --quiet README.md docs/index.md; then echo "changed=false" >> $GITHUB_OUTPUT else BRANCH_NAME="update-tracker-results-$(date +%Y%m%d%H%M%S)" echo "branch_name=$BRANCH_NAME" >> $GITHUB_OUTPUT echo "changed=true" >> $GITHUB_OUTPUT fi - name: Create Pull Request if: steps.check_changes.outputs.changed == 'true' uses: peter-evans/create-pull-request@v7 with: add-paths: | README.md docs/index.md token: ${{ secrets.GITHUB_TOKEN }} branch: ${{ steps.check_changes.outputs.branch_name }} commit-message: "docs: update benchmark results" title: "docs: update benchmark results" body: "This PR updates the benchmark tables in the README and docs index." ================================================ FILE: .github/workflows/ci.yml ================================================ # name of the workflow, what it is doing (optional) name: BoxMOT CI # events that trigger the workflow (required) on: push: # pushes to the following branches branches: - master pull_request: # pull request where master is target branches: - master env: UV_TORCH_BACKEND: cpu UV_INDEX_STRATEGY: unsafe-best-match jobs: trackers: runs-on: ${{ matrix.os }} outputs: status: ${{ job.status }} strategy: fail-fast: false matrix: os: [ubuntu-latest, macos-14] # skip windows-latest for python-version: ['3.12'] env: TRACKERS: "ocsort bytetrack botsort deepocsort strongsort boosttrack hybridsort sfsort" IMG: ./assets/MOT17-mini/train/MOT17-02-FRCNN/img1/000001.jpg # Timeout: https://stackoverflow.com/a/59076067/4521646 timeout-minutes: 50 steps: - uses: actions/checkout@v4 # Check out the repository - name: Set up Python uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} cache: 'pip' # caching pip dependencies - name: Install requirements shell: bash # for Windows compatibility run: | bash .github/scripts/uv_ci_install.sh ".[yolo]" - name: Run tracking method run: | source .venv/bin/activate for tracker in $TRACKERS; do boxmot track --yolo-model yolov10n.pt --reid-model osnet_x0_25_msmt17.pt --imgsz 320 --tracking-method $tracker --source $IMG --verbose done tune: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-latest] # skip windows-latest for python-version: ['3.9', '3.12'] outputs: status: ${{ job.status }} # Timeout: https://stackoverflow.com/a/59076067/4521646 timeout-minutes: 50 steps: - uses: actions/checkout@v4 # Check out the repository - name: Set up Python uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} cache: 'pip' # caching pip dependencies - name: Install requirements shell: bash # for Windows compatibility run: | bash .github/scripts/uv_ci_install.sh ".[yolo,evolve]" - name: Evolve set of parameters for selected tracking method run: | source .venv/bin/activate # reuse first set of generated det and prod boxmot tune --yolo-model yolov8n.pt --reid-model osnet_x0_25_msmt17.pt --n-trials 3 --tracking-method strongsort --source ./assets/MOT17-mini/train --ci --classes 0 metrics: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-latest] # skip windows-latest for python-version: ['3.9', '3.12'] outputs: status: ${{ job.status }} env: TRACKERS: "ocsort bytetrack botsort deepocsort strongsort boosttrack hybridsort sfsort" # Timeout: https://stackoverflow.com/a/59076067/4521646 timeout-minutes: 50 steps: - uses: actions/checkout@v4 # Check out the repository - name: Set up Python uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} cache: 'pip' # caching pip dependencies - name: Install requirements shell: bash # for Windows compatibility run: | sudo apt-get update sudo apt-get install -y jq bash .github/scripts/uv_ci_install.sh ".[yolo]" - name: Generate detections and embeddings run: | source .venv/bin/activate boxmot generate --source ./assets/MOT17-mini/train --yolo-model yolov10n.pt --reid-model osnet_x0_25_msmt17.pt --imgsz 320 --classes 0 - name: Evaluate MOT17-mini metrics shell: bash run: | source .venv/bin/activate echo "Format,Status❔,HOTA,MOTA,IDF1" > metrics.csv for tracker in $TRACKERS; do if boxmot eval --yolo-model yolov8n.pt --reid-model osnet_x0_25_msmt17.pt --tracking-method $tracker --verbose --source ./assets/MOT17-mini/train --ci --classes 0; then STATUS="✅" else STATUS="❌" fi if [ -f ${tracker}_output.json ]; then cat ${tracker}_output.json HOTA=$(jq -r '.HOTA' ${tracker}_output.json) MOTA=$(jq -r '.MOTA' ${tracker}_output.json) IDF1=$(jq -r '.IDF1' ${tracker}_output.json) else HOTA="" MOTA="" IDF1="" fi TRACKER_NAME=$(echo $tracker | awk '{print toupper(substr($0,1,1)) tolower(substr($0,2))}') echo "$TRACKER_NAME,$STATUS,$HOTA,$MOTA,$IDF1" >> metrics.csv done - name: Sort MOT metrics results shell: bash run: | cp metrics.csv results.csv (head -n 1 results.csv && tail -n +2 results.csv | sort -t, -k3 -nr) > sorted_results.csv column -s, -t sorted_results.csv > pretty_results.txt - name: Show Results shell: bash run: | cat pretty_results.txt obb: runs-on: ubuntu-latest outputs: status: ${{ job.status }} env: TRACKERS: "ocsort bytetrack botsort deepocsort strongsort boosttrack hybridsort sfsort" SMOKE_SOURCE: ./assets/DOTA8-MOT/train/P1142__1024__0___824/img1 timeout-minutes: 50 steps: - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.12' cache: 'pip' - name: Install requirements shell: bash run: | bash .github/scripts/uv_ci_install.sh ".[yolo]" - name: Run obb tracking method shell: bash run: | source .venv/bin/activate echo "Format,OBB" > obb.csv for tracker in $TRACKERS; do if boxmot track --yolo-model yolo11s-obb.pt --reid-model lmbn_n_duke.pt --tracking-method $tracker --source "$SMOKE_SOURCE" --project runs/ci_smoke --name "$tracker" --exist-ok --save-txt; then OBB_STATUS="✅" else OBB_STATUS="❌" fi TRACKER_NAME=$(echo $tracker | awk '{print toupper(substr($0,1,1)) tolower(substr($0,2))}') echo "$TRACKER_NAME,$OBB_STATUS" >> obb.csv done - name: Show OBB Results shell: bash run: | column -s, -t obb.csv pose: runs-on: ubuntu-latest outputs: status: ${{ job.status }} steps: - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.12' - run: | bash .github/scripts/uv_ci_install.sh ".[yolo]" - name: Test tracking with pose models env: IMG: ./assets/MOT17-mini/train/MOT17-02-FRCNN/img1/000001.jpg run: | source .venv/bin/activate boxmot track --yolo-model yolov8n-pose.pt --imgsz 320 --source $IMG yolos: runs-on: ubuntu-latest outputs: status: ${{ job.status }} steps: - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.11' - run: | bash .github/scripts/uv_ci_install.sh ".[yolo]" # Export so that setuptools picks up clang instead of gcc echo "CC=clang" >> $GITHUB_ENV echo "CXX=clang++" >> $GITHUB_ENV - name: Test tracking with pose models env: IMG: ./assets/MOT17-mini/train/MOT17-02-FRCNN/img1/000001.jpg run: | source .venv/bin/activate uv pip list boxmot track --yolo-model yolov10n.pt --imgsz 320 --source $IMG boxmot track --yolo-model yolox_n.pt --imgsz 320 --source $IMG boxmot track --yolo-model rtdetr_v2_r18vd --imgsz 320 --source $IMG seg: runs-on: ubuntu-latest outputs: status: ${{ job.status }} steps: - id: set_result run: echo "::set-output name=result::success" - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.12' - name: Install dependencies run: | bash .github/scripts/uv_ci_install.sh ".[yolo]" - name: Test tracking with seg models env: IMG: ./assets/MOT17-mini/train/MOT17-02-FRCNN/img1/000001.jpg run: | source .venv/bin/activate boxmot track --tracking-method bytetrack --yolo-model yolov8n-seg.pt --source $IMG export: runs-on: ubuntu-latest outputs: status: ${{ job.status }} steps: - id: set_result run: echo "::set-output name=result::success" - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.12' - name: Install dependencies run: | sed -i'' -e 's/index = "torch-gpu"/index = "torch-cpu"/g' pyproject.toml python -m pip install --upgrade pip setuptools wheel uv uv sync --extra yolo --extra onnx --extra openvino --extra tflite - name: Test export models run: | source .venv/bin/activate boxmot export --include torchscript --include onnx --include openvino --include tflite --device cpu --batch-size 3 --dynamic - name: Smoke test exported engines if: always() env: IMG: ./assets/MOT17-mini/train/MOT17-02-FRCNN/img1/000001.jpg run: | source .venv/bin/activate TFLITE_MODEL=$(find models -name '*_float32.tflite' | head -n 1) engines=(torchscript onnx openvino tflite) model_paths=( "models/osnet_x0_25_msmt17.torchscript" "models/osnet_x0_25_msmt17.onnx" "models/osnet_x0_25_msmt17_openvino_model" "$TFLITE_MODEL" ) echo "Engine,Export,Inference,Model" > engine_results.csv failed=0 for i in "${!engines[@]}"; do engine="${engines[$i]}" model_path="${model_paths[$i]}" export_status="❌" inference_status="❌" if [ -n "$model_path" ] && [ -e "$model_path" ]; then export_status="✅" if boxmot track --reid-model "$model_path" --imgsz 320 --source "$IMG"; then inference_status="✅" else failed=1 fi else failed=1 fi echo "$engine,$export_status,$inference_status,$model_path" >> engine_results.csv done column -s, -t engine_results.csv exit "$failed" - name: Summarize exported engines if: always() run: | if [ ! -f engine_results.csv ]; then echo "## Export and inference engines" >> "$GITHUB_STEP_SUMMARY" echo >> "$GITHUB_STEP_SUMMARY" echo "No engine summary was generated." >> "$GITHUB_STEP_SUMMARY" exit 0 fi successful_engines=$(awk -F, 'NR > 1 && $2 == "✅" && $3 == "✅" {print $1}' engine_results.csv) { echo "## Export and inference engines" echo if [ -n "$successful_engines" ]; then echo "Successful export and inference engines:" echo while IFS= read -r engine; do [ -n "$engine" ] && echo "- $engine" done <<< "$successful_engines" else echo "No engines completed both export and inference successfully." fi echo echo "| Engine | Export | Inference | Model |" echo "| --- | --- | --- | --- |" while IFS=, read -r engine export_status inference_status model_path; do if [ "$engine" = "Engine" ]; then continue fi echo "| $engine | $export_status | $inference_status | \`$model_path\` |" done < engine_results.csv } >> "$GITHUB_STEP_SUMMARY" tests: runs-on: ubuntu-latest outputs: status: ${{ job.status }} steps: - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.12' - run: | bash .github/scripts/uv_ci_install.sh ".[yolo,evolve,onnx,openvino,tflite]" --group dev --group test --group docs - name: Pytest tests # after tracking options as this does not download models env: # directory of PyPi package to be tested PACKAGE_DIR: boxmot # minimum acceptable test coverage COVERAGE_FAIL_UNDER: 25 run: | uv run python -m pytest --cov="$PACKAGE_DIR" --cov-report=html -v -s tests uv run python -m coverage report --fail-under="$COVERAGE_FAIL_UNDER" # test-gpu: # runs-on: gpu-latest # outputs: # status: ${{ job.status }} # steps: # - uses: actions/checkout@v4 # - name: Set up Python # uses: actions/setup-python@v5 # with: # python-version: '3.12' # - run: | # python -m pip install --upgrade pip setuptools wheel poetry # poetry config virtualenvs.create false # poetry install --with test # - name: Pytest tests # after tracking options as this does not download models # env: # # directory of PyPi package to be tested # PACKAGE_DIR: boxmot # # minimum acceptable test coverage # COVERAGE_FAIL_UNDER: 25 # shell: bash # for Windows compatibility # run: | # pytest --cov=$PACKAGE_DIR --cov-report=html -v tests/test_cuda.py check-failures: needs: - trackers - metrics - obb - tune - export - tests - pose - seg - yolos if: always() # This ensures the job runs regardless of previous job failures runs-on: ubuntu-latest steps: - name: Prepare environment variables run: | echo "trackers_STATUS=${{ needs.trackers.result }}" >> $GITHUB_ENV echo "metrics_STATUS=${{ needs.metrics.result }}" >> $GITHUB_ENV echo "obb_STATUS=${{ needs.obb.result }}" >> $GITHUB_ENV echo "tune_STATUS=${{ needs.tune.result }}" >> $GITHUB_ENV echo "export_STATUS=${{ needs.export.result }}" >> $GITHUB_ENV echo "tests_STATUS=${{ needs.tests.result }}" >> $GITHUB_ENV echo "pose_STATUS=${{ needs.pose.result }}" >> $GITHUB_ENV echo "seg_STATUS=${{ needs.seg.result }}" >> $GITHUB_ENV echo "yolos_STATUS=${{ needs.yolos.result }}" >> $GITHUB_ENV - name: Check for failures and create summary run: | summary="" failed=false # Print all environment variables, grep for those ending with _STATUS, then loop for var in $(printenv | grep '_STATUS$'); do job_status="${var##*=}" # Extract the status part job_name="${var%%=*}" # Extract the job name part if [[ "$job_status" != "success" ]]; then summary+="$job_name failed with status: $job_status\n" failed=true fi done if [[ "$failed" = false ]]; then summary="All jobs succeeded." fi echo "Summary: $summary" ================================================ FILE: .github/workflows/docker.yml ================================================ name: Docker Image CI on: push: branches: - main workflow_dispatch: jobs: build-and-push: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Login to GitHub Container Registry uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Extract version from pyproject.toml id: extract_version run: | version=$(python3 -c 'import tomllib, sys; data = tomllib.loads(open("pyproject.toml","r", encoding="utf-8").read()); sys.stdout.write(data["project"]["version"])') echo "VERSION=$version" >> "$GITHUB_ENV" - name: Build and push Docker image uses: docker/build-push-action@v6 with: push: true tags: | boxmot/boxmot:${{ env.VERSION }} boxmot/boxmot:latest ================================================ FILE: .github/workflows/docs.yml ================================================ # name: Deploy MkDocs Docs # on: # push: # branches: [master] # permissions: # contents: write # jobs: # deploy: # runs-on: ubuntu-latest # steps: # - uses: actions/checkout@v4 # - uses: actions/setup-python@v4 # with: # python-version: '3.10' # - name: Install MkDocs and plugins # run: | # python -m pip install --upgrade pip setuptools wheel uv # uv sync --group dev --group test --group docs # - name: Symlink README into docs # run: cp --remove-destination README.md docs/index.md # - name: Extract code examples (with section titles) from README # run: | # cat <<'AWK' > /tmp/extract_examples.awk # /^##[[:space:]]*.*Code Examples/ { insec=1; next } # insec && /^##[[:space:]]/ { exit } # insec { # # capture text inside ... # if ($0 ~ //) { # t=$0 # sub(/.*[[:space:]]*/, "", t) # sub(/[[:space:]]*<\/summary>.*/, "", t) # title=t # } # # start of fenced code block # if ($0 ~ /^[[:space:]]*```(bash|python)/) { # if (title != "") { print "# " title } # code=1; print; next # } # # end of fenced code block # if (code && $0 ~ /^[[:space:]]*```[[:space:]]*$/) { code=0; print; next } # if (code) print # } # AWK # awk -f /tmp/extract_examples.awk README.md > docs/quickstart.md # - name: Expose project on PYTHONPATH # run: echo "PYTHONPATH=${GITHUB_WORKSPACE}" >> "$GITHUB_ENV" # - name: Deploy to GitHub Pages # env: # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # run: | # source .venv/bin/activate # git config --local user.email yolov5.deepsort.pytorch@gmail.com # git config --local user.name mikel-brostrom # mkdocs gh-deploy --clean --force --verbose ================================================ FILE: .github/workflows/label.yml ================================================ name: Label issues on: issues: types: - opened - reopened jobs: label_issues: name: "Issue: add labels" if: ${{ github.event.action == 'opened' || github.event.action == 'reopened' }} runs-on: ubuntu-latest permissions: issues: write steps: - name: Label new issues uses: actions/github-script@v6 with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | // Combine title + body const title = context.payload.issue.title || '' const body = context.payload.issue.body || '' const content = `${title}\n${body}` // Always start with triage const labels = ['triage'] // Map each directory/tracker → regex const mapping = { 'reid' : /\b(?:appearance|re[- ]?id|re[- ]?identification)\b/i, 'kf' : /\b(?:kf|kalman[- ]?filter)s?\b/i, 'postprocessing' : /\bpostprocessing\b/i, // engine-related categories 'engine' : /\b(engine|cli|detectors|track|val)\b/i, 'tuning' : /\b(?:tuning|hyperparameter(?:s)?|evolution|evolve)\b/i, 'evaluation' : /\b(?:evaluation|eval(?:uation)?|val(?:idation)?)\b/i, 'tracking' : /\b(?:track(?:ing)?|track)\b/i, // individual tracker labels 'boosttrack' : /\bboosttrack\b/i, 'botsort' : /\bbotsort\b/i, 'bytetrack' : /\bbytetrack\b/i, 'deepocsort' : /\bdeepocsort\b/i, 'hybridsort' : /\bhybridsort\b/i, 'ocsort' : /\bocsort\b/i, 'strongsort' : /\bstrongsort\b/i, 'tracktrack' : /\btracktrack\b/i, // per-dataset labels 'datasets' : /\dataset?\b/i, 'mot17' : /\bMOT17\b/i, 'mot20' : /\bMOT20\b/i, 'dancetrack' : /\bDanceTrack\b/i, } // Add any matching labels for (const [label, regex] of Object.entries(mapping)) { if (regex.test(content)) { labels.push(label) } } // Apply them in one call await github.rest.issues.addLabels({ owner: context.repo.owner, repo: context.repo.repo, issue_number: context.issue.number, labels }) ================================================ FILE: .github/workflows/publish.yml ================================================ name: Publish to PyPI on: push: branches: [main] workflow_dispatch: inputs: pypi: description: 'Target repository' required: true type: choice default: 'pypi' options: - pypi - testpypi bump_type: description: 'Version bump type' required: true type: choice default: 'patch' options: - patch - minor - major jobs: pypi-upload: name: Publish runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 with: # Personal Access Token (PAT) so that git push # is authenticated such that you and can bypass the protected ref token: ${{ secrets.RELEASE_PAT }} - name: Set up Python environment uses: actions/setup-python@v5 with: python-version: '3.10' - name: Install dependencies run: | python -m pip install --upgrade pip setuptools wheel uv poetry uv sync - name: Increase uv path version and add id: get_version run: | source .venv/bin/activate git config --local user.email yolov5.deepsort.pytorch@gmail.com git config --local user.name mikel-brostrom bump_type=${{ github.event.inputs.bump_type }} commit_message=$(poetry version $bump_type) new_version=$(echo $commit_message | grep -oE '[0-9]+\.[0-9]+\.[0-9]+$') git add pyproject.toml uv build --no-sources echo "commit_message=$commit_message" >> $GITHUB_OUTPUT echo "new_version=$new_version" >> $GITHUB_OUTPUT du -sh dist/* if: ${{ success() }} - name: Update __init__.py version and add run: | sed -i "s/__version__ = '.*'/__version__ = '${{ steps.get_version.outputs.new_version }}'/" boxmot/__init__.py git add boxmot/__init__.py if: ${{ success() }} - name: Update citation pkg version and add run: | sed -i "s/version: .*/version: ${{ steps.get_version.outputs.new_version }}/" CITATION.cff git add CITATION.cff if: ${{ success() }} - name: Commit and push updated version run: | if [ "${{ github.event.inputs.pypi }}" == "pypi" ]; then git commit -m "${{ steps.get_version.outputs.commit_message }}" git push fi if: ${{ success() }} - name: Publish to PyPI run: | if [ "${{ github.event.inputs.pypi }}" == "pypi" ]; then uv publish --token ${{ secrets.PYPI_TOKEN }} else uv publish --index testpypi --token ${{ secrets.TEST_PYPI_TOKEN }} fi if: ${{ success() }} - name: Create code release id: create_release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: v${{ steps.get_version.outputs.new_version }} release_name: Release v${{ steps.get_version.outputs.new_version }} draft: false prerelease: false if: ${{ success() }} ================================================ FILE: .github/workflows/stale.yml ================================================ name: Close stale issues on: schedule: - cron: "0 0 * * *" # At the end of every day jobs: stale: runs-on: ubuntu-latest steps: - uses: actions/stale@v9 with: repo-token: ${{ secrets.GITHUB_TOKEN }} stale-issue-message: | 👋 Hello, this issue has been automatically marked as stale because it has not had recent activity. Please note it will be closed if no further activity occurs. Feel free to inform us of any other **issues** you discover or **feature requests** that come to mind in the future. Pull Requests (PRs) are also always welcomed! stale-pr-message: 'This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.' days-before-stale: 10 days-before-close: 3 exempt-issue-labels: 'documentation,tutorial' operations-per-run: 100 # The maximum number of operations per run, used to control rate limiting. ================================================ FILE: .github/workflows/update.yml ================================================ name: Update Dependencies on: workflow_dispatch: # Allows you to manually trigger the workflow jobs: update-dependencies: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.8' - name: Install Poetry run: pip install poetry - name: Update dependencies run: | poetry install poetry update poetry lock - name: Commit changes run: | git config --local user.email yolov5.deepsort.pytorch@gmail.com git config --local user.name mikel-brostrom git add . git commit -m "Update dependencies" - name: Push changes run: git push origin HEAD:dependabot/update-dependencies - name: Create Pull Request uses: peter-evans/create-pull-request@v7 with: token: ${{ secrets.GITHUB_TOKEN }} branch: dependabot/update-dependencies title: "Update dependencies" body: "This is an automated pull request to update dependencies." delete-branch: true # - name: Auto-merge Pull Request # uses: pascalgn/automerge-action@v0.16.3 # with: # token: ${{ secrets.GITHUB_TOKEN }} # merge-method: squash # env: # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} ================================================ FILE: .gitignore ================================================ .vscode/ .venv/ .eggs/ env/ *.DS_Store .coverage htmlcov/ # interpreter bytecode __pycache__/ __MACOSX/ # experiment results runs/ videos/ # experiment files *.pkl # partial downlaods *.part # Downloaded weights weights/*.pt weights/*.torchscript weights/*.onnx weights/*_openvino_model weights/*.engine weights/*.tflite # evaluation tools folder boxmot/engine/trackeval/ # zip files *.zip # exports *_openvino_model *.torchscript *.pt *.pth *.pth *.onnx *.engine *.data # interactive plots *.html *.gif *.pdf # tf models *saved_model/ tf_models/ # distribution / packaging build/ dist/ *.egg-info/ # cmc debug images boxmot/motion/cmc/*.jpg # json outputs *_output.json ================================================ FILE: .pre-commit-config.yaml ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v5.0.0 hooks: - id: check-added-large-files # prevents giant files from being committed. exclude: '.*vocab*.' - id: check-case-conflict # checks for files that would conflict in case-insensitive filesystems. - id: check-merge-conflict # checks for files that contain merge conflict strings. - id: check-yaml # checks yaml files for parseable syntax. - id: detect-private-key # detects the presence of private keys. - id: end-of-file-fixer # ensures that a file is either empty, or ends with one newline. - id: fix-byte-order-marker # removes utf-8 byte order marker. - id: mixed-line-ending # replaces or checks mixed line ending. - id: requirements-txt-fixer # sorts entries in requirements.txt. - id: trailing-whitespace # trims trailing whitespace. - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.8.4 hooks: - id: ruff args: [ --fix ] - id: ruff-format - repo: https://github.com/Lucas-C/pre-commit-hooks rev: v1.5.5 hooks: - id: insert-license files: .*\.py$ args: - --license-filepath - assets/file_banner.txt ================================================ FILE: AGENTS.md ================================================ # AGENTS.md – Working Guidelines for **BoxMOT** > These instructions apply to all directories in this repository. \ > Nested `AGENTS.md` files (if added later) override rules for their subtrees. --- ## 1. Environment & Tooling ### Python & `uv` - Use **Python 3.11** (or the version configured in `pyproject.toml`). - Install `uv` (safe to rerun even if present): ```bash pip install uv ``` - Install dependencies using the existing workflow: ```bash uv sync --all-extras --all-groups ``` - `uv` will create a `.venv` in the project root. Prefer running everything through `uv` so you don’t have to manage activation manually: ```bash # Generic command wrapper uv run [args...] ``` #### Running with the package context Always run Python entry points as modules from the repo root, not as loose scripts, so that `from boxmot...` imports work correctly: ```bash # ✅ Good – uses package context uv run python -m boxmot.engine.cli --help # ❌ Avoid – can break imports (e.g., ModuleNotFoundError: boxmot) python boxmot/engine/cli.py --help PYTHONPATH=. python boxmot/engine/cli.py --help ``` If you really need to use the virtualenv directly: ```bash source .venv/bin/activate python -m boxmot.engine.cli --help ``` ## 2. Workflow - Create feature branches for work: ```bash git checkout -b codex/ ``` - Keep changes focused: one logical change per PR / task. - Follow the existing structure and conventions of the modules you touch. ## 3. Coding Conventions - Prefer Python type hints and docstrings for any new or modified functions/classes. - Keep imports: - Sorted. - Minimal (remove unused). - Do not wrap imports in `try/except` unless there is a very specific reason and it’s clearly documented. **Logging** - Use the existing logger (e.g., `LOGGER`) rather than `print` in library code. - It’s fine to `print` in CLI entry points when it improves UX, but prefer consistent logging style. **Match the surrounding style** - Naming, spacing, line wrapping, click option style, etc. - Reuse helper patterns (e.g., decorators like `core_options`, shared parsing helpers). ## 4. CLI-Specific Guidelines When editing `boxmot/engine/cli.py` or other CLIs: - Group options logically (e.g., input, inference, output, display), but maintain backwards-compatible option names and defaults where possible. - Prefer reusable decorators for option groups (`core_options`, `plural_model_options`, etc.). - Use parsing helpers (e.g., `parse_tuple`, `parse_hw_tuple`) rather than ad-hoc parsing in every command. - Keep help text accurate and concise; if you change behavior, update: - The option help strings. - Any CLI examples in `README.md`, `docs/`, or `examples/`. When adding a new command: - Reuse `make_args` to build argparse-like namespaces. - Align with existing subcommands’ style (`track`, `generate`, `eval`, `tune`, `export`). ## 5. Commit & PR Expectations Commit messages should start with one of: - `feat:` – new feature - `fix:` – bug fix - `refactor:` – internal-only changes / cleanup - `docs:` – documentation only - `ci:` – CI / tooling changes - `perf:` – performance improvements Each commit should represent a coherent change; avoid mixing unrelated edits. PR / task descriptions should include: - A short summary of user-facing changes. - A Testing section (see below). - Any follow-up work or known limitations. ## 6. Testing & Verification **What to run** - Default: run the pytest suite from the repo root: ```bash uv run pytest ``` - If the full suite is too heavy, at least run the tests relevant to your change, e.g.: ```bash uv run pytest tests/test_cli.py uv run pytest tests/path/to/affected_module_tests.py ``` - When touching CLI / engine entry points, it’s useful to smoke-test common commands: ```bash uv run python -m boxmot.engine.cli --help # Example invocations (adjust source/paths as available in your env) uv run python -m boxmot.engine.cli track --source ... uv run python -m boxmot.engine.cli generate --source ... uv run python -m boxmot.engine.cli eval --source ... uv run python -m boxmot.engine.cli tune --source ... ``` **If tests or commands cannot be run** Sometimes the provided environment is missing GPUs, large datasets, or external services. In that case: 1. Try the following first: ```bash uv sync --all-extras --all-groups uv run python -m boxmot.engine.cli --help uv run pytest ``` 2. If something still fails for reasons outside your control (e.g., missing CUDA runtime, no network for model downloads, etc.), do not fake test results. Instead, document clearly in your Testing section, for example: ```text Testing - uv run python -m boxmot.engine.cli --help ✅ - uv run pytest ❌ (not run) Reason: pytest requires GPU / CUDA dependencies that are not available in the current container. Please run `uv sync --all-extras --all-groups` and `uv run pytest` in a fully configured environment. ``` - Include the exact commands you ran and a brief reason why anything couldn’t be completed. ## 7. Documentation & Examples - Update docs or examples when behavior or interfaces change, especially: - CLI options or defaults. - New or removed commands. - Keep README snippets and CLI help text in sync with code updates. - When changing data formats or output directories, update any references in: - `docs/` - `examples/` - `tests/` ## 8. Performance & Safety - Be mindful of model weights and large assets: - Do not commit generated artifacts or large binaries. - Prefer referencing weights via URLs or documented download steps. - Where practical: - Use deterministic or seeded behavior for tests/examples. - Avoid unnecessary heavy computation in unit tests. ## 9. Integrating a New Tracker (Checklist) 1) Implement the tracker - Add a new module under `boxmot/trackers//` (e.g., `sfsort.py`). - Implement a tracker class that subclasses `BaseTracker` and defines `update()`. 2) Register the tracker - Add the tracker to `TRACKER_MAPPING` in `boxmot/trackers/tracker_zoo.py`. - Export it in `boxmot/trackers/__init__.py` and `boxmot/__init__.py`. - Add the tracker name to the `TRACKERS` list in `boxmot/__init__.py`. 3) Add default configuration - Create `boxmot/configs/trackers/.yaml` with default parameters and tuning ranges. 4) Update docs - Add a tracker doc page in `docs/trackers/.md`. - Add the tracker to `mkdocs.yml` nav. - Mention it in `docs/index.md` and `README.md` where trackers are listed. 5) Update tests - Register the tracker in `tests/test_config.py` lists so it’s covered by unit tests. 6) Update CI/benchmarks - Add the tracker name to workflow matrices/lists in `.github/workflows/`. 7) Commit new files - Ensure new tracker code, config, and docs are staged and pushed. ## 10. Integrating OBB Support for New Trackers When adding oriented bounding box (OBB) support, follow this generic implementation guide. ### Core requirements - Set `supports_obb = True` on the tracker class. - Keep `@BaseTracker.setup_decorator` enabled so detection shape can trigger OBB mode automatically. - Reuse shared detection plumbing from: - `boxmot/trackers/basetracker.py` - `boxmot/trackers/detection_layout.py` - Do not hardcode column indices if layout helpers already provide them: - `self.detection_layout.boxes(...)` - `self.detection_layout.confidences(...)` - `self.detection_layout.classes(...)` - `self.detection_layout.with_detection_indices(...)` ### Data contract - Input detections: - AABB: `(x1, y1, x2, y2, conf, cls)` (6 columns) - OBB: `(cx, cy, w, h, angle, conf, cls)` (7 columns) - Output tracks: - AABB: 8 columns - OBB: 9 columns `(cx, cy, w, h, angle, id, conf, cls, det_ind)` ### Implementation checklist 1) Split AABB and OBB parsing paths - Add explicit detection parsing/init branches for each mode. - Preserve `conf`, `cls`, and `det_ind` in both paths. 2) Use a motion model that supports OBB state - Keep AABB and OBB state/measurement handling explicit. - If OBB adds dimensions (for example angle), ensure `initiate`, `predict`, and `update` all use matching state sizes. - For KF-based trackers, keep angle dynamics explicit (`theta`, `v_theta`/`omega`) and prefer damping over hard resets. - For non-KF trackers, maintain per-track angular velocity state and apply damping during OBB updates. 3) Keep mode-dependent predict/update logic - If velocity/state reset behavior differs between AABB and OBB, implement separate branches. - Avoid combining incompatible state assumptions in one path. - Do not hard-zero OBB angular velocity after every update unless there is a tracker-specific reason. - Preferred default: damp angular velocity each update (for example `omega *= 0.8` or equivalent blend). 4) Wire OBB-aware association - Ensure association uses OBB geometry in OBB mode. - For IoU distance matching, pass `is_obb=self.is_obb` where applicable. - If using `self.asso_func`, verify the OBB association mode is selected in OBB mode. 5) Preserve geometry accessors for downstream consumers - Expose `xywha` in OBB mode. - Keep `xyxy` available as enclosing AABB for compatibility where needed. - Maintain `history_observations` and `id` for plotting and lifecycle logic. 6) Keep OBB plotting/history stable - Append post-update OBB geometry to `history_observations`. - If angles are used for plotting, add angle continuity handling to avoid wrap/flip artifacts. - Before OBB update, resolve equivalent rectangle forms relative to current state: - `(w, h, theta)` - `(w, h, theta + pi)` - `(h, w, theta + pi/2)` - `(h, w, theta - pi/2)` - Choose the candidate closest to the reference state, then apply damped angular update. 7) Emit schema-correct outputs - AABB outputs must remain 8 columns. - OBB outputs must remain 9 columns in the exact order: `(cx, cy, w, h, angle, id, conf, cls, det_ind)`. ### Testing expectations At minimum, add or update tests to cover: - tracker accepts OBB detections - tracker returns 9-column OBB outputs - OBB association path uses oriented geometry - OBB plotting/history path remains stable across frames - OBB angle update is smooth: - track angle moves toward the new detection - track angle does not jump the full detection delta when damping is enabled If shared OBB plumbing changes, also consider extending: - `tests/unit/test_inference.py` - `tests/unit/test_base_backend.py` ### Design rule Use shared OBB plumbing for detection mode/layout and keep tracker-specific OBB internals limited to algorithm-specific motion and association details. ================================================ FILE: CITATION.cff ================================================ cff-version: 16.0.11 message: >- If you use this software, please cite it using the metadata from this file. authors: - given-names: Mikel family-names: Broström orcid: "https://orcid.org/0009-0009-0540-9829" abstract: >- BoxMOT is a pluggable collection of state-of-the-art multi-object tracking modules for segmentation, object detection, and pose estimation models. title: "BoxMOT: pluggable state-of-the-art multi-object tracking modules" repository-code: "https://github.com/mikel-brostrom/boxmot" license: AGPL-3.0 version: 16.0.11 type: software ================================================ FILE: CONTRIBUTING.md ================================================ # Contributing Thank you for improving this project! Please follow these guidelines. # Pull Requests Proposed workflow ```bash # Fork the repository on GitHub # Then clone your fork locally git clone https://github.com/your-username/boxmot.git cd boxmot pip install uv uv sync # builds & installs boxmot in editable mode # Create a branch git checkout -b feature/short-desc # Develop # ... # Run functionality where changes were introduced python boxmot/engine/cli.py track --yolo-model yolov8x.pt --tracking-method bytetrack --source my_video.mp4 --classes 0 python boxmot/engine/cli.py generate --yolo-model yolov8x.pt --tracking-method bytetrack --source my_video.mp4 --classes 0 python boxmot/engine/cli.py eval --yolo-model yolov8x.pt --tracking-method bytetrack --source my_video.mp4 --classes 0 python boxmot/engine/cli.py tune --yolo-model yolov8x.pt --tracking-method bytetrack --source my_video.mp4 --classes 0 # Run tests uv run pytest # Commit & push git add . git commit -m "type: summary" git push origin feature/short-desc # Open a pull request # 1. On GitHub, go to your fork: https://github.com/your-username/boxmot # 2. Click contribute ``` ================================================ FILE: Dockerfile ================================================ # Build the image and tag it for easier later reference # Example: # docker build -t mikel-brostrom/boxmot . # Base image: Nvidia PyTorch https://ngc.nvidia.com/catalog/containers/nvidia:pytorch FROM pytorch/pytorch:2.3.1-cuda11.8-cudnn8-runtime # Update and install necessary packages RUN apt update && apt install -y git # Set the parent working directory WORKDIR /usr/src # Clone the repository with submodules into a subdirectory 'boxmot' RUN git clone https://github.com/mikel-brostrom/boxmot.git -b master boxmot # Set the working directory to the cloned repository WORKDIR /usr/src/boxmot # Install pip packages and Poetry dependencies RUN python3 -m pip install --upgrade pip poetry && \ pip install uv && \ uv sync --all-extras --all-groups # ------------------------------------------------------------------------------ # A Docker container exits when its main process finishes, which in this case is bash. # To avoid this, use detach mode. # Run interactively with all GPUs accessible: # docker run -it --gpus all mikel-brostrom/boxmot bash # Run interactively with specific GPUs accessible (e.g., first and third GPU): # docker run -it --gpus '"device=0,2"' mikel-brostrom/boxmot bash # Run in detached mode (if you exit the container, it won't stop): # Create a detached Docker container from an image: # docker run -it --gpus all -d mikel-brostrom/boxmot # Access the running container: # docker exec -it bash # When you are done with the container, stop it by: # docker stop ================================================ FILE: LICENSE ================================================ GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU Affero General Public License is a free, copyleft license for software and other kinds of works, specifically designed to ensure cooperation with the community in the case of network server software. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, our General Public Licenses are intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. Developers that use our General Public Licenses protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License which gives you legal permission to copy, distribute and/or modify the software. A secondary benefit of defending all users' freedom is that improvements made in alternate versions of the program, if they receive widespread use, become available for other developers to incorporate. Many developers of free software are heartened and encouraged by the resulting cooperation. However, in the case of software used on network servers, this result may fail to come about. The GNU General Public License permits making a modified version and letting the public access it on a server without ever releasing its source code to the public. The GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified source code becomes available to the community. It requires the operator of a network server to provide the source code of the modified version running there to the users of that server. Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version. An older license, called the Affero General Public License and published by Affero, was designed to accomplish similar goals. This is a different license, not a version of the Affero GPL, but Affero has released a new version of the Affero GPL which permits relicensing under this license. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU Affero General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Remote Network Interaction; Use with the GNU General Public License. Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the work with which it is combined will remain governed by version 3 of the GNU General Public License. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU Affero General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU Affero General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU Affero General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU Affero General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If your software can interact with users remotely through a computer network, you should also make sure that it provides a way for users to get its source. For example, if your program is a web application, its interface could display a "Source" link that leads users to an archive of the code. There are many ways you could offer source, and different solutions will be better for different programs; see section 13 for the specific requirements. You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU AGPL, see . ================================================ FILE: MANIFEST.in ================================================ include requirements.txt include LICENSE include setup.py include boxmot/reid/backbones/clip/clip/bpe_simple_vocab_16e6.txt.gz recursive-include boxmot *.yaml recursive-exclude __pycache__ * ================================================ FILE: README.md ================================================
BoxMOT demo
mikel-brostrom%2Fboxmot | Trendshift [![CI](https://github.com/mikel-brostrom/boxmot/actions/workflows/ci.yml/badge.svg)](https://github.com/mikel-brostrom/boxmot/actions/workflows/ci.yml) [![PyPI version](https://badge.fury.io/py/boxmot.svg)](https://badge.fury.io/py/boxmot) [![downloads](https://static.pepy.tech/badge/boxmot)](https://pepy.tech/project/boxmot) [![license](https://img.shields.io/badge/license-AGPL%203.0-blue)](https://github.com/mikel-brostrom/boxmot/blob/master/LICENSE) [![python-version](https://img.shields.io/pypi/pyversions/boxmot)](https://badge.fury.io/py/boxmot) [![colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/18nIqkBr68TkK8dHdarxTco6svHUJGggY?usp=sharing) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.8132989.svg)](https://doi.org/10.5281/zenodo.8132989) [![docker pulls](https://img.shields.io/docker/pulls/boxmot/boxmot?logo=docker)](https://hub.docker.com/r/boxmot/boxmot) [![discord](https://img.shields.io/discord/1377565354326495283?logo=discord&label=discord&labelColor=fff&color=5865f2)](https://discord.gg/tUmFEcYU4q) [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/mikel-brostrom/boxmot)
BoxMOT gives you one CLI and one Python API for running, evaluating, tuning, and exporting modern multi-object tracking pipelines. Swap trackers without rewriting your detector stack, reuse cached detections and embeddings across experiments, and benchmark locally on MOT-style datasets.
[Installation](#installation) • [Metrics](#benchmark-results-mot17-ablation-split) • [CLI](#cli) • [Python API](#python-api) • [Detection Layouts](#detection-layouts) • [Examples](#examples) • [Contributing](#contributing)
## Why BoxMOT - One interface for `track`, `generate`, `eval`, `tune`, and `export`. - Works with detection, segmentation, and pose models as long as they emit boxes. - Supports both motion-only trackers and motion + appearance trackers. - Reuses saved detections and embeddings to speed up repeated evaluation and tuning. - Handles both AABB and OBB detection layouts natively. - Includes local benchmarking workflows for MOT17, MOT20, and DanceTrack ablation splits. ## Installation BoxMOT supports Python `3.9` through `3.12`. ```bash pip install boxmot boxmot --help ``` ## Benchmark Results (MOT17 ablation split)
| Tracker | Status | OBB | HOTA↑ | MOTA↑ | IDF1↑ | FPS | | :-----: | :-----: | :-: | :---: | :---: | :---: | :---: | | [botsort](https://arxiv.org/abs/2206.14651) | ✅ | ✅ | 69.418 | 78.232 | 81.812 | 12 | | [boosttrack](https://arxiv.org/abs/2408.13003) | ✅ | ❌ | 69.253 | 75.914 | 83.206 | 13 | | [strongsort](https://arxiv.org/abs/2202.13514) | ✅ | ❌ | 68.05 | 76.185 | 80.763 | 11 | | [deepocsort](https://arxiv.org/abs/2302.11813) | ✅ | ❌ | 67.796 | 75.868 | 80.514 | 12 | | [bytetrack](https://arxiv.org/abs/2110.06864) | ✅ | ✅ | 67.68 | 78.039 | 79.157 | 720 | | [hybridsort](https://arxiv.org/abs/2308.00783) | ✅ | ❌ | 67.39 | 74.127 | 79.105 | 25 | | [ocsort](https://arxiv.org/abs/2203.14360) | ✅ | ✅ | 66.441 | 74.548 | 77.899 | 890 | | [sfsort](https://arxiv.org/pdf/2404.07553) | ✅ | ✅ | 62.653 | 76.87 | 69.184 | 6000 | Evaluation was run on the second half of the MOT17 training set because the validation split is not public and the ablation detector was trained on the first half. Results used [pre-generated detections and embeddings](https://github.com/mikel-brostrom/boxmot/releases/download/v11.0.9/runs2.zip) with each tracker configured from its default repository settings.
## CLI BoxMOT provides a unified CLI with a simple syntax: ```bash boxmot MODE [OPTIONS] [DETECTOR] [REID] [TRACKER] ``` Modes: ```text track run detector + tracker on webcam, images, videos, directories, or streams generate precompute detections and embeddings for later reuse eval benchmark on MOT-style datasets and apply optional postprocessing tune optimize tracker hyperparameters with multi-objective search export export ReID models to deployment formats ``` Use `boxmot MODE --help` for mode-specific flags. Quick examples: ```bash # Track a webcam feed boxmot track yolov8n osnet_x0_25_msmt17 deepocsort --source 0 --show # Track a video, draw trajectories, and save the result boxmot track yolov8n osnet_x0_25_msmt17 botsort --source video.mp4 --show-trajectories --save # Evaluate on the MOT17 ablation split with GBRC postprocessing boxmot eval yolox_x_MOT17_ablation lmbn_n_duke boosttrack --source MOT17-ablation --postprocessing gbrc --verbose # Generate reusable detections and embeddings boxmot generate yolov8n osnet_x0_25_msmt17 --source ./assets/MOT17-mini/train # Tune tracker hyperparameters on a MOT-style dataset boxmot tune yolov8n osnet_x0_25_msmt17 ocsort --source ./assets/MOT17-mini/train --n-trials 10 # Export a ReID model to ONNX and TensorRT with dynamic input boxmot export --weights osnet_x0_25_msmt17.pt --include onnx --include engine --dynamic ``` Common `--source` values include `0`, `img.jpg`, `video.mp4`, `path/`, `path/*.jpg`, YouTube URLs, and RTSP / RTMP / HTTP streams. If you want to track only selected classes, pass a comma-separated list: ```bash boxmot track yolov8s --source 0 --classes 16,17 ``` ## Python API If you already have detections from your own model, call `tracker.update(...)` once per frame inside your video loop: ```python from pathlib import Path import cv2 import numpy as np from boxmot import BotSort tracker = BotSort( reid_weights=Path("osnet_x0_25_msmt17.pt"), device="cpu", half=False, ) cap = cv2.VideoCapture("video.mp4") while True: ok, frame = cap.read() if not ok: break # Replace this with your detector output for the current frame. # Expected AABB shape: (N, 6) = (x1, y1, x2, y2, conf, cls) detections = np.empty((0, 6), dtype=np.float32) # detections = your_detector(frame) tracks = tracker.update(detections, frame) tracker.plot_results(frame, show_trajectories=True) print(tracks) # AABB output: (N, 8) = (x1, y1, x2, y2, id, conf, cls, det_ind) cv2.imshow("BoxMOT", frame) if cv2.waitKey(1) & 0xFF == ord("q"): break cap.release() cv2.destroyAllWindows() ``` For end-to-end detector integrations, see the notebooks in [examples](examples). ## Detection Layouts BoxMOT switches tracking mode from the detection tensor shape: | Geometry | Input detections | Output tracks | | --- | --- | --- | | AABB | `(N, 6)` = `(x1, y1, x2, y2, conf, cls)` | `(N, 8)` = `(x1, y1, x2, y2, id, conf, cls, det_ind)` | | OBB | `(N, 7)` = `(cx, cy, w, h, angle, conf, cls)` | `(N, 9)` = `(cx, cy, w, h, angle, id, conf, cls, det_ind)` | OBB-specific tracking paths are enabled automatically when OBB detections are provided. Current OBB-capable trackers: `bytetrack`, `botsort`, `ocsort`, and `sfsort`. ## Examples The short commands above are enough to get started. The sections below keep the longer recipe list available without turning the README into a wall of commands.
Tracking recipes Track from common sources: ```bash # Webcam boxmot track yolov8n osnet_x0_25_msmt17 deepocsort --source 0 --show # Video file boxmot track yolov8n osnet_x0_25_msmt17 botsort --source video.mp4 --save # Image directory boxmot track yolov8n osnet_x0_25_msmt17 bytetrack --source path/to/images --save-txt # Stream or URL boxmot track yolov8n osnet_x0_25_msmt17 ocsort --source 'rtsp://example.com/media.mp4' # YouTube boxmot track yolov8n osnet_x0_25_msmt17 boosttrack --source 'https://youtu.be/Zgi9g1ksQHc' ```
Detector backends Swap detectors without changing the overall CLI: ```bash # Ultralytics detection boxmot track yolov8n boxmot track yolo11n # Segmentation and pose variants boxmot track yolov8n-seg boxmot track yolov8n-pose # YOLOX boxmot track yolox_s # RF-DETR boxmot track rf-detr-base ```
Tracker swaps Use the same detector and ReID model while changing only the tracker: ```bash boxmot track yolov8n osnet_x0_25_msmt17 deepocsort boxmot track yolov8n osnet_x0_25_msmt17 strongsort boxmot track yolov8n osnet_x0_25_msmt17 botsort boxmot track yolov8n osnet_x0_25_msmt17 boosttrack boxmot track yolov8n osnet_x0_25_msmt17 hybridsort # Motion-only trackers boxmot track yolov8n osnet_x0_25_msmt17 bytetrack boxmot track yolov8n osnet_x0_25_msmt17 ocsort boxmot track yolov8n osnet_x0_25_msmt17 sfsort ```
Filtering and visualization Useful flags for inspection and debugging: ```bash # Draw trajectories and show lost tracks boxmot track yolov8n osnet_x0_25_msmt17 botsort --source video.mp4 --show-trajectories --show-lost --save # Track only selected classes boxmot track yolov8s --source 0 --classes 16,17 # Track each class independently boxmot track yolov8n --source video.mp4 --per-class --save-txt # Highlight one target ID boxmot track yolov8n osnet_x0_25_msmt17 deepocsort --source video.mp4 --target-id 7 --show ```
Evaluation and tuning Benchmark on built-in MOT-style dataset shortcuts or your own data: ```bash # Reproduce README-style MOT17 results boxmot eval yolox_x_MOT17_ablation lmbn_n_duke boosttrack --source MOT17-ablation --verbose # MOT20 ablation split boxmot eval yolox_x_MOT20_ablation lmbn_n_duke boosttrack --source MOT20-ablation --verbose # DanceTrack ablation split boxmot eval yolox_x_dancetrack_ablation lmbn_n_duke boosttrack --source dancetrack-ablation --verbose # VisDrone ablation split boxmot eval yolox_x_visdrone lmbn_n_duke botsort --source visdrone-ablation --verbose # Apply postprocessing boxmot eval yolox_x_MOT17_ablation lmbn_n_duke boosttrack --source MOT17-ablation --postprocessing gsi boxmot eval yolox_x_MOT17_ablation lmbn_n_duke boosttrack --source MOT17-ablation --postprocessing gbrc # Generate detections and embeddings once boxmot generate yolov8n osnet_x0_25_msmt17 --source ./assets/MOT17-mini/train # Tune a tracker on a custom MOT-style dataset boxmot tune yolov8n osnet_x0_25_msmt17 botsort --source ./assets/MOT17-mini/train --n-trials 9 ```
Export and OBB Deployment and oriented-box examples: ```bash # Export to ONNX boxmot export --weights osnet_x0_25_msmt17.pt --include onnx --device cpu # Export to OpenVINO boxmot export --weights osnet_x0_25_msmt17.pt --include openvino --device cpu # Export to TensorRT with dynamic input boxmot export --weights osnet_x0_25_msmt17.pt --include engine --device 0 --dynamic ``` OBB references: - Notebook: [examples/det/obb.ipynb](examples/det/obb.ipynb) - Script: [examples/det/run_obb_kalman.py](examples/det/run_obb_kalman.py) - OBB-capable trackers: `bytetrack`, `botsort`, `ocsort`, `sfsort`
## Contributing If you want to contribute, start with [CONTRIBUTING.md](CONTRIBUTING.md). ## Contributors BoxMOT contributors ## Support and Citation - Bugs and feature requests: [GitHub Issues](https://github.com/mikel-brostrom/boxmot/issues) - Questions and discussion: [GitHub Discussions](https://github.com/mikel-brostrom/boxmot/discussions) or [Discord](https://discord.gg/tUmFEcYU4q) - Citation metadata: [CITATION.cff](CITATION.cff) - Commercial support: `box-mot@outlook.com` ================================================ FILE: assets/DOTA8-MOT/train/P0861__1024__0___1648/det/det.txt ================================================ 1.000000,-1.000000,831.967285,528.233704,60.625854,22.047729,1.000000 1.000000,-1.000000,839.141479,456.383881,54.965515,20.873291,1.000000 1.000000,-1.000000,834.387634,430.224792,58.523438,22.974701,1.000000 1.000000,-1.000000,838.257507,405.379669,56.559814,20.873352,1.000000 1.000000,-1.000000,838.026550,382.357697,60.555969,23.011597,1.000000 1.000000,-1.000000,846.292053,337.558960,54.929626,22.907837,1.000000 1.000000,-1.000000,846.164673,294.585327,54.490234,21.803345,1.000000 1.000000,-1.000000,850.453430,275.667358,52.931946,17.806061,1.000000 1.000000,-1.000000,851.731384,251.717392,53.388855,19.803665,1.000000 1.000000,-1.000000,852.464294,229.732193,54.457336,21.835266,1.000000 1.000000,-1.000000,853.197205,208.778687,56.896423,20.943146,1.000000 1.000000,-1.000000,849.004761,186.581085,59.452515,17.981491,1.000000 1.000000,-1.000000,852.700256,166.700241,48.495300,18.664276,1.000000 1.000000,-1.000000,854.397095,144.782761,61.557800,20.047974,1.000000 1.000000,-1.000000,853.167114,123.689697,57.523682,17.910675,1.000000 1.000000,-1.000000,860.895874,102.948746,56.524780,18.943359,1.000000 1.000000,-1.000000,858.362305,77.824478,62.858521,26.113701,1.000000 1.000000,-1.000000,859.362122,58.870956,55.595825,21.870117,1.000000 1.000000,-1.000000,859.095215,38.882580,56.490906,20.873138,1.000000 1.000000,-1.000000,572.301575,89.701027,43.162354,50.864403,1.000000 1.000000,-1.000000,582.375977,172.615738,61.440002,46.439072,1.000000 1.000000,-1.000000,593.102173,151.049347,63.472412,48.400818,1.000000 1.000000,-1.000000,838.709412,479.438690,55.523926,20.873291,1.000000 1.000000,-1.000000,835.162903,553.358093,60.521118,22.012756,1.000000 1.000000,-1.000000,634.696960,76.422066,62.576294,44.438896,1.000000 1.000000,-1.000000,831.360718,576.241455,59.522339,20.012024,1.000000 1.000000,-1.000000,782.010132,503.433960,38.395264,15.318787,1.000000 1.000000,-1.000000,782.603516,481.446716,43.601746,19.488556,1.000000 1.000000,-1.000000,774.983398,409.143158,55.628601,25.904297,1.000000 1.000000,-1.000000,777.447937,389.189423,52.932983,20.803528,1.000000 1.000000,-1.000000,773.589172,362.065430,60.929749,26.113800,1.000000 1.000000,-1.000000,776.495178,339.185150,59.559326,24.009369,1.000000 1.000000,-1.000000,774.300476,315.060638,61.624634,24.114014,1.000000 1.000000,-1.000000,779.206238,294.246765,51.422913,19.698883,1.000000 1.000000,-1.000000,777.903442,269.157288,59.626953,24.974335,1.000000 1.000000,-1.000000,767.783813,245.789429,70.479492,23.428284,1.000000 1.000000,-1.000000,780.473755,224.219925,57.593384,23.977539,1.000000 1.000000,-1.000000,784.310791,203.336258,54.489258,19.876495,1.000000 1.000000,-1.000000,780.115417,177.212051,63.520569,26.116867,1.000000 1.000000,-1.000000,793.841125,160.642838,50.527771,19.697983,1.000000 1.000000,-1.000000,815.028503,107.339630,35.221191,12.179245,1.000000 1.000000,-1.000000,804.370117,119.982964,44.392212,18.524651,1.000000 1.000000,-1.000000,790.540710,141.514465,57.929199,19.013214,1.000000 1.000000,-1.000000,826.038269,611.078857,72.512024,26.427734,1.000000 1.000000,-1.000000,621.726807,105.879517,60.579712,41.442337,1.000000 1.000000,-1.000000,647.350952,57.852261,57.720703,42.230007,1.000000 1.000000,-1.000000,390.695862,11.696652,53.176300,33.443741,1.000000 1.000000,-1.000000,209.511597,133.404327,51.039062,27.415375,1.000000 1.000000,-1.000000,208.280777,109.314743,61.136978,32.831329,1.000000 1.000000,-1.000000,220.320831,84.714233,49.005524,23.383911,1.000000 1.000000,-1.000000,222.017670,60.869053,60.069366,30.656307,1.000000 1.000000,-1.000000,237.649490,15.280258,55.072311,29.589363,1.000000 1.000000,-1.000000,246.516571,0.000000,55.107239,20.164230,1.000000 1.000000,-1.000000,399.528076,0.000000,56.176788,22.539318,1.000000 1.000000,-1.000000,385.827087,36.506924,51.213501,33.376743,1.000000 1.000000,-1.000000,681.148254,8.895086,48.726318,38.093826,1.000000 1.000000,-1.000000,373.367126,81.058304,52.072845,32.449257,1.000000 1.000000,-1.000000,265.976013,180.366852,69.781433,31.182739,1.000000 1.000000,-1.000000,188.756271,158.621048,36.117416,17.039291,1.000000 1.000000,-1.000000,221.421478,165.803604,47.969727,27.380539,1.000000 1.000000,-1.000000,335.443329,198.766235,35.048798,20.997574,1.000000 1.000000,-1.000000,369.039642,208.911285,36.152283,21.140320,1.000000 1.000000,-1.000000,403.333832,201.174271,53.106567,24.590439,1.000000 1.000000,-1.000000,412.061401,179.466202,42.149261,24.136765,1.000000 1.000000,-1.000000,418.756409,160.686874,46.145538,24.346146,1.000000 1.000000,-1.000000,423.415771,139.838089,47.146454,25.348969,1.000000 1.000000,-1.000000,434.039246,121.199333,39.184662,24.068947,1.000000 1.000000,-1.000000,436.909363,99.318474,37.152130,22.962723,1.000000 1.000000,-1.000000,443.569427,78.539574,46.075836,27.241158,1.000000 1.000000,-1.000000,456.236755,32.883881,55.002411,28.621883,1.000000 1.000000,-1.000000,459.899353,7.108705,56.208557,33.551331,1.000000 1.000000,-1.000000,329.287140,171.572433,70.919861,31.180695,1.000000 1.000000,-1.000000,338.049591,148.901505,66.924591,33.005829,1.000000 1.000000,-1.000000,338.852264,122.987793,73.955292,37.105820,1.000000 1.000000,-1.000000,843.434143,318.500397,46.494629,17.562775,1.000000 1.000000,-1.000000,986.584106,484.603821,36.415894,20.914215,1.000000 1.000000,-1.000000,996.441650,421.852051,26.558350,18.576721,1.000000 1.000000,-1.000000,1007.476440,237.173203,15.523560,12.500122,1.000000 1.000000,-1.000000,991.441711,507.728455,31.558289,15.111755,1.000000 1.000000,-1.000000,993.706238,528.821533,29.293762,14.292969,1.000000 1.000000,-1.000000,998.041321,547.984802,24.958679,16.514160,1.000000 1.000000,-1.000000,986.859375,567.658203,36.140625,15.972168,1.000000 1.000000,-1.000000,961.814392,619.787537,61.185608,21.151917,1.000000 1.000000,-1.000000,979.130798,586.367798,43.869202,18.366882,1.000000 1.000000,-1.000000,754.256042,23.342646,161.644165,607.749329,1.000000 1.000000,-1.000000,576.883484,337.644623,186.100159,292.126617,1.000000 1.000000,-1.000000,569.801941,0.000000,194.495789,219.054810,1.000000 1.000000,-1.000000,343.276703,0.000000,177.038971,223.079285,1.000000 1.000000,-1.000000,193.660919,0.000000,110.544922,164.923798,1.000000 1.000000,-1.000000,600.218506,340.504517,56.140930,41.787109,1.000000 1.000000,-1.000000,608.551941,371.346649,34.081848,23.147217,1.000000 1.000000,-1.000000,610.955139,387.544281,38.046204,25.042236,1.000000 1.000000,-1.000000,620.459778,404.850525,36.942749,22.042694,1.000000 1.000000,-1.000000,627.864197,417.086731,37.081238,28.143311,1.000000 1.000000,-1.000000,638.367676,436.319794,32.945496,22.252075,1.000000 1.000000,-1.000000,642.806396,448.660645,37.012512,27.109741,1.000000 1.000000,-1.000000,656.715942,481.025116,34.944214,27.249298,1.000000 1.000000,-1.000000,666.219727,497.398193,34.874207,25.216736,1.000000 1.000000,-1.000000,671.658264,513.634766,34.944031,24.147156,1.000000 1.000000,-1.000000,679.059570,529.971985,36.977661,24.112183,1.000000 1.000000,-1.000000,688.494385,548.100525,31.017639,21.290222,1.000000 1.000000,-1.000000,691.934387,560.409546,38.011353,28.179321,1.000000 1.000000,-1.000000,699.266907,577.747620,40.150635,28.038757,1.000000 1.000000,-1.000000,652.250671,532.261292,25.077148,36.152222,1.000000 1.000000,-1.000000,627.767822,486.451385,26.109863,37.116241,1.000000 1.000000,-1.000000,606.492859,437.641022,26.178650,32.189880,1.000000 1.000000,-1.000000,569.643433,376.318268,21.359070,26.089233,1.000000 1.000000,-1.000000,189.606094,92.697327,18.721802,28.226471,1.000000 1.000000,-1.000000,198.578949,65.027817,18.756622,27.089500,1.000000 1.000000,-1.000000,203.518463,32.326542,21.894791,34.050220,1.000000 2.000000,-1.000000,832.302307,525.025269,60.454346,21.465515,1.000000 2.000000,-1.000000,838.570557,453.124023,54.981934,20.340668,1.000000 2.000000,-1.000000,833.745422,427.007019,58.381226,22.412720,1.000000 2.000000,-1.000000,837.367004,402.114594,56.406982,20.340698,1.000000 2.000000,-1.000000,836.916382,379.095734,60.404419,22.439636,1.000000 2.000000,-1.000000,844.535706,334.233673,54.955994,22.365845,1.000000 2.000000,-1.000000,844.158813,291.247223,54.356812,21.290955,1.000000 2.000000,-1.000000,848.079651,272.303680,52.957703,17.292450,1.000000 2.000000,-1.000000,849.278137,248.336578,53.284973,19.290680,1.000000 2.000000,-1.000000,849.801697,226.344818,54.333923,21.312851,1.000000 2.000000,-1.000000,850.325256,205.375076,56.933350,20.390549,1.000000 2.000000,-1.000000,845.902039,183.230698,59.330505,17.418076,1.000000 2.000000,-1.000000,849.399048,163.313995,48.360107,18.190842,1.000000 2.000000,-1.000000,850.896790,141.370026,61.406555,19.465179,1.000000 2.000000,-1.000000,849.446960,120.300583,57.381165,17.367188,1.000000 2.000000,-1.000000,856.968445,99.483582,56.381958,18.390175,1.000000 2.000000,-1.000000,854.014954,74.391754,62.907288,25.512741,1.000000 2.000000,-1.000000,855.015076,55.422588,55.432800,21.337757,1.000000 2.000000,-1.000000,854.538513,35.428242,56.358093,20.340485,1.000000 2.000000,-1.000000,568.507507,88.876404,42.835938,50.909546,1.000000 2.000000,-1.000000,579.133789,171.825851,61.607971,46.033813,1.000000 2.000000,-1.000000,589.653564,150.133270,63.631104,48.006104,1.000000 2.000000,-1.000000,838.547485,476.165771,55.380859,20.340637,1.000000 2.000000,-1.000000,835.728394,550.117188,60.379517,21.440552,1.000000 2.000000,-1.000000,630.512329,75.104507,62.704773,44.033035,1.000000 2.000000,-1.000000,832.154602,573.037354,59.380432,19.439209,1.000000 2.000000,-1.000000,782.040833,500.737000,38.286987,14.944153,1.000000 2.000000,-1.000000,782.464722,478.743195,43.435181,19.065277,1.000000 2.000000,-1.000000,774.163757,406.517853,55.455627,25.363190,1.000000 2.000000,-1.000000,776.209900,386.548187,52.958801,20.290833,1.000000 2.000000,-1.000000,772.310120,359.456024,60.957886,25.512817,1.000000 2.000000,-1.000000,774.957520,336.538971,59.407410,23.437714,1.000000 2.000000,-1.000000,772.532654,312.447174,61.453369,23.512482,1.000000 2.000000,-1.000000,777.180420,291.577179,51.308533,19.215790,1.000000 2.000000,-1.000000,775.677612,266.510162,59.455200,24.412964,1.000000 2.000000,-1.000000,765.305542,243.245087,70.350769,22.736725,1.000000 2.000000,-1.000000,777.799622,221.549408,57.430969,23.415863,1.000000 2.000000,-1.000000,781.398315,200.629547,54.355835,19.343567,1.000000 2.000000,-1.000000,776.972168,174.537476,63.379883,25.515915,1.000000 2.000000,-1.000000,790.492371,157.843552,50.383240,19.214874,1.000000 2.000000,-1.000000,811.057434,104.334824,35.161865,11.843605,1.000000 2.000000,-1.000000,800.585449,117.081741,44.285706,18.091095,1.000000 2.000000,-1.000000,786.991455,138.749405,57.956421,18.440094,1.000000 2.000000,-1.000000,827.209778,607.925049,72.374023,25.737122,1.000000 2.000000,-1.000000,617.817749,104.720444,60.707581,41.035583,1.000000 2.000000,-1.000000,642.980530,56.409397,57.807800,41.883366,1.000000 2.000000,-1.000000,385.909515,12.864549,53.132294,33.034595,1.000000 2.000000,-1.000000,205.898621,136.384857,51.034363,27.014435,1.000000 2.000000,-1.000000,204.447891,112.318024,61.105362,32.312241,1.000000 2.000000,-1.000000,216.192169,87.600403,49.010162,22.991722,1.000000 2.000000,-1.000000,217.689926,63.708187,60.057358,30.186443,1.000000 2.000000,-1.000000,232.857391,17.996002,55.058807,29.139160,1.000000 2.000000,-1.000000,241.477661,0.000000,55.083740,22.342558,1.000000 2.000000,-1.000000,394.504883,0.000000,56.133698,23.181561,1.000000 2.000000,-1.000000,381.288788,37.732132,51.158936,32.987526,1.000000 2.000000,-1.000000,676.269043,7.148215,48.810730,37.785873,1.000000 2.000000,-1.000000,369.244232,82.416550,52.058441,32.039833,1.000000 2.000000,-1.000000,262.808990,182.792587,69.852173,30.563354,1.000000 2.000000,-1.000000,185.356644,161.828659,36.088287,16.744995,1.000000 2.000000,-1.000000,218.121429,168.674057,47.984039,26.989548,1.000000 2.000000,-1.000000,332.436768,200.508896,35.039307,20.714447,1.000000 2.000000,-1.000000,366.152893,210.327682,36.113190,20.817291,1.000000 2.000000,-1.000000,400.367523,202.229080,53.082458,24.138733,1.000000 2.000000,-1.000000,408.888123,180.434723,42.111938,23.814636,1.000000 2.000000,-1.000000,415.385529,161.589905,46.109436,23.964203,1.000000 2.000000,-1.000000,419.856659,140.694962,47.110657,24.967361,1.000000 2.000000,-1.000000,430.303711,121.950859,39.136475,23.766777,1.000000 2.000000,-1.000000,432.925201,100.033516,37.113312,22.690178,1.000000 2.000000,-1.000000,439.397644,79.188560,46.059662,26.890030,1.000000 2.000000,-1.000000,451.589722,33.429405,55.008881,28.161411,1.000000 2.000000,-1.000000,455.063843,7.586673,56.155518,33.112263,1.000000 2.000000,-1.000000,326.039246,173.366852,70.951019,30.561325,1.000000 2.000000,-1.000000,334.584778,150.599335,66.954529,32.436905,1.000000 2.000000,-1.000000,335.158142,124.657928,73.977386,36.508163,1.000000 2.000000,-1.000000,841.637024,315.189392,46.358826,17.118958,1.000000 2.000000,-1.000000,986.476318,479.855499,36.523682,20.570496,1.000000 2.000000,-1.000000,995.518494,417.025116,27.481506,18.347412,1.000000 2.000000,-1.000000,1004.830139,232.231277,18.169861,12.424683,1.000000 2.000000,-1.000000,991.375244,502.947113,31.624756,14.794220,1.000000 2.000000,-1.000000,993.850037,524.016602,29.149963,14.020691,1.000000 2.000000,-1.000000,998.376038,543.135681,24.623962,16.218750,1.000000 2.000000,-1.000000,987.530090,562.904785,35.469910,15.594238,1.000000 2.000000,-1.000000,963.066284,615.289124,59.933716,20.536255,1.000000 2.000000,-1.000000,980.008667,581.699768,42.991333,17.894287,1.000000 2.000000,-1.000000,755.356262,20.612152,155.764709,606.753174,1.000000 2.000000,-1.000000,575.495789,336.295288,188.381042,291.555176,1.000000 2.000000,-1.000000,566.436279,0.000000,191.286682,217.859665,1.000000 2.000000,-1.000000,340.032990,0.000000,175.335480,223.591782,1.000000 2.000000,-1.000000,190.003311,0.000000,109.672379,167.474655,1.000000 2.000000,-1.000000,598.737976,339.195953,56.107788,42.138855,1.000000 2.000000,-1.000000,607.263550,370.087189,34.062073,23.393646,1.000000 2.000000,-1.000000,609.837097,386.229797,38.037598,25.319122,1.000000 2.000000,-1.000000,619.484253,403.451385,36.963745,22.318726,1.000000 2.000000,-1.000000,627.060547,415.621368,37.062378,28.391235,1.000000 2.000000,-1.000000,637.706848,434.790314,32.965332,22.468292,1.000000 2.000000,-1.000000,642.306580,447.035095,37.013611,27.367279,1.000000 2.000000,-1.000000,656.529663,479.299438,34.964539,27.466980,1.000000 2.000000,-1.000000,666.175903,495.567627,34.914612,25.443787,1.000000 2.000000,-1.000000,671.775757,511.739227,34.964478,24.393829,1.000000 2.000000,-1.000000,679.348999,527.981506,36.988647,24.368896,1.000000 2.000000,-1.000000,688.946289,546.075500,31.016907,21.496216,1.000000 2.000000,-1.000000,692.546936,558.298462,38.012756,28.417236,1.000000 2.000000,-1.000000,700.071289,575.541870,40.112671,28.316528,1.000000 2.000000,-1.000000,652.482178,530.760437,25.344055,36.113159,1.000000 2.000000,-1.000000,627.562866,485.176392,26.367126,37.087402,1.000000 2.000000,-1.000000,605.792603,436.590942,26.415955,32.139648,1.000000 2.000000,-1.000000,568.323425,375.639099,21.545044,26.067078,1.000000 2.000000,-1.000000,185.677826,95.875267,18.517822,28.165047,1.000000 2.000000,-1.000000,194.373932,68.107681,18.542709,27.067657,1.000000 2.000000,-1.000000,199.045502,35.316822,21.641861,34.040417,1.000000 3.000000,-1.000000,832.605469,521.815491,60.276794,20.881165,1.000000 3.000000,-1.000000,837.967102,449.870026,54.992920,19.806000,1.000000 3.000000,-1.000000,833.071167,423.797729,58.233276,21.848511,1.000000 3.000000,-1.000000,836.444092,398.860443,56.248596,19.806000,1.000000 3.000000,-1.000000,835.773926,375.846954,60.246826,21.865479,1.000000 3.000000,-1.000000,842.746277,330.926117,54.976929,21.821594,1.000000 3.000000,-1.000000,842.119934,287.931091,54.217957,20.776428,1.000000 3.000000,-1.000000,845.672424,268.963837,52.978210,16.777130,1.000000 3.000000,-1.000000,846.791321,244.981979,53.175903,18.775742,1.000000 3.000000,-1.000000,847.105469,222.985840,54.205078,20.788345,1.000000 3.000000,-1.000000,847.419678,202.001953,56.964661,19.835938,1.000000 3.000000,-1.000000,842.766113,179.913025,59.202637,16.852905,1.000000 3.000000,-1.000000,846.064270,159.962433,48.220093,17.715576,1.000000 3.000000,-1.000000,847.362793,137.994156,61.249207,18.880447,1.000000 3.000000,-1.000000,845.693237,116.950432,57.232910,17.000587,1.000000 3.000000,-1.000000,853.006653,96.059448,56.233643,17.835159,1.000000 3.000000,-1.000000,849.633606,71.002548,62.949707,24.909256,1.000000 3.000000,-1.000000,850.633911,52.019630,55.264282,20.803284,1.000000 3.000000,-1.000000,849.947754,32.021305,56.219666,19.805809,1.000000 3.000000,-1.000000,564.707764,88.093872,42.505310,50.949600,1.000000 3.000000,-1.000000,575.884949,171.069809,61.769836,45.623978,1.000000 3.000000,-1.000000,586.197327,149.253204,63.783386,47.606613,1.000000 3.000000,-1.000000,838.353088,472.896393,55.232239,19.806000,1.000000 3.000000,-1.000000,836.261719,546.872498,60.231873,20.866211,1.000000 3.000000,-1.000000,626.315979,73.830414,62.826965,43.622787,1.000000 3.000000,-1.000000,832.916687,569.827148,59.232605,18.864502,1.000000 3.000000,-1.000000,782.044678,498.041168,38.174927,14.568085,1.000000 3.000000,-1.000000,782.299011,476.042999,43.264282,18.640076,1.000000 3.000000,-1.000000,773.318054,403.903015,55.277100,24.819550,1.000000 3.000000,-1.000000,774.945618,383.919434,52.979309,19.776093,1.000000 3.000000,-1.000000,771.005127,356.861786,60.979980,24.909332,1.000000 3.000000,-1.000000,773.393677,333.910217,59.249634,22.863770,1.000000 3.000000,-1.000000,770.738831,309.853546,61.276123,22.908630,1.000000 3.000000,-1.000000,775.128174,288.929504,51.189026,18.730835,1.000000 3.000000,-1.000000,773.425598,263.887451,59.277405,23.849152,1.000000 3.000000,-1.000000,762.802002,240.727478,70.215149,22.042938,1.000000 3.000000,-1.000000,775.099060,218.907776,57.262817,22.851883,1.000000 3.000000,-1.000000,778.459106,197.953812,54.216980,18.808701,1.000000 3.000000,-1.000000,773.802612,171.896469,63.232788,24.912415,1.000000 3.000000,-1.000000,787.115967,155.079498,50.233643,18.729858,1.000000 3.000000,-1.000000,807.056580,101.370567,35.099060,11.506775,1.000000 3.000000,-1.000000,796.772095,114.219795,44.174805,17.655739,1.000000 3.000000,-1.000000,783.414856,135.873810,57.977905,18.012802,1.000000 3.000000,-1.000000,828.349976,604.761719,72.228699,25.043884,1.000000 3.000000,-1.000000,613.898193,103.601875,60.829407,40.624748,1.000000 3.000000,-1.000000,638.597107,55.011852,57.889160,41.532558,1.000000 3.000000,-1.000000,381.135742,14.082091,53.083008,32.622162,1.000000 3.000000,-1.000000,202.316101,139.402740,51.024551,26.610794,1.000000 3.000000,-1.000000,200.645584,115.361061,61.067642,31.789940,1.000000 3.000000,-1.000000,212.092926,90.528778,49.009949,22.597260,1.000000 3.000000,-1.000000,213.391449,66.591911,60.039398,29.713577,1.000000 3.000000,-1.000000,228.093079,20.760881,55.039825,28.686060,1.000000 3.000000,-1.000000,236.465637,0.000000,55.054810,24.569590,1.000000 3.000000,-1.000000,389.493378,0.000000,56.085022,23.872423,1.000000 3.000000,-1.000000,376.763489,39.004517,51.099304,32.595024,1.000000 3.000000,-1.000000,671.373413,5.451560,48.890320,37.474163,1.000000 3.000000,-1.000000,365.135559,83.817528,52.038849,31.627213,1.000000 3.000000,-1.000000,259.666779,185.251083,69.915955,29.940933,1.000000 3.000000,-1.000000,181.989502,165.071106,36.055557,16.449036,1.000000 3.000000,-1.000000,214.850601,171.578659,47.993576,26.595871,1.000000 3.000000,-1.000000,329.448090,202.282532,35.026306,20.429276,1.000000 3.000000,-1.000000,363.280609,211.774078,36.070526,20.492203,1.000000 3.000000,-1.000000,397.412292,203.314713,53.053131,23.684616,1.000000 3.000000,-1.000000,405.725098,181.436203,42.070435,23.490158,1.000000 3.000000,-1.000000,412.024261,162.527771,46.068726,23.579910,1.000000 3.000000,-1.000000,416.306732,141.588776,47.070129,24.583267,1.000000 3.000000,-1.000000,426.576294,122.741180,39.084412,23.462250,1.000000 3.000000,-1.000000,428.948914,100.789536,37.070801,22.415375,1.000000 3.000000,-1.000000,435.233093,79.880600,46.038879,26.536224,1.000000 3.000000,-1.000000,446.948730,34.022530,55.009857,27.698135,1.000000 3.000000,-1.000000,450.233948,8.114814,56.096893,32.669903,1.000000 3.000000,-1.000000,322.809875,175.194962,70.975098,29.938889,1.000000 3.000000,-1.000000,331.137573,152.333130,66.977844,31.864731,1.000000 3.000000,-1.000000,331.481628,126.366600,73.992126,35.906883,1.000000 3.000000,-1.000000,839.807129,311.897980,46.218384,16.673431,1.000000 3.000000,-1.000000,986.321289,475.110382,36.678711,20.224701,1.000000 3.000000,-1.000000,994.547241,412.207642,28.452759,18.103546,1.000000 3.000000,-1.000000,1002.134888,227.317154,20.865112,12.296097,1.000000 3.000000,-1.000000,991.261108,498.166687,31.738892,14.477600,1.000000 3.000000,-1.000000,993.945923,519.210449,29.054077,14.013489,1.000000 3.000000,-1.000000,998.662354,538.283447,24.337646,15.935852,1.000000 3.000000,-1.000000,988.153442,558.146301,34.846558,15.230347,1.000000 3.000000,-1.000000,964.273376,610.780457,58.726624,19.997559,1.000000 3.000000,-1.000000,980.840027,577.024780,42.159973,17.439636,1.000000 3.000000,-1.000000,756.432251,17.930534,149.869812,605.696716,1.000000 3.000000,-1.000000,574.101807,334.963409,190.643250,290.954742,1.000000 3.000000,-1.000000,563.065186,0.000000,188.153931,216.693787,1.000000 3.000000,-1.000000,336.806366,0.000000,173.614563,224.132965,1.000000 3.000000,-1.000000,186.377731,0.000000,108.757370,170.059769,1.000000 3.000000,-1.000000,597.248840,337.904572,56.069092,42.486420,1.000000 3.000000,-1.000000,605.965637,368.841858,34.038879,23.637756,1.000000 3.000000,-1.000000,608.709290,384.927795,38.025208,25.593536,1.000000 3.000000,-1.000000,618.498047,402.063019,36.981079,22.592529,1.000000 3.000000,-1.000000,626.245422,414.165619,37.039856,28.636322,1.000000 3.000000,-1.000000,637.033508,433.268524,32.981873,22.682281,1.000000 3.000000,-1.000000,641.793762,445.415985,37.011047,27.622131,1.000000 3.000000,-1.000000,656.328979,477.576996,34.981445,27.681946,1.000000 3.000000,-1.000000,666.116821,493.738708,34.951477,25.668335,1.000000 3.000000,-1.000000,671.877380,509.843658,34.981445,24.638153,1.000000 3.000000,-1.000000,679.621704,525.989441,36.996033,24.623169,1.000000 3.000000,-1.000000,689.380554,544.047119,31.013062,21.700012,1.000000 3.000000,-1.000000,693.141541,556.182739,38.010315,28.652344,1.000000 3.000000,-1.000000,700.856934,573.329834,40.070801,28.591492,1.000000 3.000000,-1.000000,652.699707,529.257751,25.608459,36.070496,1.000000 3.000000,-1.000000,627.346436,483.904083,26.621765,37.054901,1.000000 3.000000,-1.000000,605.083008,435.548401,26.650696,32.086151,1.000000 3.000000,-1.000000,566.997803,374.973480,21.728943,26.042358,1.000000 3.000000,-1.000000,181.782013,99.094604,18.312012,28.100815,1.000000 3.000000,-1.000000,190.200516,71.231705,18.326920,27.043106,1.000000 3.000000,-1.000000,194.603668,38.354515,21.386795,34.027229,1.000000 4.000000,-1.000000,832.876770,518.604797,60.093262,20.294739,1.000000 4.000000,-1.000000,837.331299,446.622192,54.998352,19.269379,1.000000 4.000000,-1.000000,832.365051,420.597198,58.079407,21.282135,1.000000 4.000000,-1.000000,835.488953,395.617523,56.084595,19.269348,1.000000 4.000000,-1.000000,834.599243,372.611725,60.083252,21.289154,1.000000 4.000000,-1.000000,840.923950,327.636536,54.992371,21.275208,1.000000 4.000000,-1.000000,840.048157,284.637238,54.073792,20.259827,1.000000 4.000000,-1.000000,843.231995,265.648163,52.993469,16.260132,1.000000 4.000000,-1.000000,844.271240,241.653946,53.061462,18.258957,1.000000 4.000000,-1.000000,844.375977,219.655624,54.070801,20.261749,1.000000 4.000000,-1.000000,844.480713,198.659668,56.990234,19.279343,1.000000 4.000000,-1.000000,839.597290,176.628372,59.068848,16.286072,1.000000 4.000000,-1.000000,842.696289,156.645874,48.075256,17.238586,1.000000 4.000000,-1.000000,843.795471,134.655487,61.085693,18.293839,1.000000 4.000000,-1.000000,841.906311,113.639572,57.078979,17.002274,1.000000 4.000000,-1.000000,849.010986,92.676689,56.079651,17.278374,1.000000 4.000000,-1.000000,845.218689,67.657211,62.985840,24.303284,1.000000 4.000000,-1.000000,846.219116,48.662426,55.090210,20.266735,1.000000 4.000000,-1.000000,845.323425,28.662113,56.075623,19.269161,1.000000 4.000000,-1.000000,560.902832,87.353500,42.170410,50.984604,1.000000 4.000000,-1.000000,572.629700,170.347687,61.925598,45.209579,1.000000 4.000000,-1.000000,582.733643,148.409210,63.929382,47.202408,1.000000 4.000000,-1.000000,838.126221,469.630920,55.078186,19.269348,1.000000 4.000000,-1.000000,836.762817,543.624329,60.078247,20.289795,1.000000 4.000000,-1.000000,622.108276,72.599899,62.942871,43.208206,1.000000 4.000000,-1.000000,833.646790,566.611267,59.078918,18.287842,1.000000 4.000000,-1.000000,782.021667,495.346741,38.059021,14.190460,1.000000 4.000000,-1.000000,782.106506,473.346375,43.088989,18.213043,1.000000 4.000000,-1.000000,772.446350,401.298950,55.093079,24.273438,1.000000 4.000000,-1.000000,773.655151,381.303406,52.994568,19.259399,1.000000 4.000000,-1.000000,769.674438,354.282959,60.995972,24.303375,1.000000 4.000000,-1.000000,771.803894,331.299194,59.085938,22.287506,1.000000 4.000000,-1.000000,768.919373,307.280029,61.092651,22.302490,1.000000 4.000000,-1.000000,773.049744,286.304016,51.064514,18.243988,1.000000 4.000000,-1.000000,771.147522,261.289429,59.093872,23.282990,1.000000 4.000000,-1.000000,760.273560,238.236847,70.072510,21.346954,1.000000 4.000000,-1.000000,772.372375,216.295288,57.088989,22.285629,1.000000 4.000000,-1.000000,775.493347,195.309311,54.072693,18.271973,1.000000 4.000000,-1.000000,770.606934,169.289276,63.079529,24.306458,1.000000 4.000000,-1.000000,783.712158,152.350937,50.079041,18.242981,1.000000 4.000000,-1.000000,803.026428,98.447151,35.032715,11.168808,1.000000 4.000000,-1.000000,792.930359,111.397415,44.059570,17.218628,1.000000 4.000000,-1.000000,779.811218,132.614716,57.993652,18.004623,1.000000 4.000000,-1.000000,829.458618,601.589172,72.076355,24.348206,1.000000 4.000000,-1.000000,609.968506,102.523933,60.945129,40.209862,1.000000 4.000000,-1.000000,634.201050,53.659763,57.964783,41.177616,1.000000 4.000000,-1.000000,376.374969,15.349161,53.028442,32.206482,1.000000 4.000000,-1.000000,198.764389,142.457703,51.009674,26.204498,1.000000 4.000000,-1.000000,196.874252,118.443550,61.023849,31.264473,1.000000 4.000000,-1.000000,208.023514,93.499084,49.004837,22.200539,1.000000 4.000000,-1.000000,209.122681,69.519936,60.015472,29.237762,1.000000 4.000000,-1.000000,223.356979,23.574625,55.015366,28.230104,1.000000 4.000000,-1.000000,231.481033,0.000000,55.020340,26.845104,1.000000 4.000000,-1.000000,384.494049,0.000000,56.030762,24.611839,1.000000 4.000000,-1.000000,372.251617,40.323948,51.034607,32.199284,1.000000 4.000000,-1.000000,666.461975,3.805288,48.964966,37.158730,1.000000 4.000000,-1.000000,361.041504,85.261086,52.014069,31.211464,1.000000 4.000000,-1.000000,256.549622,187.742081,69.972809,29.315521,1.000000 4.000000,-1.000000,178.655182,168.348053,36.019257,16.151443,1.000000 4.000000,-1.000000,211.609329,174.517136,47.998367,26.199524,1.000000 4.000000,-1.000000,326.477539,204.086975,35.009857,20.142059,1.000000 4.000000,-1.000000,360.423157,213.250336,36.024231,20.165085,1.000000 4.000000,-1.000000,394.468475,204.431061,53.018494,23.228134,1.000000 4.000000,-1.000000,402.572632,182.470581,42.024780,23.163315,1.000000 4.000000,-1.000000,408.672943,163.500412,46.023438,23.193237,1.000000 4.000000,-1.000000,412.766327,142.519424,47.024933,24.196716,1.000000 4.000000,-1.000000,422.857391,123.570213,39.028442,23.155388,1.000000 4.000000,-1.000000,424.980865,101.586456,37.024658,22.138344,1.000000 4.000000,-1.000000,431.076172,80.615616,46.013519,26.179787,1.000000 4.000000,-1.000000,442.314178,34.663200,55.005402,27.232101,1.000000 4.000000,-1.000000,445.410248,8.693073,56.032654,32.224297,1.000000 4.000000,-1.000000,319.599304,177.056564,70.992126,29.313492,1.000000 4.000000,-1.000000,327.708374,154.102692,66.994507,31.289398,1.000000 4.000000,-1.000000,327.823059,128.113617,73.999481,35.302032,1.000000 4.000000,-1.000000,837.944641,308.626465,46.073303,16.226227,1.000000 4.000000,-1.000000,986.119141,470.368958,36.880859,19.875244,1.000000 4.000000,-1.000000,993.528015,407.400085,29.471985,17.843567,1.000000 4.000000,-1.000000,999.390808,222.431366,23.609192,12.112839,1.000000 4.000000,-1.000000,991.099304,493.387634,31.900696,14.160400,1.000000 4.000000,-1.000000,993.993896,514.403564,29.006104,14.004944,1.000000 4.000000,-1.000000,998.900269,533.428589,24.099731,15.664001,1.000000 4.000000,-1.000000,988.729492,553.383179,34.270508,14.879028,1.000000 4.000000,-1.000000,965.435486,606.261963,57.564514,19.999512,1.000000 4.000000,-1.000000,981.624756,572.343384,41.375244,17.001282,1.000000 4.000000,-1.000000,757.483948,15.298059,143.959961,604.580017,1.000000 4.000000,-1.000000,572.701599,333.649139,192.886475,290.325409,1.000000 4.000000,-1.000000,559.688965,0.000000,185.094666,215.557266,1.000000 4.000000,-1.000000,333.597198,0.000000,171.876343,224.702774,1.000000 4.000000,-1.000000,182.784531,0.000000,107.798660,172.678909,1.000000 4.000000,-1.000000,595.751221,336.630493,56.024780,42.829742,1.000000 4.000000,-1.000000,604.658386,367.610748,34.012329,23.879517,1.000000 4.000000,-1.000000,607.571838,383.638428,38.009094,25.865417,1.000000 4.000000,-1.000000,617.501221,400.685608,36.994751,22.864105,1.000000 4.000000,-1.000000,625.418945,412.719574,37.013611,28.878601,1.000000 4.000000,-1.000000,636.347778,431.754578,32.995056,22.894012,1.000000 4.000000,-1.000000,641.268066,443.803528,37.004761,27.874207,1.000000 4.000000,-1.000000,656.113953,475.857971,34.994873,27.894196,1.000000 4.000000,-1.000000,666.042358,491.911591,34.984924,25.890350,1.000000 4.000000,-1.000000,671.963074,507.948334,34.994934,24.879974,1.000000 4.000000,-1.000000,679.877747,523.995972,36.999695,24.874939,1.000000 4.000000,-1.000000,689.797180,542.015564,31.006165,21.901672,1.000000 4.000000,-1.000000,693.718140,554.062622,38.004089,28.884583,1.000000 4.000000,-1.000000,701.623779,571.111694,40.024902,28.863647,1.000000 4.000000,-1.000000,652.903198,527.753357,25.870361,36.024231,1.000000 4.000000,-1.000000,627.118530,482.634552,26.873779,37.018646,1.000000 4.000000,-1.000000,604.364136,434.513428,26.882751,32.029541,1.000000 4.000000,-1.000000,565.666687,374.321503,21.910645,26.015015,1.000000 4.000000,-1.000000,177.919052,102.355011,18.104370,28.033783,1.000000 4.000000,-1.000000,186.059097,74.399574,18.109329,27.015869,1.000000 4.000000,-1.000000,190.193420,41.439320,21.129562,34.010654,1.000000 5.000000,-1.000000,833.116089,515.099182,60.003540,20.000549,1.000000 5.000000,-1.000000,836.663086,443.106598,54.998352,19.005096,1.000000 5.000000,-1.000000,831.532288,417.405731,58.014587,20.713684,1.000000 5.000000,-1.000000,834.501587,392.386200,55.915039,19.005066,1.000000 5.000000,-1.000000,833.392517,369.390381,59.913635,20.710693,1.000000 5.000000,-1.000000,839.068909,324.365295,55.102051,20.726685,1.000000 5.000000,-1.000000,837.943787,281.365997,53.924194,19.741211,1.000000 5.000000,-1.000000,840.758606,262.356964,53.003479,15.741547,1.000000 5.000000,-1.000000,841.638306,238.352814,53.021545,17.740356,1.000000 5.000000,-1.000000,841.528625,216.354492,54.015930,19.733139,1.000000 5.000000,-1.000000,841.508667,195.348557,57.010254,18.720825,1.000000 5.000000,-1.000000,836.316040,173.377075,59.009094,16.001846,1.000000 5.000000,-1.000000,839.215637,153.364670,48.085205,16.759857,1.000000 5.000000,-1.000000,840.195129,131.354340,60.916138,18.004623,1.000000 5.000000,-1.000000,838.001770,110.368332,57.004211,17.002274,1.000000 5.000000,-1.000000,844.897034,89.335640,56.084595,16.999115,1.000000 5.000000,-1.000000,840.770630,64.356071,63.015747,23.694901,1.000000 5.000000,-1.000000,841.676270,45.351311,55.005432,19.728172,1.000000 5.000000,-1.000000,840.665894,25.350996,55.926025,18.730597,1.000000 5.000000,-1.000000,557.093079,86.655365,41.831299,51.014542,1.000000 5.000000,-1.000000,569.368469,169.659531,62.075195,44.790710,1.000000 5.000000,-1.000000,579.262939,147.601379,64.069031,46.793488,1.000000 5.000000,-1.000000,837.866882,466.369659,55.003418,18.730804,1.000000 5.000000,-1.000000,837.231567,540.373047,59.918640,19.711365,1.000000 5.000000,-1.000000,617.889526,71.413086,63.052612,42.789322,1.000000 5.000000,-1.000000,834.344971,563.389893,59.004028,17.709351,1.000000 5.000000,-1.000000,781.906982,492.653961,38.069031,13.811493,1.000000 5.000000,-1.000000,781.797302,470.439148,43.089050,18.213043,1.000000 5.000000,-1.000000,771.439087,398.705902,55.117981,23.724915,1.000000 5.000000,-1.000000,772.338684,378.700378,53.004517,18.740784,1.000000 5.000000,-1.000000,768.203369,351.719849,61.120605,23.694977,1.000000 5.000000,-1.000000,770.188232,328.706116,59.011108,21.709076,1.000000 5.000000,-1.000000,766.969604,304.726868,61.107544,21.694153,1.000000 5.000000,-1.000000,770.945374,283.701019,50.934875,17.755280,1.000000 5.000000,-1.000000,768.739014,258.716339,59.009033,22.714508,1.000000 5.000000,-1.000000,757.625671,235.773438,70.102417,20.648834,1.000000 5.000000,-1.000000,769.515015,213.712219,57.108948,21.717148,1.000000 5.000000,-1.000000,772.411621,192.696304,54.087646,18.002716,1.000000 5.000000,-1.000000,767.385559,166.716187,62.919983,23.698074,1.000000 5.000000,-1.000000,780.196594,149.658157,50.004211,17.754288,1.000000 5.000000,-1.000000,798.927368,95.564873,35.002869,10.829727,1.000000 5.000000,-1.000000,788.990906,108.614883,44.084473,16.779793,1.000000 5.000000,-1.000000,776.101135,129.393356,58.083374,17.994659,1.000000 5.000000,-1.000000,830.535767,598.407654,71.916748,23.650146,1.000000 5.000000,-1.000000,606.029114,101.486717,61.054810,39.790977,1.000000 5.000000,-1.000000,629.792908,52.353260,58.034546,40.818584,1.000000 5.000000,-1.000000,371.627686,16.665630,52.968597,31.787601,1.000000 5.000000,-1.000000,195.243835,145.549408,50.989716,25.795609,1.000000 5.000000,-1.000000,193.134262,121.565178,60.973999,30.735893,1.000000 5.000000,-1.000000,203.984344,96.511009,48.994858,21.801613,1.000000 5.000000,-1.000000,204.884033,72.491974,59.985565,28.759033,1.000000 5.000000,-1.000000,218.649612,26.436949,54.985428,27.771345,1.000000 5.000000,-1.000000,226.524323,0.000000,54.980438,29.168877,1.000000 5.000000,-1.000000,379.507416,0.000000,55.970917,25.399733,1.000000 5.000000,-1.000000,367.753662,41.690296,50.964813,31.800335,1.000000 5.000000,-1.000000,661.535217,2.209565,49.034790,36.839592,1.000000 5.000000,-1.000000,356.962433,86.747093,51.984131,30.792603,1.000000 5.000000,-1.000000,253.457916,190.265320,70.022644,28.687195,1.000000 5.000000,-1.000000,175.354034,171.659180,35.979355,15.852249,1.000000 5.000000,-1.000000,208.397934,177.489182,47.998367,25.800583,1.000000 5.000000,-1.000000,323.525452,205.922058,34.989899,19.852829,1.000000 5.000000,-1.000000,357.580780,214.756317,35.974365,19.835938,1.000000 5.000000,-1.000000,391.536377,205.577988,52.978546,22.769363,1.000000 5.000000,-1.000000,399.431061,183.537720,41.974915,22.834198,1.000000 5.000000,-1.000000,405.331879,164.507721,45.973572,22.804260,1.000000 5.000000,-1.000000,409.235809,143.486816,46.975067,23.807785,1.000000 5.000000,-1.000000,419.147339,124.437889,38.968597,22.846230,1.000000 5.000000,-1.000000,421.021484,102.424194,36.974792,21.859116,1.000000 5.000000,-1.000000,426.927307,81.393547,45.983551,25.820740,1.000000 5.000000,-1.000000,437.686584,35.351349,54.995422,26.763363,1.000000 5.000000,-1.000000,440.593140,9.321395,55.962860,31.775482,1.000000 5.000000,-1.000000,316.407867,178.951492,71.002106,28.685150,1.000000 5.000000,-1.000000,324.297516,155.907852,67.004456,30.710968,1.000000 5.000000,-1.000000,324.182831,129.898834,73.999481,34.693649,1.000000 5.000000,-1.000000,836.049744,305.150757,46.003479,16.001862,1.000000 5.000000,-1.000000,985.869812,465.631653,37.130188,19.520721,1.000000 5.000000,-1.000000,992.460876,402.602936,30.539124,17.566040,1.000000 5.000000,-1.000000,996.598328,217.447403,26.401672,12.132050,1.000000 5.000000,-1.000000,990.889893,488.610443,32.110107,13.996002,1.000000 5.000000,-1.000000,993.993896,509.596436,29.006104,13.994995,1.000000 5.000000,-1.000000,999.089783,528.571594,23.910217,15.401672,1.000000 5.000000,-1.000000,989.258057,548.615967,33.741943,14.538696,1.000000 5.000000,-1.000000,966.452759,601.452148,56.547241,20.281494,1.000000 5.000000,-1.000000,982.283020,567.655945,40.716980,16.578003,1.000000 5.000000,-1.000000,758.511169,12.714990,138.035889,603.403137,1.000000 5.000000,-1.000000,571.295349,332.352631,195.110535,289.667145,1.000000 5.000000,-1.000000,556.308044,0.000000,182.106140,214.450241,1.000000 5.000000,-1.000000,330.405762,0.000000,170.121033,225.301163,1.000000 5.000000,-1.000000,179.224091,0.000000,106.795105,175.331787,1.000000 5.000000,-1.000000,594.245239,335.373871,55.974915,43.168823,1.000000 5.000000,-1.000000,603.341919,366.394012,33.982422,24.118866,1.000000 5.000000,-1.000000,606.424927,382.361847,37.989136,26.134674,1.000000 5.000000,-1.000000,616.493958,399.319244,37.004700,23.133392,1.000000 5.000000,-1.000000,624.581177,411.283417,36.983765,29.117981,1.000000 5.000000,-1.000000,635.649658,430.248596,33.005066,23.103455,1.000000 5.000000,-1.000000,640.729553,442.197815,36.994751,28.123566,1.000000 5.000000,-1.000000,655.884583,474.142578,35.004822,28.103607,1.000000 5.000000,-1.000000,665.952576,490.086487,35.014832,26.109741,1.000000 5.000000,-1.000000,672.032898,506.053436,35.004883,25.119354,1.000000 5.000000,-1.000000,680.117126,522.001343,36.999695,25.124268,1.000000 5.000000,-1.000000,690.196106,539.981018,30.996216,22.101135,1.000000 5.000000,-1.000000,694.276611,551.938293,37.994141,29.114014,1.000000 5.000000,-1.000000,702.371765,568.887634,39.975037,29.132935,1.000000 5.000000,-1.000000,653.092712,526.247375,26.129700,35.974365,1.000000 5.000000,-1.000000,626.879211,481.367950,27.123108,36.978790,1.000000 5.000000,-1.000000,603.636108,433.486176,27.112122,31.969696,1.000000 5.000000,-1.000000,564.330261,373.683197,22.090149,25.985138,1.000000 5.000000,-1.000000,174.089310,105.656158,17.894928,27.963974,1.000000 5.000000,-1.000000,181.950104,77.610962,17.889938,26.985947,1.000000 5.000000,-1.000000,185.815155,44.570930,20.870270,33.990700,1.000000 6.000000,-1.000000,833.323547,511.299042,60.007507,19.998566,1.000000 6.000000,-1.000000,835.962585,439.323608,54.992859,19.013184,1.000000 6.000000,-1.000000,830.572998,414.223694,58.038696,20.143127,1.000000 6.000000,-1.000000,833.482178,389.166779,55.739929,19.013123,1.000000 6.000000,-1.000000,832.153748,366.183197,59.738220,20.130188,1.000000 6.000000,-1.000000,837.181335,321.112701,55.306030,20.176147,1.000000 6.000000,-1.000000,835.807007,278.117706,53.769226,19.220642,1.000000 6.000000,-1.000000,838.252502,259.090637,53.008179,15.221375,1.000000 6.000000,-1.000000,838.892761,235.078888,53.056152,17.219986,1.000000 6.000000,-1.000000,838.563721,213.082764,54.040405,19.202576,1.000000 6.000000,-1.000000,838.503845,192.068939,57.024536,18.160461,1.000000 6.000000,-1.000000,832.922791,170.159470,59.023132,16.000259,1.000000 6.000000,-1.000000,835.622620,150.119141,48.250000,16.279449,1.000000 6.000000,-1.000000,836.562134,128.091064,60.740540,18.012802,1.000000 6.000000,-1.000000,833.979980,107.137047,57.008545,17.000580,1.000000 6.000000,-1.000000,840.665161,86.036629,56.248596,16.997429,1.000000 6.000000,-1.000000,836.289856,61.099461,63.039368,23.084156,1.000000 6.000000,-1.000000,837.005920,42.086609,55.009888,19.187645,1.000000 6.000000,-1.000000,835.975708,22.088284,55.770874,18.190174,1.000000 6.000000,-1.000000,553.278748,85.999535,41.488098,51.039406,1.000000 6.000000,-1.000000,566.101501,169.005447,62.218567,44.367355,1.000000 6.000000,-1.000000,575.785522,146.829788,64.202271,46.379929,1.000000 6.000000,-1.000000,837.575195,463.112946,55.007874,18.190369,1.000000 6.000000,-1.000000,837.667969,537.118958,59.753113,19.130920,1.000000 6.000000,-1.000000,613.660339,70.270103,63.156006,42.366180,1.000000 6.000000,-1.000000,835.010986,560.163391,59.008179,17.129211,1.000000 6.000000,-1.000000,781.700623,489.963104,38.204834,13.431122,1.000000 6.000000,-1.000000,781.371521,467.321655,43.264282,18.640076,1.000000 6.000000,-1.000000,770.296265,396.124115,55.351868,23.174042,1.000000 6.000000,-1.000000,770.996338,376.110596,53.009216,18.220337,1.000000 6.000000,-1.000000,766.592163,349.172638,61.353882,23.084259,1.000000 6.000000,-1.000000,768.546875,326.131317,59.025208,21.128448,1.000000 6.000000,-1.000000,764.889709,302.194336,61.320923,21.083618,1.000000 6.000000,-1.000000,768.815247,281.120697,50.800110,17.264832,1.000000 6.000000,-1.000000,766.200195,256.168457,59.023132,22.143738,1.000000 6.000000,-1.000000,754.858582,233.337524,70.304932,19.948669,1.000000 6.000000,-1.000000,766.527344,211.158813,57.322693,21.146515,1.000000 6.000000,-1.000000,769.214172,190.115067,54.261902,18.000916,1.000000 6.000000,-1.000000,764.138794,164.177444,62.754150,23.087326,1.000000 6.000000,-1.000000,776.569580,147.001419,50.009216,17.263824,1.000000 6.000000,-1.000000,794.759949,92.724014,35.009338,10.489571,1.000000 6.000000,-1.000000,784.954163,105.872475,44.249573,16.339302,1.000000 6.000000,-1.000000,772.285034,126.210052,58.247131,17.982895,1.000000 6.000000,-1.000000,831.581177,595.217590,71.750061,22.949646,1.000000 6.000000,-1.000000,602.080322,100.490334,61.158447,39.368141,1.000000 6.000000,-1.000000,625.372986,51.092480,58.098572,40.455486,1.000000 6.000000,-1.000000,366.894348,18.031368,52.903503,31.365559,1.000000 6.000000,-1.000000,191.754791,148.677567,50.964676,25.384155,1.000000 6.000000,-1.000000,189.425995,124.725647,60.918076,30.204269,1.000000 6.000000,-1.000000,199.975800,99.564270,48.980011,21.400520,1.000000 6.000000,-1.000000,200.675919,75.507729,59.949692,28.277443,1.000000 6.000000,-1.000000,213.971405,29.347569,54.950043,27.309822,1.000000 6.000000,-1.000000,221.596008,1.217553,54.935059,30.323120,1.000000 6.000000,-1.000000,374.533966,0.000000,55.905487,26.236027,1.000000 6.000000,-1.000000,363.270050,43.103424,50.889954,31.398224,1.000000 6.000000,-1.000000,656.593506,0.664549,49.099731,36.516792,1.000000 6.000000,-1.000000,352.898804,88.275406,51.949036,30.370674,1.000000 6.000000,-1.000000,250.391907,192.820557,70.065582,28.056030,1.000000 6.000000,-1.000000,172.086349,175.004150,35.935898,15.551468,1.000000 6.000000,-1.000000,205.216751,180.494492,47.993591,25.399078,1.000000 6.000000,-1.000000,320.592133,207.787582,34.966461,19.561630,1.000000 6.000000,-1.000000,354.753754,216.291855,35.920929,19.504837,1.000000 6.000000,-1.000000,388.616211,206.755386,52.933380,22.308319,1.000000 6.000000,-1.000000,396.300659,184.637543,41.920898,22.502777,1.000000 6.000000,-1.000000,402.001434,165.549591,45.919159,22.413025,1.000000 6.000000,-1.000000,405.715485,144.490875,46.920532,23.416458,1.000000 6.000000,-1.000000,415.446503,125.344116,38.904907,22.534775,1.000000 6.000000,-1.000000,417.071136,103.302681,36.921265,21.577698,1.000000 6.000000,-1.000000,422.786896,82.214302,45.949066,25.459129,1.000000 6.000000,-1.000000,433.066345,36.086906,54.980042,26.291962,1.000000 6.000000,-1.000000,435.783142,9.999717,55.887512,31.323505,1.000000 6.000000,-1.000000,313.235870,180.879547,71.005035,28.053970,1.000000 6.000000,-1.000000,320.905334,157.748444,67.007751,30.129456,1.000000 6.000000,-1.000000,320.561279,131.722046,73.992126,34.081833,1.000000 6.000000,-1.000000,834.122559,301.471252,46.008911,16.000244,1.000000 6.000000,-1.000000,985.573364,460.898956,37.426636,19.159607,1.000000 6.000000,-1.000000,991.345947,397.816681,31.654053,17.269470,1.000000 6.000000,-1.000000,993.757568,212.321442,29.242432,12.439087,1.000000 6.000000,-1.000000,990.632812,483.835571,32.367188,13.984619,1.000000 6.000000,-1.000000,993.945923,504.789581,29.054077,13.983612,1.000000 6.000000,-1.000000,999.230835,523.712952,23.769165,15.147339,1.000000 6.000000,-1.000000,989.739197,543.845093,33.260803,14.207947,1.000000 6.000000,-1.000000,967.325073,596.364380,55.674927,20.830505,1.000000 6.000000,-1.000000,982.814697,562.962952,40.185303,16.168152,1.000000 6.000000,-1.000000,759.513916,10.181582,132.098022,602.166260,1.000000 6.000000,-1.000000,569.883179,331.073975,197.315186,288.980103,1.000000 6.000000,-1.000000,552.922729,0.000000,179.185669,213.372803,1.000000 6.000000,-1.000000,327.232391,0.000000,168.348816,225.928070,1.000000 6.000000,-1.000000,175.696747,0.000000,105.745575,178.018158,1.000000 6.000000,-1.000000,592.731079,334.134827,55.919556,43.503601,1.000000 6.000000,-1.000000,602.016357,365.191742,33.949097,24.355865,1.000000 6.000000,-1.000000,605.268616,381.098145,37.965393,26.401367,1.000000 6.000000,-1.000000,615.476257,397.964111,37.010986,23.400360,1.000000 6.000000,-1.000000,623.732239,409.857269,36.950134,29.354462,1.000000 6.000000,-1.000000,634.939209,428.750763,33.011780,23.310608,1.000000 6.000000,-1.000000,640.178223,440.599091,36.981079,28.370056,1.000000 6.000000,-1.000000,655.640869,472.430908,35.011292,28.310272,1.000000 6.000000,-1.000000,665.847534,488.263550,35.041260,26.326599,1.000000 6.000000,-1.000000,672.086792,504.159088,35.011353,25.356171,1.000000 6.000000,-1.000000,680.339722,520.005676,36.996033,25.371094,1.000000 6.000000,-1.000000,690.577332,537.943665,30.983154,22.298401,1.000000 6.000000,-1.000000,694.817017,549.810059,37.980347,29.340454,1.000000 6.000000,-1.000000,703.100830,566.657898,39.921204,29.399353,1.000000 6.000000,-1.000000,653.268127,524.739990,26.386414,35.920959,1.000000 6.000000,-1.000000,626.628418,480.104401,27.369751,36.935211,1.000000 6.000000,-1.000000,602.898987,432.466736,27.338745,31.906677,1.000000 6.000000,-1.000000,562.988647,373.058685,22.267456,25.952606,1.000000 6.000000,-1.000000,170.293182,108.997726,17.683716,27.891373,1.000000 6.000000,-1.000000,177.873932,80.865562,17.668762,26.953339,1.000000 6.000000,-1.000000,181.469360,47.749035,20.608887,33.967365,1.000000 7.000000,-1.000000,833.498962,507.498993,60.005554,20.490326,1.000000 7.000000,-1.000000,835.229858,435.547852,54.981934,19.019379,1.000000 7.000000,-1.000000,829.581970,411.051392,58.057129,19.570557,1.000000 7.000000,-1.000000,832.430725,385.959564,55.559326,19.019318,1.000000 7.000000,-1.000000,830.883179,362.990540,59.556763,20.019440,1.000000 7.000000,-1.000000,835.261414,317.508148,55.504517,19.994537,1.000000 7.000000,-1.000000,833.638000,274.892670,53.608948,18.698151,1.000000 7.000000,-1.000000,835.713989,255.528290,53.007629,15.020844,1.000000 7.000000,-1.000000,836.114746,231.832520,53.085449,16.697891,1.000000 7.000000,-1.000000,835.566284,209.840759,54.059631,18.670090,1.000000 7.000000,-1.000000,835.466553,188.821136,57.033142,17.598282,1.000000 7.000000,-1.000000,829.497620,166.975861,59.031372,15.997070,1.000000 7.000000,-1.000000,831.997437,146.710999,48.409912,16.192596,1.000000 7.000000,-1.000000,832.896851,124.370201,60.558960,18.514946,1.000000 7.000000,-1.000000,829.926208,103.525116,57.007202,17.418114,1.000000 7.000000,-1.000000,836.400635,82.383995,56.406921,17.390038,1.000000 7.000000,-1.000000,831.776855,57.887695,63.056763,22.471115,1.000000 7.000000,-1.000000,832.303284,38.494701,55.008850,19.368053,1.000000 7.000000,-1.000000,831.253296,18.874302,55.610107,18.018909,1.000000 7.000000,-1.000000,549.460388,85.386078,41.140747,51.059189,1.000000 7.000000,-1.000000,562.829163,168.385468,62.355774,43.939606,1.000000 7.000000,-1.000000,572.301819,146.094528,64.329163,45.961746,1.000000 7.000000,-1.000000,837.251099,459.861084,55.006897,18.019165,1.000000 7.000000,-1.000000,838.071960,533.391602,59.581665,19.019348,1.000000 7.000000,-1.000000,609.421021,69.171051,63.253174,41.938835,1.000000 7.000000,-1.000000,835.644958,556.483215,59.006409,17.467957,1.000000 7.000000,-1.000000,781.467468,487.274414,38.336853,13.049469,1.000000 7.000000,-1.000000,780.918945,464.208618,43.435181,19.065247,1.000000 7.000000,-1.000000,769.127747,393.553864,55.580261,22.620850,1.000000 7.000000,-1.000000,769.628235,373.213165,53.008606,18.290527,1.000000 7.000000,-1.000000,764.955566,346.641663,61.581055,22.994965,1.000000 7.000000,-1.000000,766.880005,323.574951,59.033386,20.545746,1.000000 7.000000,-1.000000,762.784729,299.682648,61.528137,20.991638,1.000000 7.000000,-1.000000,766.659546,278.563324,50.660400,16.772705,1.000000 7.000000,-1.000000,763.636108,253.645996,59.031372,21.570801,1.000000 7.000000,-1.000000,752.067383,230.929321,70.500366,19.246506,1.000000 7.000000,-1.000000,763.514343,208.635345,57.530762,20.993668,1.000000 7.000000,-1.000000,765.991211,187.565842,54.430603,17.997330,1.000000 7.000000,-1.000000,760.866943,161.673294,62.582092,22.474289,1.000000 7.000000,-1.000000,772.916199,144.133560,50.009277,17.240524,1.000000 7.000000,-1.000000,790.564392,89.924866,35.012329,10.148369,1.000000 7.000000,-1.000000,780.890198,103.170464,44.410400,15.897179,1.000000 7.000000,-1.000000,768.443054,123.065125,58.405090,18.417221,1.000000 7.000000,-1.000000,832.594849,592.019226,71.576111,22.246887,1.000000 7.000000,-1.000000,598.122559,99.534882,61.255981,38.941391,1.000000 7.000000,-1.000000,620.941833,49.877541,58.156860,40.088364,1.000000 7.000000,-1.000000,362.175476,19.446239,52.833099,30.940395,1.000000 7.000000,-1.000000,188.297592,151.841858,50.934586,24.970169,1.000000 7.000000,-1.000000,185.749817,127.924637,60.856079,29.669632,1.000000 7.000000,-1.000000,195.998291,102.658546,48.960297,20.997299,1.000000 7.000000,-1.000000,196.498795,78.566902,59.907852,27.793045,1.000000 7.000000,-1.000000,209.322861,32.306198,54.909164,26.845581,1.000000 7.000000,-1.000000,216.696594,4.092010,54.884216,29.868248,1.000000 7.000000,-1.000000,369.574158,0.000000,55.834534,27.120638,1.000000 7.000000,-1.000000,358.801239,44.563190,50.810028,30.992992,1.000000 7.000000,-1.000000,651.637451,0.000000,49.159790,35.360756,1.000000 7.000000,-1.000000,348.850983,89.845856,51.908752,29.945732,1.000000 7.000000,-1.000000,247.351929,195.407562,70.101501,27.422058,1.000000 7.000000,-1.000000,168.852493,178.382660,35.888840,15.249146,1.000000 7.000000,-1.000000,202.066071,183.532776,47.984039,24.995056,1.000000 7.000000,-1.000000,317.677826,209.683365,34.939545,19.268494,1.000000 7.000000,-1.000000,351.942352,217.856812,35.863922,19.171783,1.000000 7.000000,-1.000000,385.708344,207.963165,52.882935,21.845047,1.000000 7.000000,-1.000000,393.181793,185.769928,41.862671,22.169144,1.000000 7.000000,-1.000000,398.681946,166.625916,45.860138,22.019562,1.000000 7.000000,-1.000000,402.205750,145.531494,46.861298,23.022812,1.000000 7.000000,-1.000000,411.755280,126.288795,38.837341,22.221107,1.000000 7.000000,-1.000000,413.130249,104.221809,36.864044,21.294151,1.000000 7.000000,-1.000000,418.655334,83.077805,45.910004,25.094986,1.000000 7.000000,-1.000000,428.453979,36.869801,54.959137,25.817947,1.000000 7.000000,-1.000000,430.980713,10.727969,55.806610,30.868416,1.000000 7.000000,-1.000000,310.083649,182.840530,71.000916,27.420013,1.000000 7.000000,-1.000000,317.532135,159.624268,67.004425,29.544952,1.000000 7.000000,-1.000000,316.958771,133.583084,73.977386,33.466629,1.000000 7.000000,-1.000000,832.163391,297.812683,46.009705,16.143738,1.000000 7.000000,-1.000000,985.229797,456.171356,37.770203,19.019318,1.000000 7.000000,-1.000000,990.183350,393.041779,32.816650,16.969208,1.000000 7.000000,-1.000000,990.868958,207.164917,32.131042,12.805267,1.000000 7.000000,-1.000000,990.328064,479.026978,32.671936,14.008392,1.000000 7.000000,-1.000000,993.850037,499.967773,29.149963,13.986511,1.000000 7.000000,-1.000000,999.323425,518.853149,23.676575,14.899414,1.000000 7.000000,-1.000000,990.172791,538.953552,32.827209,14.139282,1.000000 7.000000,-1.000000,968.152100,591.284302,54.847900,21.361328,1.000000 7.000000,-1.000000,983.299561,558.264893,39.700439,15.994080,1.000000 7.000000,-1.000000,758.503296,7.698089,133.023132,601.138062,1.000000 7.000000,-1.000000,568.465332,329.813293,199.500183,288.264282,1.000000 7.000000,-1.000000,549.533325,0.000000,176.330688,212.325073,1.000000 7.000000,-1.000000,324.077393,0.000000,166.559875,226.583420,1.000000 7.000000,-1.000000,172.202850,0.000000,104.648865,180.737747,1.000000 7.000000,-1.000000,591.208923,332.913452,55.858521,43.834045,1.000000 7.000000,-1.000000,600.681824,364.004089,33.912415,24.590393,1.000000 7.000000,-1.000000,604.103027,379.847473,37.937927,26.665436,1.000000 7.000000,-1.000000,614.448242,396.620331,37.013672,23.665009,1.000000 7.000000,-1.000000,622.872131,408.441284,36.912903,29.588043,1.000000 7.000000,-1.000000,634.216553,427.261200,33.015137,23.515442,1.000000 7.000000,-1.000000,639.614136,439.007446,36.963684,28.613770,1.000000 7.000000,-1.000000,655.382874,470.723206,35.014343,28.514099,1.000000 7.000000,-1.000000,665.727112,486.442993,35.064270,26.540771,1.000000 7.000000,-1.000000,672.124756,502.265533,35.014404,25.590546,1.000000 7.000000,-1.000000,680.545593,518.009216,36.988708,25.615479,1.000000 7.000000,-1.000000,690.940735,535.903748,30.967041,22.493469,1.000000 7.000000,-1.000000,695.339172,547.678040,37.962830,29.563965,1.000000 7.000000,-1.000000,703.810852,564.422791,39.863403,29.662781,1.000000 7.000000,-1.000000,653.429565,523.231323,26.640503,35.863953,1.000000 7.000000,-1.000000,626.366211,478.844025,27.613708,36.887909,1.000000 7.000000,-1.000000,602.152771,431.455231,27.562744,31.840485,1.000000 7.000000,-1.000000,561.641968,372.447968,22.442566,25.917542,1.000000 7.000000,-1.000000,166.531052,112.379379,17.470734,27.816010,1.000000 7.000000,-1.000000,173.831009,84.163048,17.445831,26.918045,1.000000 7.000000,-1.000000,177.156433,50.973316,20.345444,33.940647,1.000000 8.000000,-1.000000,833.642456,503.699402,59.997620,21.082764,1.000000 8.000000,-1.000000,834.465027,431.779694,54.965515,19.023682,1.000000 8.000000,-1.000000,828.559448,407.889130,58.069702,18.996063,1.000000 8.000000,-1.000000,831.347473,382.764893,55.373108,19.023590,1.000000 8.000000,-1.000000,829.580872,359.812683,59.369385,20.023468,1.000000 8.000000,-1.000000,833.309326,313.745300,55.697449,19.988586,1.000000 8.000000,-1.000000,831.437012,271.691223,53.443298,18.173828,1.000000 8.000000,-1.000000,833.143250,251.783951,53.001770,15.026321,1.000000 8.000000,-1.000000,833.304504,228.613998,53.109497,16.174149,1.000000 8.000000,-1.000000,832.536743,206.628815,54.073364,18.135757,1.000000 8.000000,-1.000000,832.397095,185.605484,57.036072,17.034348,1.000000 8.000000,-1.000000,826.040833,163.767166,59.033691,16.051697,1.000000 8.000000,-1.000000,828.340454,143.058960,48.565063,16.666641,1.000000 8.000000,-1.000000,829.199646,120.585167,60.371277,19.117989,1.000000 8.000000,-1.000000,825.840820,99.806168,57.000183,17.981560,1.000000 8.000000,-1.000000,832.103821,78.611488,56.559692,17.943527,1.000000 8.000000,-1.000000,827.231995,54.721100,63.067871,21.950172,1.000000 8.000000,-1.000000,827.568726,34.775211,55.002441,19.910973,1.000000 8.000000,-1.000000,826.499084,15.709368,55.443909,18.023512,1.000000 8.000000,-1.000000,545.638245,84.815056,40.789307,51.073891,1.000000 8.000000,-1.000000,559.551758,167.799667,62.486816,43.507492,1.000000 8.000000,-1.000000,568.812073,145.395660,64.449646,45.539001,1.000000 8.000000,-1.000000,836.894592,456.614410,55.000549,18.023773,1.000000 8.000000,-1.000000,838.443542,529.544373,59.404236,19.023621,1.000000 8.000000,-1.000000,605.171997,68.116051,63.343994,41.507309,1.000000 8.000000,-1.000000,836.246704,552.669006,58.998779,18.051331,1.000000 8.000000,-1.000000,781.207458,484.261902,38.465149,13.319092,1.000000 8.000000,-1.000000,780.439636,461.100311,43.601807,19.488556,1.000000 8.000000,-1.000000,767.933716,390.995361,55.803101,22.065430,1.000000 8.000000,-1.000000,768.234436,370.122040,53.002869,18.803833,1.000000 8.000000,-1.000000,763.293823,344.127136,61.802124,22.988098,1.000000 8.000000,-1.000000,765.187805,321.037384,59.035706,20.023529,1.000000 8.000000,-1.000000,760.654785,297.059906,61.729248,21.117584,1.000000 8.000000,-1.000000,764.478577,276.029205,50.515564,16.278870,1.000000 8.000000,-1.000000,761.046997,251.089844,59.033691,21.055115,1.000000 8.000000,-1.000000,749.252319,228.549072,70.688782,18.987732,1.000000 8.000000,-1.000000,760.476318,206.142044,57.733093,20.987396,1.000000 8.000000,-1.000000,762.742920,185.048889,54.593994,17.991959,1.000000 8.000000,-1.000000,757.570374,159.203979,62.403809,21.859024,1.000000 8.000000,-1.000000,769.236938,141.050949,50.004272,17.734192,1.000000 8.000000,-1.000000,786.341125,86.946007,35.011902,10.027847,1.000000 8.000000,-1.000000,776.799500,100.509117,44.566711,15.453476,1.000000 8.000000,-1.000000,764.575562,119.958885,58.557251,18.980370,1.000000 8.000000,-1.000000,833.576599,588.812927,71.395142,21.541931,1.000000 8.000000,-1.000000,594.156250,98.620461,61.347412,38.510750,1.000000 8.000000,-1.000000,616.499817,48.708569,58.209351,39.717258,1.000000 8.000000,-1.000000,357.471466,20.910103,52.757507,30.512154,1.000000 8.000000,-1.000000,184.872589,155.041992,50.899414,24.553696,1.000000 8.000000,-1.000000,182.106079,131.161819,60.788055,29.132050,1.000000 8.000000,-1.000000,192.052231,105.793541,48.935684,20.591988,1.000000 8.000000,-1.000000,192.353043,81.669182,59.860077,27.305878,1.000000 8.000000,-1.000000,204.704407,35.312538,54.862854,26.378670,1.000000 8.000000,-1.000000,211.826538,7.016986,54.827911,29.410404,1.000000 8.000000,-1.000000,364.628540,0.000000,55.758026,28.053478,1.000000 8.000000,-1.000000,354.347687,46.069450,50.725037,30.584679,1.000000 8.000000,-1.000000,646.667542,0.000000,49.214905,33.587578,1.000000 8.000000,-1.000000,344.819397,91.458298,51.863312,29.517815,1.000000 8.000000,-1.000000,244.338272,198.026047,70.130447,26.785355,1.000000 8.000000,-1.000000,165.652756,181.794342,35.838226,14.945297,1.000000 8.000000,-1.000000,198.946213,186.603729,47.969727,24.588547,1.000000 8.000000,-1.000000,314.782867,211.609207,34.909149,18.973434,1.000000 8.000000,-1.000000,349.146881,219.451019,35.803345,18.836838,1.000000 8.000000,-1.000000,382.813019,209.201172,52.827240,21.379608,1.000000 8.000000,-1.000000,390.074738,186.934753,41.800323,21.833298,1.000000 8.000000,-1.000000,395.373718,167.736588,45.796600,21.623917,1.000000 8.000000,-1.000000,398.706940,146.608551,46.797424,22.626877,1.000000 8.000000,-1.000000,408.074066,127.271851,38.765869,21.905212,1.000000 8.000000,-1.000000,409.199188,105.181503,36.803162,21.008476,1.000000 8.000000,-1.000000,414.533081,83.983978,45.866364,24.728340,1.000000 8.000000,-1.000000,423.849915,37.699955,54.932800,25.341362,1.000000 8.000000,-1.000000,426.186340,11.506083,55.720154,30.410254,1.000000 8.000000,-1.000000,306.951538,184.834244,70.989685,26.783325,1.000000 8.000000,-1.000000,314.178284,161.535126,66.994415,28.957535,1.000000 8.000000,-1.000000,313.375641,135.481766,73.955322,32.848099,1.000000 8.000000,-1.000000,830.172302,294.175415,46.005981,16.597839,1.000000 8.000000,-1.000000,984.839111,451.449310,38.160889,19.023621,1.000000 8.000000,-1.000000,988.973145,388.278687,34.026855,16.954193,1.000000 8.000000,-1.000000,987.932678,201.976730,35.067322,13.232147,1.000000 8.000000,-1.000000,989.975830,473.928406,33.024170,14.324005,1.000000 8.000000,-1.000000,993.706238,494.870575,29.293762,14.264587,1.000000 8.000000,-1.000000,999.367554,513.992615,23.632446,14.656494,1.000000 8.000000,-1.000000,990.558838,533.859253,32.441162,14.462646,1.000000 8.000000,-1.000000,968.933777,586.210754,54.066223,21.875610,1.000000 8.000000,-1.000000,983.737488,553.562256,39.262512,15.989319,1.000000 8.000000,-1.000000,753.461548,5.264757,139.009094,601.088257,1.000000 8.000000,-1.000000,567.041809,328.570770,201.665344,287.519806,1.000000 8.000000,-1.000000,546.140137,0.000000,173.538757,211.307159,1.000000 8.000000,-1.000000,320.941071,0.000000,164.754364,227.267181,1.000000 8.000000,-1.000000,168.742737,0.000000,103.503784,183.490295,1.000000 8.000000,-1.000000,589.678894,331.709900,55.791931,44.160126,1.000000 8.000000,-1.000000,599.338501,362.831146,33.872375,24.822510,1.000000 8.000000,-1.000000,602.928223,378.609955,37.906677,26.926849,1.000000 8.000000,-1.000000,613.410095,395.287994,37.012573,23.927338,1.000000 8.000000,-1.000000,622.001038,407.035583,36.871948,29.818695,1.000000 8.000000,-1.000000,633.481689,425.780060,33.015320,23.717957,1.000000 8.000000,-1.000000,639.037292,437.423065,36.942749,28.854614,1.000000 8.000000,-1.000000,655.110657,469.019592,35.013794,28.715088,1.000000 8.000000,-1.000000,665.591431,484.624969,35.083740,26.752319,1.000000 8.000000,-1.000000,672.146851,500.372955,35.013855,25.822296,1.000000 8.000000,-1.000000,680.734741,516.012207,36.977661,25.857178,1.000000 8.000000,-1.000000,691.286377,533.861511,30.947815,22.686218,1.000000 8.000000,-1.000000,695.843140,545.542419,37.941467,29.784668,1.000000 8.000000,-1.000000,704.501831,562.182434,39.801636,29.923279,1.000000 8.000000,-1.000000,653.576904,521.721558,26.891907,35.803406,1.000000 8.000000,-1.000000,626.092651,477.586945,27.854858,36.837006,1.000000 8.000000,-1.000000,601.397583,430.451721,27.783997,31.771118,1.000000 8.000000,-1.000000,560.290283,371.851135,22.615479,25.879883,1.000000 8.000000,-1.000000,162.803268,115.800781,17.256027,27.737869,1.000000 8.000000,-1.000000,169.821701,87.503082,17.221176,26.880081,1.000000 8.000000,-1.000000,172.876801,54.243454,20.079987,33.910561,1.000000 ================================================ FILE: assets/DOTA8-MOT/train/P0861__1024__0___1648/det/det_obb.txt ================================================ 1.000000,-1.000000,862.262878,539.240173,59.999321,20.000832,0.034907,1.000000,2.000000 1.000000,-1.000000,866.292725,466.838013,54.999016,19.000315,0.034907,1.000000,2.000000 1.000000,-1.000000,863.160645,442.187653,58.077854,18.974989,0.086572,1.000000,2.000000 1.000000,-1.000000,866.537476,416.815247,55.346180,19.024078,0.071233,1.000000,2.000000 1.000000,-1.000000,868.306702,394.837402,59.076084,20.025723,0.084835,1.000000,2.000000 1.000000,-1.000000,873.407776,349.012878,55.370876,19.997467,0.053095,1.000000,2.000000 1.000000,-1.000000,873.400452,305.986053,53.084126,18.027664,0.091476,1.000000,2.000000 1.000000,-1.000000,876.515808,284.589661,53.008591,15.016784,0.053781,1.000000,2.000000 1.000000,-1.000000,877.868408,262.474426,53.152523,15.960173,0.106387,1.000000,2.000000 1.000000,-1.000000,879.221252,240.652344,54.084778,17.028685,0.090372,1.000000,2.000000 1.000000,-1.000000,882.240784,219.236176,57.036079,17.024061,0.069995,1.000000,2.000000 1.000000,-1.000000,878.460510,196.587967,59.033798,15.992846,0.068807,1.000000,2.000000 1.000000,-1.000000,876.947876,176.032364,48.344177,15.997558,0.055703,1.000000,2.000000 1.000000,-1.000000,885.176025,155.306732,60.709812,18.014027,0.051579,1.000000,2.000000 1.000000,-1.000000,881.780029,133.672501,57.008713,16.999865,0.052457,1.000000,2.000000 1.000000,-1.000000,889.175781,112.420433,56.000549,16.999321,0.034907,1.000000,2.000000 1.000000,-1.000000,888.888550,91.347893,63.072853,21.926064,0.082463,1.000000,2.000000 1.000000,-1.000000,886.987549,69.823402,55.010101,19.015139,0.053042,1.000000,2.000000 1.000000,-1.000000,887.340637,50.317558,55.101841,18.027332,0.089371,1.000000,2.000000 1.000000,-1.000000,593.882812,115.615814,49.606350,21.429480,2.088240,1.000000,2.000000 1.000000,-1.000000,613.096008,195.835327,61.199314,17.992085,0.558174,1.000000,2.000000 1.000000,-1.000000,624.838440,174.732391,62.312767,20.226809,0.564138,1.000000,2.000000 1.000000,-1.000000,866.652832,489.857544,55.008179,18.015055,0.053095,1.000000,2.000000 1.000000,-1.000000,865.423523,563.366150,59.109718,19.026541,0.085682,1.000000,2.000000 1.000000,-1.000000,665.985046,99.622429,60.683601,20.181610,0.528823,1.000000,2.000000 1.000000,-1.000000,861.266052,586.229065,59.008301,17.013884,0.051844,1.000000,2.000000 1.000000,-1.000000,801.207703,511.093353,38.354958,12.996212,0.061228,1.000000,2.000000 1.000000,-1.000000,804.404419,491.190979,42.999825,17.998850,0.034907,1.000000,2.000000 1.000000,-1.000000,802.815063,422.095276,55.835251,21.984024,0.071271,1.000000,2.000000 1.000000,-1.000000,803.430298,399.609009,53.009628,18.015537,0.053781,1.000000,2.000000 1.000000,-1.000000,804.455383,375.122375,61.385941,22.999037,0.051255,1.000000,2.000000 1.000000,-1.000000,806.752258,351.665863,59.027988,20.025839,0.084938,1.000000,2.000000 1.000000,-1.000000,805.130249,327.117676,61.351162,20.995348,0.051306,1.000000,2.000000 1.000000,-1.000000,804.917725,304.595123,50.130421,16.030073,0.094819,1.000000,2.000000 1.000000,-1.000000,807.359741,281.688690,59.033733,21.053823,0.068807,1.000000,2.000000 1.000000,-1.000000,803.058472,257.503601,70.569466,18.991566,0.063454,1.000000,2.000000 1.000000,-1.000000,809.305359,236.208694,57.377602,20.996964,0.052474,1.000000,2.000000 1.000000,-1.000000,811.607849,213.274521,53.998604,18.002941,0.034907,1.000000,2.000000 1.000000,-1.000000,811.950317,190.273804,62.170509,21.024971,0.083277,1.000000,2.000000 1.000000,-1.000000,818.934875,170.509918,50.009834,17.016006,0.054893,1.000000,2.000000 1.000000,-1.000000,832.460693,113.451881,35.012604,10.023527,0.063482,1.000000,2.000000 1.000000,-1.000000,826.548767,129.245285,44.725975,14.986153,0.080280,1.000000,2.000000 1.000000,-1.000000,819.801941,150.521072,57.999378,17.999857,0.034909,1.000000,2.000000 1.000000,-1.000000,862.294312,624.292725,71.237343,20.025291,0.091168,1.000000,2.000000 1.000000,-1.000000,652.016663,127.152687,59.479515,17.442734,0.498554,1.000000,2.000000 1.000000,-1.000000,676.211304,78.967316,54.838905,20.142973,0.507034,1.000000,2.000000 1.000000,-1.000000,417.448792,29.454943,49.429192,20.878641,0.324377,1.000000,2.000000 1.000000,-1.000000,235.031128,148.112396,48.533703,15.796028,0.310346,1.000000,2.000000 1.000000,-1.000000,238.614426,125.680206,58.660732,19.416946,0.242437,1.000000,2.000000 1.000000,-1.000000,244.823608,96.922417,47.361618,12.606480,0.274636,1.000000,2.000000 1.000000,-1.000000,252.052338,76.162415,57.559616,17.205652,0.275441,1.000000,2.000000 1.000000,-1.000000,265.185669,29.592533,52.476032,16.744930,0.289277,1.000000,2.000000 1.000000,-1.000000,274.099487,4.288618,52.224316,17.918573,0.289272,1.000000,2.000000 1.000000,-1.000000,427.656921,5.608071,52.784229,19.934607,0.284496,1.000000,2.000000 1.000000,-1.000000,411.134674,53.615273,47.803780,20.603170,0.310322,1.000000,2.000000 1.000000,-1.000000,705.373413,28.153364,46.529774,17.474541,0.527357,1.000000,2.000000 1.000000,-1.000000,398.878967,97.439568,49.999153,18.002100,0.318715,1.000000,2.000000 1.000000,-1.000000,300.867279,196.939270,68.848923,13.593743,0.301157,1.000000,2.000000 1.000000,-1.000000,206.814987,168.139023,34.386234,11.382750,0.243929,1.000000,2.000000 1.000000,-1.000000,245.201935,180.421188,46.173180,14.554766,0.342988,1.000000,2.000000 1.000000,-1.000000,352.968750,209.265045,33.330040,11.401583,0.309004,1.000000,2.000000 1.000000,-1.000000,387.632629,219.481461,36.283478,13.139232,0.232330,1.000000,2.000000 1.000000,-1.000000,429.887146,212.952652,51.185623,14.316456,0.232271,1.000000,2.000000 1.000000,-1.000000,433.136017,191.553085,39.629276,14.783235,0.273487,1.000000,2.000000 1.000000,-1.000000,441.671112,172.511948,44.125767,15.295462,0.232276,1.000000,2.000000 1.000000,-1.000000,446.988983,153.012497,44.645840,15.517907,0.263435,1.000000,2.000000 1.000000,-1.000000,453.799622,134.148636,36.380875,16.493107,0.279795,1.000000,2.000000 1.000000,-1.000000,455.485413,110.283691,34.381474,14.557508,0.301132,1.000000,2.000000 1.000000,-1.000000,466.607361,92.660118,43.304150,15.801174,0.319627,1.000000,2.000000 1.000000,-1.000000,483.428436,47.384827,53.366344,15.738785,0.261849,1.000000,2.000000 1.000000,-1.000000,488.003632,24.365341,52.435696,20.863659,0.289277,1.000000,2.000000 1.000000,-1.000000,364.747070,187.164322,69.501144,14.536549,0.255180,1.000000,2.000000 1.000000,-1.000000,371.511902,165.385468,65.125198,15.771894,0.287441,1.000000,2.000000 1.000000,-1.000000,375.829895,142.022675,71.466545,19.198650,0.297349,1.000000,2.000000 1.000000,-1.000000,866.855103,326.774261,46.009975,15.998276,0.056652,1.000000,2.000000 1.000000,-1.000000,1005.303162,495.043732,36.468620,19.015789,0.053781,1.000000,2.000000 1.000000,-1.000000,1009.720825,431.140411,27.612692,16.969957,0.059304,1.000000,2.000000 1.000000,-1.000000,1015.447693,243.405807,15.533021,12.000253,0.034907,1.000000,2.000000 1.000000,-1.000000,1007.220825,515.284302,32.066475,14.001139,0.034908,1.000000,2.000000 1.000000,-1.000000,1008.353027,535.967957,29.424822,14.021163,0.009258,1.000000,2.000000 1.000000,-1.000000,1010.520813,556.241943,26.473803,13.956755,0.099365,1.000000,2.000000 1.000000,-1.000000,1005.319885,575.624634,36.196720,14.018911,0.055680,1.000000,2.000000 1.000000,-1.000000,992.739197,630.848999,61.188980,19.999735,0.034904,1.000000,2.000000 1.000000,-1.000000,1001.344482,595.551270,44.241371,15.996045,0.054145,1.000000,2.000000 1.000000,-1.000000,836.646790,327.217285,601.306213,131.034607,1.627328,1.000000,8.000000 1.000000,-1.000000,676.537537,484.615936,288.578491,79.649887,1.110809,1.000000,8.000000 1.000000,-1.000000,665.061218,89.352242,255.237488,78.617355,2.109764,1.000000,8.000000 1.000000,-1.000000,431.307495,102.688629,215.129593,124.403244,1.845045,1.000000,8.000000 1.000000,-1.000000,248.513901,73.329231,171.285309,67.649216,1.844190,1.000000,8.000000 1.000000,-1.000000,627.639038,361.046204,52.322239,23.703577,2.712759,1.000000,2.000000 1.000000,-1.000000,626.048523,383.126556,32.694611,12.477627,2.767590,1.000000,2.000000 1.000000,-1.000000,630.088257,400.215393,35.848740,13.389809,2.775257,1.000000,2.000000 1.000000,-1.000000,638.931152,415.871307,34.665310,12.974287,2.845398,1.000000,2.000000 1.000000,-1.000000,646.787659,431.213074,34.884701,14.760889,2.700052,1.000000,2.000000 1.000000,-1.000000,654.840454,447.445343,30.184288,13.376986,2.789641,1.000000,2.000000 1.000000,-1.000000,661.963379,462.404327,35.340965,14.800033,2.738110,1.000000,2.000000 1.000000,-1.000000,674.022705,494.760590,31.294300,16.551620,2.739831,1.000000,2.000000 1.000000,-1.000000,683.593628,510.313995,31.383192,16.156836,2.796052,1.000000,2.000000 1.000000,-1.000000,689.280457,525.834290,32.310783,14.299404,2.796016,1.000000,2.000000 1.000000,-1.000000,697.670898,542.448792,34.540127,13.926667,2.790599,1.000000,2.000000 1.000000,-1.000000,704.003235,558.229248,28.381645,12.513310,2.728985,1.000000,2.000000 1.000000,-1.000000,710.940063,574.480225,34.434410,16.100962,2.712797,1.000000,2.000000 1.000000,-1.000000,719.249939,591.583130,38.012333,13.863952,2.712782,1.000000,2.000000 1.000000,-1.000000,664.939148,549.706604,35.340973,12.507252,1.167379,1.000000,2.000000 1.000000,-1.000000,641.119202,505.102509,34.882233,13.415600,1.142056,1.000000,2.000000 1.000000,-1.000000,619.582214,454.220001,33.362797,12.031509,1.086605,1.000000,2.000000 1.000000,-1.000000,580.324463,389.308319,25.940361,11.627506,1.141901,1.000000,2.000000 1.000000,-1.000000,198.465775,106.754128,25.709761,13.340678,1.841234,1.000000,2.000000 1.000000,-1.000000,207.066101,77.792564,26.563457,12.016853,1.927642,1.000000,2.000000 1.000000,-1.000000,214.964661,49.351395,31.624640,12.649006,1.927367,1.000000,2.000000 2.000000,-1.000000,862.696106,535.252380,60.007618,19.998066,0.041606,1.000000,2.000000 2.000000,-1.000000,865.824585,463.306824,54.999031,19.000330,0.024934,1.000000,2.000000 2.000000,-1.000000,862.446960,438.688904,58.077888,18.974991,0.076599,1.000000,2.000000 2.000000,-1.000000,865.570435,413.284027,55.346138,19.024071,0.061259,1.000000,2.000000 2.000000,-1.000000,867.109680,391.315552,59.076122,20.025681,0.075760,1.000000,2.000000 2.000000,-1.000000,871.764465,345.416595,55.370880,19.997446,0.043122,1.000000,2.000000 2.000000,-1.000000,871.327881,302.391998,53.084106,18.027670,0.081503,1.000000,2.000000 2.000000,-1.000000,874.229736,280.965576,53.008560,15.016779,0.043808,1.000000,2.000000 2.000000,-1.000000,875.361694,258.837830,53.152447,15.960182,0.096409,1.000000,2.000000 2.000000,-1.000000,876.496704,237.003464,54.084866,17.028671,0.080398,1.000000,2.000000 2.000000,-1.000000,879.302490,215.558258,57.036057,17.024052,0.060022,1.000000,2.000000 2.000000,-1.000000,875.296631,192.948868,59.033718,15.992846,0.058834,1.000000,2.000000 2.000000,-1.000000,873.579102,172.409424,48.344170,15.997562,0.045730,1.000000,2.000000 2.000000,-1.000000,881.600159,151.602737,60.709827,18.014029,0.041605,1.000000,2.000000 2.000000,-1.000000,877.988586,130.003448,57.008713,16.999874,0.042483,1.000000,2.000000 2.000000,-1.000000,885.171936,108.678680,56.000538,16.999325,0.024933,1.000000,2.000000 2.000000,-1.000000,884.674561,87.610062,63.072933,21.926065,0.072489,1.000000,2.000000 2.000000,-1.000000,882.558899,66.105576,55.010113,19.015137,0.043069,1.000000,2.000000 2.000000,-1.000000,882.717590,46.597183,55.101852,18.027334,0.079398,1.000000,2.000000 2.000000,-1.000000,589.925476,114.818909,49.606312,21.429510,2.078266,1.000000,2.000000 2.000000,-1.000000,609.937744,194.842773,61.199276,17.992050,0.548200,1.000000,2.000000 2.000000,-1.000000,621.469177,173.623779,62.312798,20.226782,0.554164,1.000000,2.000000 2.000000,-1.000000,866.414307,486.321625,55.008167,18.015041,0.043122,1.000000,2.000000 2.000000,-1.000000,865.918152,559.838867,59.109749,19.026541,0.075708,1.000000,2.000000 2.000000,-1.000000,661.864685,98.107216,60.683636,20.181641,0.518850,1.000000,2.000000 2.000000,-1.000000,861.989014,582.742004,59.008316,17.013865,0.041871,1.000000,2.000000 2.000000,-1.000000,801.184326,508.209106,38.354996,12.996180,0.051255,1.000000,2.000000 2.000000,-1.000000,804.182251,488.275818,42.999825,17.998850,0.024933,1.000000,2.000000 2.000000,-1.000000,801.904053,419.199463,55.835209,21.984024,0.061298,1.000000,2.000000 2.000000,-1.000000,802.294739,396.708069,53.009659,18.015574,0.043807,1.000000,2.000000 2.000000,-1.000000,803.075806,372.212494,61.385921,22.999004,0.041282,1.000000,2.000000 2.000000,-1.000000,805.012634,348.248291,59.035671,20.023193,0.058780,1.000000,2.000000 2.000000,-1.000000,803.271729,324.203430,61.351154,20.995340,0.041332,1.000000,2.000000 2.000000,-1.000000,802.834717,301.684174,50.130417,16.030073,0.084845,1.000000,2.000000 2.000000,-1.000000,805.048035,278.754456,59.033783,21.053818,0.058834,1.000000,2.000000 2.000000,-1.000000,800.505859,254.613464,70.569466,18.991571,0.053481,1.000000,2.000000 2.000000,-1.000000,806.540100,233.257355,57.377647,20.996954,0.042501,1.000000,2.000000 2.000000,-1.000000,808.613708,210.301392,53.998589,18.002939,0.024935,1.000000,2.000000 2.000000,-1.000000,808.726807,187.298325,62.170498,21.024977,0.073303,1.000000,2.000000 2.000000,-1.000000,815.513855,167.465790,50.009857,17.016005,0.044919,1.000000,2.000000 2.000000,-1.000000,828.470032,110.275703,35.012573,10.023529,0.053508,1.000000,2.000000 2.000000,-1.000000,822.715820,126.127296,44.726063,14.986153,0.070307,1.000000,2.000000 2.000000,-1.000000,816.181641,147.469360,57.999340,17.999855,0.024934,1.000000,2.000000 2.000000,-1.000000,863.396851,620.793701,71.237358,20.025293,0.081196,1.000000,2.000000 2.000000,-1.000000,648.171570,125.775436,59.479538,17.442738,0.488581,1.000000,2.000000 2.000000,-1.000000,671.884460,77.351143,54.838902,20.143000,0.497061,1.000000,2.000000 2.000000,-1.000000,412.641022,30.421925,49.429218,20.878647,0.314404,1.000000,2.000000 2.000000,-1.000000,231.415787,150.892731,48.533730,15.796033,0.300373,1.000000,2.000000 2.000000,-1.000000,234.775223,128.425858,58.660717,19.416960,0.232466,1.000000,2.000000 2.000000,-1.000000,240.697266,99.607643,47.361607,12.606476,0.264662,1.000000,2.000000 2.000000,-1.000000,247.718613,78.776596,57.559593,17.205652,0.265468,1.000000,2.000000 2.000000,-1.000000,260.386780,32.078041,52.476028,16.744926,0.279304,1.000000,2.000000 2.000000,-1.000000,269.067322,6.618606,52.224308,18.059811,0.279299,1.000000,2.000000 2.000000,-1.000000,422.618378,6.447395,52.784248,19.990767,0.274522,1.000000,2.000000 2.000000,-1.000000,406.568146,54.644012,47.803772,20.603170,0.300349,1.000000,2.000000 2.000000,-1.000000,700.538330,26.248917,46.529804,17.474569,0.517383,1.000000,2.000000 2.000000,-1.000000,394.750092,98.588356,49.999161,18.002096,0.308741,1.000000,2.000000 2.000000,-1.000000,297.736053,199.057114,68.849136,13.593709,0.291083,1.000000,2.000000 2.000000,-1.000000,203.400787,171.199783,34.386242,11.382755,0.233955,1.000000,2.000000 2.000000,-1.000000,242.318985,182.512497,46.152660,14.561249,0.303194,1.000000,2.000000 2.000000,-1.000000,349.957458,210.866104,33.330044,11.401593,0.299031,1.000000,2.000000 2.000000,-1.000000,384.721497,220.736328,36.283478,13.139215,0.222357,1.000000,2.000000 2.000000,-1.000000,426.908752,213.786438,51.185593,14.316444,0.222297,1.000000,2.000000 2.000000,-1.000000,429.944122,192.355530,39.629250,14.783240,0.263513,1.000000,2.000000 2.000000,-1.000000,438.288910,173.230194,44.125748,15.295472,0.222304,1.000000,2.000000 2.000000,-1.000000,443.412018,153.678726,44.645870,15.517918,0.253462,1.000000,2.000000 2.000000,-1.000000,449.608765,135.252121,36.401230,16.483875,0.303268,1.000000,2.000000 2.000000,-1.000000,451.481873,110.867302,34.381454,14.557505,0.291159,1.000000,2.000000 2.000000,-1.000000,462.427460,93.133682,43.304173,15.801174,0.309654,1.000000,2.000000 2.000000,-1.000000,478.796204,47.692863,53.366341,15.738788,0.251877,1.000000,2.000000 2.000000,-1.000000,483.141632,24.628901,52.435703,20.863644,0.279303,1.000000,2.000000 2.000000,-1.000000,361.514771,188.649048,69.501144,14.536556,0.245207,1.000000,2.000000 2.000000,-1.000000,368.062042,166.803818,65.125175,15.771891,0.277468,1.000000,2.000000 2.000000,-1.000000,372.146820,143.399109,71.466560,19.198658,0.287376,1.000000,2.000000 2.000000,-1.000000,864.803955,323.736359,45.999081,16.002045,0.024936,1.000000,2.000000 2.000000,-1.000000,1005.154602,490.126770,36.558750,19.015783,0.043807,1.000000,2.000000 2.000000,-1.000000,1009.259216,426.198853,28.352789,16.969967,0.049330,1.000000,2.000000 2.000000,-1.000000,1014.064758,238.431183,18.175510,12.000236,0.024933,1.000000,2.000000 2.000000,-1.000000,1007.187622,510.344238,31.983768,14.001167,0.024934,1.000000,2.000000 2.000000,-1.000000,1008.429565,531.016785,29.148924,14.021153,3.140875,1.000000,2.000000 2.000000,-1.000000,1010.688110,551.245056,25.973520,13.955774,0.089391,1.000000,2.000000 2.000000,-1.000000,1005.585266,570.685791,35.506992,14.018929,0.045706,1.000000,2.000000 2.000000,-1.000000,993.270630,626.032898,59.928616,19.999746,0.024933,1.000000,2.000000 2.000000,-1.000000,1001.703796,590.646973,43.341103,15.996031,0.044172,1.000000,2.000000 2.000000,-1.000000,834.787720,323.988708,601.306213,131.034561,1.617355,1.000000,8.000000 2.000000,-1.000000,676.256287,482.976349,288.578461,79.649918,1.100836,1.000000,8.000000 2.000000,-1.000000,660.116028,89.095322,252.352402,78.604683,2.099790,1.000000,8.000000 2.000000,-1.000000,427.229431,103.513733,215.129593,124.403229,1.835071,1.000000,8.000000 2.000000,-1.000000,244.434952,74.929924,173.458099,67.649200,1.834217,1.000000,8.000000 2.000000,-1.000000,626.127808,359.900452,52.322212,23.703575,2.702786,1.000000,2.000000 2.000000,-1.000000,624.757568,381.995575,32.694592,12.477595,2.757616,1.000000,2.000000 2.000000,-1.000000,628.967529,399.043213,35.848698,13.389799,2.765284,1.000000,2.000000 2.000000,-1.000000,637.966125,414.610168,34.665295,12.974289,2.835425,1.000000,2.000000 2.000000,-1.000000,645.975220,429.872742,34.884682,14.760861,2.690078,1.000000,2.000000 2.000000,-1.000000,654.189514,446.023987,30.184317,13.376964,2.779669,1.000000,2.000000 2.000000,-1.000000,661.461243,460.911194,35.340942,14.800046,2.728137,1.000000,2.000000 2.000000,-1.000000,674.214233,493.438049,31.305651,16.545555,2.702849,1.000000,2.000000 2.000000,-1.000000,683.568237,508.602753,31.383213,16.156849,2.786077,1.000000,2.000000 2.000000,-1.000000,689.409607,524.065613,32.310791,14.299380,2.786042,1.000000,2.000000 2.000000,-1.000000,697.965393,540.595520,34.540092,13.926679,2.780623,1.000000,2.000000 2.000000,-1.000000,704.454773,556.312134,28.381662,12.513248,2.719013,1.000000,2.000000 2.000000,-1.000000,711.553345,572.493103,34.434444,16.100979,2.702824,1.000000,2.000000 2.000000,-1.000000,720.033325,589.512268,38.012257,13.863986,2.702808,1.000000,2.000000 2.000000,-1.000000,665.307556,548.179504,35.340942,12.507201,1.157405,1.000000,2.000000 2.000000,-1.000000,641.209045,503.642670,34.885105,13.414519,1.119255,1.000000,2.000000 2.000000,-1.000000,619.000610,453.149963,33.362793,12.031473,1.076631,1.000000,2.000000 2.000000,-1.000000,579.097412,388.632935,25.940327,11.627520,1.131931,1.000000,2.000000 2.000000,-1.000000,194.533997,109.985901,25.708771,13.341186,1.822483,1.000000,2.000000 2.000000,-1.000000,202.750824,80.855301,26.563471,12.016870,1.917669,1.000000,2.000000 2.000000,-1.000000,210.365936,52.337303,31.624647,12.649018,1.917439,1.000000,2.000000 3.000000,-1.000000,862.910400,531.753723,60.007626,19.997995,0.031632,1.000000,2.000000 3.000000,-1.000000,865.321533,459.780548,54.999077,19.000341,0.014960,1.000000,2.000000 3.000000,-1.000000,861.698303,435.197479,58.077892,18.974972,0.066626,1.000000,2.000000 3.000000,-1.000000,864.568359,409.762726,55.346134,19.024055,0.051285,1.000000,2.000000 3.000000,-1.000000,865.899109,387.753998,59.076126,20.025721,0.064885,1.000000,2.000000 3.000000,-1.000000,870.085205,341.836945,55.370911,19.997465,0.033148,1.000000,2.000000 3.000000,-1.000000,869.219482,298.818817,53.084110,18.027660,0.071530,1.000000,2.000000 3.000000,-1.000000,871.907532,277.364502,53.008549,15.016768,0.033835,1.000000,2.000000 3.000000,-1.000000,872.818848,255.226700,53.152512,15.960183,0.086440,1.000000,2.000000 3.000000,-1.000000,873.736023,233.381958,54.084820,17.028679,0.070425,1.000000,2.000000 3.000000,-1.000000,876.327881,211.909821,57.036079,17.024057,0.050048,1.000000,2.000000 3.000000,-1.000000,872.096619,189.341522,59.033714,15.992841,0.048860,1.000000,2.000000 3.000000,-1.000000,870.174255,168.820221,48.344135,15.997555,0.035757,1.000000,2.000000 3.000000,-1.000000,877.987427,147.934586,60.709850,18.014019,0.031632,1.000000,2.000000 3.000000,-1.000000,874.317200,125.877045,56.999920,17.002491,0.014959,1.000000,2.000000 3.000000,-1.000000,881.130981,104.977089,56.000542,16.999331,0.014962,1.000000,2.000000 3.000000,-1.000000,880.423584,83.914413,63.072914,21.926058,0.062516,1.000000,2.000000 3.000000,-1.000000,878.093567,62.432117,55.010174,19.015141,0.033095,1.000000,2.000000 3.000000,-1.000000,878.057617,42.923111,55.101864,18.027338,0.069425,1.000000,2.000000 3.000000,-1.000000,585.960449,114.061516,49.606331,21.429544,2.068292,1.000000,2.000000 3.000000,-1.000000,606.769897,193.881821,61.199268,17.992071,0.538227,1.000000,2.000000 3.000000,-1.000000,618.089050,172.548859,62.312752,20.226755,0.544190,1.000000,2.000000 3.000000,-1.000000,866.140503,482.788208,55.008190,18.015079,0.033148,1.000000,2.000000 3.000000,-1.000000,866.377625,556.306763,59.109737,19.026527,0.065735,1.000000,2.000000 3.000000,-1.000000,657.729492,96.633202,60.683620,20.181616,0.508876,1.000000,2.000000 3.000000,-1.000000,862.677124,579.248047,59.008297,17.013889,0.031899,1.000000,2.000000 3.000000,-1.000000,801.132141,505.325195,38.354931,12.996221,0.041282,1.000000,2.000000 3.000000,-1.000000,803.931274,485.363098,42.999863,17.998840,0.014960,1.000000,2.000000 3.000000,-1.000000,800.964111,416.312805,55.835201,21.984045,0.051324,1.000000,2.000000 3.000000,-1.000000,801.130554,393.818634,53.009647,18.015566,0.033834,1.000000,2.000000 3.000000,-1.000000,801.667236,369.316437,61.385891,22.999010,0.031309,1.000000,2.000000 3.000000,-1.000000,803.495789,345.818939,59.027958,20.025831,0.064995,1.000000,2.000000 3.000000,-1.000000,801.384277,321.307831,61.351173,20.995346,0.031359,1.000000,2.000000 3.000000,-1.000000,800.722656,298.794067,50.130383,16.030085,0.074872,1.000000,2.000000 3.000000,-1.000000,802.707153,275.843445,59.033714,21.053814,0.048861,1.000000,2.000000 3.000000,-1.000000,797.924561,251.748947,70.569427,18.991575,0.043508,1.000000,2.000000 3.000000,-1.000000,803.745361,230.333710,57.377636,20.996956,0.032528,1.000000,2.000000 3.000000,-1.000000,805.590088,207.358170,53.998627,18.002928,0.014960,1.000000,2.000000 3.000000,-1.000000,805.473633,184.355194,62.170483,21.024973,0.063330,1.000000,2.000000 3.000000,-1.000000,812.062683,164.455948,50.009903,17.016008,0.034946,1.000000,2.000000 3.000000,-1.000000,824.447876,107.139488,35.012604,10.023522,0.043535,1.000000,2.000000 3.000000,-1.000000,818.851990,123.047668,44.726025,14.986155,0.060334,1.000000,2.000000 3.000000,-1.000000,812.531006,144.453964,57.999325,17.999866,0.014957,1.000000,2.000000 3.000000,-1.000000,864.464294,617.283691,71.237358,20.025259,0.071222,1.000000,2.000000 3.000000,-1.000000,644.312866,124.436554,59.479553,17.442760,0.478608,1.000000,2.000000 3.000000,-1.000000,667.541748,75.778214,54.838928,20.142981,0.487087,1.000000,2.000000 3.000000,-1.000000,407.843079,31.436790,49.429199,20.878649,0.304431,1.000000,2.000000 3.000000,-1.000000,227.828400,153.709000,48.533718,15.796029,0.290400,1.000000,2.000000 3.000000,-1.000000,230.963562,131.209793,58.660728,19.416965,0.222491,1.000000,2.000000 3.000000,-1.000000,236.597916,102.333893,47.361622,12.606482,0.254689,1.000000,2.000000 3.000000,-1.000000,243.411163,81.433853,57.559589,17.205647,0.255494,1.000000,2.000000 3.000000,-1.000000,255.612991,34.611282,52.476032,16.744932,0.269330,1.000000,2.000000 3.000000,-1.000000,264.059662,8.992285,52.224335,18.213871,0.269325,1.000000,2.000000 3.000000,-1.000000,417.589294,7.333008,52.784260,20.054886,0.264549,1.000000,2.000000 3.000000,-1.000000,402.012085,55.718243,47.803795,20.603163,0.290376,1.000000,2.000000 3.000000,-1.000000,695.684509,24.392773,46.529770,17.474550,0.507410,1.000000,2.000000 3.000000,-1.000000,390.632935,99.778275,49.999153,18.002090,0.298768,1.000000,2.000000 3.000000,-1.000000,294.625732,201.209579,68.849129,13.593697,0.281110,1.000000,2.000000 3.000000,-1.000000,200.017273,174.294418,34.386234,11.382749,0.223982,1.000000,2.000000 3.000000,-1.000000,238.641525,185.808533,46.173187,14.554789,0.323042,1.000000,2.000000 3.000000,-1.000000,346.962280,212.497162,33.330048,11.401592,0.289058,1.000000,2.000000 3.000000,-1.000000,381.822998,222.020172,36.283470,13.139223,0.212383,1.000000,2.000000 3.000000,-1.000000,423.938843,214.649887,51.185631,14.316458,0.212324,1.000000,2.000000 3.000000,-1.000000,426.760345,193.189804,39.629242,14.783244,0.253540,1.000000,2.000000 3.000000,-1.000000,435.289490,173.368286,44.147141,15.288073,0.243444,1.000000,2.000000 3.000000,-1.000000,439.841827,154.380585,44.645851,15.517899,0.243489,1.000000,2.000000 3.000000,-1.000000,445.854523,135.893097,36.401222,16.483889,0.293294,1.000000,2.000000 3.000000,-1.000000,447.484314,111.490799,34.381424,14.557503,0.281186,1.000000,2.000000 3.000000,-1.000000,458.252533,93.648903,43.304169,15.801168,0.299680,1.000000,2.000000 3.000000,-1.000000,474.167206,48.047150,53.366356,15.738792,0.241902,1.000000,2.000000 3.000000,-1.000000,478.282410,24.940962,52.435715,20.863653,0.269330,1.000000,2.000000 3.000000,-1.000000,358.297455,190.165939,69.501122,14.536545,0.235234,1.000000,2.000000 3.000000,-1.000000,364.626526,168.256500,65.125183,15.771893,0.267494,1.000000,2.000000 3.000000,-1.000000,368.477692,144.812241,71.466568,19.198656,0.277402,1.000000,2.000000 3.000000,-1.000000,863.090271,319.733459,46.009995,15.998281,0.036706,1.000000,2.000000 3.000000,-1.000000,1004.982239,485.211914,36.699715,19.015800,0.033834,1.000000,2.000000 3.000000,-1.000000,1008.773621,421.259399,29.143066,16.969959,0.039358,1.000000,2.000000 3.000000,-1.000000,1012.657166,233.457733,20.867447,12.000244,0.014960,1.000000,2.000000 3.000000,-1.000000,1007.130615,505.405518,31.951918,14.001187,0.014960,1.000000,2.000000 3.000000,-1.000000,1008.472961,526.217163,29.054077,14.013489,-0.000000,1.000000,2.000000 3.000000,-1.000000,1010.831238,546.251404,25.525181,13.954838,0.079417,1.000000,2.000000 3.000000,-1.000000,1005.827148,565.748779,34.868816,14.018875,0.035734,1.000000,2.000000 3.000000,-1.000000,993.779297,621.218445,58.719238,19.999794,0.014960,1.000000,2.000000 3.000000,-1.000000,1002.039673,585.744507,42.492378,15.996084,0.034199,1.000000,2.000000 3.000000,-1.000000,832.896606,320.778870,601.306152,131.034546,1.607381,1.000000,8.000000 3.000000,-1.000000,675.958618,481.339691,288.578552,79.649857,1.090863,1.000000,8.000000 3.000000,-1.000000,655.203491,88.854752,249.559464,78.592552,2.089817,1.000000,8.000000 3.000000,-1.000000,423.159729,104.379486,215.129623,124.403252,1.825098,1.000000,8.000000 3.000000,-1.000000,240.366867,76.548607,175.671829,67.649200,1.824244,1.000000,8.000000 3.000000,-1.000000,624.605286,358.769867,52.322235,23.703564,2.692812,1.000000,2.000000 3.000000,-1.000000,623.455444,380.877502,32.694580,12.477631,2.747643,1.000000,2.000000 3.000000,-1.000000,627.835205,397.882324,35.848679,13.389812,2.755310,1.000000,2.000000 3.000000,-1.000000,636.988586,413.358734,34.665302,12.974260,2.825451,1.000000,2.000000 3.000000,-1.000000,645.149536,428.540771,34.884651,14.760887,2.680105,1.000000,2.000000 3.000000,-1.000000,653.524475,444.609131,30.184315,13.376965,2.769695,1.000000,2.000000 3.000000,-1.000000,660.944336,459.423157,35.340981,14.800048,2.718163,1.000000,2.000000 3.000000,-1.000000,673.646667,491.532410,31.294241,16.551603,2.719884,1.000000,2.000000 3.000000,-1.000000,683.681885,507.030762,31.385431,16.155714,2.764213,1.000000,2.000000 3.000000,-1.000000,689.521118,522.295654,32.310818,14.299445,2.776070,1.000000,2.000000 3.000000,-1.000000,698.241333,538.739441,34.540119,13.926645,2.770651,1.000000,2.000000 3.000000,-1.000000,704.887085,554.390442,28.381605,12.513287,2.709038,1.000000,2.000000 3.000000,-1.000000,712.146729,570.499939,34.434437,16.100935,2.692850,1.000000,2.000000 3.000000,-1.000000,720.796082,587.433716,38.012268,13.863950,2.692832,1.000000,2.000000 3.000000,-1.000000,665.660767,546.648682,35.340996,12.507224,1.147433,1.000000,2.000000 3.000000,-1.000000,640.955933,502.528595,34.882271,13.415616,1.122110,1.000000,2.000000 3.000000,-1.000000,618.408386,452.085693,33.362808,12.031487,1.066657,1.000000,2.000000 3.000000,-1.000000,577.863831,387.969910,25.940361,11.627544,1.121954,1.000000,2.000000 3.000000,-1.000000,190.445419,113.088287,25.709766,13.340677,1.821287,1.000000,2.000000 3.000000,-1.000000,198.466324,83.960930,26.563454,12.016858,1.907695,1.000000,2.000000 3.000000,-1.000000,205.796082,55.367889,31.624634,12.649022,1.907419,1.000000,2.000000 4.000000,-1.000000,863.090149,528.253052,60.007603,19.998016,0.021659,1.000000,2.000000 4.000000,-1.000000,864.783203,456.259430,54.999031,19.000341,0.004987,1.000000,2.000000 4.000000,-1.000000,860.914856,431.713684,58.077862,18.974974,0.056652,1.000000,2.000000 4.000000,-1.000000,863.531311,406.251617,55.346107,19.024071,0.041313,1.000000,2.000000 4.000000,-1.000000,864.631836,384.256775,59.076122,20.025723,0.055813,1.000000,2.000000 4.000000,-1.000000,868.370361,338.274139,55.370914,19.997459,0.023175,1.000000,2.000000 4.000000,-1.000000,867.075684,295.266754,53.084114,18.027641,0.061556,1.000000,2.000000 4.000000,-1.000000,869.549683,273.786804,53.008556,15.016782,0.023861,1.000000,2.000000 4.000000,-1.000000,870.240051,251.640945,53.152523,15.960174,0.076467,1.000000,2.000000 4.000000,-1.000000,870.939392,229.788177,54.084824,17.028675,0.060452,1.000000,2.000000 4.000000,-1.000000,873.316956,208.291275,57.036026,17.024061,0.040075,1.000000,2.000000 4.000000,-1.000000,868.860657,185.766296,59.033710,15.992852,0.038887,1.000000,2.000000 4.000000,-1.000000,866.733887,165.265167,48.344200,15.997561,0.025783,1.000000,2.000000 4.000000,-1.000000,874.338257,144.302628,60.709812,18.014011,0.021658,1.000000,2.000000 4.000000,-1.000000,870.296692,122.779686,57.008671,16.999865,0.022537,1.000000,2.000000 4.000000,-1.000000,877.053406,101.315872,56.000572,16.999327,0.004987,1.000000,2.000000 4.000000,-1.000000,876.135925,80.261360,63.072880,21.926056,0.052543,1.000000,2.000000 4.000000,-1.000000,873.591736,58.803368,55.010193,19.015142,0.023122,1.000000,2.000000 4.000000,-1.000000,873.361267,39.295696,55.101849,18.027330,0.059451,1.000000,2.000000 4.000000,-1.000000,581.988037,113.343704,49.606312,21.429558,2.058318,1.000000,2.000000 4.000000,-1.000000,603.592529,192.952515,61.199299,17.992062,0.528254,1.000000,2.000000 4.000000,-1.000000,614.698425,171.507690,62.312763,20.226791,0.534217,1.000000,2.000000 4.000000,-1.000000,865.831665,479.257812,55.008179,18.015068,0.023175,1.000000,2.000000 4.000000,-1.000000,866.802002,552.770386,59.109715,19.026510,0.055762,1.000000,2.000000 4.000000,-1.000000,653.579773,95.200470,60.683578,20.181601,0.498903,1.000000,2.000000 4.000000,-1.000000,863.330444,575.747437,59.008324,17.013824,0.021926,1.000000,2.000000 4.000000,-1.000000,801.051208,502.441956,38.354935,12.996209,0.031308,1.000000,2.000000 4.000000,-1.000000,803.651123,482.452911,42.999828,17.998848,0.004986,1.000000,2.000000 4.000000,-1.000000,799.995300,413.435669,55.835213,21.984022,0.041351,1.000000,2.000000 4.000000,-1.000000,799.937439,390.940979,53.009655,18.015547,0.023861,1.000000,2.000000 4.000000,-1.000000,800.229797,366.434692,61.385910,22.999046,0.021335,1.000000,2.000000 4.000000,-1.000000,801.823853,342.919983,59.027927,20.025820,0.055020,1.000000,2.000000 4.000000,-1.000000,799.468201,318.431305,61.351185,20.995331,0.021386,1.000000,2.000000 4.000000,-1.000000,798.581909,295.925201,50.130440,16.030123,0.064899,1.000000,2.000000 4.000000,-1.000000,800.337646,272.955963,59.033760,21.053829,0.038887,1.000000,2.000000 4.000000,-1.000000,795.314819,248.910355,70.569420,18.991577,0.033534,1.000000,2.000000 4.000000,-1.000000,800.921875,227.438110,57.377651,20.996958,0.022554,1.000000,2.000000 4.000000,-1.000000,802.537231,204.445343,53.998596,18.002922,0.004987,1.000000,2.000000 4.000000,-1.000000,802.191406,181.444641,62.170479,21.024992,0.053357,1.000000,2.000000 4.000000,-1.000000,808.581604,161.480667,50.009857,17.016005,0.024973,1.000000,2.000000 4.000000,-1.000000,820.394531,104.043533,35.012577,10.023525,0.033562,1.000000,2.000000 4.000000,-1.000000,814.957703,120.006729,44.726017,14.986160,0.050360,1.000000,2.000000 4.000000,-1.000000,808.850342,141.474930,57.999355,17.999865,0.004986,1.000000,2.000000 4.000000,-1.000000,865.496826,613.763306,71.237389,20.025267,0.061249,1.000000,2.000000 4.000000,-1.000000,640.441040,123.136246,59.479527,17.442724,0.468634,1.000000,2.000000 4.000000,-1.000000,663.183411,74.248657,54.838978,20.142998,0.477114,1.000000,2.000000 4.000000,-1.000000,403.055542,32.499451,49.429176,20.878643,0.294457,1.000000,2.000000 4.000000,-1.000000,224.269211,156.560898,48.533737,15.796021,0.280426,1.000000,2.000000 4.000000,-1.000000,227.179840,134.031540,58.660728,19.416958,0.212518,1.000000,2.000000 4.000000,-1.000000,232.525925,105.100891,47.361622,12.606475,0.244716,1.000000,2.000000 4.000000,-1.000000,239.130432,84.133942,57.559597,17.205650,0.245521,1.000000,2.000000 4.000000,-1.000000,250.864685,37.192009,52.476036,16.744921,0.259357,1.000000,2.000000 4.000000,-1.000000,259.076996,11.408745,52.224308,18.382116,0.259352,1.000000,2.000000 4.000000,-1.000000,412.569977,8.264393,52.784271,20.127829,0.254576,1.000000,2.000000 4.000000,-1.000000,397.466949,56.837860,47.803783,20.603168,0.280402,1.000000,2.000000 4.000000,-1.000000,690.812378,22.585087,46.529751,17.474533,0.497437,1.000000,2.000000 4.000000,-1.000000,386.527802,101.009201,49.999165,18.002098,0.288795,1.000000,2.000000 4.000000,-1.000000,291.536957,203.392975,68.849144,13.593703,0.271138,1.000000,2.000000 4.000000,-1.000000,196.664825,177.422668,34.386246,11.382737,0.214009,1.000000,2.000000 4.000000,-1.000000,235.401978,188.550995,46.173199,14.554783,0.313068,1.000000,2.000000 4.000000,-1.000000,343.983521,214.158020,33.330059,11.401601,0.279084,1.000000,2.000000 4.000000,-1.000000,378.937469,223.332855,36.283489,13.139219,0.202410,1.000000,2.000000 4.000000,-1.000000,420.977692,215.542938,51.185623,14.316451,0.202351,1.000000,2.000000 4.000000,-1.000000,423.585052,194.055786,39.629269,14.783232,0.243567,1.000000,2.000000 4.000000,-1.000000,431.546661,174.767807,44.125736,15.295462,0.202357,1.000000,2.000000 4.000000,-1.000000,436.278809,155.118011,44.645836,15.517905,0.233515,1.000000,2.000000 4.000000,-1.000000,442.522095,136.058823,36.380856,16.493109,0.249875,1.000000,2.000000 4.000000,-1.000000,443.493164,112.154144,34.381458,14.557505,0.271212,1.000000,2.000000 4.000000,-1.000000,454.082947,94.205734,43.304165,15.801169,0.289707,1.000000,2.000000 4.000000,-1.000000,469.542023,48.447506,53.366360,15.738791,0.231930,1.000000,2.000000 4.000000,-1.000000,473.426575,25.301449,52.435692,20.863649,0.259357,1.000000,2.000000 4.000000,-1.000000,355.095398,191.714859,69.501114,14.536552,0.225260,1.000000,2.000000 4.000000,-1.000000,361.205658,169.743362,65.125206,15.771891,0.257521,1.000000,2.000000 4.000000,-1.000000,364.822815,146.261856,71.466568,19.198668,0.267429,1.000000,2.000000 4.000000,-1.000000,861.155212,316.241547,46.009968,15.998247,0.026732,1.000000,2.000000 4.000000,-1.000000,1004.786377,480.298859,36.891365,19.015787,0.023860,1.000000,2.000000 4.000000,-1.000000,1008.264099,416.321930,29.983509,16.969967,0.029385,1.000000,2.000000 4.000000,-1.000000,1011.225281,228.485260,23.609488,12.000248,0.004987,1.000000,2.000000 4.000000,-1.000000,1007.049561,500.467804,31.970903,14.001167,0.004986,1.000000,2.000000 4.000000,-1.000000,1008.496948,521.406006,29.006104,14.004944,-0.000000,1.000000,2.000000 4.000000,-1.000000,1010.950134,541.260620,25.128534,13.954017,0.069444,1.000000,2.000000 4.000000,-1.000000,1006.045349,560.813599,34.281883,14.018928,0.025760,1.000000,2.000000 4.000000,-1.000000,994.265381,616.405273,57.560669,19.999758,0.004987,1.000000,2.000000 4.000000,-1.000000,1002.352417,580.843994,41.695107,15.996017,0.024225,1.000000,2.000000 4.000000,-1.000000,830.973572,317.588104,601.306335,131.034561,1.597408,1.000000,8.000000 4.000000,-1.000000,675.644653,479.705933,288.578522,79.649864,1.080890,1.000000,8.000000 4.000000,-1.000000,650.322693,88.630600,246.856430,78.580940,2.079844,1.000000,8.000000 4.000000,-1.000000,419.098907,105.285767,215.129578,124.403229,1.815125,1.000000,8.000000 4.000000,-1.000000,236.309311,78.185181,177.926636,67.649208,1.814270,1.000000,8.000000 4.000000,-1.000000,623.071472,357.654388,52.322197,23.703571,2.682838,1.000000,2.000000 4.000000,-1.000000,622.142212,379.772491,32.694595,12.477630,2.737670,1.000000,2.000000 4.000000,-1.000000,626.691284,396.732788,35.848690,13.389823,2.745336,1.000000,2.000000 4.000000,-1.000000,635.998657,412.117188,34.665302,12.974297,2.815478,1.000000,2.000000 4.000000,-1.000000,644.310547,427.216919,34.884693,14.760878,2.670132,1.000000,2.000000 4.000000,-1.000000,652.845276,443.201141,30.184229,13.376966,2.759721,1.000000,2.000000 4.000000,-1.000000,660.412537,457.940277,35.341030,14.800020,2.708191,1.000000,2.000000 4.000000,-1.000000,673.811707,490.206268,31.305664,16.545584,2.682903,1.000000,2.000000 4.000000,-1.000000,683.623779,505.318726,31.385458,16.155708,2.754240,1.000000,2.000000 4.000000,-1.000000,689.614929,520.524658,32.310871,14.299405,2.766096,1.000000,2.000000 4.000000,-1.000000,698.498718,536.880798,34.540131,13.926682,2.760677,1.000000,2.000000 4.000000,-1.000000,705.300232,552.464661,28.381611,12.513257,2.699065,1.000000,2.000000 4.000000,-1.000000,712.720215,568.500854,34.434406,16.100937,2.682878,1.000000,2.000000 4.000000,-1.000000,721.537903,585.347412,38.012299,13.863899,2.682863,1.000000,2.000000 4.000000,-1.000000,665.998657,545.114502,35.340977,12.507236,1.137460,1.000000,2.000000 4.000000,-1.000000,640.855042,501.242920,34.882229,13.415606,1.112136,1.000000,2.000000 4.000000,-1.000000,617.805481,451.027405,33.362816,12.031517,1.056685,1.000000,2.000000 4.000000,-1.000000,576.623535,387.319305,25.940348,11.627570,1.111982,1.000000,2.000000 4.000000,-1.000000,186.482986,116.315041,25.709755,13.340675,1.811314,1.000000,2.000000 4.000000,-1.000000,194.213013,87.109131,26.563465,12.016853,1.897723,1.000000,2.000000 4.000000,-1.000000,201.257217,58.444408,31.624641,12.649009,1.897446,1.000000,2.000000 5.000000,-1.000000,863.070557,525.249023,59.999294,20.000795,3.136606,1.000000,2.000000 5.000000,-1.000000,864.209717,452.743805,54.999031,19.000343,3.136606,1.000000,2.000000 5.000000,-1.000000,860.096924,428.237946,58.077843,18.974974,0.046679,1.000000,2.000000 5.000000,-1.000000,862.459106,402.751007,55.346115,19.024080,0.031339,1.000000,2.000000 5.000000,-1.000000,863.340332,380.746246,59.076096,20.025702,0.045840,1.000000,2.000000 5.000000,-1.000000,866.619934,334.728638,55.370880,19.997429,0.013202,1.000000,2.000000 5.000000,-1.000000,864.896606,291.736359,53.084091,18.027647,0.051583,1.000000,2.000000 5.000000,-1.000000,867.156067,270.232727,53.008591,15.016766,0.013888,1.000000,2.000000 5.000000,-1.000000,867.625671,248.081116,53.152504,15.960179,0.066493,1.000000,2.000000 5.000000,-1.000000,868.106995,226.222458,54.084820,17.028685,0.050478,1.000000,2.000000 5.000000,-1.000000,870.270020,204.702927,57.036095,17.024054,0.030102,1.000000,2.000000 5.000000,-1.000000,865.589417,182.223480,59.033772,15.992850,0.028914,1.000000,2.000000 5.000000,-1.000000,863.258179,161.744598,48.344158,15.997562,0.015810,1.000000,2.000000 5.000000,-1.000000,870.653259,140.707260,60.709797,18.014023,0.011685,1.000000,2.000000 5.000000,-1.000000,866.397095,119.225693,57.008709,16.999866,0.012563,1.000000,2.000000 5.000000,-1.000000,872.939270,97.695587,56.000530,16.999331,3.136606,1.000000,2.000000 5.000000,-1.000000,871.812012,76.651260,63.072887,21.926065,0.042570,1.000000,2.000000 5.000000,-1.000000,869.054016,55.219711,55.010193,19.015142,0.013149,1.000000,2.000000 5.000000,-1.000000,868.629028,35.715298,55.101864,18.027332,0.049478,1.000000,2.000000 5.000000,-1.000000,578.008728,112.665512,49.606304,21.429487,2.048346,1.000000,2.000000 5.000000,-1.000000,600.406006,192.054871,61.199310,17.992104,0.518281,1.000000,2.000000 5.000000,-1.000000,611.297485,170.500412,62.312775,20.226780,0.524244,1.000000,2.000000 5.000000,-1.000000,865.487488,475.730621,55.008213,18.015049,0.013202,1.000000,2.000000 5.000000,-1.000000,867.190918,549.229858,59.109688,19.026552,0.045789,1.000000,2.000000 5.000000,-1.000000,649.415833,93.809212,60.683620,20.181633,0.488930,1.000000,2.000000 5.000000,-1.000000,863.948669,572.240356,59.008244,17.013865,0.011951,1.000000,2.000000 5.000000,-1.000000,800.941528,499.559723,38.355015,12.996207,0.021335,1.000000,2.000000 5.000000,-1.000000,803.341919,479.545715,42.999863,17.998848,3.136606,1.000000,2.000000 5.000000,-1.000000,798.998169,410.568420,55.835167,21.984020,0.031378,1.000000,2.000000 5.000000,-1.000000,798.715820,388.075348,53.009628,18.015549,0.013887,1.000000,2.000000 5.000000,-1.000000,798.763733,363.567322,61.385868,22.999010,0.011362,1.000000,2.000000 5.000000,-1.000000,800.123169,340.037842,59.027962,20.025835,0.045044,1.000000,2.000000 5.000000,-1.000000,797.523438,315.573975,61.351143,20.995329,0.011413,1.000000,2.000000 5.000000,-1.000000,796.412842,293.077820,50.130455,16.030075,0.054925,1.000000,2.000000 5.000000,-1.000000,797.939270,270.092224,59.033703,21.053820,0.028914,1.000000,2.000000 5.000000,-1.000000,792.676880,246.097870,70.569420,18.991583,0.023561,1.000000,2.000000 5.000000,-1.000000,798.069519,224.570770,57.377647,20.996960,0.012581,1.000000,2.000000 5.000000,-1.000000,799.455505,201.563126,53.998592,18.002935,3.136609,1.000000,2.000000 5.000000,-1.000000,798.880310,178.566956,62.170509,21.024990,0.043383,1.000000,2.000000 5.000000,-1.000000,805.071167,158.540253,50.009834,17.016018,0.014999,1.000000,2.000000 5.000000,-1.000000,816.310608,100.988159,35.012611,10.023528,0.023588,1.000000,2.000000 5.000000,-1.000000,811.033142,117.004784,44.726021,14.986151,0.040387,1.000000,2.000000 5.000000,-1.000000,805.140381,138.532883,57.999279,17.999866,3.136603,1.000000,2.000000 5.000000,-1.000000,866.494263,610.232788,71.237366,20.025309,0.051276,1.000000,2.000000 5.000000,-1.000000,636.556519,121.874611,59.479511,17.442738,0.458661,1.000000,2.000000 5.000000,-1.000000,658.810181,72.762642,54.838924,20.142988,0.467141,1.000000,2.000000 5.000000,-1.000000,398.278870,33.609825,49.429195,20.878647,0.284484,1.000000,2.000000 5.000000,-1.000000,220.738724,159.448166,48.533726,15.796028,0.270453,1.000000,2.000000 5.000000,-1.000000,223.424484,136.890900,58.660740,19.416958,0.202544,1.000000,2.000000 5.000000,-1.000000,228.481781,107.908363,47.361614,12.606478,0.234742,1.000000,2.000000 5.000000,-1.000000,234.876831,86.876595,57.559597,17.205645,0.235548,1.000000,2.000000 5.000000,-1.000000,246.142319,39.819962,52.476032,16.744928,0.249384,1.000000,2.000000 5.000000,-1.000000,254.026321,14.237019,51.922169,18.669701,0.266028,1.000000,2.000000 5.000000,-1.000000,407.561127,9.240948,52.784264,20.210554,0.244602,1.000000,2.000000 5.000000,-1.000000,392.933258,58.002747,47.803764,20.603172,0.270429,1.000000,2.000000 5.000000,-1.000000,685.922485,20.826099,46.529774,17.474564,0.487463,1.000000,2.000000 5.000000,-1.000000,382.435181,102.280975,49.999149,18.002090,0.278822,1.000000,2.000000 5.000000,-1.000000,288.470154,205.606995,68.849121,13.593704,0.261163,1.000000,2.000000 5.000000,-1.000000,193.343704,180.584183,34.386230,11.382741,0.204035,1.000000,2.000000 5.000000,-1.000000,232.189941,191.325623,46.173187,14.554763,0.303095,1.000000,2.000000 5.000000,-1.000000,341.021454,215.848480,33.330048,11.401598,0.269111,1.000000,2.000000 5.000000,-1.000000,376.065186,224.674286,36.283447,13.139214,0.192437,1.000000,2.000000 5.000000,-1.000000,418.025696,216.465469,51.185585,14.316457,0.192378,1.000000,2.000000 5.000000,-1.000000,420.418518,194.953339,39.629261,14.783241,0.233594,1.000000,2.000000 5.000000,-1.000000,428.187347,175.586945,44.125748,15.295472,0.192383,1.000000,2.000000 5.000000,-1.000000,432.723358,155.890930,44.645840,15.517920,0.223542,1.000000,2.000000 5.000000,-1.000000,438.366089,137.287201,36.401230,16.483883,0.273348,1.000000,2.000000 5.000000,-1.000000,439.508850,112.857262,34.381454,14.557504,0.261239,1.000000,2.000000 5.000000,-1.000000,449.919067,94.804131,43.304134,15.801160,0.279734,1.000000,2.000000 5.000000,-1.000000,464.921082,48.894020,53.366337,15.738785,0.221955,1.000000,2.000000 5.000000,-1.000000,468.574585,25.710358,52.435677,20.863649,0.249383,1.000000,2.000000 5.000000,-1.000000,351.908936,193.295609,69.501122,14.536543,0.215287,1.000000,2.000000 5.000000,-1.000000,357.799744,171.264282,65.125175,15.771894,0.247548,1.000000,2.000000 5.000000,-1.000000,361.182587,147.747879,71.466568,19.198656,0.257455,1.000000,2.000000 5.000000,-1.000000,859.014160,313.266357,45.999069,16.002060,3.136607,1.000000,2.000000 5.000000,-1.000000,1004.566833,475.387512,37.133774,19.015797,0.013887,1.000000,2.000000 5.000000,-1.000000,1007.730469,411.385986,30.874313,16.969986,0.019411,1.000000,2.000000 5.000000,-1.000000,1009.799255,223.513443,26.461838,12.000247,3.136606,1.000000,2.000000 5.000000,-1.000000,1006.944946,495.608459,32.110107,13.996002,-0.000000,1.000000,2.000000 5.000000,-1.000000,1008.496948,516.593933,29.006104,13.994995,-0.000000,1.000000,2.000000 5.000000,-1.000000,1011.044922,536.272461,24.783361,13.953316,0.059471,1.000000,2.000000 5.000000,-1.000000,1006.239624,555.879700,33.746151,14.018911,0.015787,1.000000,2.000000 5.000000,-1.000000,994.776184,611.592896,56.547947,19.999762,3.136606,1.000000,2.000000 5.000000,-1.000000,1002.641479,575.944946,40.949108,15.996016,0.014253,1.000000,2.000000 5.000000,-1.000000,829.018799,314.416565,601.306274,131.034561,1.587435,1.000000,8.000000 5.000000,-1.000000,675.314514,478.075562,288.578522,79.649872,1.070916,1.000000,8.000000 5.000000,-1.000000,645.472595,88.422897,244.241348,78.569832,2.069870,1.000000,8.000000 5.000000,-1.000000,415.047272,106.232529,215.129593,124.403259,1.805151,1.000000,8.000000 5.000000,-1.000000,232.262146,79.839409,180.222610,67.649193,1.804297,1.000000,8.000000 5.000000,-1.000000,621.526611,356.554413,52.322197,23.703581,2.672866,1.000000,2.000000 5.000000,-1.000000,620.818054,378.680603,32.694611,12.477595,2.727696,1.000000,2.000000 5.000000,-1.000000,625.536011,395.594635,35.848679,13.389781,2.735363,1.000000,2.000000 5.000000,-1.000000,634.996277,410.885376,34.665287,12.974266,2.805505,1.000000,2.000000 5.000000,-1.000000,643.458496,425.901703,34.884712,14.760893,2.660159,1.000000,2.000000 5.000000,-1.000000,652.152161,441.799835,30.184278,13.376930,2.749749,1.000000,2.000000 5.000000,-1.000000,659.866028,456.462830,35.341000,14.800063,2.698217,1.000000,2.000000 5.000000,-1.000000,673.206299,488.312439,31.294230,16.551615,2.699937,1.000000,2.000000 5.000000,-1.000000,683.389832,503.471710,31.383236,16.156864,2.756160,1.000000,2.000000 5.000000,-1.000000,689.691101,518.752930,32.310833,14.299481,2.756124,1.000000,2.000000 5.000000,-1.000000,698.737671,535.019531,34.540073,13.926644,2.750705,1.000000,2.000000 5.000000,-1.000000,705.694336,550.534912,28.381639,12.513277,2.689093,1.000000,2.000000 5.000000,-1.000000,713.273743,566.496338,34.434429,16.100958,2.672904,1.000000,2.000000 5.000000,-1.000000,722.259094,583.254211,38.012291,13.863896,2.672887,1.000000,2.000000 5.000000,-1.000000,666.321289,543.576965,35.340977,12.507242,1.127486,1.000000,2.000000 5.000000,-1.000000,640.901245,499.781158,34.885136,13.414461,1.089337,1.000000,2.000000 5.000000,-1.000000,617.192200,449.975311,33.362816,12.031491,1.046711,1.000000,2.000000 5.000000,-1.000000,575.376892,386.680969,25.940384,11.627533,1.102007,1.000000,2.000000 5.000000,-1.000000,182.552948,119.581154,25.709764,13.340671,1.801341,1.000000,2.000000 5.000000,-1.000000,189.991333,90.299599,26.563465,12.016859,1.887749,1.000000,2.000000 5.000000,-1.000000,196.749924,61.566559,31.624640,12.649028,1.887520,1.000000,2.000000 6.000000,-1.000000,863.344543,521.247253,60.007595,19.998020,0.001713,1.000000,2.000000 6.000000,-1.000000,863.601196,449.234131,54.999008,19.000343,3.126633,1.000000,2.000000 6.000000,-1.000000,859.244141,424.770477,58.077824,18.975006,0.036706,1.000000,2.000000 6.000000,-1.000000,861.352173,399.261261,55.346134,19.024061,0.021365,1.000000,2.000000 6.000000,-1.000000,862.023743,377.222565,59.076118,20.025728,0.034966,1.000000,2.000000 6.000000,-1.000000,864.834412,331.200775,55.370888,19.997465,0.003229,1.000000,2.000000 6.000000,-1.000000,862.682190,288.227844,53.084099,18.027668,0.041609,1.000000,2.000000 6.000000,-1.000000,864.727295,266.702759,53.008579,15.016773,0.003915,1.000000,2.000000 6.000000,-1.000000,864.975891,244.547470,53.152496,15.960184,0.056517,1.000000,2.000000 6.000000,-1.000000,865.239136,222.685181,54.084766,17.028692,0.040505,1.000000,2.000000 6.000000,-1.000000,867.187500,201.145126,57.036087,17.024050,0.020129,1.000000,2.000000 6.000000,-1.000000,862.282898,178.713486,59.033718,15.992854,0.018940,1.000000,2.000000 6.000000,-1.000000,859.747559,158.258865,48.344196,15.997552,0.005837,1.000000,2.000000 6.000000,-1.000000,866.932434,137.148834,60.709789,18.014025,0.001712,1.000000,2.000000 6.000000,-1.000000,862.604004,115.210907,56.999954,17.002483,3.126630,1.000000,2.000000 6.000000,-1.000000,868.789490,94.116478,56.000584,16.999332,3.126633,1.000000,2.000000 6.000000,-1.000000,867.452271,73.084457,63.072872,21.926060,0.032596,1.000000,2.000000 6.000000,-1.000000,864.480591,51.681473,55.010170,19.015137,0.003176,1.000000,2.000000 6.000000,-1.000000,863.861145,32.182274,55.101894,18.027334,0.039505,1.000000,2.000000 6.000000,-1.000000,574.022827,112.027054,49.606300,21.429567,2.038371,1.000000,2.000000 6.000000,-1.000000,597.210754,191.189102,61.199284,17.992088,0.508307,1.000000,2.000000 6.000000,-1.000000,607.886719,169.527100,62.312767,20.226757,0.514270,1.000000,2.000000 6.000000,-1.000000,865.108276,472.207031,55.008156,18.015047,0.003228,1.000000,2.000000 6.000000,-1.000000,867.544495,545.685608,59.109730,19.026533,0.035815,1.000000,2.000000 6.000000,-1.000000,645.238281,92.459511,60.683590,20.181614,0.478957,1.000000,2.000000 6.000000,-1.000000,864.531921,568.727234,59.008293,17.013889,0.001979,1.000000,2.000000 6.000000,-1.000000,800.803040,496.678650,38.354965,12.996188,0.011362,1.000000,2.000000 6.000000,-1.000000,803.003662,476.641724,42.999863,17.998840,3.126633,1.000000,2.000000 6.000000,-1.000000,797.972229,407.711151,55.835186,21.984009,0.021405,1.000000,2.000000 6.000000,-1.000000,797.465759,385.222046,53.009617,18.015537,0.003915,1.000000,2.000000 6.000000,-1.000000,797.269104,360.714722,61.385876,22.999043,0.001389,1.000000,2.000000 6.000000,-1.000000,798.393921,337.172974,59.028004,20.025805,0.035072,1.000000,2.000000 6.000000,-1.000000,795.550232,312.736176,61.351208,20.995346,0.001439,1.000000,2.000000 6.000000,-1.000000,794.215332,290.252197,50.130394,16.030090,0.044952,1.000000,2.000000 6.000000,-1.000000,795.512390,267.252502,59.033718,21.053825,0.018940,1.000000,2.000000 6.000000,-1.000000,790.011047,243.311844,70.569504,18.991562,0.013588,1.000000,2.000000 6.000000,-1.000000,795.188721,221.732071,57.377644,20.996958,0.002608,1.000000,2.000000 6.000000,-1.000000,796.345215,198.711609,53.998627,18.002930,3.126633,1.000000,2.000000 6.000000,-1.000000,795.540649,175.722443,62.170490,21.024986,0.033410,1.000000,2.000000 6.000000,-1.000000,801.531433,155.634995,50.009846,17.016010,0.005026,1.000000,2.000000 6.000000,-1.000000,812.196411,97.973656,35.012585,10.023527,0.013615,1.000000,2.000000 6.000000,-1.000000,807.078857,114.042114,44.725971,14.986156,0.030414,1.000000,2.000000 6.000000,-1.000000,801.401245,135.627869,57.999302,17.999861,3.126632,1.000000,2.000000 6.000000,-1.000000,867.456177,606.692383,71.237389,20.025326,0.041302,1.000000,2.000000 6.000000,-1.000000,632.659546,120.651840,59.479519,17.442760,0.448688,1.000000,2.000000 6.000000,-1.000000,654.422363,71.320358,54.838902,20.142977,0.457168,1.000000,2.000000 6.000000,-1.000000,393.513428,34.767765,49.429188,20.878643,0.274511,1.000000,2.000000 6.000000,-1.000000,217.237137,162.370483,48.533714,15.796027,0.260479,1.000000,2.000000 6.000000,-1.000000,219.697830,139.787552,58.660740,19.416960,0.192571,1.000000,2.000000 6.000000,-1.000000,224.465820,110.756027,47.361622,12.606472,0.224769,1.000000,2.000000 6.000000,-1.000000,230.650787,89.661530,57.559597,17.205654,0.225574,1.000000,2.000000 6.000000,-1.000000,241.446442,42.494881,52.476040,16.744926,0.239410,1.000000,2.000000 6.000000,-1.000000,249.076401,16.828846,51.922176,18.681547,0.256055,1.000000,2.000000 6.000000,-1.000000,402.563110,10.261992,52.784237,20.304182,0.234629,1.000000,2.000000 6.000000,-1.000000,388.411407,59.212799,47.803761,20.603174,0.260456,1.000000,2.000000 6.000000,-1.000000,681.015320,19.115992,46.529743,17.474560,0.477490,1.000000,2.000000 6.000000,-1.000000,378.355469,103.593536,49.999161,18.002098,0.268848,1.000000,2.000000 6.000000,-1.000000,285.425537,207.851517,68.849159,13.593709,0.251190,1.000000,2.000000 6.000000,-1.000000,190.054306,183.778687,34.386246,11.382751,0.194062,1.000000,2.000000 6.000000,-1.000000,229.005753,194.132156,46.173187,14.554766,0.293121,1.000000,2.000000 6.000000,-1.000000,338.076324,217.568390,33.330036,11.401578,0.259138,1.000000,2.000000 6.000000,-1.000000,373.206390,226.044281,36.283463,13.139216,0.182464,1.000000,2.000000 6.000000,-1.000000,415.082947,217.417389,51.185600,14.316455,0.182404,1.000000,2.000000 6.000000,-1.000000,417.261108,195.882477,39.629284,14.783228,0.223620,1.000000,2.000000 6.000000,-1.000000,425.193542,175.814682,44.147125,15.288060,0.213524,1.000000,2.000000 6.000000,-1.000000,429.175751,156.699265,44.645844,15.517920,0.213569,1.000000,2.000000 6.000000,-1.000000,435.037628,137.519379,36.380867,16.493109,0.229929,1.000000,2.000000 6.000000,-1.000000,435.531769,113.600075,34.381462,14.557506,0.251266,1.000000,2.000000 6.000000,-1.000000,445.761475,95.444023,43.304146,15.801166,0.269761,1.000000,2.000000 6.000000,-1.000000,460.304840,49.386574,53.366375,15.738791,0.211982,1.000000,2.000000 6.000000,-1.000000,463.726898,26.167622,52.435696,20.863647,0.239410,1.000000,2.000000 6.000000,-1.000000,348.738403,194.908066,69.501144,14.536543,0.205313,1.000000,2.000000 6.000000,-1.000000,354.409210,172.819092,65.125160,15.771884,0.237574,1.000000,2.000000 6.000000,-1.000000,357.557373,149.270111,71.466583,19.198660,0.247482,1.000000,2.000000 6.000000,-1.000000,857.014893,309.815460,45.999092,16.002035,3.126633,1.000000,2.000000 6.000000,-1.000000,1004.323914,470.477539,37.426922,19.015772,0.003914,1.000000,2.000000 6.000000,-1.000000,1007.172974,406.451416,31.815613,16.969988,0.009437,1.000000,2.000000 6.000000,-1.000000,1008.378845,218.540985,29.425241,12.000247,3.126633,1.000000,2.000000 6.000000,-1.000000,1006.816406,490.827881,32.367188,13.984619,-0.000000,1.000000,2.000000 6.000000,-1.000000,1008.472961,511.781372,29.054077,13.983612,-0.000000,1.000000,2.000000 6.000000,-1.000000,1011.115479,531.286621,24.489475,13.952802,0.049496,1.000000,2.000000 6.000000,-1.000000,1006.410400,550.946960,33.261360,14.018940,0.005813,1.000000,2.000000 6.000000,-1.000000,995.312134,606.779663,55.681160,19.999796,3.126633,1.000000,2.000000 6.000000,-1.000000,1002.907471,571.047058,40.254105,15.996081,0.004278,1.000000,2.000000 6.000000,-1.000000,827.032532,311.264740,601.306335,131.034607,1.577461,1.000000,8.000000 6.000000,-1.000000,674.968018,476.448486,288.578522,79.649887,1.060943,1.000000,8.000000 6.000000,-1.000000,640.651978,88.231567,241.712204,78.559280,2.059897,1.000000,8.000000 6.000000,-1.000000,411.005310,107.219643,215.129608,124.403259,1.795178,1.000000,8.000000 6.000000,-1.000000,228.225143,81.511162,182.559967,67.649193,1.794324,1.000000,8.000000 6.000000,-1.000000,619.970947,355.469818,52.322220,23.703606,2.662891,1.000000,2.000000 6.000000,-1.000000,619.482971,377.601929,32.694607,12.477628,2.717723,1.000000,2.000000 6.000000,-1.000000,624.369446,394.468109,35.848709,13.389786,2.725390,1.000000,2.000000 6.000000,-1.000000,633.981812,409.663788,34.665279,12.974257,2.795532,1.000000,2.000000 6.000000,-1.000000,642.593201,424.594849,34.884693,14.760871,2.650185,1.000000,2.000000 6.000000,-1.000000,651.445068,440.405579,30.184296,13.376953,2.739775,1.000000,2.000000 6.000000,-1.000000,659.304749,454.990906,35.340946,14.800044,2.688244,1.000000,2.000000 6.000000,-1.000000,673.344910,486.983276,31.305668,16.545580,2.662956,1.000000,2.000000 6.000000,-1.000000,683.456421,501.897034,31.385401,16.155722,2.734292,1.000000,2.000000 6.000000,-1.000000,689.749695,516.980347,32.310822,14.299421,2.746150,1.000000,2.000000 6.000000,-1.000000,698.957947,533.156067,34.540108,13.926706,2.740731,1.000000,2.000000 6.000000,-1.000000,706.068848,548.601135,28.381641,12.513254,2.679120,1.000000,2.000000 6.000000,-1.000000,713.807129,564.486206,34.434395,16.100943,2.662930,1.000000,2.000000 6.000000,-1.000000,722.959229,581.153625,38.012257,13.863955,2.662915,1.000000,2.000000 6.000000,-1.000000,666.628479,542.036255,35.341000,12.507210,1.117512,1.000000,2.000000 6.000000,-1.000000,640.614929,498.675079,34.882282,13.415616,1.092190,1.000000,2.000000 6.000000,-1.000000,616.568359,448.929260,33.362778,12.031453,1.036737,1.000000,2.000000 6.000000,-1.000000,574.123840,386.055145,25.940346,11.627553,1.092035,1.000000,2.000000 6.000000,-1.000000,178.655670,122.886276,25.709759,13.340678,1.791368,1.000000,2.000000 6.000000,-1.000000,185.801682,93.532013,26.563463,12.016850,1.877775,1.000000,2.000000 6.000000,-1.000000,192.272736,64.732498,31.624636,12.649010,1.877500,1.000000,2.000000 7.000000,-1.000000,863.419189,517.742798,60.007599,19.998034,3.133331,1.000000,2.000000 7.000000,-1.000000,862.957642,445.730652,54.999031,19.000343,3.116660,1.000000,2.000000 7.000000,-1.000000,858.356934,421.311707,58.077885,18.974968,0.026732,1.000000,2.000000 7.000000,-1.000000,860.210388,395.782745,55.346184,19.024069,0.011393,1.000000,2.000000 7.000000,-1.000000,860.652527,373.764740,59.076130,20.025682,0.025893,1.000000,2.000000 7.000000,-1.000000,863.013611,327.690887,55.370914,19.997446,3.134848,1.000000,2.000000 7.000000,-1.000000,860.443359,284.714081,53.084087,18.027660,0.030591,1.000000,2.000000 7.000000,-1.000000,862.263306,263.197144,53.008602,15.016780,3.135534,1.000000,2.000000 7.000000,-1.000000,862.290894,241.040421,53.152477,15.960182,0.046542,1.000000,2.000000 7.000000,-1.000000,862.336243,219.176651,54.084839,17.028673,0.030532,1.000000,2.000000 7.000000,-1.000000,864.069580,197.618225,57.036076,17.024044,0.010155,1.000000,2.000000 7.000000,-1.000000,859.187927,174.238983,58.999821,16.002041,3.116661,1.000000,2.000000 7.000000,-1.000000,856.202271,154.808319,48.344151,15.997562,3.137456,1.000000,2.000000 7.000000,-1.000000,863.176270,133.627670,60.709854,18.014019,3.133331,1.000000,2.000000 7.000000,-1.000000,858.492615,112.235283,57.008751,16.999866,3.134209,1.000000,2.000000 7.000000,-1.000000,864.604065,90.578949,56.000565,16.999325,3.116659,1.000000,2.000000 7.000000,-1.000000,863.057251,69.561302,63.072910,21.926065,0.022623,1.000000,2.000000 7.000000,-1.000000,859.872375,48.189026,55.010120,19.015137,3.134795,1.000000,2.000000 7.000000,-1.000000,859.058411,28.696972,55.101833,18.027330,0.029531,1.000000,2.000000 7.000000,-1.000000,570.030762,111.428375,49.606335,21.429518,2.028399,1.000000,2.000000 7.000000,-1.000000,594.007080,190.355255,61.199287,17.992065,0.498334,1.000000,2.000000 7.000000,-1.000000,604.466431,168.587814,62.312790,20.226791,0.504297,1.000000,2.000000 7.000000,-1.000000,864.693909,468.687469,55.008148,18.015043,3.134848,1.000000,2.000000 7.000000,-1.000000,867.862793,542.138000,59.109772,19.026575,0.025842,1.000000,2.000000 7.000000,-1.000000,641.047607,91.151588,60.683609,20.181612,0.468983,1.000000,2.000000 7.000000,-1.000000,865.080139,565.208557,59.008293,17.013901,3.133598,1.000000,2.000000 7.000000,-1.000000,800.635864,493.799194,38.354942,12.996211,0.001389,1.000000,2.000000 7.000000,-1.000000,802.636475,473.741211,42.999825,17.998850,3.116659,1.000000,2.000000 7.000000,-1.000000,796.917908,404.864319,55.835220,21.983990,0.011432,1.000000,2.000000 7.000000,-1.000000,796.187134,382.381378,53.009571,18.015553,3.135533,1.000000,2.000000 7.000000,-1.000000,795.746155,357.877258,61.385872,22.999037,3.133008,1.000000,2.000000 7.000000,-1.000000,796.635986,334.325470,59.027992,20.025839,0.025101,1.000000,2.000000 7.000000,-1.000000,793.548828,309.918152,61.351208,20.995340,3.133059,1.000000,2.000000 7.000000,-1.000000,791.989746,287.448700,50.130459,16.030113,0.034980,1.000000,2.000000 7.000000,-1.000000,793.057373,264.437164,59.033741,21.053820,0.008967,1.000000,2.000000 7.000000,-1.000000,787.317566,240.552582,70.569458,18.991571,0.003614,1.000000,2.000000 7.000000,-1.000000,792.279724,218.922241,57.377674,20.996958,3.134227,1.000000,2.000000 7.000000,-1.000000,793.206482,195.891464,53.998604,18.002926,3.116662,1.000000,2.000000 7.000000,-1.000000,792.172791,172.911377,62.170483,21.024981,0.023437,1.000000,2.000000 7.000000,-1.000000,797.962952,152.765182,50.009892,17.016005,3.136645,1.000000,2.000000 7.000000,-1.000000,808.052368,95.000351,35.012562,10.023530,0.003642,1.000000,2.000000 7.000000,-1.000000,803.095337,111.119049,44.726048,14.986157,0.020440,1.000000,2.000000 7.000000,-1.000000,797.633118,132.760345,57.999302,17.999857,3.116659,1.000000,2.000000 7.000000,-1.000000,868.382812,603.142700,71.237419,20.025322,0.031328,1.000000,2.000000 7.000000,-1.000000,628.750549,119.467926,59.479523,17.442741,0.438714,1.000000,2.000000 7.000000,-1.000000,650.020325,69.921875,54.838928,20.142979,0.447194,1.000000,2.000000 7.000000,-1.000000,388.759827,35.973198,49.429199,20.878643,0.264538,1.000000,2.000000 7.000000,-1.000000,213.764862,165.327576,48.533722,15.796026,0.250506,1.000000,2.000000 7.000000,-1.000000,216.000244,142.721268,58.660732,19.416962,0.182597,1.000000,2.000000 7.000000,-1.000000,220.478439,113.643593,47.361626,12.606476,0.214796,1.000000,2.000000 7.000000,-1.000000,226.452713,92.488464,57.559589,17.205647,0.215601,1.000000,2.000000 7.000000,-1.000000,236.777435,45.216499,52.476032,16.744928,0.229437,1.000000,2.000000 7.000000,-1.000000,244.151093,19.475643,51.922188,18.681545,0.246081,1.000000,2.000000 7.000000,-1.000000,397.576447,11.326782,52.784248,20.410032,0.224656,1.000000,2.000000 7.000000,-1.000000,383.901825,60.467888,47.803761,20.603168,0.250482,1.000000,2.000000 7.000000,-1.000000,676.092285,17.455399,46.527496,17.474564,0.467517,1.000000,2.000000 7.000000,-1.000000,374.288971,104.946693,49.999142,18.002090,0.258875,1.000000,2.000000 7.000000,-1.000000,282.403473,210.126328,68.849129,13.593701,0.241218,1.000000,2.000000 7.000000,-1.000000,186.796921,187.005814,34.386230,11.382740,0.184088,1.000000,2.000000 7.000000,-1.000000,225.849670,196.970306,46.173195,14.554761,0.283148,1.000000,2.000000 7.000000,-1.000000,335.148621,219.317612,33.330067,11.401578,0.249165,1.000000,2.000000 7.000000,-1.000000,370.361420,227.442703,36.283459,13.139224,0.172490,1.000000,2.000000 7.000000,-1.000000,412.149811,218.398590,51.185604,14.316448,0.172431,1.000000,2.000000 7.000000,-1.000000,414.113098,196.843048,39.629261,14.783240,0.213647,1.000000,2.000000 7.000000,-1.000000,421.845062,176.697144,44.147133,15.288063,0.203550,1.000000,2.000000 7.000000,-1.000000,425.636414,157.542953,44.645828,15.517908,0.203595,1.000000,2.000000 7.000000,-1.000000,431.306732,138.305588,36.380875,16.493122,0.219956,1.000000,2.000000 7.000000,-1.000000,431.562256,114.382523,34.381447,14.557506,0.241293,1.000000,2.000000 7.000000,-1.000000,441.610382,96.125343,43.304165,15.801171,0.259787,1.000000,2.000000 7.000000,-1.000000,455.693665,49.925121,53.366344,15.738791,0.202010,1.000000,2.000000 7.000000,-1.000000,458.883972,26.673220,52.435711,20.863653,0.229437,1.000000,2.000000 7.000000,-1.000000,345.584106,196.552063,69.501160,14.536553,0.195340,1.000000,2.000000 7.000000,-1.000000,351.034332,174.407639,65.125191,15.771889,0.227601,1.000000,2.000000 7.000000,-1.000000,353.947479,150.828415,71.466560,19.198650,0.237509,1.000000,2.000000 7.000000,-1.000000,854.981323,306.384613,45.999058,16.002041,3.116661,1.000000,2.000000 7.000000,-1.000000,1004.114868,465.681030,37.770203,19.019318,-0.000000,1.000000,2.000000 7.000000,-1.000000,1006.591675,401.526367,32.816650,16.969208,-0.000000,1.000000,2.000000 7.000000,-1.000000,1006.934448,213.567535,32.440292,12.000257,3.116660,1.000000,2.000000 7.000000,-1.000000,1006.671875,486.031952,32.671959,13.973392,3.140476,1.000000,2.000000 7.000000,-1.000000,1008.428833,506.961395,29.149969,13.971607,3.141057,1.000000,2.000000 7.000000,-1.000000,1011.161743,526.302856,24.246813,13.952229,0.039524,1.000000,2.000000 7.000000,-1.000000,1006.586426,546.023193,32.878647,14.019260,3.137939,1.000000,2.000000 7.000000,-1.000000,995.825500,601.965027,54.864948,19.999748,3.116660,1.000000,2.000000 7.000000,-1.000000,1003.149780,566.261963,39.700439,15.994080,3.141593,1.000000,2.000000 7.000000,-1.000000,825.014771,308.132904,601.306396,131.034546,1.567488,1.000000,8.000000 7.000000,-1.000000,674.605286,474.824890,288.578522,79.649849,1.050969,1.000000,8.000000 7.000000,-1.000000,635.860229,88.056717,239.267120,78.549248,2.049924,1.000000,8.000000 7.000000,-1.000000,406.973419,108.246986,215.129593,124.403236,1.785205,1.000000,8.000000 7.000000,-1.000000,224.198013,83.200272,184.938843,67.649185,1.784350,1.000000,8.000000 7.000000,-1.000000,618.404480,354.400818,52.322186,23.703579,2.652918,1.000000,2.000000 7.000000,-1.000000,618.137207,376.536682,32.694633,12.477622,2.707750,1.000000,2.000000 7.000000,-1.000000,623.191711,393.353333,35.848698,13.389791,2.715417,1.000000,2.000000 7.000000,-1.000000,632.955078,408.452301,34.665340,12.974282,2.785558,1.000000,2.000000 7.000000,-1.000000,641.714966,423.296753,34.884670,14.760898,2.640212,1.000000,2.000000 7.000000,-1.000000,650.724121,439.018433,30.184233,13.376941,2.729801,1.000000,2.000000 7.000000,-1.000000,658.728882,453.524628,35.340958,14.799999,2.678270,1.000000,2.000000 7.000000,-1.000000,672.701782,485.101898,31.294296,16.551632,2.679990,1.000000,2.000000 7.000000,-1.000000,683.347046,500.187561,31.385452,16.155718,2.724320,1.000000,2.000000 7.000000,-1.000000,689.790527,515.207458,32.310818,14.299447,2.736176,1.000000,2.000000 7.000000,-1.000000,699.159668,531.290466,34.540138,13.926731,2.730757,1.000000,2.000000 7.000000,-1.000000,706.424255,546.663940,28.381666,12.513280,2.669146,1.000000,2.000000 7.000000,-1.000000,714.320618,562.471008,34.434414,16.100945,2.652958,1.000000,2.000000 7.000000,-1.000000,723.638367,579.046265,38.012276,13.863898,2.652940,1.000000,2.000000 7.000000,-1.000000,666.920410,540.492737,35.340958,12.507271,1.107540,1.000000,2.000000 7.000000,-1.000000,640.475586,497.393066,34.882244,13.415622,1.082218,1.000000,2.000000 7.000000,-1.000000,615.934204,447.889618,33.362797,12.031491,1.026764,1.000000,2.000000 7.000000,-1.000000,572.864624,385.441833,25.940336,11.627505,1.082064,1.000000,2.000000 7.000000,-1.000000,174.791580,126.230133,25.709763,13.340685,1.781395,1.000000,2.000000 7.000000,-1.000000,181.644485,96.806061,26.563459,12.016862,1.867802,1.000000,2.000000 7.000000,-1.000000,187.827972,67.943428,31.624640,12.649011,1.867526,1.000000,2.000000 8.000000,-1.000000,863.309814,514.740723,59.999256,20.000769,3.106687,1.000000,2.000000 8.000000,-1.000000,862.279419,442.233826,54.999012,19.000340,3.106686,1.000000,2.000000 8.000000,-1.000000,857.435303,417.861908,58.077858,18.974960,0.016759,1.000000,2.000000 8.000000,-1.000000,859.033997,392.315735,55.346176,19.024050,0.001419,1.000000,2.000000 8.000000,-1.000000,859.256531,370.294495,59.076092,20.025719,0.015920,1.000000,2.000000 8.000000,-1.000000,861.158081,324.199402,55.370888,19.997463,3.124875,1.000000,2.000000 8.000000,-1.000000,858.159302,281.250336,53.084076,18.027664,0.020617,1.000000,2.000000 8.000000,-1.000000,859.764526,259.716278,53.008583,15.016771,3.125561,1.000000,2.000000 8.000000,-1.000000,859.571289,237.560501,53.152466,15.960192,0.036572,1.000000,2.000000 8.000000,-1.000000,859.398376,215.697266,54.084793,17.028681,0.020558,1.000000,2.000000 8.000000,-1.000000,860.916687,194.122635,57.036072,17.024046,0.000182,1.000000,2.000000 8.000000,-1.000000,855.565796,171.793289,59.033718,15.992846,3.140587,1.000000,2.000000 8.000000,-1.000000,852.622986,151.393311,48.344162,15.997560,3.127483,1.000000,2.000000 8.000000,-1.000000,859.385254,130.144165,60.709831,18.014021,3.123358,1.000000,2.000000 8.000000,-1.000000,854.620239,108.297012,56.999996,17.002491,3.106686,1.000000,2.000000 8.000000,-1.000000,860.383667,87.083344,56.000542,16.999329,3.106686,1.000000,2.000000 8.000000,-1.000000,858.627319,66.082169,63.072918,21.926058,0.012650,1.000000,2.000000 8.000000,-1.000000,855.229431,44.742706,55.010170,19.015133,3.124821,1.000000,2.000000 8.000000,-1.000000,854.221130,25.259747,55.101891,18.027334,0.019558,1.000000,2.000000 8.000000,-1.000000,566.032898,110.869545,49.606346,21.429512,2.018426,1.000000,2.000000 8.000000,-1.000000,590.795166,189.553391,61.199314,17.992071,0.488360,1.000000,2.000000 8.000000,-1.000000,601.036926,167.682724,62.312794,20.226805,0.494324,1.000000,2.000000 8.000000,-1.000000,864.244385,465.172150,55.008240,18.015059,3.124875,1.000000,2.000000 8.000000,-1.000000,868.145752,538.587524,59.109760,19.026552,0.015869,1.000000,2.000000 8.000000,-1.000000,636.843994,89.885498,60.683578,20.181614,0.459010,1.000000,2.000000 8.000000,-1.000000,865.593262,561.684692,59.008301,17.013891,3.123624,1.000000,2.000000 8.000000,-1.000000,800.440002,490.921448,38.354996,12.996183,3.133008,1.000000,2.000000 8.000000,-1.000000,802.240662,470.844604,42.999847,17.998848,3.106686,1.000000,2.000000 8.000000,-1.000000,795.835266,402.028046,55.835220,21.984026,0.001458,1.000000,2.000000 8.000000,-1.000000,794.880310,379.553589,53.009682,18.015560,3.125560,1.000000,2.000000 8.000000,-1.000000,794.194885,355.055084,61.385899,22.999039,3.123034,1.000000,2.000000 8.000000,-1.000000,794.849915,331.495575,59.028000,20.025818,0.015127,1.000000,2.000000 8.000000,-1.000000,791.519470,307.120270,61.351204,20.995352,3.123085,1.000000,2.000000 8.000000,-1.000000,789.736389,284.667450,50.130428,16.030081,0.025006,1.000000,2.000000 8.000000,-1.000000,790.574524,261.646454,59.033718,21.053831,3.140587,1.000000,2.000000 8.000000,-1.000000,784.596680,237.820282,70.569443,18.991564,3.135234,1.000000,2.000000 8.000000,-1.000000,789.343018,216.141571,57.377678,20.996948,3.124254,1.000000,2.000000 8.000000,-1.000000,790.039978,193.102600,53.998596,18.002926,3.106686,1.000000,2.000000 8.000000,-1.000000,788.777039,170.134033,62.170544,21.024988,0.013464,1.000000,2.000000 8.000000,-1.000000,794.366028,149.931091,50.009842,17.016010,3.126672,1.000000,2.000000 8.000000,-1.000000,803.878845,92.068512,35.012604,10.023531,3.135261,1.000000,2.000000 8.000000,-1.000000,799.082886,108.235855,44.726021,14.986154,0.010467,1.000000,2.000000 8.000000,-1.000000,793.836792,129.930511,57.999332,17.999861,3.106687,1.000000,2.000000 8.000000,-1.000000,869.274292,599.583862,71.237381,20.025293,0.021356,1.000000,2.000000 8.000000,-1.000000,624.830017,118.323097,59.479515,17.442717,0.428741,1.000000,2.000000 8.000000,-1.000000,645.604553,68.567360,54.838928,20.142982,0.437221,1.000000,2.000000 8.000000,-1.000000,384.018463,37.225956,49.429207,20.878639,0.254564,1.000000,2.000000 8.000000,-1.000000,210.322311,168.319183,48.533710,15.796021,0.240533,1.000000,2.000000 8.000000,-1.000000,212.332092,145.691635,58.660725,19.416964,0.172625,1.000000,2.000000 8.000000,-1.000000,216.520081,116.570801,47.361607,12.606474,0.204822,1.000000,2.000000 8.000000,-1.000000,222.283112,95.357132,57.559605,17.205647,0.205628,1.000000,2.000000 8.000000,-1.000000,232.135849,47.984550,52.476048,16.744926,0.219464,1.000000,2.000000 8.000000,-1.000000,239.222763,22.216444,51.922283,18.681513,0.238062,1.000000,2.000000 8.000000,-1.000000,392.601593,12.434427,52.784264,20.529612,0.214682,1.000000,2.000000 8.000000,-1.000000,379.404999,61.767879,47.803764,20.603161,0.240509,1.000000,2.000000 8.000000,-1.000000,671.191650,15.596419,46.494564,17.482349,0.467979,1.000000,2.000000 8.000000,-1.000000,370.236267,106.340355,49.999138,18.002094,0.248902,1.000000,2.000000 8.000000,-1.000000,279.404083,212.434631,68.848923,13.593740,0.231344,1.000000,2.000000 8.000000,-1.000000,183.571884,190.265274,34.386227,11.382751,0.174115,1.000000,2.000000 8.000000,-1.000000,222.722046,199.839798,46.173199,14.554771,0.273175,1.000000,2.000000 8.000000,-1.000000,332.238464,221.095917,33.330040,11.401585,0.239191,1.000000,2.000000 8.000000,-1.000000,367.530518,228.869415,36.283474,13.139213,0.162517,1.000000,2.000000 8.000000,-1.000000,409.226654,219.409012,51.185608,14.316453,0.162457,1.000000,2.000000 8.000000,-1.000000,410.974915,197.834961,39.629276,14.783242,0.203674,1.000000,2.000000 8.000000,-1.000000,418.505493,177.612946,44.147133,15.288064,0.193577,1.000000,2.000000 8.000000,-1.000000,422.105682,158.421936,44.645809,15.517912,0.193622,1.000000,2.000000 8.000000,-1.000000,427.189331,139.657700,36.401234,16.483875,0.243428,1.000000,2.000000 8.000000,-1.000000,427.600739,115.204506,34.381439,14.557502,0.231319,1.000000,2.000000 8.000000,-1.000000,437.466217,96.848022,43.304173,15.801167,0.249814,1.000000,2.000000 8.000000,-1.000000,451.088043,50.509659,53.366375,15.738796,0.192036,1.000000,2.000000 8.000000,-1.000000,454.046448,27.227100,52.435711,20.863657,0.219463,1.000000,2.000000 8.000000,-1.000000,342.446411,198.227448,69.501144,14.536558,0.185367,1.000000,2.000000 8.000000,-1.000000,347.675476,176.029755,65.125191,15.771893,0.217628,1.000000,2.000000 8.000000,-1.000000,350.353333,152.422668,71.466576,19.198660,0.227536,1.000000,2.000000 8.000000,-1.000000,853.070068,302.472046,46.009968,15.998273,3.128431,1.000000,2.000000 8.000000,-1.000000,1003.952026,461.028412,38.158474,19.024693,0.003552,1.000000,2.000000 8.000000,-1.000000,1005.986572,396.755798,34.026855,16.954193,-0.000000,1.000000,2.000000 8.000000,-1.000000,1005.466431,208.592804,35.507755,12.000254,3.106686,1.000000,2.000000 8.000000,-1.000000,1006.565430,481.097809,33.026203,13.973353,3.130501,1.000000,2.000000 8.000000,-1.000000,1008.426575,502.009949,29.295382,13.971586,3.131084,1.000000,2.000000 8.000000,-1.000000,1011.183838,521.320862,24.055168,13.951853,0.029550,1.000000,2.000000 8.000000,-1.000000,1006.779480,541.090576,32.635212,14.019276,3.127967,1.000000,2.000000 8.000000,-1.000000,996.315918,597.148621,54.099174,19.999733,3.106686,1.000000,2.000000 8.000000,-1.000000,1003.368774,561.556824,39.262505,15.989317,3.141593,1.000000,2.000000 8.000000,-1.000000,822.966187,305.021179,601.306213,131.034561,1.557515,1.000000,8.000000 8.000000,-1.000000,674.226562,473.205139,288.578522,79.649887,1.040996,1.000000,8.000000 8.000000,-1.000000,631.096130,87.898422,236.904434,78.539711,2.039950,1.000000,8.000000 8.000000,-1.000000,402.951935,109.314514,215.129608,124.403259,1.775231,1.000000,8.000000 8.000000,-1.000000,220.180527,84.906586,187.359482,67.649200,1.774377,1.000000,8.000000 8.000000,-1.000000,616.827332,353.347321,52.322193,23.703579,2.642947,1.000000,2.000000 8.000000,-1.000000,616.780945,375.484955,32.694622,12.477634,2.697777,1.000000,2.000000 8.000000,-1.000000,622.002869,392.250336,35.848694,13.389840,2.705444,1.000000,2.000000 8.000000,-1.000000,631.916443,407.251251,34.665314,12.974272,2.775585,1.000000,2.000000 8.000000,-1.000000,640.823914,422.007507,34.884720,14.760887,2.630239,1.000000,2.000000 8.000000,-1.000000,649.989380,437.638611,30.184277,13.376983,2.719828,1.000000,2.000000 8.000000,-1.000000,658.138367,452.064148,35.340992,14.800033,2.668298,1.000000,2.000000 8.000000,-1.000000,672.425537,483.500458,31.294266,16.551626,2.670018,1.000000,2.000000 8.000000,-1.000000,683.220703,498.479218,31.385439,16.155706,2.714346,1.000000,2.000000 8.000000,-1.000000,689.813599,513.434082,32.310787,14.299427,2.726203,1.000000,2.000000 8.000000,-1.000000,699.342651,529.422852,34.540096,13.926687,2.720785,1.000000,2.000000 8.000000,-1.000000,706.760254,544.723145,28.381664,12.513262,2.659174,1.000000,2.000000 8.000000,-1.000000,714.813843,560.450623,34.434349,16.100964,2.642982,1.000000,2.000000 8.000000,-1.000000,724.296570,576.932312,38.012272,13.863927,2.642968,1.000000,2.000000 8.000000,-1.000000,667.196838,538.946228,35.340996,12.507215,1.097565,1.000000,2.000000 8.000000,-1.000000,640.477966,495.930450,34.885136,13.414495,1.059416,1.000000,2.000000 8.000000,-1.000000,615.289551,446.856110,33.362831,12.031480,1.016790,1.000000,2.000000 8.000000,-1.000000,571.599487,384.841095,25.940346,11.627560,1.072091,1.000000,2.000000 8.000000,-1.000000,170.960999,129.612335,25.709764,13.340680,1.771421,1.000000,2.000000 8.000000,-1.000000,177.520126,100.121399,26.563459,12.016868,1.857828,1.000000,2.000000 8.000000,-1.000000,183.416077,71.199013,31.624641,12.649017,1.857599,1.000000,2.000000 ================================================ FILE: assets/DOTA8-MOT/train/P0861__1024__0___1648/gt/gt.txt ================================================ 1.000000,1.000000,831.967285,528.233704,60.625854,22.047729,1.000000,2.000000,1.000000 1.000000,2.000000,839.141479,456.383881,54.965515,20.873291,1.000000,2.000000,1.000000 1.000000,3.000000,834.387634,430.224792,58.523438,22.974701,1.000000,2.000000,1.000000 1.000000,4.000000,838.257507,405.379669,56.559814,20.873352,1.000000,2.000000,1.000000 1.000000,5.000000,838.026550,382.357697,60.555969,23.011597,1.000000,2.000000,1.000000 1.000000,6.000000,846.292053,337.558960,54.929626,22.907837,1.000000,2.000000,1.000000 1.000000,7.000000,846.164673,294.585327,54.490234,21.803345,1.000000,2.000000,1.000000 1.000000,8.000000,850.453430,275.667358,52.931946,17.806061,1.000000,2.000000,1.000000 1.000000,9.000000,851.731384,251.717392,53.388855,19.803665,1.000000,2.000000,1.000000 1.000000,10.000000,852.464294,229.732193,54.457336,21.835266,1.000000,2.000000,1.000000 1.000000,11.000000,853.197205,208.778687,56.896423,20.943146,1.000000,2.000000,1.000000 1.000000,12.000000,849.004761,186.581085,59.452515,17.981491,1.000000,2.000000,1.000000 1.000000,13.000000,852.700256,166.700241,48.495300,18.664276,1.000000,2.000000,1.000000 1.000000,14.000000,854.397095,144.782761,61.557800,20.047974,1.000000,2.000000,1.000000 1.000000,15.000000,853.167114,123.689697,57.523682,17.910675,1.000000,2.000000,1.000000 1.000000,16.000000,860.895874,102.948746,56.524780,18.943359,1.000000,2.000000,1.000000 1.000000,17.000000,858.362305,77.824478,62.858521,26.113701,1.000000,2.000000,1.000000 1.000000,18.000000,859.362122,58.870956,55.595825,21.870117,1.000000,2.000000,1.000000 1.000000,19.000000,859.095215,38.882580,56.490906,20.873138,1.000000,2.000000,1.000000 1.000000,20.000000,572.301575,89.701027,43.162354,50.864403,1.000000,2.000000,1.000000 1.000000,21.000000,582.375977,172.615738,61.440002,46.439072,1.000000,2.000000,1.000000 1.000000,22.000000,593.102173,151.049347,63.472412,48.400818,1.000000,2.000000,1.000000 1.000000,23.000000,838.709412,479.438690,55.523926,20.873291,1.000000,2.000000,1.000000 1.000000,24.000000,835.162903,553.358093,60.521118,22.012756,1.000000,2.000000,1.000000 1.000000,25.000000,634.696960,76.422066,62.576294,44.438896,1.000000,2.000000,1.000000 1.000000,26.000000,831.360718,576.241455,59.522339,20.012024,1.000000,2.000000,1.000000 1.000000,27.000000,782.010132,503.433960,38.395264,15.318787,1.000000,2.000000,1.000000 1.000000,28.000000,782.603516,481.446716,43.601746,19.488556,1.000000,2.000000,1.000000 1.000000,29.000000,774.983398,409.143158,55.628601,25.904297,1.000000,2.000000,1.000000 1.000000,30.000000,777.447937,389.189423,52.932983,20.803528,1.000000,2.000000,1.000000 1.000000,31.000000,773.589172,362.065430,60.929749,26.113800,1.000000,2.000000,1.000000 1.000000,32.000000,776.495178,339.185150,59.559326,24.009369,1.000000,2.000000,1.000000 1.000000,33.000000,774.300476,315.060638,61.624634,24.114014,1.000000,2.000000,1.000000 1.000000,34.000000,779.206238,294.246765,51.422913,19.698883,1.000000,2.000000,1.000000 1.000000,35.000000,777.903442,269.157288,59.626953,24.974335,1.000000,2.000000,1.000000 1.000000,36.000000,767.783813,245.789429,70.479492,23.428284,1.000000,2.000000,1.000000 1.000000,37.000000,780.473755,224.219925,57.593384,23.977539,1.000000,2.000000,1.000000 1.000000,38.000000,784.310791,203.336258,54.489258,19.876495,1.000000,2.000000,1.000000 1.000000,39.000000,780.115417,177.212051,63.520569,26.116867,1.000000,2.000000,1.000000 1.000000,40.000000,793.841125,160.642838,50.527771,19.697983,1.000000,2.000000,1.000000 1.000000,41.000000,815.028503,107.339630,35.221191,12.179245,1.000000,2.000000,1.000000 1.000000,42.000000,804.370117,119.982964,44.392212,18.524651,1.000000,2.000000,1.000000 1.000000,43.000000,790.540710,141.514465,57.929199,19.013214,1.000000,2.000000,1.000000 1.000000,44.000000,826.038269,611.078857,72.512024,26.427734,1.000000,2.000000,1.000000 1.000000,45.000000,621.726807,105.879517,60.579712,41.442337,1.000000,2.000000,1.000000 1.000000,46.000000,647.350952,57.852261,57.720703,42.230007,1.000000,2.000000,1.000000 1.000000,47.000000,390.695862,11.696652,53.176300,33.443741,1.000000,2.000000,1.000000 1.000000,48.000000,209.511597,133.404327,51.039062,27.415375,1.000000,2.000000,1.000000 1.000000,49.000000,208.280777,109.314743,61.136978,32.831329,1.000000,2.000000,1.000000 1.000000,50.000000,220.320831,84.714233,49.005524,23.383911,1.000000,2.000000,1.000000 1.000000,51.000000,222.017670,60.869053,60.069366,30.656307,1.000000,2.000000,1.000000 1.000000,52.000000,237.649490,15.280258,55.072311,29.589363,1.000000,2.000000,1.000000 1.000000,53.000000,246.516571,0.000000,55.107239,20.164230,1.000000,2.000000,1.000000 1.000000,54.000000,399.528076,0.000000,56.176788,22.539318,1.000000,2.000000,1.000000 1.000000,55.000000,385.827087,36.506924,51.213501,33.376743,1.000000,2.000000,1.000000 1.000000,56.000000,681.148254,8.895086,48.726318,38.093826,1.000000,2.000000,1.000000 1.000000,57.000000,373.367126,81.058304,52.072845,32.449257,1.000000,2.000000,1.000000 1.000000,58.000000,265.976013,180.366852,69.781433,31.182739,1.000000,2.000000,1.000000 1.000000,59.000000,188.756271,158.621048,36.117416,17.039291,1.000000,2.000000,1.000000 1.000000,60.000000,221.421478,165.803604,47.969727,27.380539,1.000000,2.000000,1.000000 1.000000,61.000000,335.443329,198.766235,35.048798,20.997574,1.000000,2.000000,1.000000 1.000000,62.000000,369.039642,208.911285,36.152283,21.140320,1.000000,2.000000,1.000000 1.000000,63.000000,403.333832,201.174271,53.106567,24.590439,1.000000,2.000000,1.000000 1.000000,64.000000,412.061401,179.466202,42.149261,24.136765,1.000000,2.000000,1.000000 1.000000,65.000000,418.756409,160.686874,46.145538,24.346146,1.000000,2.000000,1.000000 1.000000,66.000000,423.415771,139.838089,47.146454,25.348969,1.000000,2.000000,1.000000 1.000000,67.000000,434.039246,121.199333,39.184662,24.068947,1.000000,2.000000,1.000000 1.000000,68.000000,436.909363,99.318474,37.152130,22.962723,1.000000,2.000000,1.000000 1.000000,69.000000,443.569427,78.539574,46.075836,27.241158,1.000000,2.000000,1.000000 1.000000,70.000000,456.236755,32.883881,55.002411,28.621883,1.000000,2.000000,1.000000 1.000000,71.000000,459.899353,7.108705,56.208557,33.551331,1.000000,2.000000,1.000000 1.000000,72.000000,329.287140,171.572433,70.919861,31.180695,1.000000,2.000000,1.000000 1.000000,73.000000,338.049591,148.901505,66.924591,33.005829,1.000000,2.000000,1.000000 1.000000,74.000000,338.852264,122.987793,73.955292,37.105820,1.000000,2.000000,1.000000 1.000000,75.000000,843.434143,318.500397,46.494629,17.562775,1.000000,2.000000,1.000000 1.000000,76.000000,986.584106,484.603821,36.415894,20.914215,1.000000,2.000000,1.000000 1.000000,77.000000,996.441650,421.852051,26.558350,18.576721,1.000000,2.000000,1.000000 1.000000,78.000000,1007.476440,237.173203,15.523560,12.500122,1.000000,2.000000,1.000000 1.000000,79.000000,991.441711,507.728455,31.558289,15.111755,1.000000,2.000000,1.000000 1.000000,80.000000,993.706238,528.821533,29.293762,14.292969,1.000000,2.000000,1.000000 1.000000,81.000000,998.041321,547.984802,24.958679,16.514160,1.000000,2.000000,1.000000 1.000000,82.000000,986.859375,567.658203,36.140625,15.972168,1.000000,2.000000,1.000000 1.000000,83.000000,961.814392,619.787537,61.185608,21.151917,1.000000,2.000000,1.000000 1.000000,84.000000,979.130798,586.367798,43.869202,18.366882,1.000000,2.000000,1.000000 1.000000,85.000000,754.256042,23.342646,161.644165,607.749329,1.000000,8.000000,1.000000 1.000000,86.000000,576.883484,337.644623,186.100159,292.126617,1.000000,8.000000,1.000000 1.000000,87.000000,569.801941,0.000000,194.495789,219.054810,1.000000,8.000000,1.000000 1.000000,88.000000,343.276703,0.000000,177.038971,223.079285,1.000000,8.000000,1.000000 1.000000,89.000000,193.660919,0.000000,110.544922,164.923798,1.000000,8.000000,1.000000 1.000000,90.000000,600.218506,340.504517,56.140930,41.787109,1.000000,2.000000,1.000000 1.000000,91.000000,608.551941,371.346649,34.081848,23.147217,1.000000,2.000000,1.000000 1.000000,92.000000,610.955139,387.544281,38.046204,25.042236,1.000000,2.000000,1.000000 1.000000,93.000000,620.459778,404.850525,36.942749,22.042694,1.000000,2.000000,1.000000 1.000000,94.000000,627.864197,417.086731,37.081238,28.143311,1.000000,2.000000,1.000000 1.000000,95.000000,638.367676,436.319794,32.945496,22.252075,1.000000,2.000000,1.000000 1.000000,96.000000,642.806396,448.660645,37.012512,27.109741,1.000000,2.000000,1.000000 1.000000,97.000000,656.715942,481.025116,34.944214,27.249298,1.000000,2.000000,1.000000 1.000000,98.000000,666.219727,497.398193,34.874207,25.216736,1.000000,2.000000,1.000000 1.000000,99.000000,671.658264,513.634766,34.944031,24.147156,1.000000,2.000000,1.000000 1.000000,100.000000,679.059570,529.971985,36.977661,24.112183,1.000000,2.000000,1.000000 1.000000,101.000000,688.494385,548.100525,31.017639,21.290222,1.000000,2.000000,1.000000 1.000000,102.000000,691.934387,560.409546,38.011353,28.179321,1.000000,2.000000,1.000000 1.000000,103.000000,699.266907,577.747620,40.150635,28.038757,1.000000,2.000000,1.000000 1.000000,104.000000,652.250671,532.261292,25.077148,36.152222,1.000000,2.000000,1.000000 1.000000,105.000000,627.767822,486.451385,26.109863,37.116241,1.000000,2.000000,1.000000 1.000000,106.000000,606.492859,437.641022,26.178650,32.189880,1.000000,2.000000,1.000000 1.000000,107.000000,569.643433,376.318268,21.359070,26.089233,1.000000,2.000000,1.000000 1.000000,108.000000,189.606094,92.697327,18.721802,28.226471,1.000000,2.000000,1.000000 1.000000,109.000000,198.578949,65.027817,18.756622,27.089500,1.000000,2.000000,1.000000 1.000000,110.000000,203.518463,32.326542,21.894791,34.050220,1.000000,2.000000,1.000000 2.000000,1.000000,832.302307,525.025269,60.454346,21.465515,1.000000,2.000000,1.000000 2.000000,2.000000,838.570557,453.124023,54.981934,20.340668,1.000000,2.000000,1.000000 2.000000,3.000000,833.745422,427.007019,58.381226,22.412720,1.000000,2.000000,1.000000 2.000000,4.000000,837.367004,402.114594,56.406982,20.340698,1.000000,2.000000,1.000000 2.000000,5.000000,836.916382,379.095734,60.404419,22.439636,1.000000,2.000000,1.000000 2.000000,6.000000,844.535706,334.233673,54.955994,22.365845,1.000000,2.000000,1.000000 2.000000,7.000000,844.158813,291.247223,54.356812,21.290955,1.000000,2.000000,1.000000 2.000000,8.000000,848.079651,272.303680,52.957703,17.292450,1.000000,2.000000,1.000000 2.000000,9.000000,849.278137,248.336578,53.284973,19.290680,1.000000,2.000000,1.000000 2.000000,10.000000,849.801697,226.344818,54.333923,21.312851,1.000000,2.000000,1.000000 2.000000,11.000000,850.325256,205.375076,56.933350,20.390549,1.000000,2.000000,1.000000 2.000000,12.000000,845.902039,183.230698,59.330505,17.418076,1.000000,2.000000,1.000000 2.000000,13.000000,849.399048,163.313995,48.360107,18.190842,1.000000,2.000000,1.000000 2.000000,14.000000,850.896790,141.370026,61.406555,19.465179,1.000000,2.000000,1.000000 2.000000,15.000000,849.446960,120.300583,57.381165,17.367188,1.000000,2.000000,1.000000 2.000000,16.000000,856.968445,99.483582,56.381958,18.390175,1.000000,2.000000,1.000000 2.000000,17.000000,854.014954,74.391754,62.907288,25.512741,1.000000,2.000000,1.000000 2.000000,18.000000,855.015076,55.422588,55.432800,21.337757,1.000000,2.000000,1.000000 2.000000,19.000000,854.538513,35.428242,56.358093,20.340485,1.000000,2.000000,1.000000 2.000000,20.000000,568.507507,88.876404,42.835938,50.909546,1.000000,2.000000,1.000000 2.000000,21.000000,579.133789,171.825851,61.607971,46.033813,1.000000,2.000000,1.000000 2.000000,22.000000,589.653564,150.133270,63.631104,48.006104,1.000000,2.000000,1.000000 2.000000,23.000000,838.547485,476.165771,55.380859,20.340637,1.000000,2.000000,1.000000 2.000000,24.000000,835.728394,550.117188,60.379517,21.440552,1.000000,2.000000,1.000000 2.000000,25.000000,630.512329,75.104507,62.704773,44.033035,1.000000,2.000000,1.000000 2.000000,26.000000,832.154602,573.037354,59.380432,19.439209,1.000000,2.000000,1.000000 2.000000,27.000000,782.040833,500.737000,38.286987,14.944153,1.000000,2.000000,1.000000 2.000000,28.000000,782.464722,478.743195,43.435181,19.065277,1.000000,2.000000,1.000000 2.000000,29.000000,774.163757,406.517853,55.455627,25.363190,1.000000,2.000000,1.000000 2.000000,30.000000,776.209900,386.548187,52.958801,20.290833,1.000000,2.000000,1.000000 2.000000,31.000000,772.310120,359.456024,60.957886,25.512817,1.000000,2.000000,1.000000 2.000000,32.000000,774.957520,336.538971,59.407410,23.437714,1.000000,2.000000,1.000000 2.000000,33.000000,772.532654,312.447174,61.453369,23.512482,1.000000,2.000000,1.000000 2.000000,34.000000,777.180420,291.577179,51.308533,19.215790,1.000000,2.000000,1.000000 2.000000,35.000000,775.677612,266.510162,59.455200,24.412964,1.000000,2.000000,1.000000 2.000000,36.000000,765.305542,243.245087,70.350769,22.736725,1.000000,2.000000,1.000000 2.000000,37.000000,777.799622,221.549408,57.430969,23.415863,1.000000,2.000000,1.000000 2.000000,38.000000,781.398315,200.629547,54.355835,19.343567,1.000000,2.000000,1.000000 2.000000,39.000000,776.972168,174.537476,63.379883,25.515915,1.000000,2.000000,1.000000 2.000000,40.000000,790.492371,157.843552,50.383240,19.214874,1.000000,2.000000,1.000000 2.000000,41.000000,811.057434,104.334824,35.161865,11.843605,1.000000,2.000000,1.000000 2.000000,42.000000,800.585449,117.081741,44.285706,18.091095,1.000000,2.000000,1.000000 2.000000,43.000000,786.991455,138.749405,57.956421,18.440094,1.000000,2.000000,1.000000 2.000000,44.000000,827.209778,607.925049,72.374023,25.737122,1.000000,2.000000,1.000000 2.000000,45.000000,617.817749,104.720444,60.707581,41.035583,1.000000,2.000000,1.000000 2.000000,46.000000,642.980530,56.409397,57.807800,41.883366,1.000000,2.000000,1.000000 2.000000,47.000000,385.909515,12.864549,53.132294,33.034595,1.000000,2.000000,1.000000 2.000000,48.000000,205.898621,136.384857,51.034363,27.014435,1.000000,2.000000,1.000000 2.000000,49.000000,204.447891,112.318024,61.105362,32.312241,1.000000,2.000000,1.000000 2.000000,50.000000,216.192169,87.600403,49.010162,22.991722,1.000000,2.000000,1.000000 2.000000,51.000000,217.689926,63.708187,60.057358,30.186443,1.000000,2.000000,1.000000 2.000000,52.000000,232.857391,17.996002,55.058807,29.139160,1.000000,2.000000,1.000000 2.000000,53.000000,241.477661,0.000000,55.083740,22.342558,1.000000,2.000000,1.000000 2.000000,54.000000,394.504883,0.000000,56.133698,23.181561,1.000000,2.000000,1.000000 2.000000,55.000000,381.288788,37.732132,51.158936,32.987526,1.000000,2.000000,1.000000 2.000000,56.000000,676.269043,7.148215,48.810730,37.785873,1.000000,2.000000,1.000000 2.000000,57.000000,369.244232,82.416550,52.058441,32.039833,1.000000,2.000000,1.000000 2.000000,58.000000,262.808990,182.792587,69.852173,30.563354,1.000000,2.000000,1.000000 2.000000,59.000000,185.356644,161.828659,36.088287,16.744995,1.000000,2.000000,1.000000 2.000000,60.000000,218.121429,168.674057,47.984039,26.989548,1.000000,2.000000,1.000000 2.000000,61.000000,332.436768,200.508896,35.039307,20.714447,1.000000,2.000000,1.000000 2.000000,62.000000,366.152893,210.327682,36.113190,20.817291,1.000000,2.000000,1.000000 2.000000,63.000000,400.367523,202.229080,53.082458,24.138733,1.000000,2.000000,1.000000 2.000000,64.000000,408.888123,180.434723,42.111938,23.814636,1.000000,2.000000,1.000000 2.000000,65.000000,415.385529,161.589905,46.109436,23.964203,1.000000,2.000000,1.000000 2.000000,66.000000,419.856659,140.694962,47.110657,24.967361,1.000000,2.000000,1.000000 2.000000,67.000000,430.303711,121.950859,39.136475,23.766777,1.000000,2.000000,1.000000 2.000000,68.000000,432.925201,100.033516,37.113312,22.690178,1.000000,2.000000,1.000000 2.000000,69.000000,439.397644,79.188560,46.059662,26.890030,1.000000,2.000000,1.000000 2.000000,70.000000,451.589722,33.429405,55.008881,28.161411,1.000000,2.000000,1.000000 2.000000,71.000000,455.063843,7.586673,56.155518,33.112263,1.000000,2.000000,1.000000 2.000000,72.000000,326.039246,173.366852,70.951019,30.561325,1.000000,2.000000,1.000000 2.000000,73.000000,334.584778,150.599335,66.954529,32.436905,1.000000,2.000000,1.000000 2.000000,74.000000,335.158142,124.657928,73.977386,36.508163,1.000000,2.000000,1.000000 2.000000,75.000000,841.637024,315.189392,46.358826,17.118958,1.000000,2.000000,1.000000 2.000000,76.000000,986.476318,479.855499,36.523682,20.570496,1.000000,2.000000,1.000000 2.000000,77.000000,995.518494,417.025116,27.481506,18.347412,1.000000,2.000000,1.000000 2.000000,78.000000,1004.830139,232.231277,18.169861,12.424683,1.000000,2.000000,1.000000 2.000000,79.000000,991.375244,502.947113,31.624756,14.794220,1.000000,2.000000,1.000000 2.000000,80.000000,993.850037,524.016602,29.149963,14.020691,1.000000,2.000000,1.000000 2.000000,81.000000,998.376038,543.135681,24.623962,16.218750,1.000000,2.000000,1.000000 2.000000,82.000000,987.530090,562.904785,35.469910,15.594238,1.000000,2.000000,1.000000 2.000000,83.000000,963.066284,615.289124,59.933716,20.536255,1.000000,2.000000,1.000000 2.000000,84.000000,980.008667,581.699768,42.991333,17.894287,1.000000,2.000000,1.000000 2.000000,85.000000,755.356262,20.612152,155.764709,606.753174,1.000000,8.000000,1.000000 2.000000,86.000000,575.495789,336.295288,188.381042,291.555176,1.000000,8.000000,1.000000 2.000000,87.000000,566.436279,0.000000,191.286682,217.859665,1.000000,8.000000,1.000000 2.000000,88.000000,340.032990,0.000000,175.335480,223.591782,1.000000,8.000000,1.000000 2.000000,89.000000,190.003311,0.000000,109.672379,167.474655,1.000000,8.000000,1.000000 2.000000,90.000000,598.737976,339.195953,56.107788,42.138855,1.000000,2.000000,1.000000 2.000000,91.000000,607.263550,370.087189,34.062073,23.393646,1.000000,2.000000,1.000000 2.000000,92.000000,609.837097,386.229797,38.037598,25.319122,1.000000,2.000000,1.000000 2.000000,93.000000,619.484253,403.451385,36.963745,22.318726,1.000000,2.000000,1.000000 2.000000,94.000000,627.060547,415.621368,37.062378,28.391235,1.000000,2.000000,1.000000 2.000000,95.000000,637.706848,434.790314,32.965332,22.468292,1.000000,2.000000,1.000000 2.000000,96.000000,642.306580,447.035095,37.013611,27.367279,1.000000,2.000000,1.000000 2.000000,97.000000,656.529663,479.299438,34.964539,27.466980,1.000000,2.000000,1.000000 2.000000,98.000000,666.175903,495.567627,34.914612,25.443787,1.000000,2.000000,1.000000 2.000000,99.000000,671.775757,511.739227,34.964478,24.393829,1.000000,2.000000,1.000000 2.000000,100.000000,679.348999,527.981506,36.988647,24.368896,1.000000,2.000000,1.000000 2.000000,101.000000,688.946289,546.075500,31.016907,21.496216,1.000000,2.000000,1.000000 2.000000,102.000000,692.546936,558.298462,38.012756,28.417236,1.000000,2.000000,1.000000 2.000000,103.000000,700.071289,575.541870,40.112671,28.316528,1.000000,2.000000,1.000000 2.000000,104.000000,652.482178,530.760437,25.344055,36.113159,1.000000,2.000000,1.000000 2.000000,105.000000,627.562866,485.176392,26.367126,37.087402,1.000000,2.000000,1.000000 2.000000,106.000000,605.792603,436.590942,26.415955,32.139648,1.000000,2.000000,1.000000 2.000000,107.000000,568.323425,375.639099,21.545044,26.067078,1.000000,2.000000,1.000000 2.000000,108.000000,185.677826,95.875267,18.517822,28.165047,1.000000,2.000000,1.000000 2.000000,109.000000,194.373932,68.107681,18.542709,27.067657,1.000000,2.000000,1.000000 2.000000,110.000000,199.045502,35.316822,21.641861,34.040417,1.000000,2.000000,1.000000 3.000000,1.000000,832.605469,521.815491,60.276794,20.881165,1.000000,2.000000,1.000000 3.000000,2.000000,837.967102,449.870026,54.992920,19.806000,1.000000,2.000000,1.000000 3.000000,3.000000,833.071167,423.797729,58.233276,21.848511,1.000000,2.000000,1.000000 3.000000,4.000000,836.444092,398.860443,56.248596,19.806000,1.000000,2.000000,1.000000 3.000000,5.000000,835.773926,375.846954,60.246826,21.865479,1.000000,2.000000,1.000000 3.000000,6.000000,842.746277,330.926117,54.976929,21.821594,1.000000,2.000000,1.000000 3.000000,7.000000,842.119934,287.931091,54.217957,20.776428,1.000000,2.000000,1.000000 3.000000,8.000000,845.672424,268.963837,52.978210,16.777130,1.000000,2.000000,1.000000 3.000000,9.000000,846.791321,244.981979,53.175903,18.775742,1.000000,2.000000,1.000000 3.000000,10.000000,847.105469,222.985840,54.205078,20.788345,1.000000,2.000000,1.000000 3.000000,11.000000,847.419678,202.001953,56.964661,19.835938,1.000000,2.000000,1.000000 3.000000,12.000000,842.766113,179.913025,59.202637,16.852905,1.000000,2.000000,1.000000 3.000000,13.000000,846.064270,159.962433,48.220093,17.715576,1.000000,2.000000,1.000000 3.000000,14.000000,847.362793,137.994156,61.249207,18.880447,1.000000,2.000000,1.000000 3.000000,15.000000,845.693237,116.950432,57.232910,17.000587,1.000000,2.000000,1.000000 3.000000,16.000000,853.006653,96.059448,56.233643,17.835159,1.000000,2.000000,1.000000 3.000000,17.000000,849.633606,71.002548,62.949707,24.909256,1.000000,2.000000,1.000000 3.000000,18.000000,850.633911,52.019630,55.264282,20.803284,1.000000,2.000000,1.000000 3.000000,19.000000,849.947754,32.021305,56.219666,19.805809,1.000000,2.000000,1.000000 3.000000,20.000000,564.707764,88.093872,42.505310,50.949600,1.000000,2.000000,1.000000 3.000000,21.000000,575.884949,171.069809,61.769836,45.623978,1.000000,2.000000,1.000000 3.000000,22.000000,586.197327,149.253204,63.783386,47.606613,1.000000,2.000000,1.000000 3.000000,23.000000,838.353088,472.896393,55.232239,19.806000,1.000000,2.000000,1.000000 3.000000,24.000000,836.261719,546.872498,60.231873,20.866211,1.000000,2.000000,1.000000 3.000000,25.000000,626.315979,73.830414,62.826965,43.622787,1.000000,2.000000,1.000000 3.000000,26.000000,832.916687,569.827148,59.232605,18.864502,1.000000,2.000000,1.000000 3.000000,27.000000,782.044678,498.041168,38.174927,14.568085,1.000000,2.000000,1.000000 3.000000,28.000000,782.299011,476.042999,43.264282,18.640076,1.000000,2.000000,1.000000 3.000000,29.000000,773.318054,403.903015,55.277100,24.819550,1.000000,2.000000,1.000000 3.000000,30.000000,774.945618,383.919434,52.979309,19.776093,1.000000,2.000000,1.000000 3.000000,31.000000,771.005127,356.861786,60.979980,24.909332,1.000000,2.000000,1.000000 3.000000,32.000000,773.393677,333.910217,59.249634,22.863770,1.000000,2.000000,1.000000 3.000000,33.000000,770.738831,309.853546,61.276123,22.908630,1.000000,2.000000,1.000000 3.000000,34.000000,775.128174,288.929504,51.189026,18.730835,1.000000,2.000000,1.000000 3.000000,35.000000,773.425598,263.887451,59.277405,23.849152,1.000000,2.000000,1.000000 3.000000,36.000000,762.802002,240.727478,70.215149,22.042938,1.000000,2.000000,1.000000 3.000000,37.000000,775.099060,218.907776,57.262817,22.851883,1.000000,2.000000,1.000000 3.000000,38.000000,778.459106,197.953812,54.216980,18.808701,1.000000,2.000000,1.000000 3.000000,39.000000,773.802612,171.896469,63.232788,24.912415,1.000000,2.000000,1.000000 3.000000,40.000000,787.115967,155.079498,50.233643,18.729858,1.000000,2.000000,1.000000 3.000000,41.000000,807.056580,101.370567,35.099060,11.506775,1.000000,2.000000,1.000000 3.000000,42.000000,796.772095,114.219795,44.174805,17.655739,1.000000,2.000000,1.000000 3.000000,43.000000,783.414856,135.873810,57.977905,18.012802,1.000000,2.000000,1.000000 3.000000,44.000000,828.349976,604.761719,72.228699,25.043884,1.000000,2.000000,1.000000 3.000000,45.000000,613.898193,103.601875,60.829407,40.624748,1.000000,2.000000,1.000000 3.000000,46.000000,638.597107,55.011852,57.889160,41.532558,1.000000,2.000000,1.000000 3.000000,47.000000,381.135742,14.082091,53.083008,32.622162,1.000000,2.000000,1.000000 3.000000,48.000000,202.316101,139.402740,51.024551,26.610794,1.000000,2.000000,1.000000 3.000000,49.000000,200.645584,115.361061,61.067642,31.789940,1.000000,2.000000,1.000000 3.000000,50.000000,212.092926,90.528778,49.009949,22.597260,1.000000,2.000000,1.000000 3.000000,51.000000,213.391449,66.591911,60.039398,29.713577,1.000000,2.000000,1.000000 3.000000,52.000000,228.093079,20.760881,55.039825,28.686060,1.000000,2.000000,1.000000 3.000000,53.000000,236.465637,0.000000,55.054810,24.569590,1.000000,2.000000,1.000000 3.000000,54.000000,389.493378,0.000000,56.085022,23.872423,1.000000,2.000000,1.000000 3.000000,55.000000,376.763489,39.004517,51.099304,32.595024,1.000000,2.000000,1.000000 3.000000,56.000000,671.373413,5.451560,48.890320,37.474163,1.000000,2.000000,1.000000 3.000000,57.000000,365.135559,83.817528,52.038849,31.627213,1.000000,2.000000,1.000000 3.000000,58.000000,259.666779,185.251083,69.915955,29.940933,1.000000,2.000000,1.000000 3.000000,59.000000,181.989502,165.071106,36.055557,16.449036,1.000000,2.000000,1.000000 3.000000,60.000000,214.850601,171.578659,47.993576,26.595871,1.000000,2.000000,1.000000 3.000000,61.000000,329.448090,202.282532,35.026306,20.429276,1.000000,2.000000,1.000000 3.000000,62.000000,363.280609,211.774078,36.070526,20.492203,1.000000,2.000000,1.000000 3.000000,63.000000,397.412292,203.314713,53.053131,23.684616,1.000000,2.000000,1.000000 3.000000,64.000000,405.725098,181.436203,42.070435,23.490158,1.000000,2.000000,1.000000 3.000000,65.000000,412.024261,162.527771,46.068726,23.579910,1.000000,2.000000,1.000000 3.000000,66.000000,416.306732,141.588776,47.070129,24.583267,1.000000,2.000000,1.000000 3.000000,67.000000,426.576294,122.741180,39.084412,23.462250,1.000000,2.000000,1.000000 3.000000,68.000000,428.948914,100.789536,37.070801,22.415375,1.000000,2.000000,1.000000 3.000000,69.000000,435.233093,79.880600,46.038879,26.536224,1.000000,2.000000,1.000000 3.000000,70.000000,446.948730,34.022530,55.009857,27.698135,1.000000,2.000000,1.000000 3.000000,71.000000,450.233948,8.114814,56.096893,32.669903,1.000000,2.000000,1.000000 3.000000,72.000000,322.809875,175.194962,70.975098,29.938889,1.000000,2.000000,1.000000 3.000000,73.000000,331.137573,152.333130,66.977844,31.864731,1.000000,2.000000,1.000000 3.000000,74.000000,331.481628,126.366600,73.992126,35.906883,1.000000,2.000000,1.000000 3.000000,75.000000,839.807129,311.897980,46.218384,16.673431,1.000000,2.000000,1.000000 3.000000,76.000000,986.321289,475.110382,36.678711,20.224701,1.000000,2.000000,1.000000 3.000000,77.000000,994.547241,412.207642,28.452759,18.103546,1.000000,2.000000,1.000000 3.000000,78.000000,1002.134888,227.317154,20.865112,12.296097,1.000000,2.000000,1.000000 3.000000,79.000000,991.261108,498.166687,31.738892,14.477600,1.000000,2.000000,1.000000 3.000000,80.000000,993.945923,519.210449,29.054077,14.013489,1.000000,2.000000,1.000000 3.000000,81.000000,998.662354,538.283447,24.337646,15.935852,1.000000,2.000000,1.000000 3.000000,82.000000,988.153442,558.146301,34.846558,15.230347,1.000000,2.000000,1.000000 3.000000,83.000000,964.273376,610.780457,58.726624,19.997559,1.000000,2.000000,1.000000 3.000000,84.000000,980.840027,577.024780,42.159973,17.439636,1.000000,2.000000,1.000000 3.000000,85.000000,756.432251,17.930534,149.869812,605.696716,1.000000,8.000000,1.000000 3.000000,86.000000,574.101807,334.963409,190.643250,290.954742,1.000000,8.000000,1.000000 3.000000,87.000000,563.065186,0.000000,188.153931,216.693787,1.000000,8.000000,1.000000 3.000000,88.000000,336.806366,0.000000,173.614563,224.132965,1.000000,8.000000,1.000000 3.000000,89.000000,186.377731,0.000000,108.757370,170.059769,1.000000,8.000000,1.000000 3.000000,90.000000,597.248840,337.904572,56.069092,42.486420,1.000000,2.000000,1.000000 3.000000,91.000000,605.965637,368.841858,34.038879,23.637756,1.000000,2.000000,1.000000 3.000000,92.000000,608.709290,384.927795,38.025208,25.593536,1.000000,2.000000,1.000000 3.000000,93.000000,618.498047,402.063019,36.981079,22.592529,1.000000,2.000000,1.000000 3.000000,94.000000,626.245422,414.165619,37.039856,28.636322,1.000000,2.000000,1.000000 3.000000,95.000000,637.033508,433.268524,32.981873,22.682281,1.000000,2.000000,1.000000 3.000000,96.000000,641.793762,445.415985,37.011047,27.622131,1.000000,2.000000,1.000000 3.000000,97.000000,656.328979,477.576996,34.981445,27.681946,1.000000,2.000000,1.000000 3.000000,98.000000,666.116821,493.738708,34.951477,25.668335,1.000000,2.000000,1.000000 3.000000,99.000000,671.877380,509.843658,34.981445,24.638153,1.000000,2.000000,1.000000 3.000000,100.000000,679.621704,525.989441,36.996033,24.623169,1.000000,2.000000,1.000000 3.000000,101.000000,689.380554,544.047119,31.013062,21.700012,1.000000,2.000000,1.000000 3.000000,102.000000,693.141541,556.182739,38.010315,28.652344,1.000000,2.000000,1.000000 3.000000,103.000000,700.856934,573.329834,40.070801,28.591492,1.000000,2.000000,1.000000 3.000000,104.000000,652.699707,529.257751,25.608459,36.070496,1.000000,2.000000,1.000000 3.000000,105.000000,627.346436,483.904083,26.621765,37.054901,1.000000,2.000000,1.000000 3.000000,106.000000,605.083008,435.548401,26.650696,32.086151,1.000000,2.000000,1.000000 3.000000,107.000000,566.997803,374.973480,21.728943,26.042358,1.000000,2.000000,1.000000 3.000000,108.000000,181.782013,99.094604,18.312012,28.100815,1.000000,2.000000,1.000000 3.000000,109.000000,190.200516,71.231705,18.326920,27.043106,1.000000,2.000000,1.000000 3.000000,110.000000,194.603668,38.354515,21.386795,34.027229,1.000000,2.000000,1.000000 4.000000,1.000000,832.876770,518.604797,60.093262,20.294739,1.000000,2.000000,1.000000 4.000000,2.000000,837.331299,446.622192,54.998352,19.269379,1.000000,2.000000,1.000000 4.000000,3.000000,832.365051,420.597198,58.079407,21.282135,1.000000,2.000000,1.000000 4.000000,4.000000,835.488953,395.617523,56.084595,19.269348,1.000000,2.000000,1.000000 4.000000,5.000000,834.599243,372.611725,60.083252,21.289154,1.000000,2.000000,1.000000 4.000000,6.000000,840.923950,327.636536,54.992371,21.275208,1.000000,2.000000,1.000000 4.000000,7.000000,840.048157,284.637238,54.073792,20.259827,1.000000,2.000000,1.000000 4.000000,8.000000,843.231995,265.648163,52.993469,16.260132,1.000000,2.000000,1.000000 4.000000,9.000000,844.271240,241.653946,53.061462,18.258957,1.000000,2.000000,1.000000 4.000000,10.000000,844.375977,219.655624,54.070801,20.261749,1.000000,2.000000,1.000000 4.000000,11.000000,844.480713,198.659668,56.990234,19.279343,1.000000,2.000000,1.000000 4.000000,12.000000,839.597290,176.628372,59.068848,16.286072,1.000000,2.000000,1.000000 4.000000,13.000000,842.696289,156.645874,48.075256,17.238586,1.000000,2.000000,1.000000 4.000000,14.000000,843.795471,134.655487,61.085693,18.293839,1.000000,2.000000,1.000000 4.000000,15.000000,841.906311,113.639572,57.078979,17.002274,1.000000,2.000000,1.000000 4.000000,16.000000,849.010986,92.676689,56.079651,17.278374,1.000000,2.000000,1.000000 4.000000,17.000000,845.218689,67.657211,62.985840,24.303284,1.000000,2.000000,1.000000 4.000000,18.000000,846.219116,48.662426,55.090210,20.266735,1.000000,2.000000,1.000000 4.000000,19.000000,845.323425,28.662113,56.075623,19.269161,1.000000,2.000000,1.000000 4.000000,20.000000,560.902832,87.353500,42.170410,50.984604,1.000000,2.000000,1.000000 4.000000,21.000000,572.629700,170.347687,61.925598,45.209579,1.000000,2.000000,1.000000 4.000000,22.000000,582.733643,148.409210,63.929382,47.202408,1.000000,2.000000,1.000000 4.000000,23.000000,838.126221,469.630920,55.078186,19.269348,1.000000,2.000000,1.000000 4.000000,24.000000,836.762817,543.624329,60.078247,20.289795,1.000000,2.000000,1.000000 4.000000,25.000000,622.108276,72.599899,62.942871,43.208206,1.000000,2.000000,1.000000 4.000000,26.000000,833.646790,566.611267,59.078918,18.287842,1.000000,2.000000,1.000000 4.000000,27.000000,782.021667,495.346741,38.059021,14.190460,1.000000,2.000000,1.000000 4.000000,28.000000,782.106506,473.346375,43.088989,18.213043,1.000000,2.000000,1.000000 4.000000,29.000000,772.446350,401.298950,55.093079,24.273438,1.000000,2.000000,1.000000 4.000000,30.000000,773.655151,381.303406,52.994568,19.259399,1.000000,2.000000,1.000000 4.000000,31.000000,769.674438,354.282959,60.995972,24.303375,1.000000,2.000000,1.000000 4.000000,32.000000,771.803894,331.299194,59.085938,22.287506,1.000000,2.000000,1.000000 4.000000,33.000000,768.919373,307.280029,61.092651,22.302490,1.000000,2.000000,1.000000 4.000000,34.000000,773.049744,286.304016,51.064514,18.243988,1.000000,2.000000,1.000000 4.000000,35.000000,771.147522,261.289429,59.093872,23.282990,1.000000,2.000000,1.000000 4.000000,36.000000,760.273560,238.236847,70.072510,21.346954,1.000000,2.000000,1.000000 4.000000,37.000000,772.372375,216.295288,57.088989,22.285629,1.000000,2.000000,1.000000 4.000000,38.000000,775.493347,195.309311,54.072693,18.271973,1.000000,2.000000,1.000000 4.000000,39.000000,770.606934,169.289276,63.079529,24.306458,1.000000,2.000000,1.000000 4.000000,40.000000,783.712158,152.350937,50.079041,18.242981,1.000000,2.000000,1.000000 4.000000,41.000000,803.026428,98.447151,35.032715,11.168808,1.000000,2.000000,1.000000 4.000000,42.000000,792.930359,111.397415,44.059570,17.218628,1.000000,2.000000,1.000000 4.000000,43.000000,779.811218,132.614716,57.993652,18.004623,1.000000,2.000000,1.000000 4.000000,44.000000,829.458618,601.589172,72.076355,24.348206,1.000000,2.000000,1.000000 4.000000,45.000000,609.968506,102.523933,60.945129,40.209862,1.000000,2.000000,1.000000 4.000000,46.000000,634.201050,53.659763,57.964783,41.177616,1.000000,2.000000,1.000000 4.000000,47.000000,376.374969,15.349161,53.028442,32.206482,1.000000,2.000000,1.000000 4.000000,48.000000,198.764389,142.457703,51.009674,26.204498,1.000000,2.000000,1.000000 4.000000,49.000000,196.874252,118.443550,61.023849,31.264473,1.000000,2.000000,1.000000 4.000000,50.000000,208.023514,93.499084,49.004837,22.200539,1.000000,2.000000,1.000000 4.000000,51.000000,209.122681,69.519936,60.015472,29.237762,1.000000,2.000000,1.000000 4.000000,52.000000,223.356979,23.574625,55.015366,28.230104,1.000000,2.000000,1.000000 4.000000,53.000000,231.481033,0.000000,55.020340,26.845104,1.000000,2.000000,1.000000 4.000000,54.000000,384.494049,0.000000,56.030762,24.611839,1.000000,2.000000,1.000000 4.000000,55.000000,372.251617,40.323948,51.034607,32.199284,1.000000,2.000000,1.000000 4.000000,56.000000,666.461975,3.805288,48.964966,37.158730,1.000000,2.000000,1.000000 4.000000,57.000000,361.041504,85.261086,52.014069,31.211464,1.000000,2.000000,1.000000 4.000000,58.000000,256.549622,187.742081,69.972809,29.315521,1.000000,2.000000,1.000000 4.000000,59.000000,178.655182,168.348053,36.019257,16.151443,1.000000,2.000000,1.000000 4.000000,60.000000,211.609329,174.517136,47.998367,26.199524,1.000000,2.000000,1.000000 4.000000,61.000000,326.477539,204.086975,35.009857,20.142059,1.000000,2.000000,1.000000 4.000000,62.000000,360.423157,213.250336,36.024231,20.165085,1.000000,2.000000,1.000000 4.000000,63.000000,394.468475,204.431061,53.018494,23.228134,1.000000,2.000000,1.000000 4.000000,64.000000,402.572632,182.470581,42.024780,23.163315,1.000000,2.000000,1.000000 4.000000,65.000000,408.672943,163.500412,46.023438,23.193237,1.000000,2.000000,1.000000 4.000000,66.000000,412.766327,142.519424,47.024933,24.196716,1.000000,2.000000,1.000000 4.000000,67.000000,422.857391,123.570213,39.028442,23.155388,1.000000,2.000000,1.000000 4.000000,68.000000,424.980865,101.586456,37.024658,22.138344,1.000000,2.000000,1.000000 4.000000,69.000000,431.076172,80.615616,46.013519,26.179787,1.000000,2.000000,1.000000 4.000000,70.000000,442.314178,34.663200,55.005402,27.232101,1.000000,2.000000,1.000000 4.000000,71.000000,445.410248,8.693073,56.032654,32.224297,1.000000,2.000000,1.000000 4.000000,72.000000,319.599304,177.056564,70.992126,29.313492,1.000000,2.000000,1.000000 4.000000,73.000000,327.708374,154.102692,66.994507,31.289398,1.000000,2.000000,1.000000 4.000000,74.000000,327.823059,128.113617,73.999481,35.302032,1.000000,2.000000,1.000000 4.000000,75.000000,837.944641,308.626465,46.073303,16.226227,1.000000,2.000000,1.000000 4.000000,76.000000,986.119141,470.368958,36.880859,19.875244,1.000000,2.000000,1.000000 4.000000,77.000000,993.528015,407.400085,29.471985,17.843567,1.000000,2.000000,1.000000 4.000000,78.000000,999.390808,222.431366,23.609192,12.112839,1.000000,2.000000,1.000000 4.000000,79.000000,991.099304,493.387634,31.900696,14.160400,1.000000,2.000000,1.000000 4.000000,80.000000,993.993896,514.403564,29.006104,14.004944,1.000000,2.000000,1.000000 4.000000,81.000000,998.900269,533.428589,24.099731,15.664001,1.000000,2.000000,1.000000 4.000000,82.000000,988.729492,553.383179,34.270508,14.879028,1.000000,2.000000,1.000000 4.000000,83.000000,965.435486,606.261963,57.564514,19.999512,1.000000,2.000000,1.000000 4.000000,84.000000,981.624756,572.343384,41.375244,17.001282,1.000000,2.000000,1.000000 4.000000,85.000000,757.483948,15.298059,143.959961,604.580017,1.000000,8.000000,1.000000 4.000000,86.000000,572.701599,333.649139,192.886475,290.325409,1.000000,8.000000,1.000000 4.000000,87.000000,559.688965,0.000000,185.094666,215.557266,1.000000,8.000000,1.000000 4.000000,88.000000,333.597198,0.000000,171.876343,224.702774,1.000000,8.000000,1.000000 4.000000,89.000000,182.784531,0.000000,107.798660,172.678909,1.000000,8.000000,1.000000 4.000000,90.000000,595.751221,336.630493,56.024780,42.829742,1.000000,2.000000,1.000000 4.000000,91.000000,604.658386,367.610748,34.012329,23.879517,1.000000,2.000000,1.000000 4.000000,92.000000,607.571838,383.638428,38.009094,25.865417,1.000000,2.000000,1.000000 4.000000,93.000000,617.501221,400.685608,36.994751,22.864105,1.000000,2.000000,1.000000 4.000000,94.000000,625.418945,412.719574,37.013611,28.878601,1.000000,2.000000,1.000000 4.000000,95.000000,636.347778,431.754578,32.995056,22.894012,1.000000,2.000000,1.000000 4.000000,96.000000,641.268066,443.803528,37.004761,27.874207,1.000000,2.000000,1.000000 4.000000,97.000000,656.113953,475.857971,34.994873,27.894196,1.000000,2.000000,1.000000 4.000000,98.000000,666.042358,491.911591,34.984924,25.890350,1.000000,2.000000,1.000000 4.000000,99.000000,671.963074,507.948334,34.994934,24.879974,1.000000,2.000000,1.000000 4.000000,100.000000,679.877747,523.995972,36.999695,24.874939,1.000000,2.000000,1.000000 4.000000,101.000000,689.797180,542.015564,31.006165,21.901672,1.000000,2.000000,1.000000 4.000000,102.000000,693.718140,554.062622,38.004089,28.884583,1.000000,2.000000,1.000000 4.000000,103.000000,701.623779,571.111694,40.024902,28.863647,1.000000,2.000000,1.000000 4.000000,104.000000,652.903198,527.753357,25.870361,36.024231,1.000000,2.000000,1.000000 4.000000,105.000000,627.118530,482.634552,26.873779,37.018646,1.000000,2.000000,1.000000 4.000000,106.000000,604.364136,434.513428,26.882751,32.029541,1.000000,2.000000,1.000000 4.000000,107.000000,565.666687,374.321503,21.910645,26.015015,1.000000,2.000000,1.000000 4.000000,108.000000,177.919052,102.355011,18.104370,28.033783,1.000000,2.000000,1.000000 4.000000,109.000000,186.059097,74.399574,18.109329,27.015869,1.000000,2.000000,1.000000 4.000000,110.000000,190.193420,41.439320,21.129562,34.010654,1.000000,2.000000,1.000000 5.000000,1.000000,833.116089,515.099182,60.003540,20.000549,1.000000,2.000000,1.000000 5.000000,2.000000,836.663086,443.106598,54.998352,19.005096,1.000000,2.000000,1.000000 5.000000,3.000000,831.532288,417.405731,58.014587,20.713684,1.000000,2.000000,1.000000 5.000000,4.000000,834.501587,392.386200,55.915039,19.005066,1.000000,2.000000,1.000000 5.000000,5.000000,833.392517,369.390381,59.913635,20.710693,1.000000,2.000000,1.000000 5.000000,6.000000,839.068909,324.365295,55.102051,20.726685,1.000000,2.000000,1.000000 5.000000,7.000000,837.943787,281.365997,53.924194,19.741211,1.000000,2.000000,1.000000 5.000000,8.000000,840.758606,262.356964,53.003479,15.741547,1.000000,2.000000,1.000000 5.000000,9.000000,841.638306,238.352814,53.021545,17.740356,1.000000,2.000000,1.000000 5.000000,10.000000,841.528625,216.354492,54.015930,19.733139,1.000000,2.000000,1.000000 5.000000,11.000000,841.508667,195.348557,57.010254,18.720825,1.000000,2.000000,1.000000 5.000000,12.000000,836.316040,173.377075,59.009094,16.001846,1.000000,2.000000,1.000000 5.000000,13.000000,839.215637,153.364670,48.085205,16.759857,1.000000,2.000000,1.000000 5.000000,14.000000,840.195129,131.354340,60.916138,18.004623,1.000000,2.000000,1.000000 5.000000,15.000000,838.001770,110.368332,57.004211,17.002274,1.000000,2.000000,1.000000 5.000000,16.000000,844.897034,89.335640,56.084595,16.999115,1.000000,2.000000,1.000000 5.000000,17.000000,840.770630,64.356071,63.015747,23.694901,1.000000,2.000000,1.000000 5.000000,18.000000,841.676270,45.351311,55.005432,19.728172,1.000000,2.000000,1.000000 5.000000,19.000000,840.665894,25.350996,55.926025,18.730597,1.000000,2.000000,1.000000 5.000000,20.000000,557.093079,86.655365,41.831299,51.014542,1.000000,2.000000,1.000000 5.000000,21.000000,569.368469,169.659531,62.075195,44.790710,1.000000,2.000000,1.000000 5.000000,22.000000,579.262939,147.601379,64.069031,46.793488,1.000000,2.000000,1.000000 5.000000,23.000000,837.866882,466.369659,55.003418,18.730804,1.000000,2.000000,1.000000 5.000000,24.000000,837.231567,540.373047,59.918640,19.711365,1.000000,2.000000,1.000000 5.000000,25.000000,617.889526,71.413086,63.052612,42.789322,1.000000,2.000000,1.000000 5.000000,26.000000,834.344971,563.389893,59.004028,17.709351,1.000000,2.000000,1.000000 5.000000,27.000000,781.906982,492.653961,38.069031,13.811493,1.000000,2.000000,1.000000 5.000000,28.000000,781.797302,470.439148,43.089050,18.213043,1.000000,2.000000,1.000000 5.000000,29.000000,771.439087,398.705902,55.117981,23.724915,1.000000,2.000000,1.000000 5.000000,30.000000,772.338684,378.700378,53.004517,18.740784,1.000000,2.000000,1.000000 5.000000,31.000000,768.203369,351.719849,61.120605,23.694977,1.000000,2.000000,1.000000 5.000000,32.000000,770.188232,328.706116,59.011108,21.709076,1.000000,2.000000,1.000000 5.000000,33.000000,766.969604,304.726868,61.107544,21.694153,1.000000,2.000000,1.000000 5.000000,34.000000,770.945374,283.701019,50.934875,17.755280,1.000000,2.000000,1.000000 5.000000,35.000000,768.739014,258.716339,59.009033,22.714508,1.000000,2.000000,1.000000 5.000000,36.000000,757.625671,235.773438,70.102417,20.648834,1.000000,2.000000,1.000000 5.000000,37.000000,769.515015,213.712219,57.108948,21.717148,1.000000,2.000000,1.000000 5.000000,38.000000,772.411621,192.696304,54.087646,18.002716,1.000000,2.000000,1.000000 5.000000,39.000000,767.385559,166.716187,62.919983,23.698074,1.000000,2.000000,1.000000 5.000000,40.000000,780.196594,149.658157,50.004211,17.754288,1.000000,2.000000,1.000000 5.000000,41.000000,798.927368,95.564873,35.002869,10.829727,1.000000,2.000000,1.000000 5.000000,42.000000,788.990906,108.614883,44.084473,16.779793,1.000000,2.000000,1.000000 5.000000,43.000000,776.101135,129.393356,58.083374,17.994659,1.000000,2.000000,1.000000 5.000000,44.000000,830.535767,598.407654,71.916748,23.650146,1.000000,2.000000,1.000000 5.000000,45.000000,606.029114,101.486717,61.054810,39.790977,1.000000,2.000000,1.000000 5.000000,46.000000,629.792908,52.353260,58.034546,40.818584,1.000000,2.000000,1.000000 5.000000,47.000000,371.627686,16.665630,52.968597,31.787601,1.000000,2.000000,1.000000 5.000000,48.000000,195.243835,145.549408,50.989716,25.795609,1.000000,2.000000,1.000000 5.000000,49.000000,193.134262,121.565178,60.973999,30.735893,1.000000,2.000000,1.000000 5.000000,50.000000,203.984344,96.511009,48.994858,21.801613,1.000000,2.000000,1.000000 5.000000,51.000000,204.884033,72.491974,59.985565,28.759033,1.000000,2.000000,1.000000 5.000000,52.000000,218.649612,26.436949,54.985428,27.771345,1.000000,2.000000,1.000000 5.000000,53.000000,226.524323,0.000000,54.980438,29.168877,1.000000,2.000000,1.000000 5.000000,54.000000,379.507416,0.000000,55.970917,25.399733,1.000000,2.000000,1.000000 5.000000,55.000000,367.753662,41.690296,50.964813,31.800335,1.000000,2.000000,1.000000 5.000000,56.000000,661.535217,2.209565,49.034790,36.839592,1.000000,2.000000,1.000000 5.000000,57.000000,356.962433,86.747093,51.984131,30.792603,1.000000,2.000000,1.000000 5.000000,58.000000,253.457916,190.265320,70.022644,28.687195,1.000000,2.000000,1.000000 5.000000,59.000000,175.354034,171.659180,35.979355,15.852249,1.000000,2.000000,1.000000 5.000000,60.000000,208.397934,177.489182,47.998367,25.800583,1.000000,2.000000,1.000000 5.000000,61.000000,323.525452,205.922058,34.989899,19.852829,1.000000,2.000000,1.000000 5.000000,62.000000,357.580780,214.756317,35.974365,19.835938,1.000000,2.000000,1.000000 5.000000,63.000000,391.536377,205.577988,52.978546,22.769363,1.000000,2.000000,1.000000 5.000000,64.000000,399.431061,183.537720,41.974915,22.834198,1.000000,2.000000,1.000000 5.000000,65.000000,405.331879,164.507721,45.973572,22.804260,1.000000,2.000000,1.000000 5.000000,66.000000,409.235809,143.486816,46.975067,23.807785,1.000000,2.000000,1.000000 5.000000,67.000000,419.147339,124.437889,38.968597,22.846230,1.000000,2.000000,1.000000 5.000000,68.000000,421.021484,102.424194,36.974792,21.859116,1.000000,2.000000,1.000000 5.000000,69.000000,426.927307,81.393547,45.983551,25.820740,1.000000,2.000000,1.000000 5.000000,70.000000,437.686584,35.351349,54.995422,26.763363,1.000000,2.000000,1.000000 5.000000,71.000000,440.593140,9.321395,55.962860,31.775482,1.000000,2.000000,1.000000 5.000000,72.000000,316.407867,178.951492,71.002106,28.685150,1.000000,2.000000,1.000000 5.000000,73.000000,324.297516,155.907852,67.004456,30.710968,1.000000,2.000000,1.000000 5.000000,74.000000,324.182831,129.898834,73.999481,34.693649,1.000000,2.000000,1.000000 5.000000,75.000000,836.049744,305.150757,46.003479,16.001862,1.000000,2.000000,1.000000 5.000000,76.000000,985.869812,465.631653,37.130188,19.520721,1.000000,2.000000,1.000000 5.000000,77.000000,992.460876,402.602936,30.539124,17.566040,1.000000,2.000000,1.000000 5.000000,78.000000,996.598328,217.447403,26.401672,12.132050,1.000000,2.000000,1.000000 5.000000,79.000000,990.889893,488.610443,32.110107,13.996002,1.000000,2.000000,1.000000 5.000000,80.000000,993.993896,509.596436,29.006104,13.994995,1.000000,2.000000,1.000000 5.000000,81.000000,999.089783,528.571594,23.910217,15.401672,1.000000,2.000000,1.000000 5.000000,82.000000,989.258057,548.615967,33.741943,14.538696,1.000000,2.000000,1.000000 5.000000,83.000000,966.452759,601.452148,56.547241,20.281494,1.000000,2.000000,1.000000 5.000000,84.000000,982.283020,567.655945,40.716980,16.578003,1.000000,2.000000,1.000000 5.000000,85.000000,758.511169,12.714990,138.035889,603.403137,1.000000,8.000000,1.000000 5.000000,86.000000,571.295349,332.352631,195.110535,289.667145,1.000000,8.000000,1.000000 5.000000,87.000000,556.308044,0.000000,182.106140,214.450241,1.000000,8.000000,1.000000 5.000000,88.000000,330.405762,0.000000,170.121033,225.301163,1.000000,8.000000,1.000000 5.000000,89.000000,179.224091,0.000000,106.795105,175.331787,1.000000,8.000000,1.000000 5.000000,90.000000,594.245239,335.373871,55.974915,43.168823,1.000000,2.000000,1.000000 5.000000,91.000000,603.341919,366.394012,33.982422,24.118866,1.000000,2.000000,1.000000 5.000000,92.000000,606.424927,382.361847,37.989136,26.134674,1.000000,2.000000,1.000000 5.000000,93.000000,616.493958,399.319244,37.004700,23.133392,1.000000,2.000000,1.000000 5.000000,94.000000,624.581177,411.283417,36.983765,29.117981,1.000000,2.000000,1.000000 5.000000,95.000000,635.649658,430.248596,33.005066,23.103455,1.000000,2.000000,1.000000 5.000000,96.000000,640.729553,442.197815,36.994751,28.123566,1.000000,2.000000,1.000000 5.000000,97.000000,655.884583,474.142578,35.004822,28.103607,1.000000,2.000000,1.000000 5.000000,98.000000,665.952576,490.086487,35.014832,26.109741,1.000000,2.000000,1.000000 5.000000,99.000000,672.032898,506.053436,35.004883,25.119354,1.000000,2.000000,1.000000 5.000000,100.000000,680.117126,522.001343,36.999695,25.124268,1.000000,2.000000,1.000000 5.000000,101.000000,690.196106,539.981018,30.996216,22.101135,1.000000,2.000000,1.000000 5.000000,102.000000,694.276611,551.938293,37.994141,29.114014,1.000000,2.000000,1.000000 5.000000,103.000000,702.371765,568.887634,39.975037,29.132935,1.000000,2.000000,1.000000 5.000000,104.000000,653.092712,526.247375,26.129700,35.974365,1.000000,2.000000,1.000000 5.000000,105.000000,626.879211,481.367950,27.123108,36.978790,1.000000,2.000000,1.000000 5.000000,106.000000,603.636108,433.486176,27.112122,31.969696,1.000000,2.000000,1.000000 5.000000,107.000000,564.330261,373.683197,22.090149,25.985138,1.000000,2.000000,1.000000 5.000000,108.000000,174.089310,105.656158,17.894928,27.963974,1.000000,2.000000,1.000000 5.000000,109.000000,181.950104,77.610962,17.889938,26.985947,1.000000,2.000000,1.000000 5.000000,110.000000,185.815155,44.570930,20.870270,33.990700,1.000000,2.000000,1.000000 6.000000,1.000000,833.323547,511.299042,60.007507,19.998566,1.000000,2.000000,1.000000 6.000000,2.000000,835.962585,439.323608,54.992859,19.013184,1.000000,2.000000,1.000000 6.000000,3.000000,830.572998,414.223694,58.038696,20.143127,1.000000,2.000000,1.000000 6.000000,4.000000,833.482178,389.166779,55.739929,19.013123,1.000000,2.000000,1.000000 6.000000,5.000000,832.153748,366.183197,59.738220,20.130188,1.000000,2.000000,1.000000 6.000000,6.000000,837.181335,321.112701,55.306030,20.176147,1.000000,2.000000,1.000000 6.000000,7.000000,835.807007,278.117706,53.769226,19.220642,1.000000,2.000000,1.000000 6.000000,8.000000,838.252502,259.090637,53.008179,15.221375,1.000000,2.000000,1.000000 6.000000,9.000000,838.892761,235.078888,53.056152,17.219986,1.000000,2.000000,1.000000 6.000000,10.000000,838.563721,213.082764,54.040405,19.202576,1.000000,2.000000,1.000000 6.000000,11.000000,838.503845,192.068939,57.024536,18.160461,1.000000,2.000000,1.000000 6.000000,12.000000,832.922791,170.159470,59.023132,16.000259,1.000000,2.000000,1.000000 6.000000,13.000000,835.622620,150.119141,48.250000,16.279449,1.000000,2.000000,1.000000 6.000000,14.000000,836.562134,128.091064,60.740540,18.012802,1.000000,2.000000,1.000000 6.000000,15.000000,833.979980,107.137047,57.008545,17.000580,1.000000,2.000000,1.000000 6.000000,16.000000,840.665161,86.036629,56.248596,16.997429,1.000000,2.000000,1.000000 6.000000,17.000000,836.289856,61.099461,63.039368,23.084156,1.000000,2.000000,1.000000 6.000000,18.000000,837.005920,42.086609,55.009888,19.187645,1.000000,2.000000,1.000000 6.000000,19.000000,835.975708,22.088284,55.770874,18.190174,1.000000,2.000000,1.000000 6.000000,20.000000,553.278748,85.999535,41.488098,51.039406,1.000000,2.000000,1.000000 6.000000,21.000000,566.101501,169.005447,62.218567,44.367355,1.000000,2.000000,1.000000 6.000000,22.000000,575.785522,146.829788,64.202271,46.379929,1.000000,2.000000,1.000000 6.000000,23.000000,837.575195,463.112946,55.007874,18.190369,1.000000,2.000000,1.000000 6.000000,24.000000,837.667969,537.118958,59.753113,19.130920,1.000000,2.000000,1.000000 6.000000,25.000000,613.660339,70.270103,63.156006,42.366180,1.000000,2.000000,1.000000 6.000000,26.000000,835.010986,560.163391,59.008179,17.129211,1.000000,2.000000,1.000000 6.000000,27.000000,781.700623,489.963104,38.204834,13.431122,1.000000,2.000000,1.000000 6.000000,28.000000,781.371521,467.321655,43.264282,18.640076,1.000000,2.000000,1.000000 6.000000,29.000000,770.296265,396.124115,55.351868,23.174042,1.000000,2.000000,1.000000 6.000000,30.000000,770.996338,376.110596,53.009216,18.220337,1.000000,2.000000,1.000000 6.000000,31.000000,766.592163,349.172638,61.353882,23.084259,1.000000,2.000000,1.000000 6.000000,32.000000,768.546875,326.131317,59.025208,21.128448,1.000000,2.000000,1.000000 6.000000,33.000000,764.889709,302.194336,61.320923,21.083618,1.000000,2.000000,1.000000 6.000000,34.000000,768.815247,281.120697,50.800110,17.264832,1.000000,2.000000,1.000000 6.000000,35.000000,766.200195,256.168457,59.023132,22.143738,1.000000,2.000000,1.000000 6.000000,36.000000,754.858582,233.337524,70.304932,19.948669,1.000000,2.000000,1.000000 6.000000,37.000000,766.527344,211.158813,57.322693,21.146515,1.000000,2.000000,1.000000 6.000000,38.000000,769.214172,190.115067,54.261902,18.000916,1.000000,2.000000,1.000000 6.000000,39.000000,764.138794,164.177444,62.754150,23.087326,1.000000,2.000000,1.000000 6.000000,40.000000,776.569580,147.001419,50.009216,17.263824,1.000000,2.000000,1.000000 6.000000,41.000000,794.759949,92.724014,35.009338,10.489571,1.000000,2.000000,1.000000 6.000000,42.000000,784.954163,105.872475,44.249573,16.339302,1.000000,2.000000,1.000000 6.000000,43.000000,772.285034,126.210052,58.247131,17.982895,1.000000,2.000000,1.000000 6.000000,44.000000,831.581177,595.217590,71.750061,22.949646,1.000000,2.000000,1.000000 6.000000,45.000000,602.080322,100.490334,61.158447,39.368141,1.000000,2.000000,1.000000 6.000000,46.000000,625.372986,51.092480,58.098572,40.455486,1.000000,2.000000,1.000000 6.000000,47.000000,366.894348,18.031368,52.903503,31.365559,1.000000,2.000000,1.000000 6.000000,48.000000,191.754791,148.677567,50.964676,25.384155,1.000000,2.000000,1.000000 6.000000,49.000000,189.425995,124.725647,60.918076,30.204269,1.000000,2.000000,1.000000 6.000000,50.000000,199.975800,99.564270,48.980011,21.400520,1.000000,2.000000,1.000000 6.000000,51.000000,200.675919,75.507729,59.949692,28.277443,1.000000,2.000000,1.000000 6.000000,52.000000,213.971405,29.347569,54.950043,27.309822,1.000000,2.000000,1.000000 6.000000,53.000000,221.596008,1.217553,54.935059,30.323120,1.000000,2.000000,1.000000 6.000000,54.000000,374.533966,0.000000,55.905487,26.236027,1.000000,2.000000,1.000000 6.000000,55.000000,363.270050,43.103424,50.889954,31.398224,1.000000,2.000000,1.000000 6.000000,56.000000,656.593506,0.664549,49.099731,36.516792,1.000000,2.000000,1.000000 6.000000,57.000000,352.898804,88.275406,51.949036,30.370674,1.000000,2.000000,1.000000 6.000000,58.000000,250.391907,192.820557,70.065582,28.056030,1.000000,2.000000,1.000000 6.000000,59.000000,172.086349,175.004150,35.935898,15.551468,1.000000,2.000000,1.000000 6.000000,60.000000,205.216751,180.494492,47.993591,25.399078,1.000000,2.000000,1.000000 6.000000,61.000000,320.592133,207.787582,34.966461,19.561630,1.000000,2.000000,1.000000 6.000000,62.000000,354.753754,216.291855,35.920929,19.504837,1.000000,2.000000,1.000000 6.000000,63.000000,388.616211,206.755386,52.933380,22.308319,1.000000,2.000000,1.000000 6.000000,64.000000,396.300659,184.637543,41.920898,22.502777,1.000000,2.000000,1.000000 6.000000,65.000000,402.001434,165.549591,45.919159,22.413025,1.000000,2.000000,1.000000 6.000000,66.000000,405.715485,144.490875,46.920532,23.416458,1.000000,2.000000,1.000000 6.000000,67.000000,415.446503,125.344116,38.904907,22.534775,1.000000,2.000000,1.000000 6.000000,68.000000,417.071136,103.302681,36.921265,21.577698,1.000000,2.000000,1.000000 6.000000,69.000000,422.786896,82.214302,45.949066,25.459129,1.000000,2.000000,1.000000 6.000000,70.000000,433.066345,36.086906,54.980042,26.291962,1.000000,2.000000,1.000000 6.000000,71.000000,435.783142,9.999717,55.887512,31.323505,1.000000,2.000000,1.000000 6.000000,72.000000,313.235870,180.879547,71.005035,28.053970,1.000000,2.000000,1.000000 6.000000,73.000000,320.905334,157.748444,67.007751,30.129456,1.000000,2.000000,1.000000 6.000000,74.000000,320.561279,131.722046,73.992126,34.081833,1.000000,2.000000,1.000000 6.000000,75.000000,834.122559,301.471252,46.008911,16.000244,1.000000,2.000000,1.000000 6.000000,76.000000,985.573364,460.898956,37.426636,19.159607,1.000000,2.000000,1.000000 6.000000,77.000000,991.345947,397.816681,31.654053,17.269470,1.000000,2.000000,1.000000 6.000000,78.000000,993.757568,212.321442,29.242432,12.439087,1.000000,2.000000,1.000000 6.000000,79.000000,990.632812,483.835571,32.367188,13.984619,1.000000,2.000000,1.000000 6.000000,80.000000,993.945923,504.789581,29.054077,13.983612,1.000000,2.000000,1.000000 6.000000,81.000000,999.230835,523.712952,23.769165,15.147339,1.000000,2.000000,1.000000 6.000000,82.000000,989.739197,543.845093,33.260803,14.207947,1.000000,2.000000,1.000000 6.000000,83.000000,967.325073,596.364380,55.674927,20.830505,1.000000,2.000000,1.000000 6.000000,84.000000,982.814697,562.962952,40.185303,16.168152,1.000000,2.000000,1.000000 6.000000,85.000000,759.513916,10.181582,132.098022,602.166260,1.000000,8.000000,1.000000 6.000000,86.000000,569.883179,331.073975,197.315186,288.980103,1.000000,8.000000,1.000000 6.000000,87.000000,552.922729,0.000000,179.185669,213.372803,1.000000,8.000000,1.000000 6.000000,88.000000,327.232391,0.000000,168.348816,225.928070,1.000000,8.000000,1.000000 6.000000,89.000000,175.696747,0.000000,105.745575,178.018158,1.000000,8.000000,1.000000 6.000000,90.000000,592.731079,334.134827,55.919556,43.503601,1.000000,2.000000,1.000000 6.000000,91.000000,602.016357,365.191742,33.949097,24.355865,1.000000,2.000000,1.000000 6.000000,92.000000,605.268616,381.098145,37.965393,26.401367,1.000000,2.000000,1.000000 6.000000,93.000000,615.476257,397.964111,37.010986,23.400360,1.000000,2.000000,1.000000 6.000000,94.000000,623.732239,409.857269,36.950134,29.354462,1.000000,2.000000,1.000000 6.000000,95.000000,634.939209,428.750763,33.011780,23.310608,1.000000,2.000000,1.000000 6.000000,96.000000,640.178223,440.599091,36.981079,28.370056,1.000000,2.000000,1.000000 6.000000,97.000000,655.640869,472.430908,35.011292,28.310272,1.000000,2.000000,1.000000 6.000000,98.000000,665.847534,488.263550,35.041260,26.326599,1.000000,2.000000,1.000000 6.000000,99.000000,672.086792,504.159088,35.011353,25.356171,1.000000,2.000000,1.000000 6.000000,100.000000,680.339722,520.005676,36.996033,25.371094,1.000000,2.000000,1.000000 6.000000,101.000000,690.577332,537.943665,30.983154,22.298401,1.000000,2.000000,1.000000 6.000000,102.000000,694.817017,549.810059,37.980347,29.340454,1.000000,2.000000,1.000000 6.000000,103.000000,703.100830,566.657898,39.921204,29.399353,1.000000,2.000000,1.000000 6.000000,104.000000,653.268127,524.739990,26.386414,35.920959,1.000000,2.000000,1.000000 6.000000,105.000000,626.628418,480.104401,27.369751,36.935211,1.000000,2.000000,1.000000 6.000000,106.000000,602.898987,432.466736,27.338745,31.906677,1.000000,2.000000,1.000000 6.000000,107.000000,562.988647,373.058685,22.267456,25.952606,1.000000,2.000000,1.000000 6.000000,108.000000,170.293182,108.997726,17.683716,27.891373,1.000000,2.000000,1.000000 6.000000,109.000000,177.873932,80.865562,17.668762,26.953339,1.000000,2.000000,1.000000 6.000000,110.000000,181.469360,47.749035,20.608887,33.967365,1.000000,2.000000,1.000000 7.000000,1.000000,833.498962,507.498993,60.005554,20.490326,1.000000,2.000000,1.000000 7.000000,2.000000,835.229858,435.547852,54.981934,19.019379,1.000000,2.000000,1.000000 7.000000,3.000000,829.581970,411.051392,58.057129,19.570557,1.000000,2.000000,1.000000 7.000000,4.000000,832.430725,385.959564,55.559326,19.019318,1.000000,2.000000,1.000000 7.000000,5.000000,830.883179,362.990540,59.556763,20.019440,1.000000,2.000000,1.000000 7.000000,6.000000,835.261414,317.508148,55.504517,19.994537,1.000000,2.000000,1.000000 7.000000,7.000000,833.638000,274.892670,53.608948,18.698151,1.000000,2.000000,1.000000 7.000000,8.000000,835.713989,255.528290,53.007629,15.020844,1.000000,2.000000,1.000000 7.000000,9.000000,836.114746,231.832520,53.085449,16.697891,1.000000,2.000000,1.000000 7.000000,10.000000,835.566284,209.840759,54.059631,18.670090,1.000000,2.000000,1.000000 7.000000,11.000000,835.466553,188.821136,57.033142,17.598282,1.000000,2.000000,1.000000 7.000000,12.000000,829.497620,166.975861,59.031372,15.997070,1.000000,2.000000,1.000000 7.000000,13.000000,831.997437,146.710999,48.409912,16.192596,1.000000,2.000000,1.000000 7.000000,14.000000,832.896851,124.370201,60.558960,18.514946,1.000000,2.000000,1.000000 7.000000,15.000000,829.926208,103.525116,57.007202,17.418114,1.000000,2.000000,1.000000 7.000000,16.000000,836.400635,82.383995,56.406921,17.390038,1.000000,2.000000,1.000000 7.000000,17.000000,831.776855,57.887695,63.056763,22.471115,1.000000,2.000000,1.000000 7.000000,18.000000,832.303284,38.494701,55.008850,19.368053,1.000000,2.000000,1.000000 7.000000,19.000000,831.253296,18.874302,55.610107,18.018909,1.000000,2.000000,1.000000 7.000000,20.000000,549.460388,85.386078,41.140747,51.059189,1.000000,2.000000,1.000000 7.000000,21.000000,562.829163,168.385468,62.355774,43.939606,1.000000,2.000000,1.000000 7.000000,22.000000,572.301819,146.094528,64.329163,45.961746,1.000000,2.000000,1.000000 7.000000,23.000000,837.251099,459.861084,55.006897,18.019165,1.000000,2.000000,1.000000 7.000000,24.000000,838.071960,533.391602,59.581665,19.019348,1.000000,2.000000,1.000000 7.000000,25.000000,609.421021,69.171051,63.253174,41.938835,1.000000,2.000000,1.000000 7.000000,26.000000,835.644958,556.483215,59.006409,17.467957,1.000000,2.000000,1.000000 7.000000,27.000000,781.467468,487.274414,38.336853,13.049469,1.000000,2.000000,1.000000 7.000000,28.000000,780.918945,464.208618,43.435181,19.065247,1.000000,2.000000,1.000000 7.000000,29.000000,769.127747,393.553864,55.580261,22.620850,1.000000,2.000000,1.000000 7.000000,30.000000,769.628235,373.213165,53.008606,18.290527,1.000000,2.000000,1.000000 7.000000,31.000000,764.955566,346.641663,61.581055,22.994965,1.000000,2.000000,1.000000 7.000000,32.000000,766.880005,323.574951,59.033386,20.545746,1.000000,2.000000,1.000000 7.000000,33.000000,762.784729,299.682648,61.528137,20.991638,1.000000,2.000000,1.000000 7.000000,34.000000,766.659546,278.563324,50.660400,16.772705,1.000000,2.000000,1.000000 7.000000,35.000000,763.636108,253.645996,59.031372,21.570801,1.000000,2.000000,1.000000 7.000000,36.000000,752.067383,230.929321,70.500366,19.246506,1.000000,2.000000,1.000000 7.000000,37.000000,763.514343,208.635345,57.530762,20.993668,1.000000,2.000000,1.000000 7.000000,38.000000,765.991211,187.565842,54.430603,17.997330,1.000000,2.000000,1.000000 7.000000,39.000000,760.866943,161.673294,62.582092,22.474289,1.000000,2.000000,1.000000 7.000000,40.000000,772.916199,144.133560,50.009277,17.240524,1.000000,2.000000,1.000000 7.000000,41.000000,790.564392,89.924866,35.012329,10.148369,1.000000,2.000000,1.000000 7.000000,42.000000,780.890198,103.170464,44.410400,15.897179,1.000000,2.000000,1.000000 7.000000,43.000000,768.443054,123.065125,58.405090,18.417221,1.000000,2.000000,1.000000 7.000000,44.000000,832.594849,592.019226,71.576111,22.246887,1.000000,2.000000,1.000000 7.000000,45.000000,598.122559,99.534882,61.255981,38.941391,1.000000,2.000000,1.000000 7.000000,46.000000,620.941833,49.877541,58.156860,40.088364,1.000000,2.000000,1.000000 7.000000,47.000000,362.175476,19.446239,52.833099,30.940395,1.000000,2.000000,1.000000 7.000000,48.000000,188.297592,151.841858,50.934586,24.970169,1.000000,2.000000,1.000000 7.000000,49.000000,185.749817,127.924637,60.856079,29.669632,1.000000,2.000000,1.000000 7.000000,50.000000,195.998291,102.658546,48.960297,20.997299,1.000000,2.000000,1.000000 7.000000,51.000000,196.498795,78.566902,59.907852,27.793045,1.000000,2.000000,1.000000 7.000000,52.000000,209.322861,32.306198,54.909164,26.845581,1.000000,2.000000,1.000000 7.000000,53.000000,216.696594,4.092010,54.884216,29.868248,1.000000,2.000000,1.000000 7.000000,54.000000,369.574158,0.000000,55.834534,27.120638,1.000000,2.000000,1.000000 7.000000,55.000000,358.801239,44.563190,50.810028,30.992992,1.000000,2.000000,1.000000 7.000000,56.000000,651.637451,0.000000,49.159790,35.360756,1.000000,2.000000,1.000000 7.000000,57.000000,348.850983,89.845856,51.908752,29.945732,1.000000,2.000000,1.000000 7.000000,58.000000,247.351929,195.407562,70.101501,27.422058,1.000000,2.000000,1.000000 7.000000,59.000000,168.852493,178.382660,35.888840,15.249146,1.000000,2.000000,1.000000 7.000000,60.000000,202.066071,183.532776,47.984039,24.995056,1.000000,2.000000,1.000000 7.000000,61.000000,317.677826,209.683365,34.939545,19.268494,1.000000,2.000000,1.000000 7.000000,62.000000,351.942352,217.856812,35.863922,19.171783,1.000000,2.000000,1.000000 7.000000,63.000000,385.708344,207.963165,52.882935,21.845047,1.000000,2.000000,1.000000 7.000000,64.000000,393.181793,185.769928,41.862671,22.169144,1.000000,2.000000,1.000000 7.000000,65.000000,398.681946,166.625916,45.860138,22.019562,1.000000,2.000000,1.000000 7.000000,66.000000,402.205750,145.531494,46.861298,23.022812,1.000000,2.000000,1.000000 7.000000,67.000000,411.755280,126.288795,38.837341,22.221107,1.000000,2.000000,1.000000 7.000000,68.000000,413.130249,104.221809,36.864044,21.294151,1.000000,2.000000,1.000000 7.000000,69.000000,418.655334,83.077805,45.910004,25.094986,1.000000,2.000000,1.000000 7.000000,70.000000,428.453979,36.869801,54.959137,25.817947,1.000000,2.000000,1.000000 7.000000,71.000000,430.980713,10.727969,55.806610,30.868416,1.000000,2.000000,1.000000 7.000000,72.000000,310.083649,182.840530,71.000916,27.420013,1.000000,2.000000,1.000000 7.000000,73.000000,317.532135,159.624268,67.004425,29.544952,1.000000,2.000000,1.000000 7.000000,74.000000,316.958771,133.583084,73.977386,33.466629,1.000000,2.000000,1.000000 7.000000,75.000000,832.163391,297.812683,46.009705,16.143738,1.000000,2.000000,1.000000 7.000000,76.000000,985.229797,456.171356,37.770203,19.019318,1.000000,2.000000,1.000000 7.000000,77.000000,990.183350,393.041779,32.816650,16.969208,1.000000,2.000000,1.000000 7.000000,78.000000,990.868958,207.164917,32.131042,12.805267,1.000000,2.000000,1.000000 7.000000,79.000000,990.328064,479.026978,32.671936,14.008392,1.000000,2.000000,1.000000 7.000000,80.000000,993.850037,499.967773,29.149963,13.986511,1.000000,2.000000,1.000000 7.000000,81.000000,999.323425,518.853149,23.676575,14.899414,1.000000,2.000000,1.000000 7.000000,82.000000,990.172791,538.953552,32.827209,14.139282,1.000000,2.000000,1.000000 7.000000,83.000000,968.152100,591.284302,54.847900,21.361328,1.000000,2.000000,1.000000 7.000000,84.000000,983.299561,558.264893,39.700439,15.994080,1.000000,2.000000,1.000000 7.000000,85.000000,758.503296,7.698089,133.023132,601.138062,1.000000,8.000000,1.000000 7.000000,86.000000,568.465332,329.813293,199.500183,288.264282,1.000000,8.000000,1.000000 7.000000,87.000000,549.533325,0.000000,176.330688,212.325073,1.000000,8.000000,1.000000 7.000000,88.000000,324.077393,0.000000,166.559875,226.583420,1.000000,8.000000,1.000000 7.000000,89.000000,172.202850,0.000000,104.648865,180.737747,1.000000,8.000000,1.000000 7.000000,90.000000,591.208923,332.913452,55.858521,43.834045,1.000000,2.000000,1.000000 7.000000,91.000000,600.681824,364.004089,33.912415,24.590393,1.000000,2.000000,1.000000 7.000000,92.000000,604.103027,379.847473,37.937927,26.665436,1.000000,2.000000,1.000000 7.000000,93.000000,614.448242,396.620331,37.013672,23.665009,1.000000,2.000000,1.000000 7.000000,94.000000,622.872131,408.441284,36.912903,29.588043,1.000000,2.000000,1.000000 7.000000,95.000000,634.216553,427.261200,33.015137,23.515442,1.000000,2.000000,1.000000 7.000000,96.000000,639.614136,439.007446,36.963684,28.613770,1.000000,2.000000,1.000000 7.000000,97.000000,655.382874,470.723206,35.014343,28.514099,1.000000,2.000000,1.000000 7.000000,98.000000,665.727112,486.442993,35.064270,26.540771,1.000000,2.000000,1.000000 7.000000,99.000000,672.124756,502.265533,35.014404,25.590546,1.000000,2.000000,1.000000 7.000000,100.000000,680.545593,518.009216,36.988708,25.615479,1.000000,2.000000,1.000000 7.000000,101.000000,690.940735,535.903748,30.967041,22.493469,1.000000,2.000000,1.000000 7.000000,102.000000,695.339172,547.678040,37.962830,29.563965,1.000000,2.000000,1.000000 7.000000,103.000000,703.810852,564.422791,39.863403,29.662781,1.000000,2.000000,1.000000 7.000000,104.000000,653.429565,523.231323,26.640503,35.863953,1.000000,2.000000,1.000000 7.000000,105.000000,626.366211,478.844025,27.613708,36.887909,1.000000,2.000000,1.000000 7.000000,106.000000,602.152771,431.455231,27.562744,31.840485,1.000000,2.000000,1.000000 7.000000,107.000000,561.641968,372.447968,22.442566,25.917542,1.000000,2.000000,1.000000 7.000000,108.000000,166.531052,112.379379,17.470734,27.816010,1.000000,2.000000,1.000000 7.000000,109.000000,173.831009,84.163048,17.445831,26.918045,1.000000,2.000000,1.000000 7.000000,110.000000,177.156433,50.973316,20.345444,33.940647,1.000000,2.000000,1.000000 8.000000,1.000000,833.642456,503.699402,59.997620,21.082764,1.000000,2.000000,1.000000 8.000000,2.000000,834.465027,431.779694,54.965515,19.023682,1.000000,2.000000,1.000000 8.000000,3.000000,828.559448,407.889130,58.069702,18.996063,1.000000,2.000000,1.000000 8.000000,4.000000,831.347473,382.764893,55.373108,19.023590,1.000000,2.000000,1.000000 8.000000,5.000000,829.580872,359.812683,59.369385,20.023468,1.000000,2.000000,1.000000 8.000000,6.000000,833.309326,313.745300,55.697449,19.988586,1.000000,2.000000,1.000000 8.000000,7.000000,831.437012,271.691223,53.443298,18.173828,1.000000,2.000000,1.000000 8.000000,8.000000,833.143250,251.783951,53.001770,15.026321,1.000000,2.000000,1.000000 8.000000,9.000000,833.304504,228.613998,53.109497,16.174149,1.000000,2.000000,1.000000 8.000000,10.000000,832.536743,206.628815,54.073364,18.135757,1.000000,2.000000,1.000000 8.000000,11.000000,832.397095,185.605484,57.036072,17.034348,1.000000,2.000000,1.000000 8.000000,12.000000,826.040833,163.767166,59.033691,16.051697,1.000000,2.000000,1.000000 8.000000,13.000000,828.340454,143.058960,48.565063,16.666641,1.000000,2.000000,1.000000 8.000000,14.000000,829.199646,120.585167,60.371277,19.117989,1.000000,2.000000,1.000000 8.000000,15.000000,825.840820,99.806168,57.000183,17.981560,1.000000,2.000000,1.000000 8.000000,16.000000,832.103821,78.611488,56.559692,17.943527,1.000000,2.000000,1.000000 8.000000,17.000000,827.231995,54.721100,63.067871,21.950172,1.000000,2.000000,1.000000 8.000000,18.000000,827.568726,34.775211,55.002441,19.910973,1.000000,2.000000,1.000000 8.000000,19.000000,826.499084,15.709368,55.443909,18.023512,1.000000,2.000000,1.000000 8.000000,20.000000,545.638245,84.815056,40.789307,51.073891,1.000000,2.000000,1.000000 8.000000,21.000000,559.551758,167.799667,62.486816,43.507492,1.000000,2.000000,1.000000 8.000000,22.000000,568.812073,145.395660,64.449646,45.539001,1.000000,2.000000,1.000000 8.000000,23.000000,836.894592,456.614410,55.000549,18.023773,1.000000,2.000000,1.000000 8.000000,24.000000,838.443542,529.544373,59.404236,19.023621,1.000000,2.000000,1.000000 8.000000,25.000000,605.171997,68.116051,63.343994,41.507309,1.000000,2.000000,1.000000 8.000000,26.000000,836.246704,552.669006,58.998779,18.051331,1.000000,2.000000,1.000000 8.000000,27.000000,781.207458,484.261902,38.465149,13.319092,1.000000,2.000000,1.000000 8.000000,28.000000,780.439636,461.100311,43.601807,19.488556,1.000000,2.000000,1.000000 8.000000,29.000000,767.933716,390.995361,55.803101,22.065430,1.000000,2.000000,1.000000 8.000000,30.000000,768.234436,370.122040,53.002869,18.803833,1.000000,2.000000,1.000000 8.000000,31.000000,763.293823,344.127136,61.802124,22.988098,1.000000,2.000000,1.000000 8.000000,32.000000,765.187805,321.037384,59.035706,20.023529,1.000000,2.000000,1.000000 8.000000,33.000000,760.654785,297.059906,61.729248,21.117584,1.000000,2.000000,1.000000 8.000000,34.000000,764.478577,276.029205,50.515564,16.278870,1.000000,2.000000,1.000000 8.000000,35.000000,761.046997,251.089844,59.033691,21.055115,1.000000,2.000000,1.000000 8.000000,36.000000,749.252319,228.549072,70.688782,18.987732,1.000000,2.000000,1.000000 8.000000,37.000000,760.476318,206.142044,57.733093,20.987396,1.000000,2.000000,1.000000 8.000000,38.000000,762.742920,185.048889,54.593994,17.991959,1.000000,2.000000,1.000000 8.000000,39.000000,757.570374,159.203979,62.403809,21.859024,1.000000,2.000000,1.000000 8.000000,40.000000,769.236938,141.050949,50.004272,17.734192,1.000000,2.000000,1.000000 8.000000,41.000000,786.341125,86.946007,35.011902,10.027847,1.000000,2.000000,1.000000 8.000000,42.000000,776.799500,100.509117,44.566711,15.453476,1.000000,2.000000,1.000000 8.000000,43.000000,764.575562,119.958885,58.557251,18.980370,1.000000,2.000000,1.000000 8.000000,44.000000,833.576599,588.812927,71.395142,21.541931,1.000000,2.000000,1.000000 8.000000,45.000000,594.156250,98.620461,61.347412,38.510750,1.000000,2.000000,1.000000 8.000000,46.000000,616.499817,48.708569,58.209351,39.717258,1.000000,2.000000,1.000000 8.000000,47.000000,357.471466,20.910103,52.757507,30.512154,1.000000,2.000000,1.000000 8.000000,48.000000,184.872589,155.041992,50.899414,24.553696,1.000000,2.000000,1.000000 8.000000,49.000000,182.106079,131.161819,60.788055,29.132050,1.000000,2.000000,1.000000 8.000000,50.000000,192.052231,105.793541,48.935684,20.591988,1.000000,2.000000,1.000000 8.000000,51.000000,192.353043,81.669182,59.860077,27.305878,1.000000,2.000000,1.000000 8.000000,52.000000,204.704407,35.312538,54.862854,26.378670,1.000000,2.000000,1.000000 8.000000,53.000000,211.826538,7.016986,54.827911,29.410404,1.000000,2.000000,1.000000 8.000000,54.000000,364.628540,0.000000,55.758026,28.053478,1.000000,2.000000,1.000000 8.000000,55.000000,354.347687,46.069450,50.725037,30.584679,1.000000,2.000000,1.000000 8.000000,56.000000,646.667542,0.000000,49.214905,33.587578,1.000000,2.000000,1.000000 8.000000,57.000000,344.819397,91.458298,51.863312,29.517815,1.000000,2.000000,1.000000 8.000000,58.000000,244.338272,198.026047,70.130447,26.785355,1.000000,2.000000,1.000000 8.000000,59.000000,165.652756,181.794342,35.838226,14.945297,1.000000,2.000000,1.000000 8.000000,60.000000,198.946213,186.603729,47.969727,24.588547,1.000000,2.000000,1.000000 8.000000,61.000000,314.782867,211.609207,34.909149,18.973434,1.000000,2.000000,1.000000 8.000000,62.000000,349.146881,219.451019,35.803345,18.836838,1.000000,2.000000,1.000000 8.000000,63.000000,382.813019,209.201172,52.827240,21.379608,1.000000,2.000000,1.000000 8.000000,64.000000,390.074738,186.934753,41.800323,21.833298,1.000000,2.000000,1.000000 8.000000,65.000000,395.373718,167.736588,45.796600,21.623917,1.000000,2.000000,1.000000 8.000000,66.000000,398.706940,146.608551,46.797424,22.626877,1.000000,2.000000,1.000000 8.000000,67.000000,408.074066,127.271851,38.765869,21.905212,1.000000,2.000000,1.000000 8.000000,68.000000,409.199188,105.181503,36.803162,21.008476,1.000000,2.000000,1.000000 8.000000,69.000000,414.533081,83.983978,45.866364,24.728340,1.000000,2.000000,1.000000 8.000000,70.000000,423.849915,37.699955,54.932800,25.341362,1.000000,2.000000,1.000000 8.000000,71.000000,426.186340,11.506083,55.720154,30.410254,1.000000,2.000000,1.000000 8.000000,72.000000,306.951538,184.834244,70.989685,26.783325,1.000000,2.000000,1.000000 8.000000,73.000000,314.178284,161.535126,66.994415,28.957535,1.000000,2.000000,1.000000 8.000000,74.000000,313.375641,135.481766,73.955322,32.848099,1.000000,2.000000,1.000000 8.000000,75.000000,830.172302,294.175415,46.005981,16.597839,1.000000,2.000000,1.000000 8.000000,76.000000,984.839111,451.449310,38.160889,19.023621,1.000000,2.000000,1.000000 8.000000,77.000000,988.973145,388.278687,34.026855,16.954193,1.000000,2.000000,1.000000 8.000000,78.000000,987.932678,201.976730,35.067322,13.232147,1.000000,2.000000,1.000000 8.000000,79.000000,989.975830,473.928406,33.024170,14.324005,1.000000,2.000000,1.000000 8.000000,80.000000,993.706238,494.870575,29.293762,14.264587,1.000000,2.000000,1.000000 8.000000,81.000000,999.367554,513.992615,23.632446,14.656494,1.000000,2.000000,1.000000 8.000000,82.000000,990.558838,533.859253,32.441162,14.462646,1.000000,2.000000,1.000000 8.000000,83.000000,968.933777,586.210754,54.066223,21.875610,1.000000,2.000000,1.000000 8.000000,84.000000,983.737488,553.562256,39.262512,15.989319,1.000000,2.000000,1.000000 8.000000,85.000000,753.461548,5.264757,139.009094,601.088257,1.000000,8.000000,1.000000 8.000000,86.000000,567.041809,328.570770,201.665344,287.519806,1.000000,8.000000,1.000000 8.000000,87.000000,546.140137,0.000000,173.538757,211.307159,1.000000,8.000000,1.000000 8.000000,88.000000,320.941071,0.000000,164.754364,227.267181,1.000000,8.000000,1.000000 8.000000,89.000000,168.742737,0.000000,103.503784,183.490295,1.000000,8.000000,1.000000 8.000000,90.000000,589.678894,331.709900,55.791931,44.160126,1.000000,2.000000,1.000000 8.000000,91.000000,599.338501,362.831146,33.872375,24.822510,1.000000,2.000000,1.000000 8.000000,92.000000,602.928223,378.609955,37.906677,26.926849,1.000000,2.000000,1.000000 8.000000,93.000000,613.410095,395.287994,37.012573,23.927338,1.000000,2.000000,1.000000 8.000000,94.000000,622.001038,407.035583,36.871948,29.818695,1.000000,2.000000,1.000000 8.000000,95.000000,633.481689,425.780060,33.015320,23.717957,1.000000,2.000000,1.000000 8.000000,96.000000,639.037292,437.423065,36.942749,28.854614,1.000000,2.000000,1.000000 8.000000,97.000000,655.110657,469.019592,35.013794,28.715088,1.000000,2.000000,1.000000 8.000000,98.000000,665.591431,484.624969,35.083740,26.752319,1.000000,2.000000,1.000000 8.000000,99.000000,672.146851,500.372955,35.013855,25.822296,1.000000,2.000000,1.000000 8.000000,100.000000,680.734741,516.012207,36.977661,25.857178,1.000000,2.000000,1.000000 8.000000,101.000000,691.286377,533.861511,30.947815,22.686218,1.000000,2.000000,1.000000 8.000000,102.000000,695.843140,545.542419,37.941467,29.784668,1.000000,2.000000,1.000000 8.000000,103.000000,704.501831,562.182434,39.801636,29.923279,1.000000,2.000000,1.000000 8.000000,104.000000,653.576904,521.721558,26.891907,35.803406,1.000000,2.000000,1.000000 8.000000,105.000000,626.092651,477.586945,27.854858,36.837006,1.000000,2.000000,1.000000 8.000000,106.000000,601.397583,430.451721,27.783997,31.771118,1.000000,2.000000,1.000000 8.000000,107.000000,560.290283,371.851135,22.615479,25.879883,1.000000,2.000000,1.000000 8.000000,108.000000,162.803268,115.800781,17.256027,27.737869,1.000000,2.000000,1.000000 8.000000,109.000000,169.821701,87.503082,17.221176,26.880081,1.000000,2.000000,1.000000 8.000000,110.000000,172.876801,54.243454,20.079987,33.910561,1.000000,2.000000,1.000000 ================================================ FILE: assets/DOTA8-MOT/train/P0861__1024__0___1648/gt/gt_obb.txt ================================================ 1.000000,1.000000,862.262878,539.240173,59.999321,20.000832,0.034907,1.000000,2.000000,1.000000 1.000000,2.000000,866.292725,466.838013,54.999016,19.000315,0.034907,1.000000,2.000000,1.000000 1.000000,3.000000,863.160645,442.187653,58.077854,18.974989,0.086572,1.000000,2.000000,1.000000 1.000000,4.000000,866.537476,416.815247,55.346180,19.024078,0.071233,1.000000,2.000000,1.000000 1.000000,5.000000,868.306702,394.837402,59.076084,20.025723,0.084835,1.000000,2.000000,1.000000 1.000000,6.000000,873.407776,349.012878,55.370876,19.997467,0.053095,1.000000,2.000000,1.000000 1.000000,7.000000,873.400452,305.986053,53.084126,18.027664,0.091476,1.000000,2.000000,1.000000 1.000000,8.000000,876.515808,284.589661,53.008591,15.016784,0.053781,1.000000,2.000000,1.000000 1.000000,9.000000,877.868408,262.474426,53.152523,15.960173,0.106387,1.000000,2.000000,1.000000 1.000000,10.000000,879.221252,240.652344,54.084778,17.028685,0.090372,1.000000,2.000000,1.000000 1.000000,11.000000,882.240784,219.236176,57.036079,17.024061,0.069995,1.000000,2.000000,1.000000 1.000000,12.000000,878.460510,196.587967,59.033798,15.992846,0.068807,1.000000,2.000000,1.000000 1.000000,13.000000,876.947876,176.032364,48.344177,15.997558,0.055703,1.000000,2.000000,1.000000 1.000000,14.000000,885.176025,155.306732,60.709812,18.014027,0.051579,1.000000,2.000000,1.000000 1.000000,15.000000,881.780029,133.672501,57.008713,16.999865,0.052457,1.000000,2.000000,1.000000 1.000000,16.000000,889.175781,112.420433,56.000549,16.999321,0.034907,1.000000,2.000000,1.000000 1.000000,17.000000,888.888550,91.347893,63.072853,21.926064,0.082463,1.000000,2.000000,1.000000 1.000000,18.000000,886.987549,69.823402,55.010101,19.015139,0.053042,1.000000,2.000000,1.000000 1.000000,19.000000,887.340637,50.317558,55.101841,18.027332,0.089371,1.000000,2.000000,1.000000 1.000000,20.000000,593.882812,115.615814,49.606350,21.429480,2.088240,1.000000,2.000000,1.000000 1.000000,21.000000,613.096008,195.835327,61.199314,17.992085,0.558174,1.000000,2.000000,1.000000 1.000000,22.000000,624.838440,174.732391,62.312767,20.226809,0.564138,1.000000,2.000000,1.000000 1.000000,23.000000,866.652832,489.857544,55.008179,18.015055,0.053095,1.000000,2.000000,1.000000 1.000000,24.000000,865.423523,563.366150,59.109718,19.026541,0.085682,1.000000,2.000000,1.000000 1.000000,25.000000,665.985046,99.622429,60.683601,20.181610,0.528823,1.000000,2.000000,1.000000 1.000000,26.000000,861.266052,586.229065,59.008301,17.013884,0.051844,1.000000,2.000000,1.000000 1.000000,27.000000,801.207703,511.093353,38.354958,12.996212,0.061228,1.000000,2.000000,1.000000 1.000000,28.000000,804.404419,491.190979,42.999825,17.998850,0.034907,1.000000,2.000000,1.000000 1.000000,29.000000,802.815063,422.095276,55.835251,21.984024,0.071271,1.000000,2.000000,1.000000 1.000000,30.000000,803.430298,399.609009,53.009628,18.015537,0.053781,1.000000,2.000000,1.000000 1.000000,31.000000,804.455383,375.122375,61.385941,22.999037,0.051255,1.000000,2.000000,1.000000 1.000000,32.000000,806.752258,351.665863,59.027988,20.025839,0.084938,1.000000,2.000000,1.000000 1.000000,33.000000,805.130249,327.117676,61.351162,20.995348,0.051306,1.000000,2.000000,1.000000 1.000000,34.000000,804.917725,304.595123,50.130421,16.030073,0.094819,1.000000,2.000000,1.000000 1.000000,35.000000,807.359741,281.688690,59.033733,21.053823,0.068807,1.000000,2.000000,1.000000 1.000000,36.000000,803.058472,257.503601,70.569466,18.991566,0.063454,1.000000,2.000000,1.000000 1.000000,37.000000,809.305359,236.208694,57.377602,20.996964,0.052474,1.000000,2.000000,1.000000 1.000000,38.000000,811.607849,213.274521,53.998604,18.002941,0.034907,1.000000,2.000000,1.000000 1.000000,39.000000,811.950317,190.273804,62.170509,21.024971,0.083277,1.000000,2.000000,1.000000 1.000000,40.000000,818.934875,170.509918,50.009834,17.016006,0.054893,1.000000,2.000000,1.000000 1.000000,41.000000,832.460693,113.451881,35.012604,10.023527,0.063482,1.000000,2.000000,1.000000 1.000000,42.000000,826.548767,129.245285,44.725975,14.986153,0.080280,1.000000,2.000000,1.000000 1.000000,43.000000,819.801941,150.521072,57.999378,17.999857,0.034909,1.000000,2.000000,1.000000 1.000000,44.000000,862.294312,624.292725,71.237343,20.025291,0.091168,1.000000,2.000000,1.000000 1.000000,45.000000,652.016663,127.152687,59.479515,17.442734,0.498554,1.000000,2.000000,1.000000 1.000000,46.000000,676.211304,78.967316,54.838905,20.142973,0.507034,1.000000,2.000000,1.000000 1.000000,47.000000,417.448792,29.454943,49.429192,20.878641,0.324377,1.000000,2.000000,1.000000 1.000000,48.000000,235.031128,148.112396,48.533703,15.796028,0.310346,1.000000,2.000000,1.000000 1.000000,49.000000,238.614426,125.680206,58.660732,19.416946,0.242437,1.000000,2.000000,1.000000 1.000000,50.000000,244.823608,96.922417,47.361618,12.606480,0.274636,1.000000,2.000000,1.000000 1.000000,51.000000,252.052338,76.162415,57.559616,17.205652,0.275441,1.000000,2.000000,1.000000 1.000000,52.000000,265.185669,29.592533,52.476032,16.744930,0.289277,1.000000,2.000000,1.000000 1.000000,53.000000,274.099487,4.288618,52.224316,17.918573,0.289272,1.000000,2.000000,1.000000 1.000000,54.000000,427.656921,5.608071,52.784229,19.934607,0.284496,1.000000,2.000000,1.000000 1.000000,55.000000,411.134674,53.615273,47.803780,20.603170,0.310322,1.000000,2.000000,1.000000 1.000000,56.000000,705.373413,28.153364,46.529774,17.474541,0.527357,1.000000,2.000000,1.000000 1.000000,57.000000,398.878967,97.439568,49.999153,18.002100,0.318715,1.000000,2.000000,1.000000 1.000000,58.000000,300.867279,196.939270,68.848923,13.593743,0.301157,1.000000,2.000000,1.000000 1.000000,59.000000,206.814987,168.139023,34.386234,11.382750,0.243929,1.000000,2.000000,1.000000 1.000000,60.000000,245.201935,180.421188,46.173180,14.554766,0.342988,1.000000,2.000000,1.000000 1.000000,61.000000,352.968750,209.265045,33.330040,11.401583,0.309004,1.000000,2.000000,1.000000 1.000000,62.000000,387.632629,219.481461,36.283478,13.139232,0.232330,1.000000,2.000000,1.000000 1.000000,63.000000,429.887146,212.952652,51.185623,14.316456,0.232271,1.000000,2.000000,1.000000 1.000000,64.000000,433.136017,191.553085,39.629276,14.783235,0.273487,1.000000,2.000000,1.000000 1.000000,65.000000,441.671112,172.511948,44.125767,15.295462,0.232276,1.000000,2.000000,1.000000 1.000000,66.000000,446.988983,153.012497,44.645840,15.517907,0.263435,1.000000,2.000000,1.000000 1.000000,67.000000,453.799622,134.148636,36.380875,16.493107,0.279795,1.000000,2.000000,1.000000 1.000000,68.000000,455.485413,110.283691,34.381474,14.557508,0.301132,1.000000,2.000000,1.000000 1.000000,69.000000,466.607361,92.660118,43.304150,15.801174,0.319627,1.000000,2.000000,1.000000 1.000000,70.000000,483.428436,47.384827,53.366344,15.738785,0.261849,1.000000,2.000000,1.000000 1.000000,71.000000,488.003632,24.365341,52.435696,20.863659,0.289277,1.000000,2.000000,1.000000 1.000000,72.000000,364.747070,187.164322,69.501144,14.536549,0.255180,1.000000,2.000000,1.000000 1.000000,73.000000,371.511902,165.385468,65.125198,15.771894,0.287441,1.000000,2.000000,1.000000 1.000000,74.000000,375.829895,142.022675,71.466545,19.198650,0.297349,1.000000,2.000000,1.000000 1.000000,75.000000,866.855103,326.774261,46.009975,15.998276,0.056652,1.000000,2.000000,1.000000 1.000000,76.000000,1005.303162,495.043732,36.468620,19.015789,0.053781,1.000000,2.000000,1.000000 1.000000,77.000000,1009.720825,431.140411,27.612692,16.969957,0.059304,1.000000,2.000000,1.000000 1.000000,78.000000,1015.447693,243.405807,15.533021,12.000253,0.034907,1.000000,2.000000,1.000000 1.000000,79.000000,1007.220825,515.284302,32.066475,14.001139,0.034908,1.000000,2.000000,1.000000 1.000000,80.000000,1008.353027,535.967957,29.424822,14.021163,0.009258,1.000000,2.000000,1.000000 1.000000,81.000000,1010.520813,556.241943,26.473803,13.956755,0.099365,1.000000,2.000000,1.000000 1.000000,82.000000,1005.319885,575.624634,36.196720,14.018911,0.055680,1.000000,2.000000,1.000000 1.000000,83.000000,992.739197,630.848999,61.188980,19.999735,0.034904,1.000000,2.000000,1.000000 1.000000,84.000000,1001.344482,595.551270,44.241371,15.996045,0.054145,1.000000,2.000000,1.000000 1.000000,85.000000,836.646790,327.217285,601.306213,131.034607,1.627328,1.000000,8.000000,1.000000 1.000000,86.000000,676.537537,484.615936,288.578491,79.649887,1.110809,1.000000,8.000000,1.000000 1.000000,87.000000,665.061218,89.352242,255.237488,78.617355,2.109764,1.000000,8.000000,1.000000 1.000000,88.000000,431.307495,102.688629,215.129593,124.403244,1.845045,1.000000,8.000000,1.000000 1.000000,89.000000,248.513901,73.329231,171.285309,67.649216,1.844190,1.000000,8.000000,1.000000 1.000000,90.000000,627.639038,361.046204,52.322239,23.703577,2.712759,1.000000,2.000000,1.000000 1.000000,91.000000,626.048523,383.126556,32.694611,12.477627,2.767590,1.000000,2.000000,1.000000 1.000000,92.000000,630.088257,400.215393,35.848740,13.389809,2.775257,1.000000,2.000000,1.000000 1.000000,93.000000,638.931152,415.871307,34.665310,12.974287,2.845398,1.000000,2.000000,1.000000 1.000000,94.000000,646.787659,431.213074,34.884701,14.760889,2.700052,1.000000,2.000000,1.000000 1.000000,95.000000,654.840454,447.445343,30.184288,13.376986,2.789641,1.000000,2.000000,1.000000 1.000000,96.000000,661.963379,462.404327,35.340965,14.800033,2.738110,1.000000,2.000000,1.000000 1.000000,97.000000,674.022705,494.760590,31.294300,16.551620,2.739831,1.000000,2.000000,1.000000 1.000000,98.000000,683.593628,510.313995,31.383192,16.156836,2.796052,1.000000,2.000000,1.000000 1.000000,99.000000,689.280457,525.834290,32.310783,14.299404,2.796016,1.000000,2.000000,1.000000 1.000000,100.000000,697.670898,542.448792,34.540127,13.926667,2.790599,1.000000,2.000000,1.000000 1.000000,101.000000,704.003235,558.229248,28.381645,12.513310,2.728985,1.000000,2.000000,1.000000 1.000000,102.000000,710.940063,574.480225,34.434410,16.100962,2.712797,1.000000,2.000000,1.000000 1.000000,103.000000,719.249939,591.583130,38.012333,13.863952,2.712782,1.000000,2.000000,1.000000 1.000000,104.000000,664.939148,549.706604,35.340973,12.507252,1.167379,1.000000,2.000000,1.000000 1.000000,105.000000,641.119202,505.102509,34.882233,13.415600,1.142056,1.000000,2.000000,1.000000 1.000000,106.000000,619.582214,454.220001,33.362797,12.031509,1.086605,1.000000,2.000000,1.000000 1.000000,107.000000,580.324463,389.308319,25.940361,11.627506,1.141901,1.000000,2.000000,1.000000 1.000000,108.000000,198.465775,106.754128,25.709761,13.340678,1.841234,1.000000,2.000000,1.000000 1.000000,109.000000,207.066101,77.792564,26.563457,12.016853,1.927642,1.000000,2.000000,1.000000 1.000000,110.000000,214.964661,49.351395,31.624640,12.649006,1.927367,1.000000,2.000000,1.000000 2.000000,1.000000,862.696106,535.252380,60.007618,19.998066,0.041606,1.000000,2.000000,1.000000 2.000000,2.000000,865.824585,463.306824,54.999031,19.000330,0.024934,1.000000,2.000000,1.000000 2.000000,3.000000,862.446960,438.688904,58.077888,18.974991,0.076599,1.000000,2.000000,1.000000 2.000000,4.000000,865.570435,413.284027,55.346138,19.024071,0.061259,1.000000,2.000000,1.000000 2.000000,5.000000,867.109680,391.315552,59.076122,20.025681,0.075760,1.000000,2.000000,1.000000 2.000000,6.000000,871.764465,345.416595,55.370880,19.997446,0.043122,1.000000,2.000000,1.000000 2.000000,7.000000,871.327881,302.391998,53.084106,18.027670,0.081503,1.000000,2.000000,1.000000 2.000000,8.000000,874.229736,280.965576,53.008560,15.016779,0.043808,1.000000,2.000000,1.000000 2.000000,9.000000,875.361694,258.837830,53.152447,15.960182,0.096409,1.000000,2.000000,1.000000 2.000000,10.000000,876.496704,237.003464,54.084866,17.028671,0.080398,1.000000,2.000000,1.000000 2.000000,11.000000,879.302490,215.558258,57.036057,17.024052,0.060022,1.000000,2.000000,1.000000 2.000000,12.000000,875.296631,192.948868,59.033718,15.992846,0.058834,1.000000,2.000000,1.000000 2.000000,13.000000,873.579102,172.409424,48.344170,15.997562,0.045730,1.000000,2.000000,1.000000 2.000000,14.000000,881.600159,151.602737,60.709827,18.014029,0.041605,1.000000,2.000000,1.000000 2.000000,15.000000,877.988586,130.003448,57.008713,16.999874,0.042483,1.000000,2.000000,1.000000 2.000000,16.000000,885.171936,108.678680,56.000538,16.999325,0.024933,1.000000,2.000000,1.000000 2.000000,17.000000,884.674561,87.610062,63.072933,21.926065,0.072489,1.000000,2.000000,1.000000 2.000000,18.000000,882.558899,66.105576,55.010113,19.015137,0.043069,1.000000,2.000000,1.000000 2.000000,19.000000,882.717590,46.597183,55.101852,18.027334,0.079398,1.000000,2.000000,1.000000 2.000000,20.000000,589.925476,114.818909,49.606312,21.429510,2.078266,1.000000,2.000000,1.000000 2.000000,21.000000,609.937744,194.842773,61.199276,17.992050,0.548200,1.000000,2.000000,1.000000 2.000000,22.000000,621.469177,173.623779,62.312798,20.226782,0.554164,1.000000,2.000000,1.000000 2.000000,23.000000,866.414307,486.321625,55.008167,18.015041,0.043122,1.000000,2.000000,1.000000 2.000000,24.000000,865.918152,559.838867,59.109749,19.026541,0.075708,1.000000,2.000000,1.000000 2.000000,25.000000,661.864685,98.107216,60.683636,20.181641,0.518850,1.000000,2.000000,1.000000 2.000000,26.000000,861.989014,582.742004,59.008316,17.013865,0.041871,1.000000,2.000000,1.000000 2.000000,27.000000,801.184326,508.209106,38.354996,12.996180,0.051255,1.000000,2.000000,1.000000 2.000000,28.000000,804.182251,488.275818,42.999825,17.998850,0.024933,1.000000,2.000000,1.000000 2.000000,29.000000,801.904053,419.199463,55.835209,21.984024,0.061298,1.000000,2.000000,1.000000 2.000000,30.000000,802.294739,396.708069,53.009659,18.015574,0.043807,1.000000,2.000000,1.000000 2.000000,31.000000,803.075806,372.212494,61.385921,22.999004,0.041282,1.000000,2.000000,1.000000 2.000000,32.000000,805.012634,348.248291,59.035671,20.023193,0.058780,1.000000,2.000000,1.000000 2.000000,33.000000,803.271729,324.203430,61.351154,20.995340,0.041332,1.000000,2.000000,1.000000 2.000000,34.000000,802.834717,301.684174,50.130417,16.030073,0.084845,1.000000,2.000000,1.000000 2.000000,35.000000,805.048035,278.754456,59.033783,21.053818,0.058834,1.000000,2.000000,1.000000 2.000000,36.000000,800.505859,254.613464,70.569466,18.991571,0.053481,1.000000,2.000000,1.000000 2.000000,37.000000,806.540100,233.257355,57.377647,20.996954,0.042501,1.000000,2.000000,1.000000 2.000000,38.000000,808.613708,210.301392,53.998589,18.002939,0.024935,1.000000,2.000000,1.000000 2.000000,39.000000,808.726807,187.298325,62.170498,21.024977,0.073303,1.000000,2.000000,1.000000 2.000000,40.000000,815.513855,167.465790,50.009857,17.016005,0.044919,1.000000,2.000000,1.000000 2.000000,41.000000,828.470032,110.275703,35.012573,10.023529,0.053508,1.000000,2.000000,1.000000 2.000000,42.000000,822.715820,126.127296,44.726063,14.986153,0.070307,1.000000,2.000000,1.000000 2.000000,43.000000,816.181641,147.469360,57.999340,17.999855,0.024934,1.000000,2.000000,1.000000 2.000000,44.000000,863.396851,620.793701,71.237358,20.025293,0.081196,1.000000,2.000000,1.000000 2.000000,45.000000,648.171570,125.775436,59.479538,17.442738,0.488581,1.000000,2.000000,1.000000 2.000000,46.000000,671.884460,77.351143,54.838902,20.143000,0.497061,1.000000,2.000000,1.000000 2.000000,47.000000,412.641022,30.421925,49.429218,20.878647,0.314404,1.000000,2.000000,1.000000 2.000000,48.000000,231.415787,150.892731,48.533730,15.796033,0.300373,1.000000,2.000000,1.000000 2.000000,49.000000,234.775223,128.425858,58.660717,19.416960,0.232466,1.000000,2.000000,1.000000 2.000000,50.000000,240.697266,99.607643,47.361607,12.606476,0.264662,1.000000,2.000000,1.000000 2.000000,51.000000,247.718613,78.776596,57.559593,17.205652,0.265468,1.000000,2.000000,1.000000 2.000000,52.000000,260.386780,32.078041,52.476028,16.744926,0.279304,1.000000,2.000000,1.000000 2.000000,53.000000,269.067322,6.618606,52.224308,18.059811,0.279299,1.000000,2.000000,1.000000 2.000000,54.000000,422.618378,6.447395,52.784248,19.990767,0.274522,1.000000,2.000000,1.000000 2.000000,55.000000,406.568146,54.644012,47.803772,20.603170,0.300349,1.000000,2.000000,1.000000 2.000000,56.000000,700.538330,26.248917,46.529804,17.474569,0.517383,1.000000,2.000000,1.000000 2.000000,57.000000,394.750092,98.588356,49.999161,18.002096,0.308741,1.000000,2.000000,1.000000 2.000000,58.000000,297.736053,199.057114,68.849136,13.593709,0.291083,1.000000,2.000000,1.000000 2.000000,59.000000,203.400787,171.199783,34.386242,11.382755,0.233955,1.000000,2.000000,1.000000 2.000000,60.000000,242.318985,182.512497,46.152660,14.561249,0.303194,1.000000,2.000000,1.000000 2.000000,61.000000,349.957458,210.866104,33.330044,11.401593,0.299031,1.000000,2.000000,1.000000 2.000000,62.000000,384.721497,220.736328,36.283478,13.139215,0.222357,1.000000,2.000000,1.000000 2.000000,63.000000,426.908752,213.786438,51.185593,14.316444,0.222297,1.000000,2.000000,1.000000 2.000000,64.000000,429.944122,192.355530,39.629250,14.783240,0.263513,1.000000,2.000000,1.000000 2.000000,65.000000,438.288910,173.230194,44.125748,15.295472,0.222304,1.000000,2.000000,1.000000 2.000000,66.000000,443.412018,153.678726,44.645870,15.517918,0.253462,1.000000,2.000000,1.000000 2.000000,67.000000,449.608765,135.252121,36.401230,16.483875,0.303268,1.000000,2.000000,1.000000 2.000000,68.000000,451.481873,110.867302,34.381454,14.557505,0.291159,1.000000,2.000000,1.000000 2.000000,69.000000,462.427460,93.133682,43.304173,15.801174,0.309654,1.000000,2.000000,1.000000 2.000000,70.000000,478.796204,47.692863,53.366341,15.738788,0.251877,1.000000,2.000000,1.000000 2.000000,71.000000,483.141632,24.628901,52.435703,20.863644,0.279303,1.000000,2.000000,1.000000 2.000000,72.000000,361.514771,188.649048,69.501144,14.536556,0.245207,1.000000,2.000000,1.000000 2.000000,73.000000,368.062042,166.803818,65.125175,15.771891,0.277468,1.000000,2.000000,1.000000 2.000000,74.000000,372.146820,143.399109,71.466560,19.198658,0.287376,1.000000,2.000000,1.000000 2.000000,75.000000,864.803955,323.736359,45.999081,16.002045,0.024936,1.000000,2.000000,1.000000 2.000000,76.000000,1005.154602,490.126770,36.558750,19.015783,0.043807,1.000000,2.000000,1.000000 2.000000,77.000000,1009.259216,426.198853,28.352789,16.969967,0.049330,1.000000,2.000000,1.000000 2.000000,78.000000,1014.064758,238.431183,18.175510,12.000236,0.024933,1.000000,2.000000,1.000000 2.000000,79.000000,1007.187622,510.344238,31.983768,14.001167,0.024934,1.000000,2.000000,1.000000 2.000000,80.000000,1008.429565,531.016785,29.148924,14.021153,3.140875,1.000000,2.000000,1.000000 2.000000,81.000000,1010.688110,551.245056,25.973520,13.955774,0.089391,1.000000,2.000000,1.000000 2.000000,82.000000,1005.585266,570.685791,35.506992,14.018929,0.045706,1.000000,2.000000,1.000000 2.000000,83.000000,993.270630,626.032898,59.928616,19.999746,0.024933,1.000000,2.000000,1.000000 2.000000,84.000000,1001.703796,590.646973,43.341103,15.996031,0.044172,1.000000,2.000000,1.000000 2.000000,85.000000,834.787720,323.988708,601.306213,131.034561,1.617355,1.000000,8.000000,1.000000 2.000000,86.000000,676.256287,482.976349,288.578461,79.649918,1.100836,1.000000,8.000000,1.000000 2.000000,87.000000,660.116028,89.095322,252.352402,78.604683,2.099790,1.000000,8.000000,1.000000 2.000000,88.000000,427.229431,103.513733,215.129593,124.403229,1.835071,1.000000,8.000000,1.000000 2.000000,89.000000,244.434952,74.929924,173.458099,67.649200,1.834217,1.000000,8.000000,1.000000 2.000000,90.000000,626.127808,359.900452,52.322212,23.703575,2.702786,1.000000,2.000000,1.000000 2.000000,91.000000,624.757568,381.995575,32.694592,12.477595,2.757616,1.000000,2.000000,1.000000 2.000000,92.000000,628.967529,399.043213,35.848698,13.389799,2.765284,1.000000,2.000000,1.000000 2.000000,93.000000,637.966125,414.610168,34.665295,12.974289,2.835425,1.000000,2.000000,1.000000 2.000000,94.000000,645.975220,429.872742,34.884682,14.760861,2.690078,1.000000,2.000000,1.000000 2.000000,95.000000,654.189514,446.023987,30.184317,13.376964,2.779669,1.000000,2.000000,1.000000 2.000000,96.000000,661.461243,460.911194,35.340942,14.800046,2.728137,1.000000,2.000000,1.000000 2.000000,97.000000,674.214233,493.438049,31.305651,16.545555,2.702849,1.000000,2.000000,1.000000 2.000000,98.000000,683.568237,508.602753,31.383213,16.156849,2.786077,1.000000,2.000000,1.000000 2.000000,99.000000,689.409607,524.065613,32.310791,14.299380,2.786042,1.000000,2.000000,1.000000 2.000000,100.000000,697.965393,540.595520,34.540092,13.926679,2.780623,1.000000,2.000000,1.000000 2.000000,101.000000,704.454773,556.312134,28.381662,12.513248,2.719013,1.000000,2.000000,1.000000 2.000000,102.000000,711.553345,572.493103,34.434444,16.100979,2.702824,1.000000,2.000000,1.000000 2.000000,103.000000,720.033325,589.512268,38.012257,13.863986,2.702808,1.000000,2.000000,1.000000 2.000000,104.000000,665.307556,548.179504,35.340942,12.507201,1.157405,1.000000,2.000000,1.000000 2.000000,105.000000,641.209045,503.642670,34.885105,13.414519,1.119255,1.000000,2.000000,1.000000 2.000000,106.000000,619.000610,453.149963,33.362793,12.031473,1.076631,1.000000,2.000000,1.000000 2.000000,107.000000,579.097412,388.632935,25.940327,11.627520,1.131931,1.000000,2.000000,1.000000 2.000000,108.000000,194.533997,109.985901,25.708771,13.341186,1.822483,1.000000,2.000000,1.000000 2.000000,109.000000,202.750824,80.855301,26.563471,12.016870,1.917669,1.000000,2.000000,1.000000 2.000000,110.000000,210.365936,52.337303,31.624647,12.649018,1.917439,1.000000,2.000000,1.000000 3.000000,1.000000,862.910400,531.753723,60.007626,19.997995,0.031632,1.000000,2.000000,1.000000 3.000000,2.000000,865.321533,459.780548,54.999077,19.000341,0.014960,1.000000,2.000000,1.000000 3.000000,3.000000,861.698303,435.197479,58.077892,18.974972,0.066626,1.000000,2.000000,1.000000 3.000000,4.000000,864.568359,409.762726,55.346134,19.024055,0.051285,1.000000,2.000000,1.000000 3.000000,5.000000,865.899109,387.753998,59.076126,20.025721,0.064885,1.000000,2.000000,1.000000 3.000000,6.000000,870.085205,341.836945,55.370911,19.997465,0.033148,1.000000,2.000000,1.000000 3.000000,7.000000,869.219482,298.818817,53.084110,18.027660,0.071530,1.000000,2.000000,1.000000 3.000000,8.000000,871.907532,277.364502,53.008549,15.016768,0.033835,1.000000,2.000000,1.000000 3.000000,9.000000,872.818848,255.226700,53.152512,15.960183,0.086440,1.000000,2.000000,1.000000 3.000000,10.000000,873.736023,233.381958,54.084820,17.028679,0.070425,1.000000,2.000000,1.000000 3.000000,11.000000,876.327881,211.909821,57.036079,17.024057,0.050048,1.000000,2.000000,1.000000 3.000000,12.000000,872.096619,189.341522,59.033714,15.992841,0.048860,1.000000,2.000000,1.000000 3.000000,13.000000,870.174255,168.820221,48.344135,15.997555,0.035757,1.000000,2.000000,1.000000 3.000000,14.000000,877.987427,147.934586,60.709850,18.014019,0.031632,1.000000,2.000000,1.000000 3.000000,15.000000,874.317200,125.877045,56.999920,17.002491,0.014959,1.000000,2.000000,1.000000 3.000000,16.000000,881.130981,104.977089,56.000542,16.999331,0.014962,1.000000,2.000000,1.000000 3.000000,17.000000,880.423584,83.914413,63.072914,21.926058,0.062516,1.000000,2.000000,1.000000 3.000000,18.000000,878.093567,62.432117,55.010174,19.015141,0.033095,1.000000,2.000000,1.000000 3.000000,19.000000,878.057617,42.923111,55.101864,18.027338,0.069425,1.000000,2.000000,1.000000 3.000000,20.000000,585.960449,114.061516,49.606331,21.429544,2.068292,1.000000,2.000000,1.000000 3.000000,21.000000,606.769897,193.881821,61.199268,17.992071,0.538227,1.000000,2.000000,1.000000 3.000000,22.000000,618.089050,172.548859,62.312752,20.226755,0.544190,1.000000,2.000000,1.000000 3.000000,23.000000,866.140503,482.788208,55.008190,18.015079,0.033148,1.000000,2.000000,1.000000 3.000000,24.000000,866.377625,556.306763,59.109737,19.026527,0.065735,1.000000,2.000000,1.000000 3.000000,25.000000,657.729492,96.633202,60.683620,20.181616,0.508876,1.000000,2.000000,1.000000 3.000000,26.000000,862.677124,579.248047,59.008297,17.013889,0.031899,1.000000,2.000000,1.000000 3.000000,27.000000,801.132141,505.325195,38.354931,12.996221,0.041282,1.000000,2.000000,1.000000 3.000000,28.000000,803.931274,485.363098,42.999863,17.998840,0.014960,1.000000,2.000000,1.000000 3.000000,29.000000,800.964111,416.312805,55.835201,21.984045,0.051324,1.000000,2.000000,1.000000 3.000000,30.000000,801.130554,393.818634,53.009647,18.015566,0.033834,1.000000,2.000000,1.000000 3.000000,31.000000,801.667236,369.316437,61.385891,22.999010,0.031309,1.000000,2.000000,1.000000 3.000000,32.000000,803.495789,345.818939,59.027958,20.025831,0.064995,1.000000,2.000000,1.000000 3.000000,33.000000,801.384277,321.307831,61.351173,20.995346,0.031359,1.000000,2.000000,1.000000 3.000000,34.000000,800.722656,298.794067,50.130383,16.030085,0.074872,1.000000,2.000000,1.000000 3.000000,35.000000,802.707153,275.843445,59.033714,21.053814,0.048861,1.000000,2.000000,1.000000 3.000000,36.000000,797.924561,251.748947,70.569427,18.991575,0.043508,1.000000,2.000000,1.000000 3.000000,37.000000,803.745361,230.333710,57.377636,20.996956,0.032528,1.000000,2.000000,1.000000 3.000000,38.000000,805.590088,207.358170,53.998627,18.002928,0.014960,1.000000,2.000000,1.000000 3.000000,39.000000,805.473633,184.355194,62.170483,21.024973,0.063330,1.000000,2.000000,1.000000 3.000000,40.000000,812.062683,164.455948,50.009903,17.016008,0.034946,1.000000,2.000000,1.000000 3.000000,41.000000,824.447876,107.139488,35.012604,10.023522,0.043535,1.000000,2.000000,1.000000 3.000000,42.000000,818.851990,123.047668,44.726025,14.986155,0.060334,1.000000,2.000000,1.000000 3.000000,43.000000,812.531006,144.453964,57.999325,17.999866,0.014957,1.000000,2.000000,1.000000 3.000000,44.000000,864.464294,617.283691,71.237358,20.025259,0.071222,1.000000,2.000000,1.000000 3.000000,45.000000,644.312866,124.436554,59.479553,17.442760,0.478608,1.000000,2.000000,1.000000 3.000000,46.000000,667.541748,75.778214,54.838928,20.142981,0.487087,1.000000,2.000000,1.000000 3.000000,47.000000,407.843079,31.436790,49.429199,20.878649,0.304431,1.000000,2.000000,1.000000 3.000000,48.000000,227.828400,153.709000,48.533718,15.796029,0.290400,1.000000,2.000000,1.000000 3.000000,49.000000,230.963562,131.209793,58.660728,19.416965,0.222491,1.000000,2.000000,1.000000 3.000000,50.000000,236.597916,102.333893,47.361622,12.606482,0.254689,1.000000,2.000000,1.000000 3.000000,51.000000,243.411163,81.433853,57.559589,17.205647,0.255494,1.000000,2.000000,1.000000 3.000000,52.000000,255.612991,34.611282,52.476032,16.744932,0.269330,1.000000,2.000000,1.000000 3.000000,53.000000,264.059662,8.992285,52.224335,18.213871,0.269325,1.000000,2.000000,1.000000 3.000000,54.000000,417.589294,7.333008,52.784260,20.054886,0.264549,1.000000,2.000000,1.000000 3.000000,55.000000,402.012085,55.718243,47.803795,20.603163,0.290376,1.000000,2.000000,1.000000 3.000000,56.000000,695.684509,24.392773,46.529770,17.474550,0.507410,1.000000,2.000000,1.000000 3.000000,57.000000,390.632935,99.778275,49.999153,18.002090,0.298768,1.000000,2.000000,1.000000 3.000000,58.000000,294.625732,201.209579,68.849129,13.593697,0.281110,1.000000,2.000000,1.000000 3.000000,59.000000,200.017273,174.294418,34.386234,11.382749,0.223982,1.000000,2.000000,1.000000 3.000000,60.000000,238.641525,185.808533,46.173187,14.554789,0.323042,1.000000,2.000000,1.000000 3.000000,61.000000,346.962280,212.497162,33.330048,11.401592,0.289058,1.000000,2.000000,1.000000 3.000000,62.000000,381.822998,222.020172,36.283470,13.139223,0.212383,1.000000,2.000000,1.000000 3.000000,63.000000,423.938843,214.649887,51.185631,14.316458,0.212324,1.000000,2.000000,1.000000 3.000000,64.000000,426.760345,193.189804,39.629242,14.783244,0.253540,1.000000,2.000000,1.000000 3.000000,65.000000,435.289490,173.368286,44.147141,15.288073,0.243444,1.000000,2.000000,1.000000 3.000000,66.000000,439.841827,154.380585,44.645851,15.517899,0.243489,1.000000,2.000000,1.000000 3.000000,67.000000,445.854523,135.893097,36.401222,16.483889,0.293294,1.000000,2.000000,1.000000 3.000000,68.000000,447.484314,111.490799,34.381424,14.557503,0.281186,1.000000,2.000000,1.000000 3.000000,69.000000,458.252533,93.648903,43.304169,15.801168,0.299680,1.000000,2.000000,1.000000 3.000000,70.000000,474.167206,48.047150,53.366356,15.738792,0.241902,1.000000,2.000000,1.000000 3.000000,71.000000,478.282410,24.940962,52.435715,20.863653,0.269330,1.000000,2.000000,1.000000 3.000000,72.000000,358.297455,190.165939,69.501122,14.536545,0.235234,1.000000,2.000000,1.000000 3.000000,73.000000,364.626526,168.256500,65.125183,15.771893,0.267494,1.000000,2.000000,1.000000 3.000000,74.000000,368.477692,144.812241,71.466568,19.198656,0.277402,1.000000,2.000000,1.000000 3.000000,75.000000,863.090271,319.733459,46.009995,15.998281,0.036706,1.000000,2.000000,1.000000 3.000000,76.000000,1004.982239,485.211914,36.699715,19.015800,0.033834,1.000000,2.000000,1.000000 3.000000,77.000000,1008.773621,421.259399,29.143066,16.969959,0.039358,1.000000,2.000000,1.000000 3.000000,78.000000,1012.657166,233.457733,20.867447,12.000244,0.014960,1.000000,2.000000,1.000000 3.000000,79.000000,1007.130615,505.405518,31.951918,14.001187,0.014960,1.000000,2.000000,1.000000 3.000000,80.000000,1008.472961,526.217163,29.054077,14.013489,-0.000000,1.000000,2.000000,1.000000 3.000000,81.000000,1010.831238,546.251404,25.525181,13.954838,0.079417,1.000000,2.000000,1.000000 3.000000,82.000000,1005.827148,565.748779,34.868816,14.018875,0.035734,1.000000,2.000000,1.000000 3.000000,83.000000,993.779297,621.218445,58.719238,19.999794,0.014960,1.000000,2.000000,1.000000 3.000000,84.000000,1002.039673,585.744507,42.492378,15.996084,0.034199,1.000000,2.000000,1.000000 3.000000,85.000000,832.896606,320.778870,601.306152,131.034546,1.607381,1.000000,8.000000,1.000000 3.000000,86.000000,675.958618,481.339691,288.578552,79.649857,1.090863,1.000000,8.000000,1.000000 3.000000,87.000000,655.203491,88.854752,249.559464,78.592552,2.089817,1.000000,8.000000,1.000000 3.000000,88.000000,423.159729,104.379486,215.129623,124.403252,1.825098,1.000000,8.000000,1.000000 3.000000,89.000000,240.366867,76.548607,175.671829,67.649200,1.824244,1.000000,8.000000,1.000000 3.000000,90.000000,624.605286,358.769867,52.322235,23.703564,2.692812,1.000000,2.000000,1.000000 3.000000,91.000000,623.455444,380.877502,32.694580,12.477631,2.747643,1.000000,2.000000,1.000000 3.000000,92.000000,627.835205,397.882324,35.848679,13.389812,2.755310,1.000000,2.000000,1.000000 3.000000,93.000000,636.988586,413.358734,34.665302,12.974260,2.825451,1.000000,2.000000,1.000000 3.000000,94.000000,645.149536,428.540771,34.884651,14.760887,2.680105,1.000000,2.000000,1.000000 3.000000,95.000000,653.524475,444.609131,30.184315,13.376965,2.769695,1.000000,2.000000,1.000000 3.000000,96.000000,660.944336,459.423157,35.340981,14.800048,2.718163,1.000000,2.000000,1.000000 3.000000,97.000000,673.646667,491.532410,31.294241,16.551603,2.719884,1.000000,2.000000,1.000000 3.000000,98.000000,683.681885,507.030762,31.385431,16.155714,2.764213,1.000000,2.000000,1.000000 3.000000,99.000000,689.521118,522.295654,32.310818,14.299445,2.776070,1.000000,2.000000,1.000000 3.000000,100.000000,698.241333,538.739441,34.540119,13.926645,2.770651,1.000000,2.000000,1.000000 3.000000,101.000000,704.887085,554.390442,28.381605,12.513287,2.709038,1.000000,2.000000,1.000000 3.000000,102.000000,712.146729,570.499939,34.434437,16.100935,2.692850,1.000000,2.000000,1.000000 3.000000,103.000000,720.796082,587.433716,38.012268,13.863950,2.692832,1.000000,2.000000,1.000000 3.000000,104.000000,665.660767,546.648682,35.340996,12.507224,1.147433,1.000000,2.000000,1.000000 3.000000,105.000000,640.955933,502.528595,34.882271,13.415616,1.122110,1.000000,2.000000,1.000000 3.000000,106.000000,618.408386,452.085693,33.362808,12.031487,1.066657,1.000000,2.000000,1.000000 3.000000,107.000000,577.863831,387.969910,25.940361,11.627544,1.121954,1.000000,2.000000,1.000000 3.000000,108.000000,190.445419,113.088287,25.709766,13.340677,1.821287,1.000000,2.000000,1.000000 3.000000,109.000000,198.466324,83.960930,26.563454,12.016858,1.907695,1.000000,2.000000,1.000000 3.000000,110.000000,205.796082,55.367889,31.624634,12.649022,1.907419,1.000000,2.000000,1.000000 4.000000,1.000000,863.090149,528.253052,60.007603,19.998016,0.021659,1.000000,2.000000,1.000000 4.000000,2.000000,864.783203,456.259430,54.999031,19.000341,0.004987,1.000000,2.000000,1.000000 4.000000,3.000000,860.914856,431.713684,58.077862,18.974974,0.056652,1.000000,2.000000,1.000000 4.000000,4.000000,863.531311,406.251617,55.346107,19.024071,0.041313,1.000000,2.000000,1.000000 4.000000,5.000000,864.631836,384.256775,59.076122,20.025723,0.055813,1.000000,2.000000,1.000000 4.000000,6.000000,868.370361,338.274139,55.370914,19.997459,0.023175,1.000000,2.000000,1.000000 4.000000,7.000000,867.075684,295.266754,53.084114,18.027641,0.061556,1.000000,2.000000,1.000000 4.000000,8.000000,869.549683,273.786804,53.008556,15.016782,0.023861,1.000000,2.000000,1.000000 4.000000,9.000000,870.240051,251.640945,53.152523,15.960174,0.076467,1.000000,2.000000,1.000000 4.000000,10.000000,870.939392,229.788177,54.084824,17.028675,0.060452,1.000000,2.000000,1.000000 4.000000,11.000000,873.316956,208.291275,57.036026,17.024061,0.040075,1.000000,2.000000,1.000000 4.000000,12.000000,868.860657,185.766296,59.033710,15.992852,0.038887,1.000000,2.000000,1.000000 4.000000,13.000000,866.733887,165.265167,48.344200,15.997561,0.025783,1.000000,2.000000,1.000000 4.000000,14.000000,874.338257,144.302628,60.709812,18.014011,0.021658,1.000000,2.000000,1.000000 4.000000,15.000000,870.296692,122.779686,57.008671,16.999865,0.022537,1.000000,2.000000,1.000000 4.000000,16.000000,877.053406,101.315872,56.000572,16.999327,0.004987,1.000000,2.000000,1.000000 4.000000,17.000000,876.135925,80.261360,63.072880,21.926056,0.052543,1.000000,2.000000,1.000000 4.000000,18.000000,873.591736,58.803368,55.010193,19.015142,0.023122,1.000000,2.000000,1.000000 4.000000,19.000000,873.361267,39.295696,55.101849,18.027330,0.059451,1.000000,2.000000,1.000000 4.000000,20.000000,581.988037,113.343704,49.606312,21.429558,2.058318,1.000000,2.000000,1.000000 4.000000,21.000000,603.592529,192.952515,61.199299,17.992062,0.528254,1.000000,2.000000,1.000000 4.000000,22.000000,614.698425,171.507690,62.312763,20.226791,0.534217,1.000000,2.000000,1.000000 4.000000,23.000000,865.831665,479.257812,55.008179,18.015068,0.023175,1.000000,2.000000,1.000000 4.000000,24.000000,866.802002,552.770386,59.109715,19.026510,0.055762,1.000000,2.000000,1.000000 4.000000,25.000000,653.579773,95.200470,60.683578,20.181601,0.498903,1.000000,2.000000,1.000000 4.000000,26.000000,863.330444,575.747437,59.008324,17.013824,0.021926,1.000000,2.000000,1.000000 4.000000,27.000000,801.051208,502.441956,38.354935,12.996209,0.031308,1.000000,2.000000,1.000000 4.000000,28.000000,803.651123,482.452911,42.999828,17.998848,0.004986,1.000000,2.000000,1.000000 4.000000,29.000000,799.995300,413.435669,55.835213,21.984022,0.041351,1.000000,2.000000,1.000000 4.000000,30.000000,799.937439,390.940979,53.009655,18.015547,0.023861,1.000000,2.000000,1.000000 4.000000,31.000000,800.229797,366.434692,61.385910,22.999046,0.021335,1.000000,2.000000,1.000000 4.000000,32.000000,801.823853,342.919983,59.027927,20.025820,0.055020,1.000000,2.000000,1.000000 4.000000,33.000000,799.468201,318.431305,61.351185,20.995331,0.021386,1.000000,2.000000,1.000000 4.000000,34.000000,798.581909,295.925201,50.130440,16.030123,0.064899,1.000000,2.000000,1.000000 4.000000,35.000000,800.337646,272.955963,59.033760,21.053829,0.038887,1.000000,2.000000,1.000000 4.000000,36.000000,795.314819,248.910355,70.569420,18.991577,0.033534,1.000000,2.000000,1.000000 4.000000,37.000000,800.921875,227.438110,57.377651,20.996958,0.022554,1.000000,2.000000,1.000000 4.000000,38.000000,802.537231,204.445343,53.998596,18.002922,0.004987,1.000000,2.000000,1.000000 4.000000,39.000000,802.191406,181.444641,62.170479,21.024992,0.053357,1.000000,2.000000,1.000000 4.000000,40.000000,808.581604,161.480667,50.009857,17.016005,0.024973,1.000000,2.000000,1.000000 4.000000,41.000000,820.394531,104.043533,35.012577,10.023525,0.033562,1.000000,2.000000,1.000000 4.000000,42.000000,814.957703,120.006729,44.726017,14.986160,0.050360,1.000000,2.000000,1.000000 4.000000,43.000000,808.850342,141.474930,57.999355,17.999865,0.004986,1.000000,2.000000,1.000000 4.000000,44.000000,865.496826,613.763306,71.237389,20.025267,0.061249,1.000000,2.000000,1.000000 4.000000,45.000000,640.441040,123.136246,59.479527,17.442724,0.468634,1.000000,2.000000,1.000000 4.000000,46.000000,663.183411,74.248657,54.838978,20.142998,0.477114,1.000000,2.000000,1.000000 4.000000,47.000000,403.055542,32.499451,49.429176,20.878643,0.294457,1.000000,2.000000,1.000000 4.000000,48.000000,224.269211,156.560898,48.533737,15.796021,0.280426,1.000000,2.000000,1.000000 4.000000,49.000000,227.179840,134.031540,58.660728,19.416958,0.212518,1.000000,2.000000,1.000000 4.000000,50.000000,232.525925,105.100891,47.361622,12.606475,0.244716,1.000000,2.000000,1.000000 4.000000,51.000000,239.130432,84.133942,57.559597,17.205650,0.245521,1.000000,2.000000,1.000000 4.000000,52.000000,250.864685,37.192009,52.476036,16.744921,0.259357,1.000000,2.000000,1.000000 4.000000,53.000000,259.076996,11.408745,52.224308,18.382116,0.259352,1.000000,2.000000,1.000000 4.000000,54.000000,412.569977,8.264393,52.784271,20.127829,0.254576,1.000000,2.000000,1.000000 4.000000,55.000000,397.466949,56.837860,47.803783,20.603168,0.280402,1.000000,2.000000,1.000000 4.000000,56.000000,690.812378,22.585087,46.529751,17.474533,0.497437,1.000000,2.000000,1.000000 4.000000,57.000000,386.527802,101.009201,49.999165,18.002098,0.288795,1.000000,2.000000,1.000000 4.000000,58.000000,291.536957,203.392975,68.849144,13.593703,0.271138,1.000000,2.000000,1.000000 4.000000,59.000000,196.664825,177.422668,34.386246,11.382737,0.214009,1.000000,2.000000,1.000000 4.000000,60.000000,235.401978,188.550995,46.173199,14.554783,0.313068,1.000000,2.000000,1.000000 4.000000,61.000000,343.983521,214.158020,33.330059,11.401601,0.279084,1.000000,2.000000,1.000000 4.000000,62.000000,378.937469,223.332855,36.283489,13.139219,0.202410,1.000000,2.000000,1.000000 4.000000,63.000000,420.977692,215.542938,51.185623,14.316451,0.202351,1.000000,2.000000,1.000000 4.000000,64.000000,423.585052,194.055786,39.629269,14.783232,0.243567,1.000000,2.000000,1.000000 4.000000,65.000000,431.546661,174.767807,44.125736,15.295462,0.202357,1.000000,2.000000,1.000000 4.000000,66.000000,436.278809,155.118011,44.645836,15.517905,0.233515,1.000000,2.000000,1.000000 4.000000,67.000000,442.522095,136.058823,36.380856,16.493109,0.249875,1.000000,2.000000,1.000000 4.000000,68.000000,443.493164,112.154144,34.381458,14.557505,0.271212,1.000000,2.000000,1.000000 4.000000,69.000000,454.082947,94.205734,43.304165,15.801169,0.289707,1.000000,2.000000,1.000000 4.000000,70.000000,469.542023,48.447506,53.366360,15.738791,0.231930,1.000000,2.000000,1.000000 4.000000,71.000000,473.426575,25.301449,52.435692,20.863649,0.259357,1.000000,2.000000,1.000000 4.000000,72.000000,355.095398,191.714859,69.501114,14.536552,0.225260,1.000000,2.000000,1.000000 4.000000,73.000000,361.205658,169.743362,65.125206,15.771891,0.257521,1.000000,2.000000,1.000000 4.000000,74.000000,364.822815,146.261856,71.466568,19.198668,0.267429,1.000000,2.000000,1.000000 4.000000,75.000000,861.155212,316.241547,46.009968,15.998247,0.026732,1.000000,2.000000,1.000000 4.000000,76.000000,1004.786377,480.298859,36.891365,19.015787,0.023860,1.000000,2.000000,1.000000 4.000000,77.000000,1008.264099,416.321930,29.983509,16.969967,0.029385,1.000000,2.000000,1.000000 4.000000,78.000000,1011.225281,228.485260,23.609488,12.000248,0.004987,1.000000,2.000000,1.000000 4.000000,79.000000,1007.049561,500.467804,31.970903,14.001167,0.004986,1.000000,2.000000,1.000000 4.000000,80.000000,1008.496948,521.406006,29.006104,14.004944,-0.000000,1.000000,2.000000,1.000000 4.000000,81.000000,1010.950134,541.260620,25.128534,13.954017,0.069444,1.000000,2.000000,1.000000 4.000000,82.000000,1006.045349,560.813599,34.281883,14.018928,0.025760,1.000000,2.000000,1.000000 4.000000,83.000000,994.265381,616.405273,57.560669,19.999758,0.004987,1.000000,2.000000,1.000000 4.000000,84.000000,1002.352417,580.843994,41.695107,15.996017,0.024225,1.000000,2.000000,1.000000 4.000000,85.000000,830.973572,317.588104,601.306335,131.034561,1.597408,1.000000,8.000000,1.000000 4.000000,86.000000,675.644653,479.705933,288.578522,79.649864,1.080890,1.000000,8.000000,1.000000 4.000000,87.000000,650.322693,88.630600,246.856430,78.580940,2.079844,1.000000,8.000000,1.000000 4.000000,88.000000,419.098907,105.285767,215.129578,124.403229,1.815125,1.000000,8.000000,1.000000 4.000000,89.000000,236.309311,78.185181,177.926636,67.649208,1.814270,1.000000,8.000000,1.000000 4.000000,90.000000,623.071472,357.654388,52.322197,23.703571,2.682838,1.000000,2.000000,1.000000 4.000000,91.000000,622.142212,379.772491,32.694595,12.477630,2.737670,1.000000,2.000000,1.000000 4.000000,92.000000,626.691284,396.732788,35.848690,13.389823,2.745336,1.000000,2.000000,1.000000 4.000000,93.000000,635.998657,412.117188,34.665302,12.974297,2.815478,1.000000,2.000000,1.000000 4.000000,94.000000,644.310547,427.216919,34.884693,14.760878,2.670132,1.000000,2.000000,1.000000 4.000000,95.000000,652.845276,443.201141,30.184229,13.376966,2.759721,1.000000,2.000000,1.000000 4.000000,96.000000,660.412537,457.940277,35.341030,14.800020,2.708191,1.000000,2.000000,1.000000 4.000000,97.000000,673.811707,490.206268,31.305664,16.545584,2.682903,1.000000,2.000000,1.000000 4.000000,98.000000,683.623779,505.318726,31.385458,16.155708,2.754240,1.000000,2.000000,1.000000 4.000000,99.000000,689.614929,520.524658,32.310871,14.299405,2.766096,1.000000,2.000000,1.000000 4.000000,100.000000,698.498718,536.880798,34.540131,13.926682,2.760677,1.000000,2.000000,1.000000 4.000000,101.000000,705.300232,552.464661,28.381611,12.513257,2.699065,1.000000,2.000000,1.000000 4.000000,102.000000,712.720215,568.500854,34.434406,16.100937,2.682878,1.000000,2.000000,1.000000 4.000000,103.000000,721.537903,585.347412,38.012299,13.863899,2.682863,1.000000,2.000000,1.000000 4.000000,104.000000,665.998657,545.114502,35.340977,12.507236,1.137460,1.000000,2.000000,1.000000 4.000000,105.000000,640.855042,501.242920,34.882229,13.415606,1.112136,1.000000,2.000000,1.000000 4.000000,106.000000,617.805481,451.027405,33.362816,12.031517,1.056685,1.000000,2.000000,1.000000 4.000000,107.000000,576.623535,387.319305,25.940348,11.627570,1.111982,1.000000,2.000000,1.000000 4.000000,108.000000,186.482986,116.315041,25.709755,13.340675,1.811314,1.000000,2.000000,1.000000 4.000000,109.000000,194.213013,87.109131,26.563465,12.016853,1.897723,1.000000,2.000000,1.000000 4.000000,110.000000,201.257217,58.444408,31.624641,12.649009,1.897446,1.000000,2.000000,1.000000 5.000000,1.000000,863.070557,525.249023,59.999294,20.000795,3.136606,1.000000,2.000000,1.000000 5.000000,2.000000,864.209717,452.743805,54.999031,19.000343,3.136606,1.000000,2.000000,1.000000 5.000000,3.000000,860.096924,428.237946,58.077843,18.974974,0.046679,1.000000,2.000000,1.000000 5.000000,4.000000,862.459106,402.751007,55.346115,19.024080,0.031339,1.000000,2.000000,1.000000 5.000000,5.000000,863.340332,380.746246,59.076096,20.025702,0.045840,1.000000,2.000000,1.000000 5.000000,6.000000,866.619934,334.728638,55.370880,19.997429,0.013202,1.000000,2.000000,1.000000 5.000000,7.000000,864.896606,291.736359,53.084091,18.027647,0.051583,1.000000,2.000000,1.000000 5.000000,8.000000,867.156067,270.232727,53.008591,15.016766,0.013888,1.000000,2.000000,1.000000 5.000000,9.000000,867.625671,248.081116,53.152504,15.960179,0.066493,1.000000,2.000000,1.000000 5.000000,10.000000,868.106995,226.222458,54.084820,17.028685,0.050478,1.000000,2.000000,1.000000 5.000000,11.000000,870.270020,204.702927,57.036095,17.024054,0.030102,1.000000,2.000000,1.000000 5.000000,12.000000,865.589417,182.223480,59.033772,15.992850,0.028914,1.000000,2.000000,1.000000 5.000000,13.000000,863.258179,161.744598,48.344158,15.997562,0.015810,1.000000,2.000000,1.000000 5.000000,14.000000,870.653259,140.707260,60.709797,18.014023,0.011685,1.000000,2.000000,1.000000 5.000000,15.000000,866.397095,119.225693,57.008709,16.999866,0.012563,1.000000,2.000000,1.000000 5.000000,16.000000,872.939270,97.695587,56.000530,16.999331,3.136606,1.000000,2.000000,1.000000 5.000000,17.000000,871.812012,76.651260,63.072887,21.926065,0.042570,1.000000,2.000000,1.000000 5.000000,18.000000,869.054016,55.219711,55.010193,19.015142,0.013149,1.000000,2.000000,1.000000 5.000000,19.000000,868.629028,35.715298,55.101864,18.027332,0.049478,1.000000,2.000000,1.000000 5.000000,20.000000,578.008728,112.665512,49.606304,21.429487,2.048346,1.000000,2.000000,1.000000 5.000000,21.000000,600.406006,192.054871,61.199310,17.992104,0.518281,1.000000,2.000000,1.000000 5.000000,22.000000,611.297485,170.500412,62.312775,20.226780,0.524244,1.000000,2.000000,1.000000 5.000000,23.000000,865.487488,475.730621,55.008213,18.015049,0.013202,1.000000,2.000000,1.000000 5.000000,24.000000,867.190918,549.229858,59.109688,19.026552,0.045789,1.000000,2.000000,1.000000 5.000000,25.000000,649.415833,93.809212,60.683620,20.181633,0.488930,1.000000,2.000000,1.000000 5.000000,26.000000,863.948669,572.240356,59.008244,17.013865,0.011951,1.000000,2.000000,1.000000 5.000000,27.000000,800.941528,499.559723,38.355015,12.996207,0.021335,1.000000,2.000000,1.000000 5.000000,28.000000,803.341919,479.545715,42.999863,17.998848,3.136606,1.000000,2.000000,1.000000 5.000000,29.000000,798.998169,410.568420,55.835167,21.984020,0.031378,1.000000,2.000000,1.000000 5.000000,30.000000,798.715820,388.075348,53.009628,18.015549,0.013887,1.000000,2.000000,1.000000 5.000000,31.000000,798.763733,363.567322,61.385868,22.999010,0.011362,1.000000,2.000000,1.000000 5.000000,32.000000,800.123169,340.037842,59.027962,20.025835,0.045044,1.000000,2.000000,1.000000 5.000000,33.000000,797.523438,315.573975,61.351143,20.995329,0.011413,1.000000,2.000000,1.000000 5.000000,34.000000,796.412842,293.077820,50.130455,16.030075,0.054925,1.000000,2.000000,1.000000 5.000000,35.000000,797.939270,270.092224,59.033703,21.053820,0.028914,1.000000,2.000000,1.000000 5.000000,36.000000,792.676880,246.097870,70.569420,18.991583,0.023561,1.000000,2.000000,1.000000 5.000000,37.000000,798.069519,224.570770,57.377647,20.996960,0.012581,1.000000,2.000000,1.000000 5.000000,38.000000,799.455505,201.563126,53.998592,18.002935,3.136609,1.000000,2.000000,1.000000 5.000000,39.000000,798.880310,178.566956,62.170509,21.024990,0.043383,1.000000,2.000000,1.000000 5.000000,40.000000,805.071167,158.540253,50.009834,17.016018,0.014999,1.000000,2.000000,1.000000 5.000000,41.000000,816.310608,100.988159,35.012611,10.023528,0.023588,1.000000,2.000000,1.000000 5.000000,42.000000,811.033142,117.004784,44.726021,14.986151,0.040387,1.000000,2.000000,1.000000 5.000000,43.000000,805.140381,138.532883,57.999279,17.999866,3.136603,1.000000,2.000000,1.000000 5.000000,44.000000,866.494263,610.232788,71.237366,20.025309,0.051276,1.000000,2.000000,1.000000 5.000000,45.000000,636.556519,121.874611,59.479511,17.442738,0.458661,1.000000,2.000000,1.000000 5.000000,46.000000,658.810181,72.762642,54.838924,20.142988,0.467141,1.000000,2.000000,1.000000 5.000000,47.000000,398.278870,33.609825,49.429195,20.878647,0.284484,1.000000,2.000000,1.000000 5.000000,48.000000,220.738724,159.448166,48.533726,15.796028,0.270453,1.000000,2.000000,1.000000 5.000000,49.000000,223.424484,136.890900,58.660740,19.416958,0.202544,1.000000,2.000000,1.000000 5.000000,50.000000,228.481781,107.908363,47.361614,12.606478,0.234742,1.000000,2.000000,1.000000 5.000000,51.000000,234.876831,86.876595,57.559597,17.205645,0.235548,1.000000,2.000000,1.000000 5.000000,52.000000,246.142319,39.819962,52.476032,16.744928,0.249384,1.000000,2.000000,1.000000 5.000000,53.000000,254.026321,14.237019,51.922169,18.669701,0.266028,1.000000,2.000000,1.000000 5.000000,54.000000,407.561127,9.240948,52.784264,20.210554,0.244602,1.000000,2.000000,1.000000 5.000000,55.000000,392.933258,58.002747,47.803764,20.603172,0.270429,1.000000,2.000000,1.000000 5.000000,56.000000,685.922485,20.826099,46.529774,17.474564,0.487463,1.000000,2.000000,1.000000 5.000000,57.000000,382.435181,102.280975,49.999149,18.002090,0.278822,1.000000,2.000000,1.000000 5.000000,58.000000,288.470154,205.606995,68.849121,13.593704,0.261163,1.000000,2.000000,1.000000 5.000000,59.000000,193.343704,180.584183,34.386230,11.382741,0.204035,1.000000,2.000000,1.000000 5.000000,60.000000,232.189941,191.325623,46.173187,14.554763,0.303095,1.000000,2.000000,1.000000 5.000000,61.000000,341.021454,215.848480,33.330048,11.401598,0.269111,1.000000,2.000000,1.000000 5.000000,62.000000,376.065186,224.674286,36.283447,13.139214,0.192437,1.000000,2.000000,1.000000 5.000000,63.000000,418.025696,216.465469,51.185585,14.316457,0.192378,1.000000,2.000000,1.000000 5.000000,64.000000,420.418518,194.953339,39.629261,14.783241,0.233594,1.000000,2.000000,1.000000 5.000000,65.000000,428.187347,175.586945,44.125748,15.295472,0.192383,1.000000,2.000000,1.000000 5.000000,66.000000,432.723358,155.890930,44.645840,15.517920,0.223542,1.000000,2.000000,1.000000 5.000000,67.000000,438.366089,137.287201,36.401230,16.483883,0.273348,1.000000,2.000000,1.000000 5.000000,68.000000,439.508850,112.857262,34.381454,14.557504,0.261239,1.000000,2.000000,1.000000 5.000000,69.000000,449.919067,94.804131,43.304134,15.801160,0.279734,1.000000,2.000000,1.000000 5.000000,70.000000,464.921082,48.894020,53.366337,15.738785,0.221955,1.000000,2.000000,1.000000 5.000000,71.000000,468.574585,25.710358,52.435677,20.863649,0.249383,1.000000,2.000000,1.000000 5.000000,72.000000,351.908936,193.295609,69.501122,14.536543,0.215287,1.000000,2.000000,1.000000 5.000000,73.000000,357.799744,171.264282,65.125175,15.771894,0.247548,1.000000,2.000000,1.000000 5.000000,74.000000,361.182587,147.747879,71.466568,19.198656,0.257455,1.000000,2.000000,1.000000 5.000000,75.000000,859.014160,313.266357,45.999069,16.002060,3.136607,1.000000,2.000000,1.000000 5.000000,76.000000,1004.566833,475.387512,37.133774,19.015797,0.013887,1.000000,2.000000,1.000000 5.000000,77.000000,1007.730469,411.385986,30.874313,16.969986,0.019411,1.000000,2.000000,1.000000 5.000000,78.000000,1009.799255,223.513443,26.461838,12.000247,3.136606,1.000000,2.000000,1.000000 5.000000,79.000000,1006.944946,495.608459,32.110107,13.996002,-0.000000,1.000000,2.000000,1.000000 5.000000,80.000000,1008.496948,516.593933,29.006104,13.994995,-0.000000,1.000000,2.000000,1.000000 5.000000,81.000000,1011.044922,536.272461,24.783361,13.953316,0.059471,1.000000,2.000000,1.000000 5.000000,82.000000,1006.239624,555.879700,33.746151,14.018911,0.015787,1.000000,2.000000,1.000000 5.000000,83.000000,994.776184,611.592896,56.547947,19.999762,3.136606,1.000000,2.000000,1.000000 5.000000,84.000000,1002.641479,575.944946,40.949108,15.996016,0.014253,1.000000,2.000000,1.000000 5.000000,85.000000,829.018799,314.416565,601.306274,131.034561,1.587435,1.000000,8.000000,1.000000 5.000000,86.000000,675.314514,478.075562,288.578522,79.649872,1.070916,1.000000,8.000000,1.000000 5.000000,87.000000,645.472595,88.422897,244.241348,78.569832,2.069870,1.000000,8.000000,1.000000 5.000000,88.000000,415.047272,106.232529,215.129593,124.403259,1.805151,1.000000,8.000000,1.000000 5.000000,89.000000,232.262146,79.839409,180.222610,67.649193,1.804297,1.000000,8.000000,1.000000 5.000000,90.000000,621.526611,356.554413,52.322197,23.703581,2.672866,1.000000,2.000000,1.000000 5.000000,91.000000,620.818054,378.680603,32.694611,12.477595,2.727696,1.000000,2.000000,1.000000 5.000000,92.000000,625.536011,395.594635,35.848679,13.389781,2.735363,1.000000,2.000000,1.000000 5.000000,93.000000,634.996277,410.885376,34.665287,12.974266,2.805505,1.000000,2.000000,1.000000 5.000000,94.000000,643.458496,425.901703,34.884712,14.760893,2.660159,1.000000,2.000000,1.000000 5.000000,95.000000,652.152161,441.799835,30.184278,13.376930,2.749749,1.000000,2.000000,1.000000 5.000000,96.000000,659.866028,456.462830,35.341000,14.800063,2.698217,1.000000,2.000000,1.000000 5.000000,97.000000,673.206299,488.312439,31.294230,16.551615,2.699937,1.000000,2.000000,1.000000 5.000000,98.000000,683.389832,503.471710,31.383236,16.156864,2.756160,1.000000,2.000000,1.000000 5.000000,99.000000,689.691101,518.752930,32.310833,14.299481,2.756124,1.000000,2.000000,1.000000 5.000000,100.000000,698.737671,535.019531,34.540073,13.926644,2.750705,1.000000,2.000000,1.000000 5.000000,101.000000,705.694336,550.534912,28.381639,12.513277,2.689093,1.000000,2.000000,1.000000 5.000000,102.000000,713.273743,566.496338,34.434429,16.100958,2.672904,1.000000,2.000000,1.000000 5.000000,103.000000,722.259094,583.254211,38.012291,13.863896,2.672887,1.000000,2.000000,1.000000 5.000000,104.000000,666.321289,543.576965,35.340977,12.507242,1.127486,1.000000,2.000000,1.000000 5.000000,105.000000,640.901245,499.781158,34.885136,13.414461,1.089337,1.000000,2.000000,1.000000 5.000000,106.000000,617.192200,449.975311,33.362816,12.031491,1.046711,1.000000,2.000000,1.000000 5.000000,107.000000,575.376892,386.680969,25.940384,11.627533,1.102007,1.000000,2.000000,1.000000 5.000000,108.000000,182.552948,119.581154,25.709764,13.340671,1.801341,1.000000,2.000000,1.000000 5.000000,109.000000,189.991333,90.299599,26.563465,12.016859,1.887749,1.000000,2.000000,1.000000 5.000000,110.000000,196.749924,61.566559,31.624640,12.649028,1.887520,1.000000,2.000000,1.000000 6.000000,1.000000,863.344543,521.247253,60.007595,19.998020,0.001713,1.000000,2.000000,1.000000 6.000000,2.000000,863.601196,449.234131,54.999008,19.000343,3.126633,1.000000,2.000000,1.000000 6.000000,3.000000,859.244141,424.770477,58.077824,18.975006,0.036706,1.000000,2.000000,1.000000 6.000000,4.000000,861.352173,399.261261,55.346134,19.024061,0.021365,1.000000,2.000000,1.000000 6.000000,5.000000,862.023743,377.222565,59.076118,20.025728,0.034966,1.000000,2.000000,1.000000 6.000000,6.000000,864.834412,331.200775,55.370888,19.997465,0.003229,1.000000,2.000000,1.000000 6.000000,7.000000,862.682190,288.227844,53.084099,18.027668,0.041609,1.000000,2.000000,1.000000 6.000000,8.000000,864.727295,266.702759,53.008579,15.016773,0.003915,1.000000,2.000000,1.000000 6.000000,9.000000,864.975891,244.547470,53.152496,15.960184,0.056517,1.000000,2.000000,1.000000 6.000000,10.000000,865.239136,222.685181,54.084766,17.028692,0.040505,1.000000,2.000000,1.000000 6.000000,11.000000,867.187500,201.145126,57.036087,17.024050,0.020129,1.000000,2.000000,1.000000 6.000000,12.000000,862.282898,178.713486,59.033718,15.992854,0.018940,1.000000,2.000000,1.000000 6.000000,13.000000,859.747559,158.258865,48.344196,15.997552,0.005837,1.000000,2.000000,1.000000 6.000000,14.000000,866.932434,137.148834,60.709789,18.014025,0.001712,1.000000,2.000000,1.000000 6.000000,15.000000,862.604004,115.210907,56.999954,17.002483,3.126630,1.000000,2.000000,1.000000 6.000000,16.000000,868.789490,94.116478,56.000584,16.999332,3.126633,1.000000,2.000000,1.000000 6.000000,17.000000,867.452271,73.084457,63.072872,21.926060,0.032596,1.000000,2.000000,1.000000 6.000000,18.000000,864.480591,51.681473,55.010170,19.015137,0.003176,1.000000,2.000000,1.000000 6.000000,19.000000,863.861145,32.182274,55.101894,18.027334,0.039505,1.000000,2.000000,1.000000 6.000000,20.000000,574.022827,112.027054,49.606300,21.429567,2.038371,1.000000,2.000000,1.000000 6.000000,21.000000,597.210754,191.189102,61.199284,17.992088,0.508307,1.000000,2.000000,1.000000 6.000000,22.000000,607.886719,169.527100,62.312767,20.226757,0.514270,1.000000,2.000000,1.000000 6.000000,23.000000,865.108276,472.207031,55.008156,18.015047,0.003228,1.000000,2.000000,1.000000 6.000000,24.000000,867.544495,545.685608,59.109730,19.026533,0.035815,1.000000,2.000000,1.000000 6.000000,25.000000,645.238281,92.459511,60.683590,20.181614,0.478957,1.000000,2.000000,1.000000 6.000000,26.000000,864.531921,568.727234,59.008293,17.013889,0.001979,1.000000,2.000000,1.000000 6.000000,27.000000,800.803040,496.678650,38.354965,12.996188,0.011362,1.000000,2.000000,1.000000 6.000000,28.000000,803.003662,476.641724,42.999863,17.998840,3.126633,1.000000,2.000000,1.000000 6.000000,29.000000,797.972229,407.711151,55.835186,21.984009,0.021405,1.000000,2.000000,1.000000 6.000000,30.000000,797.465759,385.222046,53.009617,18.015537,0.003915,1.000000,2.000000,1.000000 6.000000,31.000000,797.269104,360.714722,61.385876,22.999043,0.001389,1.000000,2.000000,1.000000 6.000000,32.000000,798.393921,337.172974,59.028004,20.025805,0.035072,1.000000,2.000000,1.000000 6.000000,33.000000,795.550232,312.736176,61.351208,20.995346,0.001439,1.000000,2.000000,1.000000 6.000000,34.000000,794.215332,290.252197,50.130394,16.030090,0.044952,1.000000,2.000000,1.000000 6.000000,35.000000,795.512390,267.252502,59.033718,21.053825,0.018940,1.000000,2.000000,1.000000 6.000000,36.000000,790.011047,243.311844,70.569504,18.991562,0.013588,1.000000,2.000000,1.000000 6.000000,37.000000,795.188721,221.732071,57.377644,20.996958,0.002608,1.000000,2.000000,1.000000 6.000000,38.000000,796.345215,198.711609,53.998627,18.002930,3.126633,1.000000,2.000000,1.000000 6.000000,39.000000,795.540649,175.722443,62.170490,21.024986,0.033410,1.000000,2.000000,1.000000 6.000000,40.000000,801.531433,155.634995,50.009846,17.016010,0.005026,1.000000,2.000000,1.000000 6.000000,41.000000,812.196411,97.973656,35.012585,10.023527,0.013615,1.000000,2.000000,1.000000 6.000000,42.000000,807.078857,114.042114,44.725971,14.986156,0.030414,1.000000,2.000000,1.000000 6.000000,43.000000,801.401245,135.627869,57.999302,17.999861,3.126632,1.000000,2.000000,1.000000 6.000000,44.000000,867.456177,606.692383,71.237389,20.025326,0.041302,1.000000,2.000000,1.000000 6.000000,45.000000,632.659546,120.651840,59.479519,17.442760,0.448688,1.000000,2.000000,1.000000 6.000000,46.000000,654.422363,71.320358,54.838902,20.142977,0.457168,1.000000,2.000000,1.000000 6.000000,47.000000,393.513428,34.767765,49.429188,20.878643,0.274511,1.000000,2.000000,1.000000 6.000000,48.000000,217.237137,162.370483,48.533714,15.796027,0.260479,1.000000,2.000000,1.000000 6.000000,49.000000,219.697830,139.787552,58.660740,19.416960,0.192571,1.000000,2.000000,1.000000 6.000000,50.000000,224.465820,110.756027,47.361622,12.606472,0.224769,1.000000,2.000000,1.000000 6.000000,51.000000,230.650787,89.661530,57.559597,17.205654,0.225574,1.000000,2.000000,1.000000 6.000000,52.000000,241.446442,42.494881,52.476040,16.744926,0.239410,1.000000,2.000000,1.000000 6.000000,53.000000,249.076401,16.828846,51.922176,18.681547,0.256055,1.000000,2.000000,1.000000 6.000000,54.000000,402.563110,10.261992,52.784237,20.304182,0.234629,1.000000,2.000000,1.000000 6.000000,55.000000,388.411407,59.212799,47.803761,20.603174,0.260456,1.000000,2.000000,1.000000 6.000000,56.000000,681.015320,19.115992,46.529743,17.474560,0.477490,1.000000,2.000000,1.000000 6.000000,57.000000,378.355469,103.593536,49.999161,18.002098,0.268848,1.000000,2.000000,1.000000 6.000000,58.000000,285.425537,207.851517,68.849159,13.593709,0.251190,1.000000,2.000000,1.000000 6.000000,59.000000,190.054306,183.778687,34.386246,11.382751,0.194062,1.000000,2.000000,1.000000 6.000000,60.000000,229.005753,194.132156,46.173187,14.554766,0.293121,1.000000,2.000000,1.000000 6.000000,61.000000,338.076324,217.568390,33.330036,11.401578,0.259138,1.000000,2.000000,1.000000 6.000000,62.000000,373.206390,226.044281,36.283463,13.139216,0.182464,1.000000,2.000000,1.000000 6.000000,63.000000,415.082947,217.417389,51.185600,14.316455,0.182404,1.000000,2.000000,1.000000 6.000000,64.000000,417.261108,195.882477,39.629284,14.783228,0.223620,1.000000,2.000000,1.000000 6.000000,65.000000,425.193542,175.814682,44.147125,15.288060,0.213524,1.000000,2.000000,1.000000 6.000000,66.000000,429.175751,156.699265,44.645844,15.517920,0.213569,1.000000,2.000000,1.000000 6.000000,67.000000,435.037628,137.519379,36.380867,16.493109,0.229929,1.000000,2.000000,1.000000 6.000000,68.000000,435.531769,113.600075,34.381462,14.557506,0.251266,1.000000,2.000000,1.000000 6.000000,69.000000,445.761475,95.444023,43.304146,15.801166,0.269761,1.000000,2.000000,1.000000 6.000000,70.000000,460.304840,49.386574,53.366375,15.738791,0.211982,1.000000,2.000000,1.000000 6.000000,71.000000,463.726898,26.167622,52.435696,20.863647,0.239410,1.000000,2.000000,1.000000 6.000000,72.000000,348.738403,194.908066,69.501144,14.536543,0.205313,1.000000,2.000000,1.000000 6.000000,73.000000,354.409210,172.819092,65.125160,15.771884,0.237574,1.000000,2.000000,1.000000 6.000000,74.000000,357.557373,149.270111,71.466583,19.198660,0.247482,1.000000,2.000000,1.000000 6.000000,75.000000,857.014893,309.815460,45.999092,16.002035,3.126633,1.000000,2.000000,1.000000 6.000000,76.000000,1004.323914,470.477539,37.426922,19.015772,0.003914,1.000000,2.000000,1.000000 6.000000,77.000000,1007.172974,406.451416,31.815613,16.969988,0.009437,1.000000,2.000000,1.000000 6.000000,78.000000,1008.378845,218.540985,29.425241,12.000247,3.126633,1.000000,2.000000,1.000000 6.000000,79.000000,1006.816406,490.827881,32.367188,13.984619,-0.000000,1.000000,2.000000,1.000000 6.000000,80.000000,1008.472961,511.781372,29.054077,13.983612,-0.000000,1.000000,2.000000,1.000000 6.000000,81.000000,1011.115479,531.286621,24.489475,13.952802,0.049496,1.000000,2.000000,1.000000 6.000000,82.000000,1006.410400,550.946960,33.261360,14.018940,0.005813,1.000000,2.000000,1.000000 6.000000,83.000000,995.312134,606.779663,55.681160,19.999796,3.126633,1.000000,2.000000,1.000000 6.000000,84.000000,1002.907471,571.047058,40.254105,15.996081,0.004278,1.000000,2.000000,1.000000 6.000000,85.000000,827.032532,311.264740,601.306335,131.034607,1.577461,1.000000,8.000000,1.000000 6.000000,86.000000,674.968018,476.448486,288.578522,79.649887,1.060943,1.000000,8.000000,1.000000 6.000000,87.000000,640.651978,88.231567,241.712204,78.559280,2.059897,1.000000,8.000000,1.000000 6.000000,88.000000,411.005310,107.219643,215.129608,124.403259,1.795178,1.000000,8.000000,1.000000 6.000000,89.000000,228.225143,81.511162,182.559967,67.649193,1.794324,1.000000,8.000000,1.000000 6.000000,90.000000,619.970947,355.469818,52.322220,23.703606,2.662891,1.000000,2.000000,1.000000 6.000000,91.000000,619.482971,377.601929,32.694607,12.477628,2.717723,1.000000,2.000000,1.000000 6.000000,92.000000,624.369446,394.468109,35.848709,13.389786,2.725390,1.000000,2.000000,1.000000 6.000000,93.000000,633.981812,409.663788,34.665279,12.974257,2.795532,1.000000,2.000000,1.000000 6.000000,94.000000,642.593201,424.594849,34.884693,14.760871,2.650185,1.000000,2.000000,1.000000 6.000000,95.000000,651.445068,440.405579,30.184296,13.376953,2.739775,1.000000,2.000000,1.000000 6.000000,96.000000,659.304749,454.990906,35.340946,14.800044,2.688244,1.000000,2.000000,1.000000 6.000000,97.000000,673.344910,486.983276,31.305668,16.545580,2.662956,1.000000,2.000000,1.000000 6.000000,98.000000,683.456421,501.897034,31.385401,16.155722,2.734292,1.000000,2.000000,1.000000 6.000000,99.000000,689.749695,516.980347,32.310822,14.299421,2.746150,1.000000,2.000000,1.000000 6.000000,100.000000,698.957947,533.156067,34.540108,13.926706,2.740731,1.000000,2.000000,1.000000 6.000000,101.000000,706.068848,548.601135,28.381641,12.513254,2.679120,1.000000,2.000000,1.000000 6.000000,102.000000,713.807129,564.486206,34.434395,16.100943,2.662930,1.000000,2.000000,1.000000 6.000000,103.000000,722.959229,581.153625,38.012257,13.863955,2.662915,1.000000,2.000000,1.000000 6.000000,104.000000,666.628479,542.036255,35.341000,12.507210,1.117512,1.000000,2.000000,1.000000 6.000000,105.000000,640.614929,498.675079,34.882282,13.415616,1.092190,1.000000,2.000000,1.000000 6.000000,106.000000,616.568359,448.929260,33.362778,12.031453,1.036737,1.000000,2.000000,1.000000 6.000000,107.000000,574.123840,386.055145,25.940346,11.627553,1.092035,1.000000,2.000000,1.000000 6.000000,108.000000,178.655670,122.886276,25.709759,13.340678,1.791368,1.000000,2.000000,1.000000 6.000000,109.000000,185.801682,93.532013,26.563463,12.016850,1.877775,1.000000,2.000000,1.000000 6.000000,110.000000,192.272736,64.732498,31.624636,12.649010,1.877500,1.000000,2.000000,1.000000 7.000000,1.000000,863.419189,517.742798,60.007599,19.998034,3.133331,1.000000,2.000000,1.000000 7.000000,2.000000,862.957642,445.730652,54.999031,19.000343,3.116660,1.000000,2.000000,1.000000 7.000000,3.000000,858.356934,421.311707,58.077885,18.974968,0.026732,1.000000,2.000000,1.000000 7.000000,4.000000,860.210388,395.782745,55.346184,19.024069,0.011393,1.000000,2.000000,1.000000 7.000000,5.000000,860.652527,373.764740,59.076130,20.025682,0.025893,1.000000,2.000000,1.000000 7.000000,6.000000,863.013611,327.690887,55.370914,19.997446,3.134848,1.000000,2.000000,1.000000 7.000000,7.000000,860.443359,284.714081,53.084087,18.027660,0.030591,1.000000,2.000000,1.000000 7.000000,8.000000,862.263306,263.197144,53.008602,15.016780,3.135534,1.000000,2.000000,1.000000 7.000000,9.000000,862.290894,241.040421,53.152477,15.960182,0.046542,1.000000,2.000000,1.000000 7.000000,10.000000,862.336243,219.176651,54.084839,17.028673,0.030532,1.000000,2.000000,1.000000 7.000000,11.000000,864.069580,197.618225,57.036076,17.024044,0.010155,1.000000,2.000000,1.000000 7.000000,12.000000,859.187927,174.238983,58.999821,16.002041,3.116661,1.000000,2.000000,1.000000 7.000000,13.000000,856.202271,154.808319,48.344151,15.997562,3.137456,1.000000,2.000000,1.000000 7.000000,14.000000,863.176270,133.627670,60.709854,18.014019,3.133331,1.000000,2.000000,1.000000 7.000000,15.000000,858.492615,112.235283,57.008751,16.999866,3.134209,1.000000,2.000000,1.000000 7.000000,16.000000,864.604065,90.578949,56.000565,16.999325,3.116659,1.000000,2.000000,1.000000 7.000000,17.000000,863.057251,69.561302,63.072910,21.926065,0.022623,1.000000,2.000000,1.000000 7.000000,18.000000,859.872375,48.189026,55.010120,19.015137,3.134795,1.000000,2.000000,1.000000 7.000000,19.000000,859.058411,28.696972,55.101833,18.027330,0.029531,1.000000,2.000000,1.000000 7.000000,20.000000,570.030762,111.428375,49.606335,21.429518,2.028399,1.000000,2.000000,1.000000 7.000000,21.000000,594.007080,190.355255,61.199287,17.992065,0.498334,1.000000,2.000000,1.000000 7.000000,22.000000,604.466431,168.587814,62.312790,20.226791,0.504297,1.000000,2.000000,1.000000 7.000000,23.000000,864.693909,468.687469,55.008148,18.015043,3.134848,1.000000,2.000000,1.000000 7.000000,24.000000,867.862793,542.138000,59.109772,19.026575,0.025842,1.000000,2.000000,1.000000 7.000000,25.000000,641.047607,91.151588,60.683609,20.181612,0.468983,1.000000,2.000000,1.000000 7.000000,26.000000,865.080139,565.208557,59.008293,17.013901,3.133598,1.000000,2.000000,1.000000 7.000000,27.000000,800.635864,493.799194,38.354942,12.996211,0.001389,1.000000,2.000000,1.000000 7.000000,28.000000,802.636475,473.741211,42.999825,17.998850,3.116659,1.000000,2.000000,1.000000 7.000000,29.000000,796.917908,404.864319,55.835220,21.983990,0.011432,1.000000,2.000000,1.000000 7.000000,30.000000,796.187134,382.381378,53.009571,18.015553,3.135533,1.000000,2.000000,1.000000 7.000000,31.000000,795.746155,357.877258,61.385872,22.999037,3.133008,1.000000,2.000000,1.000000 7.000000,32.000000,796.635986,334.325470,59.027992,20.025839,0.025101,1.000000,2.000000,1.000000 7.000000,33.000000,793.548828,309.918152,61.351208,20.995340,3.133059,1.000000,2.000000,1.000000 7.000000,34.000000,791.989746,287.448700,50.130459,16.030113,0.034980,1.000000,2.000000,1.000000 7.000000,35.000000,793.057373,264.437164,59.033741,21.053820,0.008967,1.000000,2.000000,1.000000 7.000000,36.000000,787.317566,240.552582,70.569458,18.991571,0.003614,1.000000,2.000000,1.000000 7.000000,37.000000,792.279724,218.922241,57.377674,20.996958,3.134227,1.000000,2.000000,1.000000 7.000000,38.000000,793.206482,195.891464,53.998604,18.002926,3.116662,1.000000,2.000000,1.000000 7.000000,39.000000,792.172791,172.911377,62.170483,21.024981,0.023437,1.000000,2.000000,1.000000 7.000000,40.000000,797.962952,152.765182,50.009892,17.016005,3.136645,1.000000,2.000000,1.000000 7.000000,41.000000,808.052368,95.000351,35.012562,10.023530,0.003642,1.000000,2.000000,1.000000 7.000000,42.000000,803.095337,111.119049,44.726048,14.986157,0.020440,1.000000,2.000000,1.000000 7.000000,43.000000,797.633118,132.760345,57.999302,17.999857,3.116659,1.000000,2.000000,1.000000 7.000000,44.000000,868.382812,603.142700,71.237419,20.025322,0.031328,1.000000,2.000000,1.000000 7.000000,45.000000,628.750549,119.467926,59.479523,17.442741,0.438714,1.000000,2.000000,1.000000 7.000000,46.000000,650.020325,69.921875,54.838928,20.142979,0.447194,1.000000,2.000000,1.000000 7.000000,47.000000,388.759827,35.973198,49.429199,20.878643,0.264538,1.000000,2.000000,1.000000 7.000000,48.000000,213.764862,165.327576,48.533722,15.796026,0.250506,1.000000,2.000000,1.000000 7.000000,49.000000,216.000244,142.721268,58.660732,19.416962,0.182597,1.000000,2.000000,1.000000 7.000000,50.000000,220.478439,113.643593,47.361626,12.606476,0.214796,1.000000,2.000000,1.000000 7.000000,51.000000,226.452713,92.488464,57.559589,17.205647,0.215601,1.000000,2.000000,1.000000 7.000000,52.000000,236.777435,45.216499,52.476032,16.744928,0.229437,1.000000,2.000000,1.000000 7.000000,53.000000,244.151093,19.475643,51.922188,18.681545,0.246081,1.000000,2.000000,1.000000 7.000000,54.000000,397.576447,11.326782,52.784248,20.410032,0.224656,1.000000,2.000000,1.000000 7.000000,55.000000,383.901825,60.467888,47.803761,20.603168,0.250482,1.000000,2.000000,1.000000 7.000000,56.000000,676.092285,17.455399,46.527496,17.474564,0.467517,1.000000,2.000000,1.000000 7.000000,57.000000,374.288971,104.946693,49.999142,18.002090,0.258875,1.000000,2.000000,1.000000 7.000000,58.000000,282.403473,210.126328,68.849129,13.593701,0.241218,1.000000,2.000000,1.000000 7.000000,59.000000,186.796921,187.005814,34.386230,11.382740,0.184088,1.000000,2.000000,1.000000 7.000000,60.000000,225.849670,196.970306,46.173195,14.554761,0.283148,1.000000,2.000000,1.000000 7.000000,61.000000,335.148621,219.317612,33.330067,11.401578,0.249165,1.000000,2.000000,1.000000 7.000000,62.000000,370.361420,227.442703,36.283459,13.139224,0.172490,1.000000,2.000000,1.000000 7.000000,63.000000,412.149811,218.398590,51.185604,14.316448,0.172431,1.000000,2.000000,1.000000 7.000000,64.000000,414.113098,196.843048,39.629261,14.783240,0.213647,1.000000,2.000000,1.000000 7.000000,65.000000,421.845062,176.697144,44.147133,15.288063,0.203550,1.000000,2.000000,1.000000 7.000000,66.000000,425.636414,157.542953,44.645828,15.517908,0.203595,1.000000,2.000000,1.000000 7.000000,67.000000,431.306732,138.305588,36.380875,16.493122,0.219956,1.000000,2.000000,1.000000 7.000000,68.000000,431.562256,114.382523,34.381447,14.557506,0.241293,1.000000,2.000000,1.000000 7.000000,69.000000,441.610382,96.125343,43.304165,15.801171,0.259787,1.000000,2.000000,1.000000 7.000000,70.000000,455.693665,49.925121,53.366344,15.738791,0.202010,1.000000,2.000000,1.000000 7.000000,71.000000,458.883972,26.673220,52.435711,20.863653,0.229437,1.000000,2.000000,1.000000 7.000000,72.000000,345.584106,196.552063,69.501160,14.536553,0.195340,1.000000,2.000000,1.000000 7.000000,73.000000,351.034332,174.407639,65.125191,15.771889,0.227601,1.000000,2.000000,1.000000 7.000000,74.000000,353.947479,150.828415,71.466560,19.198650,0.237509,1.000000,2.000000,1.000000 7.000000,75.000000,854.981323,306.384613,45.999058,16.002041,3.116661,1.000000,2.000000,1.000000 7.000000,76.000000,1004.114868,465.681030,37.770203,19.019318,-0.000000,1.000000,2.000000,1.000000 7.000000,77.000000,1006.591675,401.526367,32.816650,16.969208,-0.000000,1.000000,2.000000,1.000000 7.000000,78.000000,1006.934448,213.567535,32.440292,12.000257,3.116660,1.000000,2.000000,1.000000 7.000000,79.000000,1006.671875,486.031952,32.671959,13.973392,3.140476,1.000000,2.000000,1.000000 7.000000,80.000000,1008.428833,506.961395,29.149969,13.971607,3.141057,1.000000,2.000000,1.000000 7.000000,81.000000,1011.161743,526.302856,24.246813,13.952229,0.039524,1.000000,2.000000,1.000000 7.000000,82.000000,1006.586426,546.023193,32.878647,14.019260,3.137939,1.000000,2.000000,1.000000 7.000000,83.000000,995.825500,601.965027,54.864948,19.999748,3.116660,1.000000,2.000000,1.000000 7.000000,84.000000,1003.149780,566.261963,39.700439,15.994080,3.141593,1.000000,2.000000,1.000000 7.000000,85.000000,825.014771,308.132904,601.306396,131.034546,1.567488,1.000000,8.000000,1.000000 7.000000,86.000000,674.605286,474.824890,288.578522,79.649849,1.050969,1.000000,8.000000,1.000000 7.000000,87.000000,635.860229,88.056717,239.267120,78.549248,2.049924,1.000000,8.000000,1.000000 7.000000,88.000000,406.973419,108.246986,215.129593,124.403236,1.785205,1.000000,8.000000,1.000000 7.000000,89.000000,224.198013,83.200272,184.938843,67.649185,1.784350,1.000000,8.000000,1.000000 7.000000,90.000000,618.404480,354.400818,52.322186,23.703579,2.652918,1.000000,2.000000,1.000000 7.000000,91.000000,618.137207,376.536682,32.694633,12.477622,2.707750,1.000000,2.000000,1.000000 7.000000,92.000000,623.191711,393.353333,35.848698,13.389791,2.715417,1.000000,2.000000,1.000000 7.000000,93.000000,632.955078,408.452301,34.665340,12.974282,2.785558,1.000000,2.000000,1.000000 7.000000,94.000000,641.714966,423.296753,34.884670,14.760898,2.640212,1.000000,2.000000,1.000000 7.000000,95.000000,650.724121,439.018433,30.184233,13.376941,2.729801,1.000000,2.000000,1.000000 7.000000,96.000000,658.728882,453.524628,35.340958,14.799999,2.678270,1.000000,2.000000,1.000000 7.000000,97.000000,672.701782,485.101898,31.294296,16.551632,2.679990,1.000000,2.000000,1.000000 7.000000,98.000000,683.347046,500.187561,31.385452,16.155718,2.724320,1.000000,2.000000,1.000000 7.000000,99.000000,689.790527,515.207458,32.310818,14.299447,2.736176,1.000000,2.000000,1.000000 7.000000,100.000000,699.159668,531.290466,34.540138,13.926731,2.730757,1.000000,2.000000,1.000000 7.000000,101.000000,706.424255,546.663940,28.381666,12.513280,2.669146,1.000000,2.000000,1.000000 7.000000,102.000000,714.320618,562.471008,34.434414,16.100945,2.652958,1.000000,2.000000,1.000000 7.000000,103.000000,723.638367,579.046265,38.012276,13.863898,2.652940,1.000000,2.000000,1.000000 7.000000,104.000000,666.920410,540.492737,35.340958,12.507271,1.107540,1.000000,2.000000,1.000000 7.000000,105.000000,640.475586,497.393066,34.882244,13.415622,1.082218,1.000000,2.000000,1.000000 7.000000,106.000000,615.934204,447.889618,33.362797,12.031491,1.026764,1.000000,2.000000,1.000000 7.000000,107.000000,572.864624,385.441833,25.940336,11.627505,1.082064,1.000000,2.000000,1.000000 7.000000,108.000000,174.791580,126.230133,25.709763,13.340685,1.781395,1.000000,2.000000,1.000000 7.000000,109.000000,181.644485,96.806061,26.563459,12.016862,1.867802,1.000000,2.000000,1.000000 7.000000,110.000000,187.827972,67.943428,31.624640,12.649011,1.867526,1.000000,2.000000,1.000000 8.000000,1.000000,863.309814,514.740723,59.999256,20.000769,3.106687,1.000000,2.000000,1.000000 8.000000,2.000000,862.279419,442.233826,54.999012,19.000340,3.106686,1.000000,2.000000,1.000000 8.000000,3.000000,857.435303,417.861908,58.077858,18.974960,0.016759,1.000000,2.000000,1.000000 8.000000,4.000000,859.033997,392.315735,55.346176,19.024050,0.001419,1.000000,2.000000,1.000000 8.000000,5.000000,859.256531,370.294495,59.076092,20.025719,0.015920,1.000000,2.000000,1.000000 8.000000,6.000000,861.158081,324.199402,55.370888,19.997463,3.124875,1.000000,2.000000,1.000000 8.000000,7.000000,858.159302,281.250336,53.084076,18.027664,0.020617,1.000000,2.000000,1.000000 8.000000,8.000000,859.764526,259.716278,53.008583,15.016771,3.125561,1.000000,2.000000,1.000000 8.000000,9.000000,859.571289,237.560501,53.152466,15.960192,0.036572,1.000000,2.000000,1.000000 8.000000,10.000000,859.398376,215.697266,54.084793,17.028681,0.020558,1.000000,2.000000,1.000000 8.000000,11.000000,860.916687,194.122635,57.036072,17.024046,0.000182,1.000000,2.000000,1.000000 8.000000,12.000000,855.565796,171.793289,59.033718,15.992846,3.140587,1.000000,2.000000,1.000000 8.000000,13.000000,852.622986,151.393311,48.344162,15.997560,3.127483,1.000000,2.000000,1.000000 8.000000,14.000000,859.385254,130.144165,60.709831,18.014021,3.123358,1.000000,2.000000,1.000000 8.000000,15.000000,854.620239,108.297012,56.999996,17.002491,3.106686,1.000000,2.000000,1.000000 8.000000,16.000000,860.383667,87.083344,56.000542,16.999329,3.106686,1.000000,2.000000,1.000000 8.000000,17.000000,858.627319,66.082169,63.072918,21.926058,0.012650,1.000000,2.000000,1.000000 8.000000,18.000000,855.229431,44.742706,55.010170,19.015133,3.124821,1.000000,2.000000,1.000000 8.000000,19.000000,854.221130,25.259747,55.101891,18.027334,0.019558,1.000000,2.000000,1.000000 8.000000,20.000000,566.032898,110.869545,49.606346,21.429512,2.018426,1.000000,2.000000,1.000000 8.000000,21.000000,590.795166,189.553391,61.199314,17.992071,0.488360,1.000000,2.000000,1.000000 8.000000,22.000000,601.036926,167.682724,62.312794,20.226805,0.494324,1.000000,2.000000,1.000000 8.000000,23.000000,864.244385,465.172150,55.008240,18.015059,3.124875,1.000000,2.000000,1.000000 8.000000,24.000000,868.145752,538.587524,59.109760,19.026552,0.015869,1.000000,2.000000,1.000000 8.000000,25.000000,636.843994,89.885498,60.683578,20.181614,0.459010,1.000000,2.000000,1.000000 8.000000,26.000000,865.593262,561.684692,59.008301,17.013891,3.123624,1.000000,2.000000,1.000000 8.000000,27.000000,800.440002,490.921448,38.354996,12.996183,3.133008,1.000000,2.000000,1.000000 8.000000,28.000000,802.240662,470.844604,42.999847,17.998848,3.106686,1.000000,2.000000,1.000000 8.000000,29.000000,795.835266,402.028046,55.835220,21.984026,0.001458,1.000000,2.000000,1.000000 8.000000,30.000000,794.880310,379.553589,53.009682,18.015560,3.125560,1.000000,2.000000,1.000000 8.000000,31.000000,794.194885,355.055084,61.385899,22.999039,3.123034,1.000000,2.000000,1.000000 8.000000,32.000000,794.849915,331.495575,59.028000,20.025818,0.015127,1.000000,2.000000,1.000000 8.000000,33.000000,791.519470,307.120270,61.351204,20.995352,3.123085,1.000000,2.000000,1.000000 8.000000,34.000000,789.736389,284.667450,50.130428,16.030081,0.025006,1.000000,2.000000,1.000000 8.000000,35.000000,790.574524,261.646454,59.033718,21.053831,3.140587,1.000000,2.000000,1.000000 8.000000,36.000000,784.596680,237.820282,70.569443,18.991564,3.135234,1.000000,2.000000,1.000000 8.000000,37.000000,789.343018,216.141571,57.377678,20.996948,3.124254,1.000000,2.000000,1.000000 8.000000,38.000000,790.039978,193.102600,53.998596,18.002926,3.106686,1.000000,2.000000,1.000000 8.000000,39.000000,788.777039,170.134033,62.170544,21.024988,0.013464,1.000000,2.000000,1.000000 8.000000,40.000000,794.366028,149.931091,50.009842,17.016010,3.126672,1.000000,2.000000,1.000000 8.000000,41.000000,803.878845,92.068512,35.012604,10.023531,3.135261,1.000000,2.000000,1.000000 8.000000,42.000000,799.082886,108.235855,44.726021,14.986154,0.010467,1.000000,2.000000,1.000000 8.000000,43.000000,793.836792,129.930511,57.999332,17.999861,3.106687,1.000000,2.000000,1.000000 8.000000,44.000000,869.274292,599.583862,71.237381,20.025293,0.021356,1.000000,2.000000,1.000000 8.000000,45.000000,624.830017,118.323097,59.479515,17.442717,0.428741,1.000000,2.000000,1.000000 8.000000,46.000000,645.604553,68.567360,54.838928,20.142982,0.437221,1.000000,2.000000,1.000000 8.000000,47.000000,384.018463,37.225956,49.429207,20.878639,0.254564,1.000000,2.000000,1.000000 8.000000,48.000000,210.322311,168.319183,48.533710,15.796021,0.240533,1.000000,2.000000,1.000000 8.000000,49.000000,212.332092,145.691635,58.660725,19.416964,0.172625,1.000000,2.000000,1.000000 8.000000,50.000000,216.520081,116.570801,47.361607,12.606474,0.204822,1.000000,2.000000,1.000000 8.000000,51.000000,222.283112,95.357132,57.559605,17.205647,0.205628,1.000000,2.000000,1.000000 8.000000,52.000000,232.135849,47.984550,52.476048,16.744926,0.219464,1.000000,2.000000,1.000000 8.000000,53.000000,239.222763,22.216444,51.922283,18.681513,0.238062,1.000000,2.000000,1.000000 8.000000,54.000000,392.601593,12.434427,52.784264,20.529612,0.214682,1.000000,2.000000,1.000000 8.000000,55.000000,379.404999,61.767879,47.803764,20.603161,0.240509,1.000000,2.000000,1.000000 8.000000,56.000000,671.191650,15.596419,46.494564,17.482349,0.467979,1.000000,2.000000,1.000000 8.000000,57.000000,370.236267,106.340355,49.999138,18.002094,0.248902,1.000000,2.000000,1.000000 8.000000,58.000000,279.404083,212.434631,68.848923,13.593740,0.231344,1.000000,2.000000,1.000000 8.000000,59.000000,183.571884,190.265274,34.386227,11.382751,0.174115,1.000000,2.000000,1.000000 8.000000,60.000000,222.722046,199.839798,46.173199,14.554771,0.273175,1.000000,2.000000,1.000000 8.000000,61.000000,332.238464,221.095917,33.330040,11.401585,0.239191,1.000000,2.000000,1.000000 8.000000,62.000000,367.530518,228.869415,36.283474,13.139213,0.162517,1.000000,2.000000,1.000000 8.000000,63.000000,409.226654,219.409012,51.185608,14.316453,0.162457,1.000000,2.000000,1.000000 8.000000,64.000000,410.974915,197.834961,39.629276,14.783242,0.203674,1.000000,2.000000,1.000000 8.000000,65.000000,418.505493,177.612946,44.147133,15.288064,0.193577,1.000000,2.000000,1.000000 8.000000,66.000000,422.105682,158.421936,44.645809,15.517912,0.193622,1.000000,2.000000,1.000000 8.000000,67.000000,427.189331,139.657700,36.401234,16.483875,0.243428,1.000000,2.000000,1.000000 8.000000,68.000000,427.600739,115.204506,34.381439,14.557502,0.231319,1.000000,2.000000,1.000000 8.000000,69.000000,437.466217,96.848022,43.304173,15.801167,0.249814,1.000000,2.000000,1.000000 8.000000,70.000000,451.088043,50.509659,53.366375,15.738796,0.192036,1.000000,2.000000,1.000000 8.000000,71.000000,454.046448,27.227100,52.435711,20.863657,0.219463,1.000000,2.000000,1.000000 8.000000,72.000000,342.446411,198.227448,69.501144,14.536558,0.185367,1.000000,2.000000,1.000000 8.000000,73.000000,347.675476,176.029755,65.125191,15.771893,0.217628,1.000000,2.000000,1.000000 8.000000,74.000000,350.353333,152.422668,71.466576,19.198660,0.227536,1.000000,2.000000,1.000000 8.000000,75.000000,853.070068,302.472046,46.009968,15.998273,3.128431,1.000000,2.000000,1.000000 8.000000,76.000000,1003.952026,461.028412,38.158474,19.024693,0.003552,1.000000,2.000000,1.000000 8.000000,77.000000,1005.986572,396.755798,34.026855,16.954193,-0.000000,1.000000,2.000000,1.000000 8.000000,78.000000,1005.466431,208.592804,35.507755,12.000254,3.106686,1.000000,2.000000,1.000000 8.000000,79.000000,1006.565430,481.097809,33.026203,13.973353,3.130501,1.000000,2.000000,1.000000 8.000000,80.000000,1008.426575,502.009949,29.295382,13.971586,3.131084,1.000000,2.000000,1.000000 8.000000,81.000000,1011.183838,521.320862,24.055168,13.951853,0.029550,1.000000,2.000000,1.000000 8.000000,82.000000,1006.779480,541.090576,32.635212,14.019276,3.127967,1.000000,2.000000,1.000000 8.000000,83.000000,996.315918,597.148621,54.099174,19.999733,3.106686,1.000000,2.000000,1.000000 8.000000,84.000000,1003.368774,561.556824,39.262505,15.989317,3.141593,1.000000,2.000000,1.000000 8.000000,85.000000,822.966187,305.021179,601.306213,131.034561,1.557515,1.000000,8.000000,1.000000 8.000000,86.000000,674.226562,473.205139,288.578522,79.649887,1.040996,1.000000,8.000000,1.000000 8.000000,87.000000,631.096130,87.898422,236.904434,78.539711,2.039950,1.000000,8.000000,1.000000 8.000000,88.000000,402.951935,109.314514,215.129608,124.403259,1.775231,1.000000,8.000000,1.000000 8.000000,89.000000,220.180527,84.906586,187.359482,67.649200,1.774377,1.000000,8.000000,1.000000 8.000000,90.000000,616.827332,353.347321,52.322193,23.703579,2.642947,1.000000,2.000000,1.000000 8.000000,91.000000,616.780945,375.484955,32.694622,12.477634,2.697777,1.000000,2.000000,1.000000 8.000000,92.000000,622.002869,392.250336,35.848694,13.389840,2.705444,1.000000,2.000000,1.000000 8.000000,93.000000,631.916443,407.251251,34.665314,12.974272,2.775585,1.000000,2.000000,1.000000 8.000000,94.000000,640.823914,422.007507,34.884720,14.760887,2.630239,1.000000,2.000000,1.000000 8.000000,95.000000,649.989380,437.638611,30.184277,13.376983,2.719828,1.000000,2.000000,1.000000 8.000000,96.000000,658.138367,452.064148,35.340992,14.800033,2.668298,1.000000,2.000000,1.000000 8.000000,97.000000,672.425537,483.500458,31.294266,16.551626,2.670018,1.000000,2.000000,1.000000 8.000000,98.000000,683.220703,498.479218,31.385439,16.155706,2.714346,1.000000,2.000000,1.000000 8.000000,99.000000,689.813599,513.434082,32.310787,14.299427,2.726203,1.000000,2.000000,1.000000 8.000000,100.000000,699.342651,529.422852,34.540096,13.926687,2.720785,1.000000,2.000000,1.000000 8.000000,101.000000,706.760254,544.723145,28.381664,12.513262,2.659174,1.000000,2.000000,1.000000 8.000000,102.000000,714.813843,560.450623,34.434349,16.100964,2.642982,1.000000,2.000000,1.000000 8.000000,103.000000,724.296570,576.932312,38.012272,13.863927,2.642968,1.000000,2.000000,1.000000 8.000000,104.000000,667.196838,538.946228,35.340996,12.507215,1.097565,1.000000,2.000000,1.000000 8.000000,105.000000,640.477966,495.930450,34.885136,13.414495,1.059416,1.000000,2.000000,1.000000 8.000000,106.000000,615.289551,446.856110,33.362831,12.031480,1.016790,1.000000,2.000000,1.000000 8.000000,107.000000,571.599487,384.841095,25.940346,11.627560,1.072091,1.000000,2.000000,1.000000 8.000000,108.000000,170.960999,129.612335,25.709764,13.340680,1.771421,1.000000,2.000000,1.000000 8.000000,109.000000,177.520126,100.121399,26.563459,12.016868,1.857828,1.000000,2.000000,1.000000 8.000000,110.000000,183.416077,71.199013,31.624641,12.649017,1.857599,1.000000,2.000000,1.000000 ================================================ FILE: assets/DOTA8-MOT/train/P0861__1024__0___1648/seqinfo.ini ================================================ [Sequence] name = P0861__1024__0___1648 imdir = img1 framerate = 8 seqlength = 8 imwidth = 1024 imheight = 1024 imext = .jpg ================================================ FILE: assets/DOTA8-MOT/train/P1053__1024__0___90/det/det.txt ================================================ 1.000000,-1.000000,137.380234,456.461578,33.107666,44.044189,1.000000 1.000000,-1.000000,263.443390,141.705688,31.142944,42.937714,1.000000 1.000000,-1.000000,260.242035,290.579224,31.282562,40.080750,1.000000 1.000000,-1.000000,174.717529,193.530258,23.286865,31.807068,1.000000 1.000000,-1.000000,518.538452,166.455719,199.174194,146.195862,1.000000 1.000000,-1.000000,831.680542,232.484375,100.016418,187.504700,1.000000 1.000000,-1.000000,904.832947,573.384399,104.082458,188.574341,1.000000 1.000000,-1.000000,772.276062,528.697876,101.118896,187.504639,1.000000 1.000000,-1.000000,634.709717,514.887268,102.013062,188.504517,1.000000 1.000000,-1.000000,496.130341,529.023987,102.048920,188.539429,1.000000 1.000000,-1.000000,358.529144,517.213074,102.944092,187.574463,1.000000 1.000000,-1.000000,208.696213,652.066589,101.014206,188.504578,1.000000 1.000000,-1.000000,70.989471,639.360535,104.047363,188.468628,1.000000 2.000000,-1.000000,136.939072,460.037506,33.367035,44.037415,1.000000 2.000000,-1.000000,259.856506,144.030075,31.391754,42.960495,1.000000 2.000000,-1.000000,258.141113,292.958008,31.491455,40.062805,1.000000 2.000000,-1.000000,171.613083,196.768250,23.493408,31.866440,1.000000 2.000000,-1.000000,516.384888,166.282700,198.006226,144.443253,1.000000 2.000000,-1.000000,830.668274,229.167664,98.309875,186.812225,1.000000 2.000000,-1.000000,907.215515,569.281311,102.357178,187.862244,1.000000 2.000000,-1.000000,774.229858,525.928650,99.382812,186.812195,1.000000 2.000000,-1.000000,636.522644,513.491028,100.307129,187.812378,1.000000 2.000000,-1.000000,498.091522,529.019104,100.332977,187.837280,1.000000 2.000000,-1.000000,360.359406,518.581726,101.258392,186.862122,1.000000 2.000000,-1.000000,211.888824,654.922546,99.307983,187.812378,1.000000 2.000000,-1.000000,74.081108,643.559875,102.332069,187.786438,1.000000 3.000000,-1.000000,136.535217,463.618622,33.623108,44.026215,1.000000 3.000000,-1.000000,256.294708,146.391052,31.637421,42.979019,1.000000 3.000000,-1.000000,256.065430,295.358612,31.697235,40.040863,1.000000 3.000000,-1.000000,168.542496,200.037582,23.697617,31.922668,1.000000 3.000000,-1.000000,514.230896,166.144073,196.818542,142.676270,1.000000 3.000000,-1.000000,829.624329,225.879089,96.593567,186.101166,1.000000 3.000000,-1.000000,909.558777,565.172546,100.621704,187.131409,1.000000 3.000000,-1.000000,776.157593,523.158020,97.636719,186.101135,1.000000 3.000000,-1.000000,638.323181,512.094666,98.591248,187.101501,1.000000 3.000000,-1.000000,500.054077,529.012512,98.607117,187.116455,1.000000 3.000000,-1.000000,362.204773,519.949829,99.562622,186.131104,1.000000 3.000000,-1.000000,215.111282,657.764282,97.591873,187.101501,1.000000 3.000000,-1.000000,77.216301,647.746155,100.606590,187.085571,1.000000 4.000000,-1.000000,136.168716,467.204529,33.875809,44.010681,1.000000 4.000000,-1.000000,252.758331,148.788406,31.879944,42.993256,1.000000 4.000000,-1.000000,254.015182,297.780731,31.899887,40.014954,1.000000 4.000000,-1.000000,165.506073,203.337967,23.899460,31.975693,1.000000 4.000000,-1.000000,512.076660,166.039856,195.611267,140.895081,1.000000 4.000000,-1.000000,828.548767,222.618973,94.867676,185.371628,1.000000 4.000000,-1.000000,911.862488,561.058472,98.876282,186.382019,1.000000 4.000000,-1.000000,778.059021,520.386292,95.881042,185.371582,1.000000 4.000000,-1.000000,640.111206,510.698273,96.865479,186.372040,1.000000 4.000000,-1.000000,502.017792,529.004211,96.871490,186.377075,1.000000 4.000000,-1.000000,364.065033,521.317078,97.856964,185.381592,1.000000 4.000000,-1.000000,218.363281,660.591553,95.866058,186.372009,1.000000 4.000000,-1.000000,80.394737,651.918945,98.871101,186.366089,1.000000 5.000000,-1.000000,135.839600,470.794891,34.125137,43.990753,1.000000 5.000000,-1.000000,249.247757,151.221878,32.119308,43.003235,1.000000 5.000000,-1.000000,251.990616,300.224182,32.099350,39.985046,1.000000 5.000000,-1.000000,162.504105,206.669037,24.098938,32.025543,1.000000 5.000000,-1.000000,509.922424,165.970032,194.384583,139.099915,1.000000 5.000000,-1.000000,827.441772,219.387634,93.132324,184.623627,1.000000 5.000000,-1.000000,914.126404,556.939514,97.120972,185.614075,1.000000 5.000000,-1.000000,779.933960,517.613708,94.115784,184.623596,1.000000 5.000000,-1.000000,641.886475,509.302002,95.130127,185.624084,1.000000 5.000000,-1.000000,503.982544,528.994263,95.126160,185.619080,1.000000 5.000000,-1.000000,365.940033,522.683411,96.141541,184.613647,1.000000 5.000000,-1.000000,221.644485,663.403992,94.130722,185.624084,1.000000 5.000000,-1.000000,83.616104,656.077759,97.125793,185.628113,1.000000 6.000000,-1.000000,135.547882,474.389374,34.371094,43.966400,1.000000 6.000000,-1.000000,245.763306,153.691238,32.355469,43.008926,1.000000 6.000000,-1.000000,249.991898,302.688690,32.295639,39.951172,1.000000 6.000000,-1.000000,159.536911,210.030472,24.296005,32.072235,1.000000 6.000000,-1.000000,507.768402,165.934647,193.138519,137.290878,1.000000 6.000000,-1.000000,826.303345,216.185394,91.387695,183.857269,1.000000 6.000000,-1.000000,916.350342,552.816101,95.356018,184.827637,1.000000 6.000000,-1.000000,781.782288,514.840576,92.341125,183.857300,1.000000 6.000000,-1.000000,643.648804,507.906036,93.385315,184.857574,1.000000 6.000000,-1.000000,505.948059,528.982605,93.371399,184.842651,1.000000 6.000000,-1.000000,367.829529,524.048706,94.416565,183.827332,1.000000 6.000000,-1.000000,224.954575,666.201416,92.386002,184.857605,1.000000 6.000000,-1.000000,86.880089,660.222290,95.370811,184.871582,1.000000 7.000000,-1.000000,135.293625,477.987579,34.613617,43.937714,1.000000 7.000000,-1.000000,242.305344,156.196243,32.588394,43.010330,1.000000 7.000000,-1.000000,248.019257,305.174011,32.488678,39.913330,1.000000 7.000000,-1.000000,156.604767,213.421951,24.490677,32.115707,1.000000 7.000000,-1.000000,505.614807,165.933670,191.873230,135.468216,1.000000 7.000000,-1.000000,825.133667,213.012589,89.634033,183.072617,1.000000 7.000000,-1.000000,918.534058,548.688599,93.581604,184.022888,1.000000 7.000000,-1.000000,783.603821,512.067139,90.557312,183.072693,1.000000 7.000000,-1.000000,645.398010,506.510437,91.631226,184.072754,1.000000 7.000000,-1.000000,507.914215,528.969238,91.607269,184.047852,1.000000 7.000000,-1.000000,369.733368,525.412781,92.682220,183.022766,1.000000 7.000000,-1.000000,228.293213,668.983459,90.632080,184.072754,1.000000 7.000000,-1.000000,90.186348,664.352112,93.606346,184.096680,1.000000 8.000000,-1.000000,135.076828,481.589172,34.852707,43.904663,1.000000 8.000000,-1.000000,238.874207,158.736633,32.818085,43.007462,1.000000 8.000000,-1.000000,246.072861,307.679932,32.678513,39.871460,1.000000 8.000000,-1.000000,153.707977,216.843140,24.682892,32.155991,1.000000 8.000000,-1.000000,503.461853,165.967117,190.588928,133.632065,1.000000 8.000000,-1.000000,823.932861,209.869522,87.871399,182.269760,1.000000 8.000000,-1.000000,920.677368,544.557434,91.797791,183.199829,1.000000 8.000000,-1.000000,785.398254,509.293701,88.764526,182.269836,1.000000 8.000000,-1.000000,647.133972,505.115417,89.868042,183.269592,1.000000 8.000000,-1.000000,509.880737,528.954224,89.834106,183.234680,1.000000 8.000000,-1.000000,371.651367,526.775513,90.938629,182.200012,1.000000 8.000000,-1.000000,231.660065,671.749939,88.869171,183.269531,1.000000 8.000000,-1.000000,93.534569,668.466736,91.832573,183.303467,1.000000 ================================================ FILE: assets/DOTA8-MOT/train/P1053__1024__0___90/det/det_obb.txt ================================================ 1.000000,-1.000000,153.951538,478.483704,39.823242,18.820560,1.118817,1.000000,11.000000 1.000000,-1.000000,279.532776,163.174561,38.254032,19.660196,1.154206,1.000000,11.000000 1.000000,-1.000000,275.383942,310.619598,35.843254,18.008017,1.065313,1.000000,11.000000 1.000000,-1.000000,185.861038,209.433807,28.073294,16.153883,1.238521,1.000000,11.000000 1.000000,-1.000000,618.162720,238.039719,188.266068,133.184280,0.088050,1.000000,15.000000 1.000000,-1.000000,880.202148,326.287292,180.152557,86.206772,1.667083,1.000000,5.000000 1.000000,-1.000000,956.806946,667.415894,182.222031,89.187691,1.655113,1.000000,5.000000 1.000000,-1.000000,822.835571,622.415283,181.499863,86.092102,1.655385,1.000000,5.000000 1.000000,-1.000000,686.216064,609.139526,181.079330,86.205437,1.666737,1.000000,5.000000 1.000000,-1.000000,547.136902,623.293762,181.498550,86.200035,1.661198,1.000000,5.000000 1.000000,-1.000000,409.982697,611.000305,180.389938,87.254707,1.661820,1.000000,5.000000 1.000000,-1.000000,259.168396,746.318848,181.527664,85.258308,1.661507,1.000000,5.000000 1.000000,-1.000000,123.860016,734.150024,181.466293,87.135933,1.676182,1.000000,5.000000 2.000000,-1.000000,153.635056,482.056213,39.823265,18.820543,1.108844,1.000000,11.000000 2.000000,-1.000000,276.065430,165.510330,38.254009,19.660208,1.144233,1.000000,11.000000 2.000000,-1.000000,273.387268,312.989410,35.843277,18.008005,1.055340,1.000000,11.000000 2.000000,-1.000000,182.859695,212.701462,28.073280,16.153887,1.228547,1.000000,11.000000 2.000000,-1.000000,615.425110,236.994537,188.266037,133.184250,0.078077,1.000000,15.000000 2.000000,-1.000000,878.331665,322.624359,180.152542,86.206734,1.657109,1.000000,5.000000 2.000000,-1.000000,958.334900,662.972046,182.222015,89.187706,1.645139,1.000000,5.000000 2.000000,-1.000000,823.921326,619.309814,181.499939,86.092133,1.645412,1.000000,5.000000 2.000000,-1.000000,687.176270,607.397278,181.079376,86.205421,1.656764,1.000000,5.000000 2.000000,-1.000000,548.245117,622.937744,181.498566,86.200020,1.651224,1.000000,5.000000 2.000000,-1.000000,410.975128,612.012817,180.389999,87.254738,1.651847,1.000000,5.000000 2.000000,-1.000000,261.517883,748.828735,181.527634,85.258308,1.651534,1.000000,5.000000 2.000000,-1.000000,126.094864,738.009827,181.466293,87.135918,1.666209,1.000000,5.000000 3.000000,-1.000000,153.354263,485.631714,39.823250,18.820545,1.098871,1.000000,11.000000 3.000000,-1.000000,272.621582,167.880554,38.254017,19.660202,1.134259,1.000000,11.000000 3.000000,-1.000000,271.414368,315.379028,35.843273,18.008007,1.045367,1.000000,11.000000 3.000000,-1.000000,179.891129,215.998947,28.073294,16.153879,1.218575,1.000000,11.000000 3.000000,-1.000000,612.677368,235.976746,188.266068,133.184265,0.068103,1.000000,15.000000 3.000000,-1.000000,876.424805,318.980316,180.152557,86.206703,1.647136,1.000000,5.000000 3.000000,-1.000000,959.818237,658.513184,182.222000,89.187683,1.635166,1.000000,5.000000 3.000000,-1.000000,824.976013,616.193665,181.499878,86.092148,1.635439,1.000000,5.000000 3.000000,-1.000000,688.119019,605.645508,181.079346,86.205467,1.646790,1.000000,5.000000 3.000000,-1.000000,549.349731,622.570740,181.498550,86.200027,1.641251,1.000000,5.000000 3.000000,-1.000000,411.977600,613.015381,180.389969,87.254730,1.641873,1.000000,5.000000 3.000000,-1.000000,263.892273,751.315063,181.527618,85.258316,1.641561,1.000000,5.000000 3.000000,-1.000000,128.368088,741.847290,181.466324,87.135925,1.656236,1.000000,5.000000 4.000000,-1.000000,153.109131,489.209839,39.823277,18.820547,1.088897,1.000000,11.000000 4.000000,-1.000000,269.201538,170.285019,38.254009,19.660219,1.124286,1.000000,11.000000 4.000000,-1.000000,269.465424,317.788239,35.843285,18.008017,1.035393,1.000000,11.000000 4.000000,-1.000000,176.955582,219.325806,28.073282,16.153877,1.208601,1.000000,11.000000 4.000000,-1.000000,609.919495,234.986389,188.266052,133.184265,0.058130,1.000000,15.000000 4.000000,-1.000000,874.481689,315.355499,180.152573,86.206734,1.637163,1.000000,5.000000 4.000000,-1.000000,961.257202,654.039673,182.222076,89.187660,1.625193,1.000000,5.000000 4.000000,-1.000000,825.999512,613.067017,181.499954,86.092110,1.625466,1.000000,5.000000 4.000000,-1.000000,689.044189,603.884277,181.079315,86.205429,1.636817,1.000000,5.000000 4.000000,-1.000000,550.450562,622.192749,181.498596,86.200027,1.631278,1.000000,5.000000 4.000000,-1.000000,412.990021,614.007874,180.389969,87.254738,1.631900,1.000000,5.000000 4.000000,-1.000000,266.291290,753.777588,181.527588,85.258301,1.631587,1.000000,5.000000 4.000000,-1.000000,130.679459,745.661865,181.466293,87.135933,1.646262,1.000000,5.000000 5.000000,-1.000000,152.899673,492.790283,39.823284,18.820551,1.078924,1.000000,11.000000 5.000000,-1.000000,265.805603,172.723495,38.254028,19.660212,1.114313,1.000000,11.000000 5.000000,-1.000000,267.540558,320.216705,35.843281,18.008018,1.025420,1.000000,11.000000 5.000000,-1.000000,174.053375,222.681808,28.073277,16.153883,1.198628,1.000000,11.000000 5.000000,-1.000000,607.151978,234.023605,188.266052,133.184280,0.048157,1.000000,15.000000 5.000000,-1.000000,872.502563,311.750183,180.152557,86.206749,1.627190,1.000000,5.000000 5.000000,-1.000000,962.651489,649.552185,182.221985,89.187698,1.615219,1.000000,5.000000 5.000000,-1.000000,826.991882,609.930542,181.499893,86.092186,1.615492,1.000000,5.000000 5.000000,-1.000000,689.951721,602.114075,181.079391,86.205414,1.626843,1.000000,5.000000 5.000000,-1.000000,551.547607,621.803833,181.498566,86.200043,1.621305,1.000000,5.000000 5.000000,-1.000000,414.012268,614.990234,180.389954,87.254707,1.621927,1.000000,5.000000 5.000000,-1.000000,268.714844,756.216064,181.527679,85.258308,1.621614,1.000000,5.000000 5.000000,-1.000000,133.028824,749.453308,181.466339,87.135925,1.636290,1.000000,5.000000 6.000000,-1.000000,152.725952,496.372589,39.823231,18.820564,1.068950,1.000000,11.000000 6.000000,-1.000000,262.434204,175.195709,38.254025,19.660210,1.104339,1.000000,11.000000 6.000000,-1.000000,265.640076,322.664246,35.843285,18.008022,1.015446,1.000000,11.000000 6.000000,-1.000000,171.184753,226.066589,28.073294,16.153879,1.188655,1.000000,11.000000 6.000000,-1.000000,604.335693,233.139755,188.266052,133.184280,0.037623,1.000000,15.000000 6.000000,-1.000000,870.487427,308.164795,180.152557,86.206741,1.617216,1.000000,5.000000 6.000000,-1.000000,964.000854,645.050903,182.222031,89.187683,1.605246,1.000000,5.000000 6.000000,-1.000000,827.952820,606.784180,181.499878,86.092186,1.605519,1.000000,5.000000 6.000000,-1.000000,690.841553,600.334839,181.079346,86.205406,1.616870,1.000000,5.000000 6.000000,-1.000000,552.640747,621.403992,181.498596,86.200035,1.611331,1.000000,5.000000 6.000000,-1.000000,415.044250,615.962341,180.389954,87.254715,1.611953,1.000000,5.000000 6.000000,-1.000000,271.162567,758.630249,181.527649,85.258324,1.611641,1.000000,5.000000 6.000000,-1.000000,135.415802,753.221008,181.466293,87.135910,1.626316,1.000000,5.000000 7.000000,-1.000000,152.587982,499.956421,39.823231,18.820559,1.058977,1.000000,11.000000 7.000000,-1.000000,259.087616,177.701416,38.254025,19.660198,1.094366,1.000000,11.000000 7.000000,-1.000000,263.764038,325.130707,35.843292,18.008028,1.005473,1.000000,11.000000 7.000000,-1.000000,168.350067,229.479828,28.073286,16.153873,1.178681,1.000000,11.000000 7.000000,-1.000000,601.588745,232.181091,188.266068,133.184280,0.028210,1.000000,15.000000 7.000000,-1.000000,868.436646,304.599670,180.152588,86.206741,1.607243,1.000000,5.000000 7.000000,-1.000000,965.305359,640.536377,182.222000,89.187691,1.595273,1.000000,5.000000 7.000000,-1.000000,828.882507,603.628418,181.499908,86.092163,1.595546,1.000000,5.000000 7.000000,-1.000000,691.713684,598.546814,181.079330,86.205467,1.606897,1.000000,5.000000 7.000000,-1.000000,553.729736,620.993103,181.498611,86.200012,1.601358,1.000000,5.000000 7.000000,-1.000000,416.085938,616.924133,180.389954,87.254707,1.601980,1.000000,5.000000 7.000000,-1.000000,273.634186,761.019836,181.527664,85.258301,1.601667,1.000000,5.000000 7.000000,-1.000000,137.840225,756.964783,181.466293,87.135918,1.616342,1.000000,5.000000 8.000000,-1.000000,152.485748,503.541504,39.823231,18.820560,1.049003,1.000000,11.000000 8.000000,-1.000000,255.766220,180.240341,38.254013,19.660208,1.084392,1.000000,11.000000 8.000000,-1.000000,261.912720,327.615662,35.843262,18.008011,0.995499,1.000000,11.000000 8.000000,-1.000000,165.549530,232.921143,28.073284,16.153868,1.168708,1.000000,11.000000 8.000000,-1.000000,598.755432,231.353500,188.266006,133.184296,0.017677,1.000000,15.000000 8.000000,-1.000000,866.350464,301.055176,180.152557,86.206757,1.597270,1.000000,5.000000 8.000000,-1.000000,966.564758,636.009155,182.222000,89.187630,1.585299,1.000000,5.000000 8.000000,-1.000000,829.780579,600.463562,181.499908,86.092171,1.585572,1.000000,5.000000 8.000000,-1.000000,692.567871,596.750244,181.079330,86.205444,1.596924,1.000000,5.000000 8.000000,-1.000000,554.814697,620.571594,181.498550,86.199997,1.591385,1.000000,5.000000 8.000000,-1.000000,417.137146,617.875488,180.390015,87.254715,1.592007,1.000000,5.000000 8.000000,-1.000000,276.129547,763.384766,181.527618,85.258316,1.591694,1.000000,5.000000 8.000000,-1.000000,140.301865,760.684021,181.466278,87.135925,1.606369,1.000000,5.000000 ================================================ FILE: assets/DOTA8-MOT/train/P1053__1024__0___90/gt/gt.txt ================================================ 1.000000,1.000000,137.380234,456.461578,33.107666,44.044189,1.000000,11.000000,1.000000 1.000000,2.000000,263.443390,141.705688,31.142944,42.937714,1.000000,11.000000,1.000000 1.000000,3.000000,260.242035,290.579224,31.282562,40.080750,1.000000,11.000000,1.000000 1.000000,4.000000,174.717529,193.530258,23.286865,31.807068,1.000000,11.000000,1.000000 1.000000,5.000000,518.538452,166.455719,199.174194,146.195862,1.000000,15.000000,1.000000 1.000000,6.000000,831.680542,232.484375,100.016418,187.504700,1.000000,5.000000,1.000000 1.000000,7.000000,904.832947,573.384399,104.082458,188.574341,1.000000,5.000000,1.000000 1.000000,8.000000,772.276062,528.697876,101.118896,187.504639,1.000000,5.000000,1.000000 1.000000,9.000000,634.709717,514.887268,102.013062,188.504517,1.000000,5.000000,1.000000 1.000000,10.000000,496.130341,529.023987,102.048920,188.539429,1.000000,5.000000,1.000000 1.000000,11.000000,358.529144,517.213074,102.944092,187.574463,1.000000,5.000000,1.000000 1.000000,12.000000,208.696213,652.066589,101.014206,188.504578,1.000000,5.000000,1.000000 1.000000,13.000000,70.989471,639.360535,104.047363,188.468628,1.000000,5.000000,1.000000 2.000000,1.000000,136.939072,460.037506,33.367035,44.037415,1.000000,11.000000,1.000000 2.000000,2.000000,259.856506,144.030075,31.391754,42.960495,1.000000,11.000000,1.000000 2.000000,3.000000,258.141113,292.958008,31.491455,40.062805,1.000000,11.000000,1.000000 2.000000,4.000000,171.613083,196.768250,23.493408,31.866440,1.000000,11.000000,1.000000 2.000000,5.000000,516.384888,166.282700,198.006226,144.443253,1.000000,15.000000,1.000000 2.000000,6.000000,830.668274,229.167664,98.309875,186.812225,1.000000,5.000000,1.000000 2.000000,7.000000,907.215515,569.281311,102.357178,187.862244,1.000000,5.000000,1.000000 2.000000,8.000000,774.229858,525.928650,99.382812,186.812195,1.000000,5.000000,1.000000 2.000000,9.000000,636.522644,513.491028,100.307129,187.812378,1.000000,5.000000,1.000000 2.000000,10.000000,498.091522,529.019104,100.332977,187.837280,1.000000,5.000000,1.000000 2.000000,11.000000,360.359406,518.581726,101.258392,186.862122,1.000000,5.000000,1.000000 2.000000,12.000000,211.888824,654.922546,99.307983,187.812378,1.000000,5.000000,1.000000 2.000000,13.000000,74.081108,643.559875,102.332069,187.786438,1.000000,5.000000,1.000000 3.000000,1.000000,136.535217,463.618622,33.623108,44.026215,1.000000,11.000000,1.000000 3.000000,2.000000,256.294708,146.391052,31.637421,42.979019,1.000000,11.000000,1.000000 3.000000,3.000000,256.065430,295.358612,31.697235,40.040863,1.000000,11.000000,1.000000 3.000000,4.000000,168.542496,200.037582,23.697617,31.922668,1.000000,11.000000,1.000000 3.000000,5.000000,514.230896,166.144073,196.818542,142.676270,1.000000,15.000000,1.000000 3.000000,6.000000,829.624329,225.879089,96.593567,186.101166,1.000000,5.000000,1.000000 3.000000,7.000000,909.558777,565.172546,100.621704,187.131409,1.000000,5.000000,1.000000 3.000000,8.000000,776.157593,523.158020,97.636719,186.101135,1.000000,5.000000,1.000000 3.000000,9.000000,638.323181,512.094666,98.591248,187.101501,1.000000,5.000000,1.000000 3.000000,10.000000,500.054077,529.012512,98.607117,187.116455,1.000000,5.000000,1.000000 3.000000,11.000000,362.204773,519.949829,99.562622,186.131104,1.000000,5.000000,1.000000 3.000000,12.000000,215.111282,657.764282,97.591873,187.101501,1.000000,5.000000,1.000000 3.000000,13.000000,77.216301,647.746155,100.606590,187.085571,1.000000,5.000000,1.000000 4.000000,1.000000,136.168716,467.204529,33.875809,44.010681,1.000000,11.000000,1.000000 4.000000,2.000000,252.758331,148.788406,31.879944,42.993256,1.000000,11.000000,1.000000 4.000000,3.000000,254.015182,297.780731,31.899887,40.014954,1.000000,11.000000,1.000000 4.000000,4.000000,165.506073,203.337967,23.899460,31.975693,1.000000,11.000000,1.000000 4.000000,5.000000,512.076660,166.039856,195.611267,140.895081,1.000000,15.000000,1.000000 4.000000,6.000000,828.548767,222.618973,94.867676,185.371628,1.000000,5.000000,1.000000 4.000000,7.000000,911.862488,561.058472,98.876282,186.382019,1.000000,5.000000,1.000000 4.000000,8.000000,778.059021,520.386292,95.881042,185.371582,1.000000,5.000000,1.000000 4.000000,9.000000,640.111206,510.698273,96.865479,186.372040,1.000000,5.000000,1.000000 4.000000,10.000000,502.017792,529.004211,96.871490,186.377075,1.000000,5.000000,1.000000 4.000000,11.000000,364.065033,521.317078,97.856964,185.381592,1.000000,5.000000,1.000000 4.000000,12.000000,218.363281,660.591553,95.866058,186.372009,1.000000,5.000000,1.000000 4.000000,13.000000,80.394737,651.918945,98.871101,186.366089,1.000000,5.000000,1.000000 5.000000,1.000000,135.839600,470.794891,34.125137,43.990753,1.000000,11.000000,1.000000 5.000000,2.000000,249.247757,151.221878,32.119308,43.003235,1.000000,11.000000,1.000000 5.000000,3.000000,251.990616,300.224182,32.099350,39.985046,1.000000,11.000000,1.000000 5.000000,4.000000,162.504105,206.669037,24.098938,32.025543,1.000000,11.000000,1.000000 5.000000,5.000000,509.922424,165.970032,194.384583,139.099915,1.000000,15.000000,1.000000 5.000000,6.000000,827.441772,219.387634,93.132324,184.623627,1.000000,5.000000,1.000000 5.000000,7.000000,914.126404,556.939514,97.120972,185.614075,1.000000,5.000000,1.000000 5.000000,8.000000,779.933960,517.613708,94.115784,184.623596,1.000000,5.000000,1.000000 5.000000,9.000000,641.886475,509.302002,95.130127,185.624084,1.000000,5.000000,1.000000 5.000000,10.000000,503.982544,528.994263,95.126160,185.619080,1.000000,5.000000,1.000000 5.000000,11.000000,365.940033,522.683411,96.141541,184.613647,1.000000,5.000000,1.000000 5.000000,12.000000,221.644485,663.403992,94.130722,185.624084,1.000000,5.000000,1.000000 5.000000,13.000000,83.616104,656.077759,97.125793,185.628113,1.000000,5.000000,1.000000 6.000000,1.000000,135.547882,474.389374,34.371094,43.966400,1.000000,11.000000,1.000000 6.000000,2.000000,245.763306,153.691238,32.355469,43.008926,1.000000,11.000000,1.000000 6.000000,3.000000,249.991898,302.688690,32.295639,39.951172,1.000000,11.000000,1.000000 6.000000,4.000000,159.536911,210.030472,24.296005,32.072235,1.000000,11.000000,1.000000 6.000000,5.000000,507.768402,165.934647,193.138519,137.290878,1.000000,15.000000,1.000000 6.000000,6.000000,826.303345,216.185394,91.387695,183.857269,1.000000,5.000000,1.000000 6.000000,7.000000,916.350342,552.816101,95.356018,184.827637,1.000000,5.000000,1.000000 6.000000,8.000000,781.782288,514.840576,92.341125,183.857300,1.000000,5.000000,1.000000 6.000000,9.000000,643.648804,507.906036,93.385315,184.857574,1.000000,5.000000,1.000000 6.000000,10.000000,505.948059,528.982605,93.371399,184.842651,1.000000,5.000000,1.000000 6.000000,11.000000,367.829529,524.048706,94.416565,183.827332,1.000000,5.000000,1.000000 6.000000,12.000000,224.954575,666.201416,92.386002,184.857605,1.000000,5.000000,1.000000 6.000000,13.000000,86.880089,660.222290,95.370811,184.871582,1.000000,5.000000,1.000000 7.000000,1.000000,135.293625,477.987579,34.613617,43.937714,1.000000,11.000000,1.000000 7.000000,2.000000,242.305344,156.196243,32.588394,43.010330,1.000000,11.000000,1.000000 7.000000,3.000000,248.019257,305.174011,32.488678,39.913330,1.000000,11.000000,1.000000 7.000000,4.000000,156.604767,213.421951,24.490677,32.115707,1.000000,11.000000,1.000000 7.000000,5.000000,505.614807,165.933670,191.873230,135.468216,1.000000,15.000000,1.000000 7.000000,6.000000,825.133667,213.012589,89.634033,183.072617,1.000000,5.000000,1.000000 7.000000,7.000000,918.534058,548.688599,93.581604,184.022888,1.000000,5.000000,1.000000 7.000000,8.000000,783.603821,512.067139,90.557312,183.072693,1.000000,5.000000,1.000000 7.000000,9.000000,645.398010,506.510437,91.631226,184.072754,1.000000,5.000000,1.000000 7.000000,10.000000,507.914215,528.969238,91.607269,184.047852,1.000000,5.000000,1.000000 7.000000,11.000000,369.733368,525.412781,92.682220,183.022766,1.000000,5.000000,1.000000 7.000000,12.000000,228.293213,668.983459,90.632080,184.072754,1.000000,5.000000,1.000000 7.000000,13.000000,90.186348,664.352112,93.606346,184.096680,1.000000,5.000000,1.000000 8.000000,1.000000,135.076828,481.589172,34.852707,43.904663,1.000000,11.000000,1.000000 8.000000,2.000000,238.874207,158.736633,32.818085,43.007462,1.000000,11.000000,1.000000 8.000000,3.000000,246.072861,307.679932,32.678513,39.871460,1.000000,11.000000,1.000000 8.000000,4.000000,153.707977,216.843140,24.682892,32.155991,1.000000,11.000000,1.000000 8.000000,5.000000,503.461853,165.967117,190.588928,133.632065,1.000000,15.000000,1.000000 8.000000,6.000000,823.932861,209.869522,87.871399,182.269760,1.000000,5.000000,1.000000 8.000000,7.000000,920.677368,544.557434,91.797791,183.199829,1.000000,5.000000,1.000000 8.000000,8.000000,785.398254,509.293701,88.764526,182.269836,1.000000,5.000000,1.000000 8.000000,9.000000,647.133972,505.115417,89.868042,183.269592,1.000000,5.000000,1.000000 8.000000,10.000000,509.880737,528.954224,89.834106,183.234680,1.000000,5.000000,1.000000 8.000000,11.000000,371.651367,526.775513,90.938629,182.200012,1.000000,5.000000,1.000000 8.000000,12.000000,231.660065,671.749939,88.869171,183.269531,1.000000,5.000000,1.000000 8.000000,13.000000,93.534569,668.466736,91.832573,183.303467,1.000000,5.000000,1.000000 ================================================ FILE: assets/DOTA8-MOT/train/P1053__1024__0___90/gt/gt_obb.txt ================================================ 1.000000,1.000000,153.951538,478.483704,39.823242,18.820560,1.118817,1.000000,11.000000,1.000000 1.000000,2.000000,279.532776,163.174561,38.254032,19.660196,1.154206,1.000000,11.000000,1.000000 1.000000,3.000000,275.383942,310.619598,35.843254,18.008017,1.065313,1.000000,11.000000,1.000000 1.000000,4.000000,185.861038,209.433807,28.073294,16.153883,1.238521,1.000000,11.000000,1.000000 1.000000,5.000000,618.162720,238.039719,188.266068,133.184280,0.088050,1.000000,15.000000,1.000000 1.000000,6.000000,880.202148,326.287292,180.152557,86.206772,1.667083,1.000000,5.000000,1.000000 1.000000,7.000000,956.806946,667.415894,182.222031,89.187691,1.655113,1.000000,5.000000,1.000000 1.000000,8.000000,822.835571,622.415283,181.499863,86.092102,1.655385,1.000000,5.000000,1.000000 1.000000,9.000000,686.216064,609.139526,181.079330,86.205437,1.666737,1.000000,5.000000,1.000000 1.000000,10.000000,547.136902,623.293762,181.498550,86.200035,1.661198,1.000000,5.000000,1.000000 1.000000,11.000000,409.982697,611.000305,180.389938,87.254707,1.661820,1.000000,5.000000,1.000000 1.000000,12.000000,259.168396,746.318848,181.527664,85.258308,1.661507,1.000000,5.000000,1.000000 1.000000,13.000000,123.860016,734.150024,181.466293,87.135933,1.676182,1.000000,5.000000,1.000000 2.000000,1.000000,153.635056,482.056213,39.823265,18.820543,1.108844,1.000000,11.000000,1.000000 2.000000,2.000000,276.065430,165.510330,38.254009,19.660208,1.144233,1.000000,11.000000,1.000000 2.000000,3.000000,273.387268,312.989410,35.843277,18.008005,1.055340,1.000000,11.000000,1.000000 2.000000,4.000000,182.859695,212.701462,28.073280,16.153887,1.228547,1.000000,11.000000,1.000000 2.000000,5.000000,615.425110,236.994537,188.266037,133.184250,0.078077,1.000000,15.000000,1.000000 2.000000,6.000000,878.331665,322.624359,180.152542,86.206734,1.657109,1.000000,5.000000,1.000000 2.000000,7.000000,958.334900,662.972046,182.222015,89.187706,1.645139,1.000000,5.000000,1.000000 2.000000,8.000000,823.921326,619.309814,181.499939,86.092133,1.645412,1.000000,5.000000,1.000000 2.000000,9.000000,687.176270,607.397278,181.079376,86.205421,1.656764,1.000000,5.000000,1.000000 2.000000,10.000000,548.245117,622.937744,181.498566,86.200020,1.651224,1.000000,5.000000,1.000000 2.000000,11.000000,410.975128,612.012817,180.389999,87.254738,1.651847,1.000000,5.000000,1.000000 2.000000,12.000000,261.517883,748.828735,181.527634,85.258308,1.651534,1.000000,5.000000,1.000000 2.000000,13.000000,126.094864,738.009827,181.466293,87.135918,1.666209,1.000000,5.000000,1.000000 3.000000,1.000000,153.354263,485.631714,39.823250,18.820545,1.098871,1.000000,11.000000,1.000000 3.000000,2.000000,272.621582,167.880554,38.254017,19.660202,1.134259,1.000000,11.000000,1.000000 3.000000,3.000000,271.414368,315.379028,35.843273,18.008007,1.045367,1.000000,11.000000,1.000000 3.000000,4.000000,179.891129,215.998947,28.073294,16.153879,1.218575,1.000000,11.000000,1.000000 3.000000,5.000000,612.677368,235.976746,188.266068,133.184265,0.068103,1.000000,15.000000,1.000000 3.000000,6.000000,876.424805,318.980316,180.152557,86.206703,1.647136,1.000000,5.000000,1.000000 3.000000,7.000000,959.818237,658.513184,182.222000,89.187683,1.635166,1.000000,5.000000,1.000000 3.000000,8.000000,824.976013,616.193665,181.499878,86.092148,1.635439,1.000000,5.000000,1.000000 3.000000,9.000000,688.119019,605.645508,181.079346,86.205467,1.646790,1.000000,5.000000,1.000000 3.000000,10.000000,549.349731,622.570740,181.498550,86.200027,1.641251,1.000000,5.000000,1.000000 3.000000,11.000000,411.977600,613.015381,180.389969,87.254730,1.641873,1.000000,5.000000,1.000000 3.000000,12.000000,263.892273,751.315063,181.527618,85.258316,1.641561,1.000000,5.000000,1.000000 3.000000,13.000000,128.368088,741.847290,181.466324,87.135925,1.656236,1.000000,5.000000,1.000000 4.000000,1.000000,153.109131,489.209839,39.823277,18.820547,1.088897,1.000000,11.000000,1.000000 4.000000,2.000000,269.201538,170.285019,38.254009,19.660219,1.124286,1.000000,11.000000,1.000000 4.000000,3.000000,269.465424,317.788239,35.843285,18.008017,1.035393,1.000000,11.000000,1.000000 4.000000,4.000000,176.955582,219.325806,28.073282,16.153877,1.208601,1.000000,11.000000,1.000000 4.000000,5.000000,609.919495,234.986389,188.266052,133.184265,0.058130,1.000000,15.000000,1.000000 4.000000,6.000000,874.481689,315.355499,180.152573,86.206734,1.637163,1.000000,5.000000,1.000000 4.000000,7.000000,961.257202,654.039673,182.222076,89.187660,1.625193,1.000000,5.000000,1.000000 4.000000,8.000000,825.999512,613.067017,181.499954,86.092110,1.625466,1.000000,5.000000,1.000000 4.000000,9.000000,689.044189,603.884277,181.079315,86.205429,1.636817,1.000000,5.000000,1.000000 4.000000,10.000000,550.450562,622.192749,181.498596,86.200027,1.631278,1.000000,5.000000,1.000000 4.000000,11.000000,412.990021,614.007874,180.389969,87.254738,1.631900,1.000000,5.000000,1.000000 4.000000,12.000000,266.291290,753.777588,181.527588,85.258301,1.631587,1.000000,5.000000,1.000000 4.000000,13.000000,130.679459,745.661865,181.466293,87.135933,1.646262,1.000000,5.000000,1.000000 5.000000,1.000000,152.899673,492.790283,39.823284,18.820551,1.078924,1.000000,11.000000,1.000000 5.000000,2.000000,265.805603,172.723495,38.254028,19.660212,1.114313,1.000000,11.000000,1.000000 5.000000,3.000000,267.540558,320.216705,35.843281,18.008018,1.025420,1.000000,11.000000,1.000000 5.000000,4.000000,174.053375,222.681808,28.073277,16.153883,1.198628,1.000000,11.000000,1.000000 5.000000,5.000000,607.151978,234.023605,188.266052,133.184280,0.048157,1.000000,15.000000,1.000000 5.000000,6.000000,872.502563,311.750183,180.152557,86.206749,1.627190,1.000000,5.000000,1.000000 5.000000,7.000000,962.651489,649.552185,182.221985,89.187698,1.615219,1.000000,5.000000,1.000000 5.000000,8.000000,826.991882,609.930542,181.499893,86.092186,1.615492,1.000000,5.000000,1.000000 5.000000,9.000000,689.951721,602.114075,181.079391,86.205414,1.626843,1.000000,5.000000,1.000000 5.000000,10.000000,551.547607,621.803833,181.498566,86.200043,1.621305,1.000000,5.000000,1.000000 5.000000,11.000000,414.012268,614.990234,180.389954,87.254707,1.621927,1.000000,5.000000,1.000000 5.000000,12.000000,268.714844,756.216064,181.527679,85.258308,1.621614,1.000000,5.000000,1.000000 5.000000,13.000000,133.028824,749.453308,181.466339,87.135925,1.636290,1.000000,5.000000,1.000000 6.000000,1.000000,152.725952,496.372589,39.823231,18.820564,1.068950,1.000000,11.000000,1.000000 6.000000,2.000000,262.434204,175.195709,38.254025,19.660210,1.104339,1.000000,11.000000,1.000000 6.000000,3.000000,265.640076,322.664246,35.843285,18.008022,1.015446,1.000000,11.000000,1.000000 6.000000,4.000000,171.184753,226.066589,28.073294,16.153879,1.188655,1.000000,11.000000,1.000000 6.000000,5.000000,604.335693,233.139755,188.266052,133.184280,0.037623,1.000000,15.000000,1.000000 6.000000,6.000000,870.487427,308.164795,180.152557,86.206741,1.617216,1.000000,5.000000,1.000000 6.000000,7.000000,964.000854,645.050903,182.222031,89.187683,1.605246,1.000000,5.000000,1.000000 6.000000,8.000000,827.952820,606.784180,181.499878,86.092186,1.605519,1.000000,5.000000,1.000000 6.000000,9.000000,690.841553,600.334839,181.079346,86.205406,1.616870,1.000000,5.000000,1.000000 6.000000,10.000000,552.640747,621.403992,181.498596,86.200035,1.611331,1.000000,5.000000,1.000000 6.000000,11.000000,415.044250,615.962341,180.389954,87.254715,1.611953,1.000000,5.000000,1.000000 6.000000,12.000000,271.162567,758.630249,181.527649,85.258324,1.611641,1.000000,5.000000,1.000000 6.000000,13.000000,135.415802,753.221008,181.466293,87.135910,1.626316,1.000000,5.000000,1.000000 7.000000,1.000000,152.587982,499.956421,39.823231,18.820559,1.058977,1.000000,11.000000,1.000000 7.000000,2.000000,259.087616,177.701416,38.254025,19.660198,1.094366,1.000000,11.000000,1.000000 7.000000,3.000000,263.764038,325.130707,35.843292,18.008028,1.005473,1.000000,11.000000,1.000000 7.000000,4.000000,168.350067,229.479828,28.073286,16.153873,1.178681,1.000000,11.000000,1.000000 7.000000,5.000000,601.588745,232.181091,188.266068,133.184280,0.028210,1.000000,15.000000,1.000000 7.000000,6.000000,868.436646,304.599670,180.152588,86.206741,1.607243,1.000000,5.000000,1.000000 7.000000,7.000000,965.305359,640.536377,182.222000,89.187691,1.595273,1.000000,5.000000,1.000000 7.000000,8.000000,828.882507,603.628418,181.499908,86.092163,1.595546,1.000000,5.000000,1.000000 7.000000,9.000000,691.713684,598.546814,181.079330,86.205467,1.606897,1.000000,5.000000,1.000000 7.000000,10.000000,553.729736,620.993103,181.498611,86.200012,1.601358,1.000000,5.000000,1.000000 7.000000,11.000000,416.085938,616.924133,180.389954,87.254707,1.601980,1.000000,5.000000,1.000000 7.000000,12.000000,273.634186,761.019836,181.527664,85.258301,1.601667,1.000000,5.000000,1.000000 7.000000,13.000000,137.840225,756.964783,181.466293,87.135918,1.616342,1.000000,5.000000,1.000000 8.000000,1.000000,152.485748,503.541504,39.823231,18.820560,1.049003,1.000000,11.000000,1.000000 8.000000,2.000000,255.766220,180.240341,38.254013,19.660208,1.084392,1.000000,11.000000,1.000000 8.000000,3.000000,261.912720,327.615662,35.843262,18.008011,0.995499,1.000000,11.000000,1.000000 8.000000,4.000000,165.549530,232.921143,28.073284,16.153868,1.168708,1.000000,11.000000,1.000000 8.000000,5.000000,598.755432,231.353500,188.266006,133.184296,0.017677,1.000000,15.000000,1.000000 8.000000,6.000000,866.350464,301.055176,180.152557,86.206757,1.597270,1.000000,5.000000,1.000000 8.000000,7.000000,966.564758,636.009155,182.222000,89.187630,1.585299,1.000000,5.000000,1.000000 8.000000,8.000000,829.780579,600.463562,181.499908,86.092171,1.585572,1.000000,5.000000,1.000000 8.000000,9.000000,692.567871,596.750244,181.079330,86.205444,1.596924,1.000000,5.000000,1.000000 8.000000,10.000000,554.814697,620.571594,181.498550,86.199997,1.591385,1.000000,5.000000,1.000000 8.000000,11.000000,417.137146,617.875488,180.390015,87.254715,1.592007,1.000000,5.000000,1.000000 8.000000,12.000000,276.129547,763.384766,181.527618,85.258316,1.591694,1.000000,5.000000,1.000000 8.000000,13.000000,140.301865,760.684021,181.466278,87.135925,1.606369,1.000000,5.000000,1.000000 ================================================ FILE: assets/DOTA8-MOT/train/P1053__1024__0___90/seqinfo.ini ================================================ [Sequence] name = P1053__1024__0___90 imdir = img1 framerate = 8 seqlength = 8 imwidth = 1024 imheight = 1024 imext = .jpg ================================================ FILE: assets/DOTA8-MOT/train/P1142__1024__0___824/det/det.txt ================================================ 1.000000,-1.000000,642.665894,287.069977,380.334106,429.791718,1.000000 2.000000,-1.000000,642.205933,283.021088,380.794067,431.047699,1.000000 3.000000,-1.000000,641.732971,278.994995,381.267029,432.260803,1.000000 4.000000,-1.000000,641.247192,274.992065,381.752808,433.430969,1.000000 5.000000,-1.000000,640.748535,271.012726,382.251465,434.557953,1.000000 6.000000,-1.000000,640.237061,267.057343,382.762939,435.641754,1.000000 7.000000,-1.000000,639.712769,263.126312,383.287231,436.682220,1.000000 8.000000,-1.000000,639.175842,259.220062,383.824158,437.679169,1.000000 ================================================ FILE: assets/DOTA8-MOT/train/P1142__1024__0___824/det/det_obb.txt ================================================ 1.000000,-1.000000,855.059509,501.965851,335.273407,297.854279,2.586787,1.000000,1.000000 2.000000,-1.000000,854.942261,498.544922,335.273407,297.854248,2.576813,1.000000,1.000000 3.000000,-1.000000,854.791138,495.125366,335.273346,297.854279,2.566840,1.000000,1.000000 4.000000,-1.000000,854.605774,491.707550,335.273407,297.854340,2.556867,1.000000,1.000000 5.000000,-1.000000,854.386475,488.291687,335.273376,297.854279,2.546893,1.000000,1.000000 6.000000,-1.000000,854.132935,484.878235,335.273407,297.854279,2.536920,1.000000,1.000000 7.000000,-1.000000,853.845398,481.467407,335.273407,297.854340,2.526947,1.000000,1.000000 8.000000,-1.000000,853.524048,478.059601,335.273407,297.854248,2.516973,1.000000,1.000000 ================================================ FILE: assets/DOTA8-MOT/train/P1142__1024__0___824/gt/gt.txt ================================================ 1.000000,1.000000,642.665894,287.069977,380.334106,429.791718,1.000000,1.000000,1.000000 2.000000,1.000000,642.205933,283.021088,380.794067,431.047699,1.000000,1.000000,1.000000 3.000000,1.000000,641.732971,278.994995,381.267029,432.260803,1.000000,1.000000,1.000000 4.000000,1.000000,641.247192,274.992065,381.752808,433.430969,1.000000,1.000000,1.000000 5.000000,1.000000,640.748535,271.012726,382.251465,434.557953,1.000000,1.000000,1.000000 6.000000,1.000000,640.237061,267.057343,382.762939,435.641754,1.000000,1.000000,1.000000 7.000000,1.000000,639.712769,263.126312,383.287231,436.682220,1.000000,1.000000,1.000000 8.000000,1.000000,639.175842,259.220062,383.824158,437.679169,1.000000,1.000000,1.000000 ================================================ FILE: assets/DOTA8-MOT/train/P1142__1024__0___824/gt/gt_obb.txt ================================================ 1.000000,1.000000,855.059509,501.965851,335.273407,297.854279,2.586787,1.000000,1.000000,1.000000 2.000000,1.000000,854.942261,498.544922,335.273407,297.854248,2.576813,1.000000,1.000000,1.000000 3.000000,1.000000,854.791138,495.125366,335.273346,297.854279,2.566840,1.000000,1.000000,1.000000 4.000000,1.000000,854.605774,491.707550,335.273407,297.854340,2.556867,1.000000,1.000000,1.000000 5.000000,1.000000,854.386475,488.291687,335.273376,297.854279,2.546893,1.000000,1.000000,1.000000 6.000000,1.000000,854.132935,484.878235,335.273407,297.854279,2.536920,1.000000,1.000000,1.000000 7.000000,1.000000,853.845398,481.467407,335.273407,297.854340,2.526947,1.000000,1.000000,1.000000 8.000000,1.000000,853.524048,478.059601,335.273407,297.854248,2.516973,1.000000,1.000000,1.000000 ================================================ FILE: assets/DOTA8-MOT/train/P1142__1024__0___824/seqinfo.ini ================================================ [Sequence] name = P1142__1024__0___824 imdir = img1 framerate = 8 seqlength = 8 imwidth = 1024 imheight = 1024 imext = .jpg ================================================ FILE: assets/MOT17-mini/train/MOT17-02-FRCNN/det/det.txt ================================================ 69,-1,912.8,482.9,97.6,112.6,1 69,-1,835.8,472.2,53.7,77,1 69,-1,374.4,447.1,43.4,105.1,1 69,-1,1261,447.7,34.9,100.6,1 69,-1,419,458.4,42.7,85.3,1 69,-1,501.4,440.4,129.3,324,1 69,-1,1543.7,429.8,52,127.2,1 69,-1,1088.7,482.7,35.6,117.1,1 69,-1,1004.6,441.5,42.1,112,1 69,-1,619.2,441.2,96.2,290,1 69,-1,1052.2,482.2,39.6,112.4,1 69,-1,796.3,475.5,56.9,62.8,1 69,-1,696.6,454.2,76.1,219.9,0.998 69,-1,1095.8,442.2,39.7,108.8,0.998 69,-1,475.5,465.6,33.4,97.9,0.996 517,-1,382.8,463.7,51.1,115.9,1 517,-1,738.7,437.9,107.2,259.8,1 517,-1,916,442.8,142.5,282,1 517,-1,835.9,473.4,53.6,75.5,1 517,-1,1556.7,370.3,307.6,710.7,1 517,-1,689.5,448.5,39.9,124.9,1 517,-1,1330.7,427.2,247.2,644,1 517,-1,572.5,458,32.7,81.8,1 517,-1,1179.3,447.9,35.3,86.5,1 517,-1,1048.5,436.3,101.7,243.9,1 517,-1,643.9,453.7,33.3,96.6,1 517,-1,539.9,462.1,29.1,74.9,0.993 517,-1,459.4,460.2,25.8,73.9,0.979 517,-1,412.1,471.5,48.5,97.6,0.421 436,-1,916.6,483.9,92.1,110.8,1 436,-1,543.2,440,145.2,314.8,1 436,-1,421.5,435.7,125,312.3,1 436,-1,756,414.4,104.2,315.5,1 436,-1,1090.8,417.1,200.9,635.1,0.999 436,-1,1286.1,300.3,479.9,780.7,0.998 436,-1,696.2,429.5,72.8,285.6,0.996 436,-1,528.8,466.7,24.2,71.6,0.306 294,-1,752.6,445,65.1,198,1 294,-1,1517.6,430.2,241.1,461.2,1 294,-1,508.5,455.6,35.5,109.2,1 294,-1,1003.3,408,156.3,613,1 294,-1,1159.8,444.8,47,110,1 294,-1,856.1,432.9,168.6,495.6,1 294,-1,1359.1,441.9,51.6,109.5,1 294,-1,410.1,470.4,49.1,104.4,1 294,-1,659.9,460.9,25.8,72.7,1 294,-1,382.3,463.2,44.8,111.7,0.999 294,-1,1399.5,425.4,151.8,291.2,0.999 294,-1,574.7,463,26.6,59.4,0.99 294,-1,441.3,462.8,32.6,96.9,0.94 294,-1,557,462.1,26.2,62.5,0.899 294,-1,597,460,22.8,55.7,0.788 294,-1,828.1,481.5,53.4,67.1,0.295 294,-1,472,458,35.2,94.6,0.186 294,-1,534.9,455.6,37.4,70.6,0.177 385,-1,835.1,472.5,53.5,76.9,1 385,-1,1083.5,400.3,207.8,626.1,1 385,-1,3,438.1,204.6,374.1,1 385,-1,545.3,412.2,142.9,360.6,1 385,-1,224.7,444.5,155.6,362.2,1 385,-1,796.7,476.8,55.6,60.3,1 385,-1,354.7,439.4,122.4,306.3,1 385,-1,469.3,454.1,38.7,105.4,0.999 385,-1,976.2,418.3,129.7,522.8,0.999 385,-1,514.6,460.7,26.7,64.8,0.954 592,-1,835.9,471.9,53.4,78.7,1 592,-1,1244.9,444.4,92.4,275.6,1 592,-1,914.9,482.7,96.5,112.7,1 592,-1,722.3,446.4,44.5,109.3,1 592,-1,1096.1,414.4,104,286.5,1 592,-1,1014.4,433.5,83.4,241.7,1 592,-1,665,456,38.2,104.4,1 592,-1,381.4,462.2,47.8,116.2,1 592,-1,796.8,476,55.6,61.1,1 592,-1,416.8,467,41.5,105.4,1 592,-1,555.8,459.5,29.3,84.2,1 592,-1,629.9,454.2,34.3,101.3,0.997 592,-1,585.9,457.5,33.9,83.1,0.964 592,-1,605.3,456.6,31.6,90,0.915 293,-1,748.5,443.8,66.6,204.3,1 293,-1,849.7,433.5,172.9,490.8,1 293,-1,507.9,455.2,36.1,110,1 293,-1,1515.9,431.5,240.4,455.2,1 293,-1,1358.3,440.2,50.8,110.8,1 293,-1,1157.3,443.7,48,114.8,1 293,-1,998.9,409.2,154.9,624.3,1 293,-1,410.3,471.9,47.4,102.7,1 293,-1,658.7,461,27,72.8,1 293,-1,381.8,462.8,44.2,111.2,0.999 293,-1,576.2,462,25.7,59.5,0.989 293,-1,445.3,462.9,30,93.8,0.955 293,-1,1419.4,426.3,127.9,290.8,0.946 293,-1,559.9,461.2,25.3,60.3,0.923 293,-1,544.1,460.6,27.4,68.4,0.852 293,-1,601.1,459.2,24,56.4,0.685 293,-1,827.1,479.3,50.9,75.5,0.238 293,-1,479.3,457.3,32.4,97,0.142 159,-1,540,430.3,161.3,459.1,1 159,-1,1188.7,445.1,39.9,101.4,1 159,-1,399.4,469.2,61.6,104.9,1 159,-1,733,434.2,119.9,343.7,1 159,-1,1088,484.4,39.1,115.5,1 159,-1,1000.1,444,38,103.2,1 159,-1,371.6,446.7,44.4,104.3,1 159,-1,843.7,447.6,83.6,287.3,1 159,-1,472.1,466.4,35,111,1 159,-1,1052.5,483.3,39.2,110.6,1 159,-1,909.6,438.8,80.4,244.3,1 159,-1,1130.4,454,34.9,91,0.998 226,-1,737.5,407.9,252.7,587,1 226,-1,372.9,447.3,42.9,106.8,1 226,-1,607.7,452.1,55.5,182.9,1 226,-1,1100.6,448.5,105.9,335.2,1 226,-1,514.9,453.2,34.5,111.3,1 226,-1,428.6,465.7,45.1,112.6,1 226,-1,1051.1,484.4,41.4,110.5,0.999 226,-1,895.4,430.4,136.4,413.6,0.953 226,-1,658,466.7,27.5,72,0.93 226,-1,549.9,457.4,25.5,64.9,0.925 226,-1,531.9,457.7,28.3,80.1,0.674 226,-1,466.7,454.1,36.2,107.5,0.307 226,-1,597.3,423.8,19.7,34.8,0.126 600,-1,915.7,483.8,93.6,111.5,1 600,-1,835,473.3,53.4,76.5,1 600,-1,723.4,448,44.6,109.1,1 600,-1,663.9,458,39.8,102,1 600,-1,1031.4,430.2,105.3,248.7,1 600,-1,1263.6,436.7,100.9,282.5,1 600,-1,797.4,475.5,54.9,62.3,1 600,-1,382,464.2,46.5,114.5,1 600,-1,416.5,467.5,41.5,106.2,1 600,-1,554.9,460.7,31.2,84.1,1 600,-1,1109.7,417.7,92.5,278.3,0.999 600,-1,630.3,456.5,34.9,98.9,0.996 600,-1,995.6,448.7,32.3,90.1,0.958 600,-1,583.7,457.3,32.9,83.6,0.941 600,-1,1204.9,434.7,73.5,247.2,0.59 343,-1,834.5,473.3,54,77.2,1 343,-1,486.7,453.3,34,112.7,1 343,-1,246.3,411.7,218.1,411.3,1 343,-1,1063.4,407.9,195.9,610.2,1 343,-1,905,425.8,148.4,522.1,1 343,-1,1486.5,437.3,55.3,112.3,1 343,-1,796.7,475.5,55.7,63,1 343,-1,6.1,440.3,147.5,363.7,1 343,-1,658.5,463.4,26.5,73.9,1 343,-1,635.1,460.9,24.2,63.2,0.958 343,-1,558.8,460.7,20.7,58.9,0.947 343,-1,578.6,460,22.4,58.4,0.94 343,-1,607.9,457.5,38,62,0.703 343,-1,537.5,458.5,34.5,63.4,0.53 343,-1,410.8,472,46.5,117.8,0.058 481,-1,1180.4,418.1,161.9,584.1,1 481,-1,1353.4,386.6,262.8,694.4,1 481,-1,637.1,436.4,83.8,266.5,1 481,-1,564.2,455.2,35.7,81.9,1 481,-1,775.5,438.1,97.6,290,1 481,-1,1041,440.2,36.7,108.2,1 481,-1,868.9,435.1,138.5,254.9,0.998 481,-1,1086.1,463.4,39.9,135.9,0.997 481,-1,746.6,446.7,44.8,129.4,0.996 481,-1,1111.4,437.9,40.7,149.9,0.993 481,-1,533.5,459.7,26.7,73,0.952 481,-1,995.5,450,29.8,94.5,0.803 481,-1,1518.9,410.4,193.4,429.5,0.78 481,-1,1065.8,447.4,35.1,120.5,0.132 481,-1,4,501.4,168.5,579.6,0.097 481,-1,473.2,459.9,25.3,67.7,0.086 487,-1,1198.3,425,176.9,574.6,1 487,-1,647,431.5,116.1,275.9,1 487,-1,1365.9,384.9,281.7,696.1,1 487,-1,805.5,438.9,114.7,292.7,1 487,-1,567.4,453.9,35,82.8,1 487,-1,901.4,431.1,116.5,254.5,1 487,-1,1032.7,439.8,41,109.8,1 487,-1,1575.9,414.9,179.2,418.2,0.999 487,-1,461.1,461,28.4,76.5,0.999 487,-1,1087.6,457.5,39.4,141.1,0.998 487,-1,1110.7,438,39.6,150.4,0.994 487,-1,532.4,456.8,28.1,75.6,0.993 487,-1,630.3,461.8,27.8,75,0.852 487,-1,1184.4,455.3,33.5,90.3,0.795 487,-1,738.1,444.8,41.3,135.8,0.067 396,-1,835.8,472.2,54.6,78.5,1 396,-1,597.5,403.1,123.1,343.9,1 396,-1,1072.1,416.7,225.6,587.9,1 396,-1,91.6,437,186.5,361.2,1 396,-1,313,448.5,169.1,348.8,1 396,-1,796.6,476.5,56.3,61.9,1 396,-1,917.5,439.7,60.9,176.9,0.999 396,-1,978.2,420.7,129.8,518.9,0.999 396,-1,562.6,462.5,18.5,54.7,0.898 396,-1,530,464.7,23.1,57,0.682 396,-1,425.1,443.6,119.9,295.2,0.625 20,-1,913.9,484.7,96.2,110,1 20,-1,836,472.2,53.7,77.8,1 20,-1,1461.9,413.1,233.4,412.1,1 20,-1,450.5,442.2,123.8,291.6,1 20,-1,1413.8,435.2,55.3,130.9,1 20,-1,1257,448.5,34.8,99.7,1 20,-1,375.2,446.3,42.9,106.1,1 20,-1,587.2,442.9,91.4,270.3,1 20,-1,1012.9,436.5,42.6,116.7,1 20,-1,796,475.9,56.5,61.2,1 20,-1,1091,481.9,33.6,117,1 20,-1,1099.7,437.4,39.8,111.2,1 20,-1,1054.5,486.1,39,108.1,0.999 20,-1,418,456.7,41.2,87.4,0.999 20,-1,402.1,452.5,32.4,92.7,0.077 65,-1,912.3,484.4,97.8,111.2,1 65,-1,835.7,472.4,54.2,78.6,1 65,-1,419.3,458.7,42,85.1,1 65,-1,374.8,447.2,42.8,103.8,1 65,-1,1260,446.8,36.2,101.3,1 65,-1,490.6,442.9,134.5,327.9,1 65,-1,1003.3,441.2,43,115.8,1 65,-1,1531.4,431,51.6,125.2,1 65,-1,622.2,446.7,89.9,282.6,1 65,-1,796.4,474.9,56.4,63.9,1 65,-1,1089.2,481,34.8,117.3,1 65,-1,1053.7,481.6,39.4,112.6,1 65,-1,1096.4,439.7,40.2,111.4,0.999 65,-1,692.2,456.7,75.7,219.6,0.998 457,-1,913.7,483.8,97.2,110.3,1 457,-1,1163.3,406.5,276,674.5,1 457,-1,379.8,462.4,51,116.1,1 457,-1,821.3,406.6,86.8,302.5,1 457,-1,994.6,446,37.6,99.5,1 457,-1,417,384.6,388.3,696.4,0.998 457,-1,1052.7,443,37.9,96.4,0.984 457,-1,1383.8,424,124.7,354.1,0.978 457,-1,413.6,466.5,41.7,106.7,0.946 125,-1,914.6,482.1,95.9,112,1 125,-1,787.6,453.2,94.4,253.1,1 125,-1,374,447.3,41.8,103.8,1 125,-1,429.3,467.4,50.4,105.7,1 125,-1,567.1,438.6,137,395.6,1 125,-1,1087.8,483.8,37.9,117.2,1 125,-1,1235.2,446.2,38.8,101.5,1 125,-1,1005.2,444.3,38.5,102.8,1 125,-1,498.2,469.1,34.5,105.9,1 125,-1,681.2,438.2,99,318.6,1 125,-1,1051.9,483.2,39.3,110.2,0.998 125,-1,531.7,454.1,32.3,77.5,0.983 542,-1,655.6,452.9,39.9,116,1 542,-1,1037.7,438.2,112.5,285.2,1 542,-1,381.9,463.2,49.4,115.1,1 542,-1,713.6,450.1,36.3,96.7,1 542,-1,824.5,429.8,110.9,260.8,1 542,-1,1478.8,404.6,236.4,669.5,1 542,-1,574.6,454.8,38.9,87,1 542,-1,919.2,414.2,135.6,299.4,1 542,-1,415.7,468.2,44.7,103.1,0.999 542,-1,1172.6,444.7,48.3,105.8,0.998 542,-1,544.9,460.3,30.2,78.2,0.994 542,-1,797,477.7,54.2,61.2,0.975 542,-1,461.9,461.3,28.1,66.9,0.655 542,-1,501.3,458.6,21.8,54.6,0.497 542,-1,1110.1,446.8,72.6,233.4,0.22 337,-1,836.4,471.7,52.8,80,1 337,-1,487.8,452.5,36,114.1,1 337,-1,227.5,409.2,193.4,417.1,1 337,-1,1065,389.6,188.9,628,1 337,-1,1473.1,438.3,49,113.2,1 337,-1,899.9,422,146.1,527.4,1 337,-1,411.9,471.4,44.6,105.6,1 337,-1,795.6,475.5,55.5,61.1,1 337,-1,658.8,463.4,26.1,73.6,1 337,-1,1,443.4,144.4,342,0.996 337,-1,633.9,459.7,24.8,64.9,0.962 337,-1,559.9,461.6,19.8,58.1,0.952 337,-1,375.1,464.7,42.6,117.9,0.899 337,-1,585.1,459.3,22.2,58.2,0.881 337,-1,525.7,456.2,35.3,66.9,0.39 473,-1,915.9,487.3,95.4,107.1,1 473,-1,1314.9,391.1,196,689.9,1 473,-1,745.6,440.1,100.5,292.6,1 473,-1,613.7,427.7,78.2,284.2,1 473,-1,1143.6,421.7,158.2,583.8,1 473,-1,837,407.4,86.5,298.5,1 473,-1,1044.9,441.5,41.1,111.3,0.999 473,-1,1083.5,476.6,42.2,121,0.998 473,-1,562.2,454.9,33.7,81.4,0.998 473,-1,992.9,445.9,37.9,99.9,0.997 473,-1,1494.4,417.4,118.9,375.5,0.994 473,-1,1112.7,439.9,40.3,137.7,0.986 473,-1,1,383.3,334.8,697.7,0.966 473,-1,377.1,463.4,44.7,101.4,0.942 473,-1,716,469.6,24.8,71.7,0.927 473,-1,543.6,459.9,25.6,68.3,0.843 473,-1,518.4,467.4,29.2,72.2,0.201 194,-1,638.6,418,167.1,537.3,1 194,-1,405.9,467.6,52.1,108.4,1 194,-1,568.1,452.1,61,167.6,1 194,-1,946,450.9,113.5,306,1 194,-1,806.7,433.5,119.2,369.1,1 194,-1,370.7,445,44.9,106.6,1 194,-1,508.6,455.4,34.5,110.1,1 194,-1,459.3,467.2,41.6,109.7,0.999 194,-1,1143.1,450,40.8,100.2,0.996 194,-1,1173,452.4,38.1,93.9,0.996 194,-1,589.3,421.8,23.2,44.6,0.748 194,-1,1087.5,482.1,39.4,114.3,0.722 194,-1,1107.4,442.7,36.4,100.5,0.602 194,-1,551.3,434,19.7,45.4,0.315 194,-1,561.1,395.1,38,104.7,0.097 194,-1,603.3,412.8,22.4,48.5,0.088 194,-1,1007.9,442.8,89.2,266.1,0.075 127,-1,914.5,483.8,96.3,110.4,1 127,-1,787.8,458.7,96.1,251.7,1 127,-1,425.8,466.1,52.6,107.3,1 127,-1,373.5,446.9,42.6,104.6,1 127,-1,571,442.9,133.9,389.6,1 127,-1,1087.2,482,38.9,118.5,1 127,-1,1231,446.2,41,102.2,1 127,-1,1006.1,444.9,38.7,102.4,1 127,-1,496.1,468.9,34.9,106.6,1 127,-1,1052.6,482.6,39.7,110.8,1 127,-1,682.7,436.6,98.8,323.6,0.999 127,-1,530.4,456.5,30.7,69.1,0.984 30,-1,914,485.3,95.8,110.3,1 30,-1,836,473.5,54,75.9,1 30,-1,375.4,446.9,42.8,105.8,1 30,-1,1435.5,431.1,63.7,130,1 30,-1,471.6,446.3,120.3,288.9,1 30,-1,598.3,441.9,90.9,275.5,1 30,-1,1568.2,394,181.5,436.8,1 30,-1,795.6,475.4,57,62.5,1 30,-1,1256.7,448.4,34.6,99.5,1 30,-1,418.2,458.2,42.9,87.6,1 30,-1,1090.6,481.5,33.8,118.5,1 30,-1,1011.7,440.2,42.3,116.2,1 30,-1,1098.8,439.2,40.2,109.5,1 30,-1,1054,485.2,38.5,109.9,0.999 30,-1,1693.1,428.4,185.3,379.4,0.916 81,-1,912.5,483.6,97.5,111.6,1 81,-1,835.4,472.1,53.4,77.3,1 81,-1,374.4,446.8,43.3,105.5,1 81,-1,1260.2,447.5,36.1,100.9,1 81,-1,1088.1,486.8,36.4,114.7,1 81,-1,1004.3,443.1,42.4,110.9,1 81,-1,538.4,445.1,108.8,334.6,1 81,-1,467.9,465.4,36.3,101.1,1 81,-1,419.5,457.6,42.2,86.4,1 81,-1,709.2,454.2,95.6,227.2,1 81,-1,621.2,439.1,94,292.5,1 81,-1,1055.2,485.6,38.9,108.3,1 81,-1,1097.2,447.7,38.7,105.6,0.543 81,-1,500.8,461.6,25.5,94.7,0.105 449,-1,499,432.9,99.6,292.3,1 449,-1,630.9,438.2,88,310.1,1 449,-1,378.7,463.9,52.6,113.2,1 449,-1,1138.2,397.9,255.8,676,1 449,-1,687.9,329.1,411.8,751.9,1 449,-1,412.9,468.5,47.1,103.3,0.996 449,-1,471.4,459.7,28.2,75.4,0.908 449,-1,1316.8,438.3,131.4,326.5,0.151 449,-1,1042.7,437.4,154.7,528.1,0.07 435,-1,914.4,487.8,92.2,109.7,1 435,-1,415.7,432.4,121.1,309.7,1 435,-1,546.8,448.9,137.2,313.1,1 435,-1,751.2,411.8,106.9,316.1,1 435,-1,1076.4,402.1,213.6,667.9,0.999 435,-1,1314.9,295.3,497.9,785.7,0.999 435,-1,687.4,431.2,83.5,284.9,0.998 435,-1,526.5,465.3,22.5,70.2,0.507 435,-1,825.4,438,55.2,164.6,0.144 437,-1,915.8,484.3,93.2,110.4,1 437,-1,423.2,436,131.1,310.2,1 437,-1,544.1,440,148.5,316.4,1 437,-1,760.8,414.3,101,312.4,1 437,-1,1210.5,312.9,474.9,768.1,0.998 437,-1,1093.6,395.3,216.4,680.2,0.997 437,-1,702.5,430.4,75.4,284.9,0.996 437,-1,529.2,470.2,27.3,71.6,0.142 599,-1,915.7,483.7,94,111.1,1 599,-1,835.9,473.2,52.9,76.7,1 599,-1,723.2,447.9,45.3,110.2,1 599,-1,1255.2,440,105.9,280.8,1 599,-1,663.8,457.4,38.4,102.4,1 599,-1,381.9,463.1,47.1,115.3,1 599,-1,798.1,475.6,54.3,62.4,1 599,-1,416.5,467.2,41.8,106,1 599,-1,1031,428.8,99.4,248.5,1 599,-1,554.4,461.1,31.1,83.9,1 599,-1,1108,415,98.3,279.4,1 599,-1,631.7,455.9,34.3,99.4,0.995 599,-1,582.9,457,33.4,84,0.939 599,-1,993.9,448.4,33.5,92.2,0.853 599,-1,1206.6,435.1,57.6,242.4,0.08 433,-1,914.1,484.5,94.8,109.3,1 433,-1,745.5,413.8,112.6,307.1,1 433,-1,536.9,440.2,144.6,317.8,1 433,-1,408,434,103.9,311.8,1 433,-1,1063.7,406,218.6,633.4,0.999 433,-1,668.2,439.9,87.3,270.6,0.997 433,-1,1420.5,292.8,496.9,788.2,0.996 433,-1,519.7,465.7,22.5,67.9,0.936 433,-1,830.1,434.8,50.2,166.5,0.843 552,-1,836.9,472,51.6,78.7,1 552,-1,651.3,450.4,38.4,115.5,1 552,-1,1085.1,439.9,111.1,284.5,1 552,-1,715.2,448.6,37.8,101,1 552,-1,977.9,415.2,83.4,287.7,1 552,-1,381.4,463.9,49.9,114.8,1 552,-1,890.4,435.6,83.2,250.5,1 552,-1,579.7,456.3,38.6,85.6,1 552,-1,795.9,475.9,55.6,61.9,1 552,-1,415.7,467.2,45.9,103.5,1 552,-1,1553.7,394.6,228.7,686.4,1 552,-1,1194,439.8,40.9,110.3,0.999 552,-1,549.2,460.5,29.8,78.8,0.998 552,-1,502.4,457.5,24,59,0.927 552,-1,1036.6,439.1,44.6,121.6,0.174 540,-1,656.7,451.6,41.9,118.8,1 540,-1,816.9,425.8,116.9,262.9,1 540,-1,1463,404.6,237.2,676.4,1 540,-1,1032.6,438.8,111,285,1 540,-1,714.5,450.7,34.3,93.6,1 540,-1,381.7,463.2,49.6,115.4,1 540,-1,574.7,454.5,37.7,87,1 540,-1,923.7,407.3,128.8,305.6,1 540,-1,415.2,468,44.4,103.3,0.999 540,-1,543.9,459.9,30.4,78.7,0.995 540,-1,1753.2,376.7,167.8,704.3,0.914 540,-1,458,463,29,68.6,0.613 540,-1,505.6,458.4,21.2,53.1,0.435 540,-1,1106.6,451.2,77.8,223.7,0.306 540,-1,1169.4,449.9,45.7,94.3,0.219 540,-1,799.7,475.2,45.1,76.6,0.081 257,-1,656.8,448.9,62.5,189.1,1 257,-1,1234.9,435.4,201.3,379.1,1 257,-1,410.9,465,40.3,112,1 257,-1,936.4,409.7,163.8,637.4,1 257,-1,514.1,452.7,32.6,112,1 257,-1,1784.5,404.7,136.5,380,1 257,-1,371,446,44.6,105.9,1 257,-1,809.6,440.6,131.2,458,1 257,-1,589,460,23.7,62.4,0.996 257,-1,469.7,460.6,31.9,103.8,0.995 257,-1,773.3,453,25.6,73.2,0.994 257,-1,612.1,461.1,23.2,58.2,0.918 257,-1,550.6,460.7,24.1,62.5,0.907 257,-1,627.9,463.4,27.3,63.6,0.255 450,-1,502.4,430.3,105.7,300.1,1 450,-1,1145.3,405.1,245,672.9,1 450,-1,378.7,464,51.7,114.3,1 450,-1,675.6,333.3,386.6,747.7,1 450,-1,412.6,467.5,47,103.3,0.998 450,-1,473.6,458.8,28.5,78.6,0.937 450,-1,1039.7,435.9,170.4,517.9,0.926 450,-1,1000.9,449,30.1,98.5,0.767 450,-1,640.8,436.2,80.4,333.3,0.683 450,-1,1029.6,443.4,25.1,86.4,0.195 450,-1,1321.4,440,129.6,328.9,0.074 582,-1,835.6,472.7,53.6,78.1,1 582,-1,974.6,435.8,97.8,243,1 582,-1,722.1,449,42.5,106.2,1 582,-1,1188.2,442.7,116.8,275.5,1 582,-1,1076,414.7,85,285.1,1 582,-1,797,475.8,55.9,61.8,1 582,-1,383.2,465.4,48,112.7,1 582,-1,416.2,468.4,41.1,104.8,1 582,-1,665.6,453.2,38.9,105.1,1 582,-1,554.7,461,30.6,82.3,0.999 582,-1,1676.4,399.7,244.6,681.3,0.998 582,-1,908.6,482.5,100.5,109.6,0.993 582,-1,634.5,452.7,36.6,105.3,0.989 582,-1,585.3,458.6,37.6,84.8,0.976 2,-1,915.8,481.4,93.5,113.6,1 2,-1,837.2,472.5,53.1,76.6,1 2,-1,442.8,447.6,109.6,274.9,1 2,-1,375.6,446.3,43.3,105.5,1 2,-1,1344.1,414.7,168.2,386.5,1 2,-1,587.2,444.8,86,266.2,1 2,-1,796.3,475.2,54.8,62,1 2,-1,1090.4,482,34.6,117.7,1 2,-1,1014.4,430.5,43.8,121.7,1 2,-1,1055,485.1,38.4,107.7,1 2,-1,1257,448.5,34.2,101,1 2,-1,1099.4,437.9,41.9,109.2,0.999 2,-1,1455.6,424.1,141.4,352.2,0.2 201,-1,404.9,467.3,50.9,106,1 201,-1,660.4,428,173.5,528.9,1 201,-1,573.1,449.2,64.8,172.7,1 201,-1,1138.1,448.1,38.2,104.4,1 201,-1,818.4,432,159.6,381.8,1 201,-1,370.2,446,46.3,106,1 201,-1,978.4,450.6,101.1,314.5,1 201,-1,1184.3,447.3,36,99,1 201,-1,510.5,456.3,34.7,109.8,1 201,-1,1041.8,438.3,99.4,281.7,0.999 201,-1,457.1,466.1,36.4,108.8,0.998 201,-1,591.3,422,23.5,45.2,0.783 201,-1,551.7,438,19.7,45.6,0.408 201,-1,603.8,412.7,22.3,49.6,0.365 201,-1,553.2,423.4,37.1,88.4,0.218 201,-1,648.3,466.1,22,71.7,0.077 516,-1,382.5,463.7,51.5,116.3,1 516,-1,837.5,472.5,53.5,78.1,1 516,-1,1553,378.9,314.1,702.1,1 516,-1,731.8,436.4,113.2,263.9,1 516,-1,688.5,447.8,43.5,128.4,1 516,-1,915.9,441.6,140.7,282.8,1 516,-1,1332.7,424.6,243.6,646.7,1 516,-1,1178.7,448.2,36.1,88.3,1 516,-1,1044.6,436.8,104.5,244.9,1 516,-1,572.3,456.8,32,83,1 516,-1,643.3,453.5,34.5,95.6,1 516,-1,539.8,461.8,28.9,74.3,0.992 516,-1,458.2,460.2,26.2,73.9,0.984 516,-1,410.6,470.4,49.1,98.7,0.372 188,-1,405.5,469.1,53.2,106.7,1 188,-1,613.3,425.1,174.7,499.6,1 188,-1,792.6,437.1,112.1,360.6,1 188,-1,1152.6,448.6,40.1,100.9,1 188,-1,370.3,445.5,44.9,106.2,1 188,-1,1088,483.3,40,116.8,1 188,-1,509.4,455.7,34.8,109.2,1 188,-1,934.8,447.7,92.4,309.5,1 188,-1,568.1,452.8,58.6,162.9,1 188,-1,459.4,469.1,39.9,108,0.999 188,-1,991.4,437.2,93.4,274,0.998 188,-1,581.7,433.2,23.6,40.5,0.589 188,-1,1101.6,447.5,34.2,108,0.405 188,-1,549.5,439,19.5,43.9,0.072 325,-1,1443.8,439.1,54,112.6,1 325,-1,490.6,453.5,46.4,111.3,1 325,-1,52.7,410.2,265.3,441.7,1 325,-1,1053,414,193.9,602,1 325,-1,900.9,421.8,139.6,526,1 325,-1,410.2,467.9,47.1,106.5,1 325,-1,658.3,463,26.7,73.7,1 325,-1,380.4,463.6,44.1,113,1 325,-1,1213.9,436.9,106.7,243.7,1 325,-1,1751,399.7,170,449.9,0.999 325,-1,831.5,444.6,87.2,215.9,0.999 325,-1,796.8,476.6,48.8,61.6,0.99 325,-1,587.5,458.7,21.6,58.5,0.96 325,-1,626.6,458.2,24.7,60.2,0.948 325,-1,555.6,459.6,22.3,59,0.939 335,-1,1470.3,438.1,46.1,114.3,1 335,-1,489.4,453.3,39.3,113.3,1 335,-1,835.2,472,54.3,78.3,1 335,-1,1059.6,408,191.5,606.2,1 335,-1,216.5,405.8,168.8,421.5,1 335,-1,902.2,421.7,144.7,525.8,1 335,-1,410.6,471.6,45.5,104,1 335,-1,796.6,476.1,57.5,61.3,1 335,-1,660.1,461.9,26.7,76,1 335,-1,383.7,465.7,43,112,0.997 335,-1,1,437.6,135.8,346.9,0.995 335,-1,630.4,460.2,25.2,64.2,0.959 335,-1,562.5,462.3,21,58.1,0.959 335,-1,585.7,459.4,22,59.6,0.926 335,-1,514.5,454.4,35.8,80.7,0.098 340,-1,232.5,413,219.5,408.6,1 340,-1,835.3,471.7,54.5,79.9,1 340,-1,486.4,452.8,34.7,114.1,1 340,-1,1066.2,408.7,189.9,588.2,1 340,-1,905.7,424.4,143.2,525.6,1 340,-1,1481.6,438.3,54.2,111.7,1 340,-1,795.9,474.6,56.6,63.3,1 340,-1,2.3,455.1,150.9,330.1,1 340,-1,415.3,472.9,40.5,107.9,0.999 340,-1,659.1,463.8,26,72.4,0.999 340,-1,633.6,460.8,24.7,66.2,0.973 340,-1,559.6,460.8,19.6,59.3,0.943 340,-1,574.3,460.2,23.1,58.7,0.87 296,-1,759.2,442.8,65.5,204.6,1 296,-1,1522.2,432.5,237.9,463.2,1 296,-1,508.7,455.7,35.3,108.8,1 296,-1,1162.5,443.3,48.3,113.1,1 296,-1,871.2,431.6,157.5,500.8,1 296,-1,1004.1,405.5,159.8,636.6,1 296,-1,411.4,470.4,48.3,104.4,1 296,-1,1390.4,423.9,148.1,292.9,1 296,-1,658.7,461,26.1,73.4,1 296,-1,381.8,462.4,43.9,112.6,1 296,-1,577.9,462.2,26.1,59.4,0.989 296,-1,828.6,482.2,58.2,63.9,0.963 296,-1,553.2,461.1,26.2,63.2,0.9 296,-1,595.3,460,23.9,56.7,0.758 415,-1,282.5,433.2,120.1,341.8,1 415,-1,665.1,405,140.4,336.9,1 415,-1,1059.9,411.8,197.3,604.3,1 415,-1,436.5,445.1,164.1,329.9,1 415,-1,872.2,438.8,61.3,172.8,1 415,-1,832.7,473.3,58.4,76,0.995 415,-1,549.3,428.2,102.2,299.5,0.903 415,-1,793.8,476.4,56.1,61.1,0.891 415,-1,996.1,425.9,119.9,509.2,0.842 415,-1,377.5,467.9,46.3,114.5,0.808 415,-1,917.1,481.1,81.9,115.1,0.322 101,-1,913.1,484.3,97.8,110.7,1 101,-1,374.2,446.2,43.2,104.4,1 101,-1,1256.8,444.8,38.7,104.3,1 101,-1,834.7,472.7,53.4,75.9,1 101,-1,452.1,466.5,44.6,105.7,1 101,-1,752.3,455.5,83.3,233.2,1 101,-1,549.6,445,125.2,360.6,1 101,-1,1089.6,484.2,35.7,116.1,1 101,-1,1003.8,443.8,41.8,108.2,1 101,-1,1051.7,482.1,40.5,110.2,1 101,-1,652.4,441.5,99.1,297.7,1 101,-1,510.9,462.3,27.9,105.7,0.554 451,-1,505,435.6,112.3,295,1 451,-1,1143.9,399.7,254.3,673.3,1 451,-1,379.3,463.9,51.4,114.8,1 451,-1,651.7,360.7,375.2,720.3,1 451,-1,412.3,467.5,46.6,103.2,0.997 451,-1,996.7,446.9,35.7,102.4,0.997 451,-1,1041.5,434.4,181.7,532.4,0.974 451,-1,475.6,462.3,29.3,79.4,0.958 451,-1,1029.6,439.2,25.3,87.5,0.528 451,-1,1324.9,439.4,133.7,330.3,0.305 276,-1,824,431.8,145.2,485.3,1 276,-1,391,464.9,42.5,113.2,1 276,-1,512,455.6,34.5,110.3,1 276,-1,969.6,393.8,154.5,668.5,1 276,-1,701.9,444.5,74.8,203.7,1 276,-1,1387.8,439.7,198.8,409.9,1 276,-1,1574,416.2,131.7,330,1 276,-1,457.2,456.6,31.8,109.2,0.999 276,-1,656.7,461.1,27.5,72.9,0.994 276,-1,582.2,460.7,23.2,60.4,0.989 276,-1,629.7,459.9,26.1,61.7,0.953 276,-1,556.2,460.9,24.2,61.3,0.935 360,-1,835.6,470.9,55.1,79.2,1 360,-1,1072.5,407,202,612,1 360,-1,1532.5,436.2,46,113.9,1 360,-1,923.6,420.1,143.7,526.4,1 360,-1,394.2,409.8,184.4,386.3,1 360,-1,1.4,442.4,216.9,411.6,1 360,-1,797.3,475.9,56.6,61.2,1 360,-1,629.2,459.4,27.6,72.2,0.998 360,-1,659.4,464.1,25.9,70.9,0.979 360,-1,885.6,455.2,30.4,70.9,0.954 360,-1,562.1,461.3,19,57.8,0.947 360,-1,590.4,459,22.2,56.5,0.837 360,-1,526.4,458.5,21.1,65.7,0.223 360,-1,604.5,456.2,27.3,62.6,0.157 580,-1,836.2,472.2,53.7,79,1 580,-1,721.4,448.3,41.8,106.9,1 580,-1,968.2,436,101.7,240.8,1 580,-1,1171.4,440.3,125.1,275.4,1 580,-1,381.7,464.6,48.9,113.2,1 580,-1,797.2,475.4,55.3,62,1 580,-1,1065.5,413.6,95.1,282.8,1 580,-1,665.2,453.5,39.6,105.4,1 580,-1,416.2,470.5,42.1,101.8,1 580,-1,1673.3,395.8,247.7,685.2,1 580,-1,553,460.7,32.3,82.1,0.999 580,-1,635.2,452.1,34.9,106.2,0.98 580,-1,584.3,458.3,37.8,84.3,0.979 580,-1,921.9,485,76.1,109,0.052 573,-1,836.5,472.2,53.3,77.8,1 573,-1,1155,440.8,128.9,278.2,1 573,-1,720.1,446.9,41.1,105.1,1 573,-1,1662.7,396.5,254.2,684.5,1 573,-1,381.8,464.6,48.7,113.7,1 573,-1,797.4,476.2,54.7,61.1,1 573,-1,416.3,467.7,42.5,104.5,1 573,-1,1022,413.5,124.7,287.3,0.999 573,-1,958.1,434.3,100.2,251.1,0.999 573,-1,553,459.2,30.6,83.3,0.999 573,-1,664.9,452,38.4,103.9,0.998 573,-1,639.8,452.7,36.6,107.1,0.997 573,-1,580.8,459.1,42.7,82.3,0.989 573,-1,614.8,458.7,25.1,86,0.095 279,-1,708.1,440.6,86.6,211.8,1 279,-1,390.1,465.9,43,111.8,1 279,-1,510.2,455.6,35.1,110.4,1 279,-1,824.7,424.9,151,500.3,1 279,-1,1415.4,431.8,177.2,413.6,1 279,-1,981.4,406.7,154.9,639.4,1 279,-1,452.8,459.6,32.6,106.4,1 279,-1,1327.1,444.2,45.1,106.7,0.999 279,-1,1544.4,417.7,149.2,330.4,0.998 279,-1,657.8,462.6,27.1,72.7,0.997 279,-1,579.3,461.6,24.8,60.6,0.988 279,-1,621.9,460.6,24.7,59.3,0.932 279,-1,562,462,24.5,60.8,0.929 279,-1,539.1,458.5,26.7,78.8,0.555 118,-1,915,483.8,95.4,109.9,1 118,-1,374,445.9,42.7,106.7,1 118,-1,438.1,467.8,43.5,104.4,1 118,-1,1088.1,481.7,38.1,120.5,1 118,-1,559.1,444,130.2,379.9,1 118,-1,678.4,440.7,98.1,309.6,1 118,-1,499.1,465.9,36,107.8,1 118,-1,773.8,450.6,87.9,253,1 118,-1,1239.6,443.5,40.8,103.8,1 118,-1,1051.5,483,40,110.5,1 118,-1,1006.2,445.3,39.3,102.6,0.999 118,-1,539.1,463.8,27.8,64.5,0.807 259,-1,1257.7,442.9,179.2,381.5,1 259,-1,407.8,464.3,42.4,112.2,1 259,-1,659,450.3,63.7,189,1 259,-1,934.2,404.6,170.5,639.9,1 259,-1,1738.6,398.6,182.4,381.6,1 259,-1,513.4,452.8,33.2,110.8,1 259,-1,811,439.5,132.8,456.2,1 259,-1,370.9,446,44.6,107.2,1 259,-1,587.6,459.3,23.5,63.4,0.996 259,-1,472,459.6,30.7,103.9,0.993 259,-1,774.9,451.6,25.5,76.5,0.989 259,-1,552.6,460.9,23.6,61.3,0.936 259,-1,607.5,459.3,23.6,59.9,0.911 259,-1,493.1,456.9,22.9,105.2,0.585 259,-1,759.5,453.1,22.3,75.2,0.095 133,-1,914.4,483.9,96.4,111.1,1 133,-1,797.9,448.6,92.5,264,1 133,-1,412.5,466.7,62.1,104.2,1 133,-1,577.4,433.2,141.7,404.6,1 133,-1,1222.4,446.1,41.6,100.4,1 133,-1,1087,484.6,38.4,115.7,1 133,-1,374.2,447,42.4,104.7,1 133,-1,1004.3,443.7,39.9,105,1 133,-1,490.6,468.5,39.1,108.9,1 133,-1,688.5,437.2,99.2,318.2,1 133,-1,1053.6,483.8,38.6,108.4,1 133,-1,528.3,457.1,32,73.5,0.991 169,-1,536.7,419.9,212.1,479.8,1 169,-1,405.9,467.1,55.6,104.2,1 169,-1,865.8,445,127.1,293.1,1 169,-1,1089.1,483.7,38.3,116.4,1 169,-1,1176.5,448.4,40.1,101,1 169,-1,372.4,445.6,43.1,105.1,1 169,-1,757.8,441.5,113.8,347.9,1 169,-1,1051.9,481.6,40,111.3,1 169,-1,471.5,465.7,34.1,108.2,1 169,-1,997.2,441.6,38.4,105.8,0.999 169,-1,1145.3,452.1,33,93.1,0.988 169,-1,506.7,457.2,30.3,95.4,0.948 169,-1,491.3,460.7,28.4,100.4,0.391 167,-1,536.5,420.3,200.5,480.2,1 167,-1,403.9,466.9,58.8,104.8,1 167,-1,756.7,437.2,112.4,342.2,1 167,-1,1178.6,446.7,41.4,103.1,1 167,-1,372.3,446,42.7,104.9,1 167,-1,1088.3,484.7,38.8,115.8,1 167,-1,470,466.6,34.8,107.9,1 167,-1,860.9,445.2,117.3,293.9,1 167,-1,1051.3,482.5,40.2,112.1,1 167,-1,998.6,443.8,39,106,1 167,-1,1140.8,452.8,32.3,92.3,0.993 167,-1,506.1,455.9,28.1,89.8,0.805 52,-1,912.9,483.3,98.3,111.6,1 52,-1,835.5,472.8,54,76.2,1 52,-1,1498,430,54,131.3,1 52,-1,478,440.1,117.3,320.8,1 52,-1,374.3,445,43.8,107.5,1 52,-1,418.5,456.3,43.2,88.9,1 52,-1,623.9,444.1,90.4,275.2,1 52,-1,1260.6,446.8,35.2,101.4,1 52,-1,1008.6,443.4,41.7,114.8,1 52,-1,796.2,475.1,55.8,62,1 52,-1,1055,483.3,38.5,110.6,1 52,-1,1097.7,437.7,41.3,110.3,1 52,-1,1091.7,479.1,33.2,119,1 52,-1,581.3,452.8,43.6,136.5,0.994 52,-1,1802.8,395.5,118.2,485.8,0.211 51,-1,913.4,483.7,97.8,111.4,1 51,-1,836.1,472.7,53.8,76.9,1 51,-1,1495,429.9,55.1,131.3,1 51,-1,478.3,440.4,118.7,321.8,1 51,-1,624.3,449.9,88.8,267.5,1 51,-1,374.9,445.4,43.4,106.8,1 51,-1,1260.8,446.6,34.9,102.6,1 51,-1,418,456.9,43.3,88.6,1 51,-1,1008.5,443.5,41.3,113.5,1 51,-1,795.6,474.8,56.4,62.7,1 51,-1,1090.4,482.6,33.8,117,1 51,-1,1098.4,437.7,40.6,107.9,1 51,-1,1054.5,483.6,38.5,111.4,0.999 51,-1,583,455,41.6,134,0.994 51,-1,1787,381.6,134,494.5,0.662 479,-1,1171.7,416.5,162.5,587.8,1 479,-1,630.1,435.9,89,275.4,1 479,-1,1349.1,395.2,242.1,685.8,1 479,-1,760.2,440.2,101.8,293.9,1 479,-1,1040.1,438.7,40.1,107.8,1 479,-1,842.2,408.2,79.5,308,1 479,-1,564,454.6,34.6,81.7,0.999 479,-1,1084.9,472.1,40.2,127,0.998 479,-1,1113,438,40.8,146.1,0.997 479,-1,991.4,447.8,34.2,98,0.995 479,-1,526.5,458.4,30.3,75.1,0.993 479,-1,894.4,434.8,99.6,246,0.962 479,-1,1514.2,415.4,188.1,398.9,0.95 479,-1,1018.3,444.5,23.5,93.1,0.312 479,-1,747.3,456.5,41.2,112,0.172 479,-1,1065.6,451.9,38.3,117.3,0.107 479,-1,710.2,465.3,25.9,81.1,0.08 37,-1,913.3,483.6,97.2,112.2,1 37,-1,835.1,472.2,54.6,78.9,1 37,-1,1628,400,247,465.7,1 37,-1,1453.3,427.3,63.5,132.9,1 37,-1,375.1,446.5,43,105.6,1 37,-1,1257.8,448.5,35.2,100.5,1 37,-1,1009.6,439.7,42.4,116.8,1 37,-1,418.2,457.3,42.2,88.1,1 37,-1,479.9,443.9,114.4,301.5,1 37,-1,608.5,442,88.3,276.7,1 37,-1,1090.2,483.6,33.7,117.4,1 37,-1,795.8,475.8,57,61.9,1 37,-1,1054,485.4,38.8,109.6,1 37,-1,1097.4,439.7,39,112.7,0.999 37,-1,670.5,486.4,58.2,192.8,0.073 403,-1,144.7,436,206,356.4,1 403,-1,836,473.9,52.9,75.3,1 403,-1,1080.4,413.9,207.7,612.3,1 403,-1,636.8,413.9,143.7,340.1,1 403,-1,361,439.4,128.3,353.7,1 403,-1,796.1,476.2,56.7,62,1 403,-1,898.1,437.1,59.3,176.5,1 403,-1,484.6,433.6,111,291.6,1 403,-1,980.1,423.7,132.7,506.5,0.999 251,-1,1214.4,437.9,194,380.2,1 251,-1,371.2,445.8,44.2,106.1,1 251,-1,644.6,447.5,64.6,189.2,1 251,-1,415,463.2,38.5,112.5,1 251,-1,910.3,399.4,169.5,657,1 251,-1,513.5,452.5,32.5,112.9,1 251,-1,797.6,439.5,139.3,445,0.999 251,-1,590.5,458.3,22.1,63.8,0.997 251,-1,471.1,457.8,33.5,107.2,0.993 251,-1,548,458.5,24.4,63,0.883 251,-1,1076.4,479.5,49.3,116.7,0.316 251,-1,762.6,446,25.9,75.5,0.148 251,-1,1103.1,442.5,44.8,116.9,0.113 165,-1,538.6,420.2,188.5,477.2,1 165,-1,402.9,467.6,59.2,104.3,1 165,-1,752.1,442.5,112.3,335.2,1 165,-1,1181.8,448.1,40.3,99.5,1 165,-1,1088,483.9,39.4,117,1 165,-1,372.9,446.4,42.7,105.4,1 165,-1,1000.3,442,36.9,106.6,1 165,-1,856.6,447.7,107.9,285.4,1 165,-1,1050.2,482.5,41.3,112.2,1 165,-1,469.4,466.1,36,107.5,1 165,-1,1139.9,452.7,31.9,93.8,0.994 165,-1,507.2,453.4,25.2,89.7,0.431 165,-1,920.2,452.1,75.9,237.7,0.057 377,-1,835.7,472.4,54.4,78.1,1 377,-1,1078.4,411.9,211.8,598.5,1 377,-1,510.6,401.1,129.2,366.3,1 377,-1,157.1,444.4,203.1,377,1 377,-1,796.4,476.5,56.1,61.1,1 377,-1,409.7,469.9,48.3,106.4,1 377,-1,958,421.8,142.8,526.3,0.999 377,-1,472,453,36.8,115.7,0.997 377,-1,5.5,444.1,103.4,362.9,0.996 377,-1,625.1,455.9,31.4,74.3,0.283 377,-1,887.7,458.3,24.6,52.7,0.051 460,-1,912.2,483.7,98.4,109.8,1 460,-1,1173.6,385.8,277.6,695.2,1 460,-1,830.8,410.1,80.1,304.8,1 460,-1,1050.5,440.5,38.5,110.7,1 460,-1,996.6,445.5,37.5,102.8,1 460,-1,654.8,438.4,136.1,302.5,0.999 460,-1,1395.5,424.8,156.7,357.7,0.998 460,-1,312.8,380.2,374.7,700.8,0.997 460,-1,642.4,458.8,27.8,82.5,0.15 148,-1,402.5,464.6,62,108.3,1 148,-1,558.7,432.6,151.1,449.3,1 148,-1,1205,445.3,38.1,103.3,1 148,-1,709.2,435.3,130.2,334.8,1 148,-1,1002.1,443.6,38.1,101.2,1 148,-1,827.1,450.9,89.5,277,1 148,-1,1088.6,483.5,38.1,115.8,1 148,-1,373,445.8,42.4,106,1 148,-1,475.4,462.1,42.2,114.1,1 148,-1,1052.5,484,38.8,109.3,1 148,-1,1124.8,452.8,34.5,92,0.99 148,-1,505.2,454.2,33.8,100.9,0.972 148,-1,523.9,455.2,30,84,0.424 148,-1,887.5,461.1,68.6,211.2,0.083 408,-1,199,431.9,160.7,350.4,1 408,-1,636.7,410.2,159.6,339.9,1 408,-1,1075.5,405.1,197.1,602.3,1 408,-1,836,472.1,53.6,78.6,1 408,-1,880.7,437.8,64.5,176.7,1 408,-1,794.4,475.4,57.9,60.8,1 408,-1,414.7,444.1,107.2,329.6,1 408,-1,496.8,434.6,150.6,304.3,0.999 408,-1,983.6,424.7,133,506,0.994 408,-1,378.1,464.7,52.6,119.1,0.98 408,-1,623.1,456,21.4,69.6,0.099 199,-1,648.8,422,176.2,535,1 199,-1,406.5,467.6,51.4,106.2,1 199,-1,569.3,450.8,64.6,171.2,1 199,-1,816.7,435.1,155,376.8,1 199,-1,371.5,445.2,44.8,106.4,1 199,-1,1138.8,447.3,40.5,104.9,1 199,-1,511.6,456.4,34.7,108.7,1 199,-1,963.9,456.1,109,311.2,1 199,-1,1032.8,438.5,103.5,284.4,0.999 199,-1,1180.3,448,37,98.7,0.999 199,-1,457,465.8,37.3,110.1,0.998 199,-1,591.2,422.3,23.6,46.1,0.794 199,-1,550.2,437.3,19.7,46.2,0.33 199,-1,604,411.7,22.5,50,0.217 199,-1,550.9,425,37.5,91,0.205 199,-1,530.8,459.4,29,93.8,0.054 147,-1,401.7,464.9,62.5,107.3,1 147,-1,1207.2,445.6,37.7,102.9,1 147,-1,564.1,438.8,148.7,435.3,1 147,-1,708,436.3,130.6,330.1,1 147,-1,1002.4,443.9,37.9,102.1,1 147,-1,826.1,449.1,88,277.6,1 147,-1,1088.6,485,37.4,114.4,1 147,-1,372.5,445.9,43.2,105.7,1 147,-1,477.1,463.3,41.3,112,1 147,-1,1050.6,483.6,40.9,110.2,0.997 147,-1,1122,450.9,36.2,92.8,0.991 147,-1,512.6,456.4,32.6,85,0.974 147,-1,530.5,453.5,25.8,77.5,0.629 147,-1,924.7,486.6,73.4,119.4,0.231 265,-1,669.6,450.9,69.2,192.8,1 265,-1,942.7,404.7,174.5,643.3,1 265,-1,512.3,453.9,34.3,109.9,1 265,-1,1670.9,421.4,215.3,347,1 265,-1,823.9,417.5,124.1,507.7,1 265,-1,1331.4,433.7,132,399.5,1 265,-1,371.5,445.5,44.5,109,1 265,-1,1299.9,441.1,42.8,108.6,1 265,-1,402.2,463,43.4,112.4,1 265,-1,589.6,459.8,23,62.6,0.993 265,-1,465.9,459.4,28.6,103.7,0.989 265,-1,779.7,453.2,25.9,73.2,0.975 265,-1,553,460.5,23.9,62,0.921 265,-1,611.2,460.9,23,60,0.918 83,-1,913.6,482,97,113.2,1 83,-1,835,471.8,53.8,78.6,1 83,-1,373.9,447.1,43.9,105.1,1 83,-1,1260.8,446.8,35.4,101.2,1 83,-1,1088,486.6,36.5,115.1,1 83,-1,1004.2,442.8,42.1,110,1 83,-1,715.6,461.4,94.4,221.4,1 83,-1,466.2,465.7,38.2,104.9,1 83,-1,540.7,446,108.8,328.8,1 83,-1,420.4,458.1,41.1,86.1,0.999 83,-1,1054.9,482.9,39,110.6,0.999 83,-1,623.9,444,95.9,288.6,0.999 83,-1,502,461.6,28.1,93.6,0.706 83,-1,1097.1,447.9,39.1,106,0.46 83,-1,516.8,461.6,31.8,88.1,0.197 254,-1,1224.8,437.9,201.6,377.3,1 254,-1,413.6,462.9,40.1,113.6,1 254,-1,652.4,447.5,61.2,188.7,1 254,-1,371.2,445.7,44.5,107.4,1 254,-1,921.8,394.5,162.3,655.2,1 254,-1,514,452.2,32.9,113.5,1 254,-1,804.4,437.8,137.2,454.4,0.999 254,-1,588.8,458.8,24.4,64.3,0.998 254,-1,470.6,459.5,30.8,105.9,0.993 254,-1,769.7,452.9,24.6,71.2,0.983 254,-1,551,460.9,23.9,62.9,0.911 254,-1,610.3,460.5,23.4,59.7,0.781 254,-1,1844.3,390.1,76.7,393.3,0.436 254,-1,628.3,464.7,28.7,64.3,0.422 254,-1,493.1,457.1,22,106.1,0.377 254,-1,1105.5,446.6,45,110.7,0.164 254,-1,1078.9,486.6,49.7,105.9,0.102 115,-1,913.6,483.8,97.2,110.9,1 115,-1,374.3,446.3,43.1,106.8,1 115,-1,441.5,468.5,43.3,103,1 115,-1,1088,485,37.3,116.9,1 115,-1,557.9,432.6,133.3,377.8,1 115,-1,1242.6,444.7,41.4,103,1 115,-1,669.8,437.5,98.7,320,1 115,-1,770.1,455.2,83,240,1 115,-1,501.2,465,35.3,107.8,1 115,-1,1006.6,445.5,37.9,99.5,1 115,-1,833.4,469.9,55.1,81.4,0.998 115,-1,1052.2,483.6,40.7,108.9,0.998 115,-1,536.5,464.9,24.7,66.7,0.134 514,-1,381.5,463.3,51.7,116.7,1 514,-1,905.4,443.6,147.6,283.4,1 514,-1,725,437.4,118.1,265.8,1 514,-1,837.5,469.6,51.1,81.1,1 514,-1,1543,379.2,317.6,701.8,1 514,-1,1042.9,441.4,97.3,238.6,1 514,-1,1178.5,448.3,35.9,88.7,1 514,-1,572.3,455.3,33.2,84.1,1 514,-1,1332.3,427.1,238.9,650.7,1 514,-1,691.7,446.6,43.5,130.7,1 514,-1,641.5,455.6,34.6,89.9,1 514,-1,539.3,460.9,28.9,75.6,0.994 514,-1,459.3,460.1,25.6,73.6,0.982 514,-1,413.7,470.7,48.2,96.9,0.407 514,-1,1785.7,385.7,135.3,506.9,0.106 547,-1,1075.8,442.3,92.9,280.4,1 547,-1,938.7,408.4,112.1,301.1,1 547,-1,653.8,452.6,38.7,115.8,1 547,-1,715.8,450.2,35.5,97.8,1 547,-1,1181.4,442.1,50.8,108.6,1 547,-1,579.2,455,38.1,86.2,1 547,-1,1532.9,407.7,209.9,658.3,1 547,-1,380.8,464,50.2,113.6,1 547,-1,870.3,437.7,82.3,245.9,1 547,-1,415.2,468.3,45.7,103.3,1 547,-1,794.3,476,60.1,60.2,1 547,-1,835.8,470.9,52.8,78.6,0.999 547,-1,545.8,460.7,29.9,78.2,0.998 547,-1,1041.7,448.2,34.3,96.9,0.93 547,-1,504.3,457.7,23,56.5,0.913 547,-1,455.6,463.3,31.7,72.9,0.525 598,-1,915.6,484.1,94.2,111.2,1 598,-1,835.9,472.9,52.9,77.2,1 598,-1,722.4,446.9,45.8,112.8,1 598,-1,1252.1,444.6,107.2,273.1,1 598,-1,664.2,457.4,37.9,102.8,1 598,-1,797.4,475.4,54.8,62.9,1 598,-1,382,462.7,47.2,116,1 598,-1,417,467,41.2,106.2,1 598,-1,554.3,461.6,30.5,84,1 598,-1,1032.4,437.1,90.2,239.6,1 598,-1,1104.9,413.5,101.3,284.6,1 598,-1,629.6,455.9,34.9,98.9,0.997 598,-1,583.1,457.6,33.1,82.4,0.942 598,-1,993.8,449.7,31.8,90.3,0.869 598,-1,1204.3,435.9,54.4,249.1,0.057 537,-1,660.7,449.9,42,119,1 537,-1,808.7,431.6,122,259.9,1 537,-1,1461.1,419.7,225,661.3,1 537,-1,716.1,450.6,33.1,94.9,1 537,-1,1020,444.7,114.6,278.3,1 537,-1,574.9,453.7,35.2,87.2,1 537,-1,923.2,411.7,118,299.3,1 537,-1,381,463,50.3,115.2,1 537,-1,414.5,467.7,46.6,103.7,0.999 537,-1,1104.2,443.7,85.2,228.4,0.997 537,-1,1729.2,385.3,191.8,695.7,0.995 537,-1,544.5,460.4,27.9,77.8,0.987 537,-1,458.1,461.7,28.8,70.9,0.596 537,-1,1173.9,450.1,39.2,83.4,0.112 537,-1,568.1,433.6,20.7,37.6,0.071 412,-1,649.9,409.4,145.1,336.6,1 412,-1,257.3,432.4,123.1,342.6,1 412,-1,875.5,440.4,63.8,169.9,1 412,-1,1069.5,416.2,196,609.9,1 412,-1,426.2,447,152.4,328,1 412,-1,379.5,467.9,52.8,107.6,1 412,-1,836.6,470.8,55.1,81.6,0.999 412,-1,793.6,476.3,63.1,59.7,0.999 412,-1,983.8,422.2,133.8,514.1,0.999 412,-1,520.9,429.5,132.5,301.9,0.957 114,-1,914.5,483.7,95.3,111.4,1 114,-1,374,446.1,42.9,106.8,1 114,-1,1088.6,484.4,36.3,117.5,1 114,-1,441.4,469.5,44.8,102.5,1 114,-1,1243.5,444.8,40.9,103.7,1 114,-1,560.3,430.9,130.5,380.1,1 114,-1,768.2,458,80.4,236.9,1 114,-1,668.7,436.1,97.2,318.5,1 114,-1,501,465.9,35.5,105.4,1 114,-1,1051.1,483.5,41.1,109.9,1 114,-1,1005.4,446.1,39.1,100.3,1 114,-1,835.1,470.4,53.2,78.4,1 539,-1,657.9,451,42.2,119,1 539,-1,1458.1,412.1,237.2,668.9,1 539,-1,811.7,432.9,125.6,253.1,1 539,-1,715.5,450.1,34.1,94.8,1 539,-1,381.1,462.8,49.7,115.4,1 539,-1,574.1,454.3,35.6,87.7,1 539,-1,1027.8,442.9,110.3,280.2,1 539,-1,922.1,415.2,134.5,298.2,1 539,-1,414.8,468.5,45.8,102.8,0.999 539,-1,544.4,460.4,29.1,78.2,0.993 539,-1,1752.9,374.1,168.1,706.9,0.992 539,-1,1100.3,449.4,82.8,226.4,0.812 539,-1,457.7,462.1,29.2,70.9,0.555 539,-1,1171,447.6,43.3,94.8,0.305 539,-1,570.7,434.9,21.4,39.6,0.06 518,-1,741.5,433.8,106.6,263,1 518,-1,382.9,463.8,51.1,115.9,1 518,-1,918.4,439.9,141.2,288.8,1 518,-1,835.5,472.4,52.8,79.2,1 518,-1,1560.3,376.5,296.7,704.5,1 518,-1,1323.2,440.8,253.2,613.4,1 518,-1,688.3,451.3,40,121.4,1 518,-1,1179.1,448.1,36.1,87.5,1 518,-1,572.7,458.1,32.9,82.1,1 518,-1,1045.8,443.1,103.3,238.9,1 518,-1,645.4,452.9,33.2,98.3,1 518,-1,540.5,462.3,29.1,74.9,0.992 518,-1,456.5,460.5,26.6,74.6,0.976 518,-1,413.1,471.1,42.5,100,0.873 324,-1,1441.9,438.7,53.8,113.2,1 324,-1,491.3,454.3,45.4,110.8,1 324,-1,42.1,408.2,277.2,445.2,1 324,-1,895.1,416.9,145,534.4,1 324,-1,1052.8,410.2,195.2,604.6,1 324,-1,410.4,469.7,46.3,104.4,1 324,-1,827.3,443.5,84.6,219.6,1 324,-1,658.4,462.7,26.7,74.1,1 324,-1,380.6,464.6,44.7,112.2,1 324,-1,1212.4,437.8,112.8,251.9,0.998 324,-1,1738.6,401.9,172.5,453,0.997 324,-1,587.5,459.3,22.2,58.2,0.967 324,-1,798.1,473.3,46.1,66.7,0.96 324,-1,625.3,458.1,24.7,60.3,0.95 324,-1,556.3,460,22.4,58.9,0.941 509,-1,382.3,463.2,52.9,116.5,1 509,-1,835.3,471.9,50.4,78.1,1 509,-1,895.7,441.9,151.1,284.1,1 509,-1,720.2,433.4,103.4,268.1,1 509,-1,1524.7,376.2,288.6,704.8,1 509,-1,1319.3,412.1,194.7,647.7,1 509,-1,637.5,456,34.8,89.1,1 509,-1,572,457.7,33.5,82.2,1 509,-1,1177.4,449.5,37.1,87.7,1 509,-1,1095.4,447,55.5,149.3,0.999 509,-1,1752.8,398.4,168.2,518.6,0.998 509,-1,1028.8,436.2,70.6,232.3,0.998 509,-1,538.8,462,29.8,75.6,0.993 509,-1,460.3,459.6,25.4,73,0.982 509,-1,675.6,456.6,25.8,81.2,0.912 509,-1,689.6,456.7,35.4,90,0.596 509,-1,410.4,469.2,49.9,98.8,0.221 7,-1,914,482.4,96.3,112.7,1 7,-1,836.4,472.3,53.2,77.6,1 7,-1,375.8,447.8,42.2,104.3,1 7,-1,1371.5,413.4,165.3,381.3,1 7,-1,586,448.6,86.9,260.8,1 7,-1,439.3,445.9,122,285.2,1 7,-1,1013.9,432.3,41.8,117.4,1 7,-1,1256.5,447.4,34.3,101.6,1 7,-1,1090.7,482.4,34.5,117.8,1 7,-1,796.3,475.3,55.3,61.8,1 7,-1,1054,485.3,38.9,107.9,1 7,-1,1099.7,439.3,41.7,106.9,0.999 7,-1,1485.7,428.4,138.8,344.7,0.956 591,-1,835.8,472,53.3,78.8,1 591,-1,722.4,446.4,45,109.7,1 591,-1,914.9,482.8,96.5,112.9,1 591,-1,1242.6,447.6,89.5,268.1,1 591,-1,1009.1,433,87.3,242.5,1 591,-1,664.7,455.7,39.3,105.4,1 591,-1,1094.4,413.7,105.1,287.1,1 591,-1,381.2,462,48.3,116.7,1 591,-1,796.8,475.5,55.4,61.3,1 591,-1,416.9,466.4,41.2,105.8,1 591,-1,556.3,460.1,28.5,83.6,0.999 591,-1,628.4,454.7,35.4,101.8,0.996 591,-1,587.2,458.3,31.9,82.5,0.962 591,-1,606.2,456.7,31.5,90.7,0.921 591,-1,650.2,455.2,26.9,102.6,0.47 508,-1,382.1,463.1,52.3,116.9,1 508,-1,892,437.2,149.5,289.9,1 508,-1,834.4,472.4,51.8,78,1 508,-1,717.4,435.6,98.6,261.7,1 508,-1,1519.7,387.1,286.2,693.9,1 508,-1,1313.9,420.9,193,631.2,1 508,-1,637.9,456.1,35.7,88.6,1 508,-1,1176.8,449.1,37.5,88.8,1 508,-1,571.8,458.2,33.3,81.7,1 508,-1,1022.8,435.9,75.7,241.9,0.999 508,-1,1746.3,404.1,173.4,515.9,0.999 508,-1,1091.4,451.8,57.3,143.8,0.999 508,-1,538.6,462.1,30.4,75.2,0.992 508,-1,459.7,459.6,25.2,73.5,0.976 508,-1,675.8,457,28.3,79.1,0.965 508,-1,802.9,479.7,50.4,59.4,0.398 508,-1,411.6,469.1,48.6,98.9,0.292 554,-1,837.5,472.9,51.7,78.9,1 554,-1,1088.4,442.1,109.1,281.7,1 554,-1,716.9,447.7,38.4,101.3,1 554,-1,649.3,452.6,38.3,114.1,1 554,-1,1560.1,402.3,235.2,678.7,1 554,-1,381.5,463.7,49.5,114.9,1 554,-1,892.8,434.2,95.8,255,1 554,-1,581.8,457.2,37.5,84.8,1 554,-1,796,476,55.6,62.6,1 554,-1,989.9,409.9,82.1,298.9,1 554,-1,416.3,467.5,44.9,102.5,1 554,-1,548.4,461.2,29.4,77.8,0.998 554,-1,1195.1,439.7,42,113.8,0.924 554,-1,507,457.1,23.9,57.6,0.923 139,-1,913.8,483.7,96.9,110.8,1 139,-1,407.9,468.7,63.6,102.9,1 139,-1,1216.2,445.2,40.8,103.7,1 139,-1,813.8,450.7,88.1,263.7,1 139,-1,567.3,436.9,154.7,418.7,1 139,-1,1088.1,486.5,38.2,114.4,1 139,-1,1002.8,442.9,38.5,103.8,1 139,-1,373.4,446,42.6,104.8,1 139,-1,696.1,431.6,104.6,333,1 139,-1,485.6,467.9,39.9,106.7,1 139,-1,1053.2,483.5,37.6,109.3,1 139,-1,531.8,455.3,29.6,71.4,0.978 139,-1,1106.4,464.1,34.8,84,0.275 314,-1,494.3,455.8,47.1,109.9,1 314,-1,1029.4,401.7,216.3,620.1,1 314,-1,1269.9,424.6,101.4,270.1,1 314,-1,1693.7,417.9,227.3,517.4,1 314,-1,411.1,468.3,46.6,105.6,1 314,-1,1409.3,438.3,54.2,114.7,1 314,-1,897.8,426.6,137.4,523,1 314,-1,10,394.2,168.4,464.9,1 314,-1,806.2,442.7,68.1,216.6,1 314,-1,658.8,462.8,25.8,73.4,1 314,-1,382.2,466.3,44.4,111,1 314,-1,1196.5,448.9,38.4,97.1,0.994 314,-1,579.5,460.6,23.3,57.3,0.99 314,-1,553.1,461.3,22.7,58,0.945 314,-1,624.2,459.8,23.9,59.1,0.945 575,-1,836.6,472,53.1,78.3,1 575,-1,719.7,446.5,42.1,106.9,1 575,-1,1158.5,439.5,126.7,275.1,1 575,-1,381.7,465.4,48.4,112.8,1 575,-1,797.5,476.1,54.6,61,1 575,-1,1030.6,413.6,118,289.8,1 575,-1,416.9,468.9,42.5,103.3,1 575,-1,962.4,432,104.6,245.9,1 575,-1,1669.7,399.2,251.3,681.8,1 575,-1,553.6,458.2,31.9,84.4,0.999 575,-1,664.9,452.9,38.9,103.4,0.999 575,-1,582.5,458.6,41.8,83.9,0.988 575,-1,642,452.3,35.3,106.8,0.977 575,-1,615.5,458.5,25.4,86.9,0.106 122,-1,915,484.9,95.3,109.2,1 122,-1,374,446.2,41.5,105.8,1 122,-1,1089,483.5,37.3,118.6,1 122,-1,434.5,469.1,46.1,104.9,1 122,-1,678.5,440.8,100.9,312.7,1 122,-1,567,438.6,129.8,383.1,1 122,-1,497.8,469.6,34.6,103.3,1 122,-1,1237.7,443,40.4,104.9,1 122,-1,780.1,451.2,95.9,251,1 122,-1,1006.4,444.6,39.7,103.6,1 122,-1,1051.6,483.8,40.3,109.7,1 122,-1,533.5,458.7,30.1,70.5,0.937 175,-1,552.2,428.9,211.3,477.5,1 175,-1,409.3,468.2,51,104.2,1 175,-1,877.2,448.1,120.4,294.3,1 175,-1,771.5,435.2,116.7,361.5,1 175,-1,1087.5,484.2,39.3,115.1,1 175,-1,371.8,445.9,44,106.8,1 175,-1,1164.4,447.6,43.7,100.3,1 175,-1,506.5,454.1,38.4,110.2,1 175,-1,1052.9,482,37.5,111.3,0.999 175,-1,467.3,464.1,35,110,0.994 175,-1,1149.4,450.2,33.1,96.4,0.643 175,-1,491.4,458.9,25,111.6,0.441 175,-1,955.3,434.8,74,259.5,0.366 175,-1,554.4,456.8,22.4,58.8,0.282 175,-1,538.2,457.8,25,74.4,0.209 119,-1,915.2,484,94.8,110.7,1 119,-1,373.4,446,42.5,106.5,1 119,-1,561.9,437,130.4,381.4,1 119,-1,438,467.8,43.5,103.7,1 119,-1,1088.4,483.1,37.5,118.7,1 119,-1,497.5,467.4,35.8,105.7,1 119,-1,1239.5,442.5,40.2,104.2,1 119,-1,678.4,439,99,309.1,1 119,-1,774.6,452.8,90.3,250.6,1 119,-1,1051.9,483.3,39.9,110.8,1 119,-1,1006.7,444.6,39.7,104.3,0.999 119,-1,538,462.7,28.7,65.5,0.854 119,-1,519.3,462.3,30,78,0.528 55,-1,914.5,482.7,96.8,112.2,1 55,-1,836,473,54.1,76.3,1 55,-1,477,444.4,123.9,314.3,1 55,-1,374.8,445,43.6,107.5,1 55,-1,623.4,446.1,89,271.1,1 55,-1,1504.4,432.2,55.1,126.1,1 55,-1,1260.6,446.7,35.2,101.6,1 55,-1,418.5,457.4,42,86.7,1 55,-1,796.1,475.7,57.5,61.9,1 55,-1,1091.5,479.5,33.5,117.9,1 55,-1,1097.6,435.7,40.1,113.6,1 55,-1,1007.5,444.1,41.4,115.6,1 55,-1,1052.7,484.8,39.6,109.1,0.999 55,-1,585.1,456.6,38.4,134,0.938 55,-1,692.8,473.1,59,193.5,0.141 145,-1,402.6,465.7,60.9,106.4,1 145,-1,1208.3,447.3,38.4,102.4,1 145,-1,1087.6,486.6,38.1,112.5,1 145,-1,701.3,438.1,128.9,324,1 145,-1,478,466.8,42.7,109.6,1 145,-1,565.7,437,148.5,431.3,1 145,-1,820.7,447.4,90.2,276.3,1 145,-1,1002.7,444.7,38,100.8,1 145,-1,372.8,445.1,43.9,107.3,1 145,-1,915.3,483.9,93.3,114.3,1 145,-1,1052.9,483.7,39.8,109.4,0.998 145,-1,520,458.9,29,72.2,0.974 145,-1,1115.6,450.6,40.9,93.1,0.973 145,-1,541.8,456.4,26.3,70.9,0.278 145,-1,501.1,458.1,34.6,96.4,0.153 596,-1,915.4,483.3,94.6,111.9,1 596,-1,835.6,472.8,53.4,77.1,1 596,-1,722.6,446.8,45,110.4,1 596,-1,1246.6,447,107,272.6,1 596,-1,1099.1,412.4,101.2,291,1 596,-1,1026.6,431.5,83.8,239.1,1 596,-1,664,456,39.1,103.8,1 596,-1,797.1,475.9,55.6,62.1,1 596,-1,381.4,461.8,47.8,116.1,1 596,-1,553.9,460.3,31.4,84.8,1 596,-1,416.1,466.9,42.4,106.4,1 596,-1,630.6,455.5,34.2,100.4,0.997 596,-1,992.6,448.6,34.7,97.3,0.984 596,-1,581,456.5,33.2,83.6,0.926 596,-1,519.7,455.1,20.2,55.5,0.052 25,-1,914,483.5,96.6,112.3,1 25,-1,836.4,472.7,53.7,77.1,1 25,-1,1416.5,429.9,68.8,133.6,1 25,-1,1486.9,404.5,227.6,422.4,1 25,-1,375,445.9,43.7,107.9,1 25,-1,461.1,440.9,120.4,296.5,1 25,-1,1256.6,448.6,35.1,100.8,1 25,-1,593.3,445.6,90.8,271.2,1 25,-1,794.9,475.9,57.3,61.3,1 25,-1,1091.3,481.4,33.5,119.2,1 25,-1,417.9,457,42.4,87.2,1 25,-1,1053.9,483.9,38.5,112,1 25,-1,1012.4,437,42.1,117.5,1 25,-1,1098.5,439,40.4,111.5,0.999 25,-1,1628.8,413.5,146.4,391.9,0.353 10,-1,914.7,482.4,95.6,112.2,1 10,-1,835.8,472.7,53.7,76.9,1 10,-1,440.4,445.6,128.4,282.5,1 10,-1,375.6,446.4,41.6,105.5,1 10,-1,586,442.5,87.9,271,1 10,-1,1013.8,434.1,42.2,113.6,1 10,-1,1256.6,447.1,34.8,101.4,1 10,-1,1055,485.8,38.6,108.4,1 10,-1,1419.3,405,127.4,404.6,1 10,-1,796.2,475,56.9,62.8,1 10,-1,1099.2,438.7,42.2,107.8,1 10,-1,1091.3,481.4,33.7,118.1,1 10,-1,1378.6,436.9,66.4,129.9,0.993 10,-1,1505.6,419.6,149.9,359.5,0.991 10,-1,418.9,461,40.9,89.1,0.547 10,-1,657.9,465.9,50,173,0.07 91,-1,914.3,482.8,96.9,112.2,1 91,-1,835.5,473.1,54.4,77,1 91,-1,373.2,446.7,45.3,105.3,1 91,-1,1260.7,448.5,35.2,100.3,1 91,-1,1088.2,483.3,37.1,118.6,1 91,-1,461.4,467.4,42.8,103.7,1 91,-1,728.9,453.1,90.5,233.9,1 91,-1,550.4,443.8,113.5,341.9,1 91,-1,1005.8,443.3,40.1,107.2,1 91,-1,1052.5,482.4,39.6,111.3,0.999 91,-1,629.9,446.3,100.5,294.4,0.998 91,-1,424.2,457.9,38,87.3,0.992 91,-1,508.1,462.7,29.6,102,0.619 192,-1,632.2,421.5,167.1,525.4,1 192,-1,567.3,454.5,59.1,161.8,1 192,-1,405.4,468.6,52.6,107.8,1 192,-1,939.8,448,105.6,309.7,1 192,-1,804.2,440.3,110,358,1 192,-1,370.5,445,45,106.3,1 192,-1,508.9,455,34.8,109.9,1 192,-1,1145.8,448.7,41.8,100.8,0.999 192,-1,1087.8,482.2,40.8,117.5,0.999 192,-1,459.1,468.3,41.2,108.9,0.999 192,-1,1099.4,440.9,39.2,102.2,0.944 192,-1,1173.4,450.7,33.6,94.8,0.771 192,-1,582.3,430.5,23.7,41.9,0.749 192,-1,1005.1,443.7,76.5,275.2,0.514 192,-1,549.7,433.9,20.1,44.4,0.114 192,-1,603.6,413.7,22.1,47.4,0.064 192,-1,562.3,394.4,37.5,105.6,0.058 489,-1,648.6,433,120.5,274.2,1 489,-1,808.3,443.4,125.6,283.8,1 489,-1,1376.6,392.6,279.4,688.4,1 489,-1,568,456,34.1,80.6,1 489,-1,1200.4,428.2,198.7,592.9,1 489,-1,921.3,434.9,105.3,241.6,1 489,-1,1031.9,439.3,41.6,114.5,1 489,-1,1598.2,412,156.5,426.2,1 489,-1,1183.7,450,33.8,90.3,0.999 489,-1,1112.7,437.2,38.8,150,0.998 489,-1,1084.7,455.3,41.6,142.4,0.997 489,-1,533.6,457.6,27.8,74.5,0.99 489,-1,461.3,458.5,26.3,80.3,0.984 489,-1,629.4,460.9,27.5,70.3,0.619 489,-1,439.7,463.6,30.2,86.8,0.431 80,-1,912.5,484.1,98,111.1,1 80,-1,835.2,472.3,53.7,77.4,1 80,-1,374.5,446.9,43.4,105.1,1 80,-1,1260,447.2,36.2,101.1,1 80,-1,1088,485.7,36.9,115.8,1 80,-1,419.7,456.9,41.5,85.8,1 80,-1,533.2,444.5,113.9,333,1 80,-1,708.9,452.2,94.8,229.3,1 80,-1,1004.4,443,42.4,111.2,1 80,-1,1054.1,483.4,40.1,109.9,1 80,-1,469.9,466.1,35,100.5,1 80,-1,615.2,441.6,94.4,291.1,0.999 80,-1,1096.7,447.9,39.6,105.3,0.485 80,-1,501.2,461.6,27.5,97.2,0.226 80,-1,797.6,480.7,55.1,56.3,0.142 80,-1,403.4,452.8,31.3,90,0.058 80,-1,514.2,468.6,32.8,119.8,0.052 482,-1,1182.8,419.8,166.3,586,1 482,-1,1358.6,385.4,268,695.6,1 482,-1,638.3,435.3,86.4,271.3,1 482,-1,1038.2,441.5,37.7,105.3,1 482,-1,564.9,454.2,34.9,82.1,1 482,-1,783.8,436.3,94.8,290.5,0.999 482,-1,747.4,446.5,45.2,129.8,0.999 482,-1,875.3,433,133.4,257,0.998 482,-1,1086.2,465.7,40.6,132.9,0.998 482,-1,1114.2,441.1,39.7,145.2,0.992 482,-1,534.9,459.4,26.2,73.1,0.951 482,-1,851.5,411.1,73.6,308.3,0.93 482,-1,463.6,462.6,32,73.4,0.848 482,-1,1523.2,416,202.6,409.6,0.65 482,-1,997.8,450.4,27.7,91.5,0.428 482,-1,549.2,458.2,26.6,73.9,0.362 482,-1,1070,451.9,34,117.7,0.115 271,-1,1360.9,443.2,194,402,1 271,-1,511.8,455,34.5,110.5,1 271,-1,822.6,437.3,137.2,482.1,1 271,-1,690.5,448,60.2,195,1 271,-1,954.2,406,169.6,644.6,1 271,-1,1637.3,418.4,132,335.8,1 271,-1,374.3,447.7,42.4,111.8,1 271,-1,651,462.5,25.7,69.8,0.997 271,-1,460.1,460.8,31.7,105.9,0.996 271,-1,585.7,459.3,23.5,62.4,0.993 271,-1,559.5,461.8,23.3,60.9,0.932 271,-1,634.9,461.3,26.7,63.2,0.859 271,-1,414.1,466.3,31.5,104.7,0.085 271,-1,784.5,459.6,25.3,69.6,0.055 82,-1,912.8,483.3,97.2,112.1,1 82,-1,835.2,471.4,53.6,78.8,1 82,-1,374.7,447.4,43.5,105.2,1 82,-1,1260.5,447.5,35.4,100,1 82,-1,1088.3,487.4,36.2,113.9,1 82,-1,712.3,454.3,100,226.9,1 82,-1,1004.2,442.1,42.1,110.2,1 82,-1,539.7,441.3,109.5,338.8,1 82,-1,418.7,457.6,41.6,86.6,1 82,-1,468.5,465.4,36.1,104,1 82,-1,1054.4,485.3,39.6,108.7,1 82,-1,620.2,441.6,94.4,284.1,0.998 82,-1,500.5,460.3,26.3,94.2,0.577 82,-1,1097.8,449.8,38,106.4,0.336 95,-1,914,483.2,97,111.8,1 95,-1,836.2,472.6,53.3,77,1 95,-1,372.6,446.6,45,105,1 95,-1,457.4,469.6,43.8,103.9,1 95,-1,1259.2,445.3,37.3,103.7,1 95,-1,1088.6,484.4,36.6,116.8,1 95,-1,742.1,454,81.1,233.4,1 95,-1,549.8,443.7,115.4,356,1 95,-1,1004.5,442.4,41.4,108.6,1 95,-1,1052,482.7,40.2,110.2,1 95,-1,639.3,443.6,104.4,295,0.999 95,-1,435.5,461.8,37,83.9,0.637 95,-1,511.8,464.8,29.8,100.8,0.175 398,-1,835.9,472.7,52.8,76.8,1 398,-1,111,432.5,194.5,362.9,1 398,-1,1075.3,427.6,217,583.5,1 398,-1,609.5,406.1,123.3,345,1 398,-1,315.8,443.8,172.2,356.4,1 398,-1,796.7,476.3,55.6,61.8,1 398,-1,910.7,437.7,61.1,179.5,1 398,-1,976.6,423.6,132.4,514.7,0.998 398,-1,562.9,463.2,19.2,52.8,0.922 398,-1,432.7,441.6,116.1,299.7,0.808 363,-1,835.3,472.4,53.7,77.4,1 363,-1,1069,405.8,210,611.8,1 363,-1,401,409.6,197.5,389.3,1 363,-1,1.2,446,221.2,404.2,1 363,-1,1538.4,434.5,47.9,115,1 363,-1,928.3,420,140.8,517.3,1 363,-1,796.9,475.9,56.9,61.4,1 363,-1,627.6,459.1,28.7,73.5,0.999 363,-1,181.6,435.5,119.3,340.6,0.991 363,-1,596.2,459.4,22,56.7,0.881 363,-1,565.7,461.1,17.5,59.1,0.872 363,-1,884.3,454,31.4,67.6,0.869 363,-1,657.9,460.4,25.2,72.4,0.741 363,-1,374.4,459.2,43.1,105.2,0.053 560,-1,836.4,472.8,54.5,76.7,1 560,-1,718.1,448.7,37.8,99.5,1 560,-1,1570.6,385.8,266.6,695.2,1 560,-1,900.5,432.1,95,251.3,1 560,-1,1000.1,414.1,116.2,281.5,1 560,-1,643.4,452.9,38.7,112.8,1 560,-1,381.6,464.1,48.7,113.9,1 560,-1,797,476.4,56.5,61.2,1 560,-1,415.7,467.2,45.2,103.5,1 560,-1,1093.5,439.5,121.1,276.3,0.999 560,-1,578.7,456.8,40,84.6,0.999 560,-1,547.7,460.8,30,80.1,0.999 560,-1,509.8,457.8,24,55.6,0.919 560,-1,1200.3,446.4,47.6,112.1,0.21 222,-1,1067.6,447,128.8,337.4,1 222,-1,724.4,410.7,208.6,581,1 222,-1,602.9,452.9,54.7,176.5,1 222,-1,372.1,447.7,43.4,104,1 222,-1,514.7,454.1,35.2,110.4,1 222,-1,431.3,465.6,46.5,110.7,1 222,-1,890,426.2,134,414.4,1 222,-1,1217.2,452.7,38.6,96.2,0.993 222,-1,552.1,455.6,24.1,65.3,0.936 222,-1,659.1,465.1,23.4,70,0.895 222,-1,1056.4,478.3,39.1,129,0.477 222,-1,412.6,467,33.5,96.9,0.32 222,-1,595.9,422.9,18.9,36.4,0.156 327,-1,1446.3,439.9,54.1,111,1 327,-1,490.6,454.1,43.5,111.6,1 327,-1,896.7,417.1,144.4,532.4,1 327,-1,1051.6,403.8,198.7,610,1 327,-1,86,408.2,237.9,433.9,1 327,-1,410.5,467.8,46.8,106.6,1 327,-1,796.8,477.1,53.1,59.9,1 327,-1,658.5,463.2,25.7,72.3,1 327,-1,380.6,463,44.8,113.7,1 327,-1,836.3,442.6,86.7,225.6,1 327,-1,1755.8,398.6,165.2,468.8,0.999 327,-1,585.2,459.3,21.4,58.3,0.956 327,-1,624.8,459.4,24.3,61.3,0.954 327,-1,560.1,459.5,21.9,59.3,0.948 327,-1,1203.4,432.8,86.8,252.6,0.732 568,-1,837.2,472.6,52,76.3,1 568,-1,720.3,447.9,40.4,102.3,1 568,-1,1145.7,439.1,101.5,281.3,1 568,-1,797.4,475.9,54.7,61.9,1 568,-1,1012.7,417.8,129.9,284.8,1 568,-1,1639.4,407.7,248,673.3,1 568,-1,382.5,465.3,48.8,112.9,1 568,-1,416.8,467.7,44.2,103.8,1 568,-1,641,452.6,38.7,111.3,1 568,-1,552.2,459.3,29.7,82.9,0.999 568,-1,946.1,432,73.3,240.3,0.999 568,-1,580.4,458.6,42.1,83.3,0.998 568,-1,665.6,450.9,35.9,102.5,0.978 568,-1,517.4,458.3,21.1,53.6,0.491 568,-1,498.8,461.9,22.7,54.7,0.427 572,-1,836.4,472.2,52,77,1 572,-1,1153,441.7,125.3,278.3,1 572,-1,719.5,447.1,41.6,104.6,1 572,-1,1662.1,400,245.7,681,1 572,-1,382.3,464.3,48.5,114.2,1 572,-1,797.4,476.3,54.7,61,1 572,-1,416.5,467.1,43.2,104.7,1 572,-1,1018.4,416.8,127.4,284.7,1 572,-1,552.2,458.7,30.8,83.3,1 572,-1,958.1,431.5,89.5,251.4,0.999 572,-1,665.7,451.7,38.2,102.9,0.998 572,-1,639.4,452.6,36.2,107.5,0.997 572,-1,582.9,458.3,40.7,82.6,0.994 572,-1,519.2,458.7,19.9,53.1,0.092 470,-1,914.5,483.7,96.5,110.6,1 470,-1,601.7,431.3,81.5,278.3,1 470,-1,735.1,436.6,96.2,301.2,1 470,-1,1294.7,392.1,194.8,688.9,1 470,-1,837.7,404.4,84.6,303,1 470,-1,995.2,446.2,37.3,99.6,1 470,-1,1082.9,472.7,45.2,124.4,0.999 470,-1,1139.2,424.4,147.8,574.5,0.999 470,-1,25.7,387.2,398.1,693.8,0.999 470,-1,1047.9,439.7,39.7,110.1,0.998 470,-1,1476.5,421.2,111.5,379.7,0.997 470,-1,380.5,461.9,45.7,116.3,0.997 470,-1,563.6,453.7,29.3,79.6,0.976 470,-1,709.2,472.9,24.6,71.7,0.736 470,-1,720.1,474.3,30.6,96.7,0.079 298,-1,762.7,444.1,65.2,203.6,1 298,-1,1391,431,125,282.9,1 298,-1,1557.4,432.5,205,465.3,1 298,-1,508,456,35.8,108.1,1 298,-1,1163.5,442.6,48.9,111.8,1 298,-1,874.2,436.9,155.9,492.6,1 298,-1,1009.4,405.1,155.5,617.5,1 298,-1,410.5,469.7,47.1,104.9,1 298,-1,833.8,478.4,53.6,68.4,1 298,-1,382.5,462.2,43,113,1 298,-1,660.2,462.3,25.2,72.6,0.998 298,-1,579,460.3,26.3,60.1,0.992 298,-1,552.3,459.9,26.3,63.7,0.914 298,-1,596.9,458,25.8,58.7,0.697 298,-1,440.7,461.9,29.9,97.6,0.449 558,-1,1091.4,444.9,115.4,279.6,1 558,-1,836.1,472.6,53.9,77.8,1 558,-1,717.3,448.2,39.4,101.7,1 558,-1,1566.9,395.2,254.8,685.8,1 558,-1,645.4,452.4,39,114.2,1 558,-1,381.9,464,48.6,114.1,1 558,-1,895.8,435.4,100.1,255.4,1 558,-1,1000.5,413,99,292.2,1 558,-1,797.1,476.1,55.7,61.4,1 558,-1,578.7,456.1,39.4,86.4,1 558,-1,415.7,466.7,44.9,103.3,1 558,-1,547.7,460.6,29,78.7,0.997 558,-1,508,456.2,24.4,57.1,0.908 558,-1,1193.6,444.6,49.5,114,0.721 290,-1,736.9,444.1,72.5,207.4,1 290,-1,848.7,428.6,168.2,494.8,1 290,-1,1352.7,440.1,52,111.7,1 290,-1,1496.2,436.6,242.8,442.6,1 290,-1,509.2,455.6,34.6,108.4,1 290,-1,998.4,404.4,157.6,640.4,1 290,-1,659.5,459.2,26.6,76.3,1 290,-1,408.6,470.1,47.4,105.2,1 290,-1,383.1,461.3,43.5,111.7,0.997 290,-1,1152.1,448.4,48.8,106.4,0.994 290,-1,577,462.5,26,60.6,0.982 290,-1,450.2,459.6,30.7,101.9,0.962 290,-1,560,462,25.6,61.5,0.928 290,-1,596.4,459.8,24.6,57.4,0.912 290,-1,544.8,461.2,26.9,69.4,0.859 462,-1,913.3,484.2,97.8,109.1,1 462,-1,827.4,406.5,90.1,305,1 462,-1,677.5,434.9,120.2,304.9,1 462,-1,1167.3,405.7,309.8,675.3,1 462,-1,1051.2,440.9,37.7,109.6,1 462,-1,995.6,445.3,37.1,103,1 462,-1,1398.6,431.7,170.7,360,0.998 462,-1,251.7,369.5,386.3,711.5,0.998 462,-1,1085.8,479.6,35.7,104.7,0.607 462,-1,569.5,421.8,88.6,345.6,0.328 462,-1,797.5,448.5,37.5,147.4,0.082 275,-1,1377.8,439.1,194.8,408.6,1 275,-1,511.4,454.8,34.9,111.2,1 275,-1,699.1,445.8,72.5,198.7,1 275,-1,391.7,465.5,41.7,113,1 275,-1,824.7,430,143.6,490.6,1 275,-1,967.4,401.6,161.7,654.1,1 275,-1,1590.6,415.8,126.4,336.8,1 275,-1,457.5,456.7,31.4,109.8,0.999 275,-1,655.1,460.8,27.1,72.5,0.992 275,-1,582,460.7,23,60.6,0.988 275,-1,629.9,460.4,25.8,61,0.943 275,-1,556,460.6,24,61.6,0.937 275,-1,671.5,464.8,35.4,79.8,0.074 529,-1,795.9,431.6,110.5,265.2,1 529,-1,671.9,454.7,43.4,117.2,1 529,-1,1435.7,422.3,194,636,1 529,-1,996.6,439.6,102.2,287.9,1 529,-1,574.2,455.7,34.4,85.9,1 529,-1,382.5,463.5,49.5,114.8,1 529,-1,908.6,405.9,81.6,305.6,1 529,-1,1086.7,440,93,229.1,0.999 529,-1,717.6,452.3,32.3,89.9,0.999 529,-1,1613.4,366.5,307.6,714.5,0.999 529,-1,1178.5,448,36.3,89.5,0.999 529,-1,416.2,467.8,45.4,103.3,0.999 529,-1,544.7,461.8,28.1,75.8,0.979 529,-1,458.5,462.2,28.9,71,0.868 529,-1,654.4,455.7,35.5,102.7,0.241 529,-1,566.6,432.6,20.5,39.3,0.081 32,-1,913.8,484.3,97.6,111,1 32,-1,835.5,472.6,54.2,77.2,1 32,-1,375.8,447,42,105.5,1 32,-1,473.5,445.8,114.5,297.3,1 32,-1,1444,432.1,63,129.2,1 32,-1,1257.3,448.6,34.6,99.8,1 32,-1,417.8,457.1,41.7,88.4,1 32,-1,1011.4,439.2,42.1,116.8,1 32,-1,1090.8,480.9,34.6,120.3,1 32,-1,795.6,475.3,57.2,62.2,1 32,-1,1605.4,396.7,178.5,432.5,1 32,-1,600.7,445.2,89.5,275,1 32,-1,1098.3,439,40.9,111.2,1 32,-1,1054.1,485.6,39.1,109.6,0.999 32,-1,1704.6,412.4,201.6,397.2,0.863 538,-1,658.6,450.7,42.7,118.7,1 538,-1,1456.9,412,237.6,669,1 538,-1,809,429.5,127.1,262.5,1 538,-1,716.2,450.4,33.2,94.3,1 538,-1,381.1,463,50.5,115.9,1 538,-1,1024.1,445.9,114.7,275.2,1 538,-1,574.2,454.7,36,86.6,1 538,-1,918.3,414.3,128,301.8,1 538,-1,415,467.9,46.4,103.1,0.999 538,-1,545,460.3,29.1,78.7,0.993 538,-1,1733.9,365.9,187.1,715.1,0.974 538,-1,1099.3,444.1,87.7,231.6,0.96 538,-1,456.1,462,30,72.5,0.569 538,-1,1171.7,451.4,43.2,84.9,0.159 538,-1,568.5,433.4,20.7,38.5,0.055 333,-1,1058.4,400.5,195.2,606.1,1 333,-1,490.3,453.9,39.2,111.2,1 333,-1,1466.3,441.8,46.2,109.3,1 333,-1,835.3,472.8,53.6,78.3,1 333,-1,208,404.8,149.3,423.6,1 333,-1,903.2,422.9,143.1,526.1,1 333,-1,409.9,469.6,46.3,104.9,1 333,-1,797.1,476.3,59.1,60.8,1 333,-1,659.8,462.1,26.5,74.2,1 333,-1,382.5,464.4,45.4,112.1,0.999 333,-1,629.1,460.1,25.1,64.1,0.969 333,-1,558.3,462.7,20.8,58.3,0.952 333,-1,583.3,459.8,21.9,59,0.912 333,-1,1775.5,404.4,145.5,453.3,0.762 333,-1,515.5,455.1,35.7,81.7,0.111 266,-1,673.9,449.7,68.1,194.7,1 266,-1,821.9,441.7,129.5,478.3,1 266,-1,512.2,454.8,34.6,109.5,1 266,-1,1667.7,416.2,205.4,351.5,1 266,-1,946.4,410.2,166.4,640,1 266,-1,1342.1,437.5,130,398.1,1 266,-1,402.2,464.6,43.1,110.7,1 266,-1,370.3,445,45,107.9,1 266,-1,1300.5,443.4,41.5,104.7,0.997 266,-1,463.6,460.3,31.1,102.8,0.995 266,-1,585.8,459.6,23.6,63,0.993 266,-1,781.4,452.4,26.9,73.3,0.983 266,-1,555.7,461.4,24,61.3,0.939 266,-1,610.3,460.3,22.9,59.6,0.912 431,-1,914.8,484.8,94.6,108.7,1 431,-1,397.3,434.4,106.2,311.8,1 431,-1,1066.1,390.3,203.5,689.4,1 431,-1,734.6,414.8,118.2,313.2,1 431,-1,538,439.2,124.6,319.2,1 431,-1,830.8,436.9,56,164.8,1 431,-1,640.9,429.8,110.1,287.2,0.999 431,-1,1534.5,267.2,386.5,813.8,0.945 431,-1,523.2,467,24.3,67.1,0.667 431,-1,499.7,470.7,26.1,66.6,0.628 260,-1,1263.1,443.2,175.1,383.2,1 260,-1,407.5,464.1,43.3,112.3,1 260,-1,662.1,451.3,63.4,188.8,1 260,-1,935.8,404.4,169.4,638.4,1 260,-1,512.1,453.1,34.6,109.7,1 260,-1,1735.2,397.4,185.8,386.8,1 260,-1,371.5,446.3,44.3,105.4,1 260,-1,815.3,429.8,128,481,1 260,-1,589.5,459.4,23.2,63.4,0.996 260,-1,471,459.8,29.6,104.1,0.993 260,-1,775.5,453.6,25.3,73.2,0.987 260,-1,554,461.2,23.3,60.8,0.936 260,-1,605.8,459.1,23.4,62.3,0.899 260,-1,493,457.4,22.6,104.4,0.508 260,-1,757.5,454.6,22.5,74.1,0.097 483,-1,1355.2,386.5,279.2,694.5,1 483,-1,640.7,436.9,92.9,270.9,1 483,-1,1188,419.6,163.2,589.8,1 483,-1,1036.7,440,38.6,106.3,1 483,-1,565,454.7,34.9,81.9,1 483,-1,790.8,435.8,99.5,296.6,1 483,-1,744,446.6,44.7,131,0.999 483,-1,1086,468.4,39.3,131.6,0.999 483,-1,880.5,434.7,129.2,253.5,0.999 483,-1,1113.2,442.7,40.1,142.7,0.992 483,-1,1544.5,410.6,184.5,421.3,0.983 483,-1,467.5,459.9,28.6,77.5,0.981 483,-1,535.2,459.3,26.5,72.1,0.958 483,-1,1001.6,448.4,27.1,94.2,0.632 483,-1,855.8,418.2,64.4,287.1,0.382 483,-1,1068,448.1,34.5,115.8,0.101 483,-1,1155.8,454.4,24.9,90.6,0.051 93,-1,914.3,483.2,96.9,112,1 93,-1,836.3,472.8,53.6,78,1 93,-1,373,446.5,45.2,104.8,1 93,-1,1260,446.8,36.2,101.9,1 93,-1,1088.7,483.9,37,117.6,1 93,-1,461.3,468.6,42.1,104.9,1 93,-1,733.9,452.5,86.8,235.3,1 93,-1,551.4,443,112.2,354.1,1 93,-1,1005,442.5,40.7,108.4,1 93,-1,1052.1,482.8,40.4,110.7,1 93,-1,639.1,443.8,102.5,297.8,0.999 93,-1,426.7,457.5,35.3,86.2,0.974 93,-1,506.3,465.7,29.7,91.4,0.358 245,-1,630.4,451.6,75.2,185.1,1 245,-1,855.3,417.6,200.7,605.6,1 245,-1,417.9,464.8,37.3,110.2,1 245,-1,370.4,446.4,45,105.7,1 245,-1,1200,445,113.6,353.5,1 245,-1,513.7,452.8,32.9,112.3,1 245,-1,1083.8,481,43.4,118.4,1 245,-1,589.8,460,21.7,64.7,0.997 245,-1,1115.6,446.4,40.3,101.3,0.996 245,-1,474.9,456,33.1,107.8,0.986 245,-1,553.1,458.4,24.5,62.4,0.921 245,-1,774.7,440.5,140.5,422.3,0.772 245,-1,442.7,461.9,40.3,102,0.072 179,-1,570.3,425.7,195.2,484.8,1 179,-1,408.6,469.1,49.7,104.5,1 179,-1,780,439.8,105.8,355.3,1 179,-1,1159,446.9,39.5,101.8,1 179,-1,894.3,443.8,111.2,299.4,1 179,-1,370.4,443.8,45.5,108.6,1 179,-1,507,454.9,38.9,107.6,1 179,-1,1086.4,484.2,39.8,115.5,1 179,-1,464.9,467.4,35.2,110,0.998 179,-1,958.3,441.4,115.7,261.3,0.995 179,-1,1054.8,481.7,34.1,113.1,0.954 179,-1,555.6,458.6,26.3,67.8,0.947 179,-1,535.7,452,28.7,88,0.615 179,-1,565.6,453.4,37,86.2,0.255 179,-1,578.6,432.5,21.8,40.9,0.103 4,-1,915.6,481.8,94.4,113.5,1 4,-1,836.9,472.5,52.8,77,1 4,-1,376.3,447.1,41.3,104.5,1 4,-1,440.5,447.7,111.4,277.6,1 4,-1,1346.8,416.3,177.8,380.7,1 4,-1,588,446.4,85.9,263.5,1 4,-1,1257.2,448.6,33.9,102.1,1 4,-1,1090.3,482.5,34.6,117.7,1 4,-1,796.8,474.9,55.7,62.5,1 4,-1,1014.4,431.3,43.9,117.7,1 4,-1,1054.3,484.6,38.8,108.5,0.999 4,-1,1099.2,439.3,40.5,107.9,0.999 11,-1,914,482.3,97.2,112.5,1 11,-1,835.8,472.6,53.7,77.1,1 11,-1,586.8,443.6,86.1,271,1 11,-1,441.2,446.4,127.9,282.4,1 11,-1,376.3,447.2,41.6,104.5,1 11,-1,1425.4,405.6,131.1,394.2,1 11,-1,1014.1,433.3,42.7,115.4,1 11,-1,1257,446.9,34.8,101.6,1 11,-1,1090.5,483.8,34.2,117.1,1 11,-1,796,475.5,56.7,62.6,1 11,-1,1055.1,487.3,37.3,106.3,1 11,-1,1099.4,438.2,41.7,108.5,1 11,-1,1381.6,436.5,62.4,130.3,0.998 11,-1,1522.9,422.7,149.2,353.8,0.994 11,-1,417.2,460.4,39.1,85.3,0.825 11,-1,659.6,465.1,49.6,173,0.057 77,-1,913.2,483.5,97.5,111,1 77,-1,835.4,472,53.5,77.3,1 77,-1,374.9,447.3,43.3,105,1 77,-1,1260.4,447.5,35.4,100.5,1 77,-1,1088.3,485.2,36.3,116.3,1 77,-1,529.5,449.5,118,325.1,1 77,-1,418.9,457.1,41.8,85.4,1 77,-1,1004.5,442.8,41.9,111.4,1 77,-1,703.5,455.6,83.9,224.6,1 77,-1,1053.5,481.5,40.4,113.8,0.999 77,-1,612.1,442.3,97.7,291,0.999 77,-1,472.7,465.6,34.1,102.9,0.999 77,-1,798.3,476.2,52,60,0.948 77,-1,1097.2,443.6,39.9,105.8,0.829 277,-1,390.2,465.2,41.3,112.5,1 277,-1,823.8,433.8,145.9,483.9,1 277,-1,511.8,455.6,34.4,110.2,1 277,-1,703.5,444.9,76.8,204.2,1 277,-1,1393.6,441.1,201.8,405.6,1 277,-1,972.6,398.9,156.7,662.4,1 277,-1,456.1,457.2,31.5,107.3,0.999 277,-1,1563.8,418.5,139.8,329,0.998 277,-1,657.2,462.2,27.2,71.7,0.995 277,-1,581.8,460.7,23.6,61,0.992 277,-1,629.2,459.8,25.5,61.2,0.943 277,-1,558.3,461.2,24.1,60.6,0.936 277,-1,1319.1,447.5,49.7,106.5,0.466 505,-1,382.9,463.4,52,116.2,1 505,-1,711,436.2,81.6,269.6,1 505,-1,885.3,436.2,125.8,292.6,1 505,-1,1503.9,375.4,258.7,705.6,1 505,-1,637.1,456,35.7,87.8,1 505,-1,996.4,447,91.1,236.6,1 505,-1,1292.5,418.9,194.2,595.3,1 505,-1,834.9,473.5,52.5,73.2,1 505,-1,1177.2,449.7,36.4,87.2,1 505,-1,571.1,457.2,32.6,82.2,1 505,-1,1092.6,446.6,54.8,147.9,1 505,-1,1713.7,406.9,207.1,497.4,1 505,-1,793.8,477.9,59.2,60.2,0.999 505,-1,536.6,460.2,30.7,76.2,0.995 505,-1,459.5,459.5,25.2,75.2,0.986 505,-1,669.9,460.8,28.9,79.6,0.924 505,-1,683.1,468.6,35.1,79,0.535 250,-1,641.4,447.4,67.4,190.1,1 250,-1,415.2,464.3,39,110.9,1 250,-1,1215,444.2,178.4,373.7,1 250,-1,371.2,445.7,44.6,106.8,1 250,-1,903.4,405.5,168.5,653.8,1 250,-1,513.8,453.1,32.6,112,1 250,-1,792.4,438.9,141.3,449.2,0.999 250,-1,586.2,459.2,21.6,62.7,0.995 250,-1,472.5,457.9,33.1,106.2,0.989 250,-1,545.5,457.9,24.8,65.2,0.884 250,-1,1079.5,473.7,46.9,121,0.627 250,-1,1100.4,441.1,45.1,123,0.115 466,-1,909.8,483.2,101.2,109.7,1 466,-1,716.1,437.5,89.4,298.4,1 466,-1,830.9,402.4,90,309.4,1 466,-1,562.4,429.3,111.1,284.5,1 466,-1,1237.9,392.2,234.6,688.6,1 466,-1,1083.9,484.7,45.7,113.5,1 466,-1,995.2,445.2,37.2,100.5,1 466,-1,1047.9,438.6,40.4,110.6,1 466,-1,1421.6,423.4,161.4,373.6,0.999 466,-1,137.2,363.5,397.3,717.5,0.997 466,-1,1129.8,421,150.6,562.3,0.993 466,-1,685.2,472.4,25.2,72.2,0.759 466,-1,468.5,458.1,28.1,72.3,0.368 406,-1,834.9,471.6,54.4,80.2,1 406,-1,642.9,415.2,150.8,329.9,1 406,-1,177.5,432.2,175.3,357.4,1 406,-1,1070.5,409.5,212.5,602.1,1 406,-1,795.5,475.6,56.5,62,1 406,-1,889,438,58.2,178.4,1 406,-1,397.4,440,102.4,341.5,1 406,-1,490.5,437.2,144.2,292.3,0.999 406,-1,982,423.4,135.7,523.1,0.996 586,-1,835.8,472.2,53.3,77.6,1 586,-1,722.4,447.7,43.2,106.2,1 586,-1,1224.2,440.6,91.2,272.7,1 586,-1,980.5,433.2,99.8,244.5,1 586,-1,665,455.3,39.7,101.6,1 586,-1,797.3,475.6,55.7,62.1,1 586,-1,381.3,464.3,48.3,113.2,1 586,-1,912.4,484.7,99.3,109.5,1 586,-1,1089,413.1,90,288.4,1 586,-1,416.5,467.5,42.2,104.9,1 586,-1,556.2,459.1,30.6,84.1,0.999 586,-1,631.4,454.9,36.7,103.3,0.996 586,-1,1696.4,402,224.6,679,0.993 586,-1,583.5,457.4,37.4,87.2,0.967 349,-1,836.9,472.1,53.1,77.2,1 349,-1,1071,408.8,192.7,606.7,1 349,-1,908.5,423.8,143.4,519,1 349,-1,485.6,452.8,33.8,114.7,1 349,-1,796.5,475.5,57.6,61.4,1 349,-1,310.3,399.8,160.6,412.8,1 349,-1,1506,436.3,42.4,111.9,1 349,-1,63.7,435.4,147.4,346.8,1 349,-1,659.3,462.6,27,73,0.999 349,-1,628.4,460.2,29.6,68.1,0.978 349,-1,555.9,459.3,20,59.3,0.939 349,-1,587.9,458.7,22.1,57.9,0.894 417,-1,681.2,405.7,128.2,330.7,1 417,-1,286.8,440.5,151.2,331.3,1 417,-1,863,436.4,59.5,176.5,1 417,-1,1055.1,402.7,199.3,616.1,1 417,-1,437.7,449.4,165.2,325.1,1 417,-1,913,482.6,95.2,112,0.999 417,-1,569.8,430.4,102.2,290.6,0.997 417,-1,793.4,477.6,67.3,59.4,0.711 417,-1,1002.9,430.5,110.8,496.7,0.181 177,-1,563.9,426.7,203.5,478.9,1 177,-1,410.4,468.2,50.8,105.5,1 177,-1,775.4,435.9,112.7,359.7,1 177,-1,1087,483.7,39.5,115.9,1 177,-1,1164.1,447,42.1,101.7,1 177,-1,370.7,445.1,45,106.9,1 177,-1,886.2,449.2,113.6,297.6,1 177,-1,507.1,453.6,38.2,110.4,1 177,-1,1050.7,482.7,38.8,110.5,0.998 177,-1,465.7,464.4,36.6,111.1,0.995 177,-1,543.7,459.3,25.3,66.5,0.632 177,-1,1142.2,449.8,29.8,93.7,0.517 177,-1,948.3,441.7,91.4,267.5,0.45 177,-1,490.6,459.8,23.8,111.4,0.366 177,-1,559.8,460.6,23.1,62.6,0.279 566,-1,836.3,472.9,52.8,76.9,1 566,-1,1140.7,439.7,95.4,277.1,1 566,-1,719.3,447.6,41.2,103.8,1 566,-1,1007.9,412.2,129.5,293.3,1 566,-1,797.6,476.9,54,60.6,1 566,-1,934,435.8,81.2,238.8,1 566,-1,1609,392.5,268.1,688.5,1 566,-1,416.2,466,44.5,105.5,1 566,-1,381.4,463.4,48.8,114.1,1 566,-1,642,451.9,38.2,112.9,1 566,-1,550.8,458.7,30.8,82.2,1 566,-1,581.7,457.9,41.2,82.9,0.999 566,-1,1217.8,441.7,48.1,112.8,0.994 566,-1,664.2,451.3,35.2,102.5,0.916 566,-1,507.1,458,23.1,55.1,0.9 566,-1,522.2,458.7,21.7,55.2,0.798 546,-1,654,453.3,39.3,114.6,1 546,-1,1066.7,444.3,92.9,275.9,1 546,-1,716.4,450,35.5,97.9,1 546,-1,858.2,441.4,90.7,242.3,1 546,-1,381.5,463.6,49.7,114.4,1 546,-1,579.3,455.3,37.6,85.6,1 546,-1,1523.6,405.4,209.9,662.2,1 546,-1,935.7,414.8,119.1,294.3,1 546,-1,1179.7,443.9,51.3,107.3,1 546,-1,795.9,477.1,60.1,59.3,1 546,-1,415.4,468.4,45.1,102.8,0.999 546,-1,546.1,459.8,30.4,79.4,0.999 546,-1,504.1,458,22.6,56.4,0.88 546,-1,832.6,474.7,60.6,73.4,0.848 546,-1,457.5,462.6,30.7,71.4,0.552 546,-1,1042.9,454.8,38.4,98.1,0.401 546,-1,565.4,457.7,26.9,81.9,0.271 422,-1,848.7,435,58.6,171.4,1 422,-1,306.9,444.6,171.5,328.1,1 422,-1,913.3,484.2,96.6,109.8,1 422,-1,1052.6,412.7,200.7,616.1,1 422,-1,709.1,406.4,114.3,326.3,1 422,-1,604.1,433.8,117.7,279.7,1 422,-1,468.2,445.8,138.8,322.3,1 422,-1,442.3,457.4,45.4,132.5,0.186 272,-1,1362.3,440.4,197.4,406,1 272,-1,822.6,436,140.2,482.8,1 272,-1,511.6,455,34.7,111.1,1 272,-1,691.3,448.3,64.3,196.2,1 272,-1,394.1,465.9,42.4,112.7,1 272,-1,954.9,405.4,165.6,640.9,1 272,-1,1630.7,412.7,118.9,333.1,1 272,-1,461.3,460.5,31,106.8,0.997 272,-1,652.4,462.8,26.8,70.7,0.994 272,-1,584.5,459.9,23.4,61.2,0.989 272,-1,559.4,461.4,23.2,60.7,0.927 272,-1,637.4,461.6,26.8,63.1,0.926 134,-1,914,484.3,97.4,110.1,1 134,-1,412.3,468,61.3,103.1,1 134,-1,800.7,449.7,93.8,261.7,1 134,-1,1221.6,447.3,40.7,99.8,1 134,-1,373.7,446.2,42.6,105.1,1 134,-1,1087.2,485.4,37.8,114.7,1 134,-1,1003.4,443.4,39.2,104.6,1 134,-1,571.9,441.5,146.5,400.2,1 134,-1,490.3,467.3,38.5,105.6,1 134,-1,688.6,437.1,99.7,318.9,1 134,-1,1054,484.7,38.4,107.7,1 134,-1,530.5,455.5,32.1,78.5,0.993 113,-1,913.7,483.4,96.6,111.9,1 113,-1,373.6,445.9,43.1,107.6,1 113,-1,442.2,469.1,43.5,101.7,1 113,-1,1244.9,446,40.3,102.8,1 113,-1,1088.3,484,37.2,118,1 113,-1,558.8,431.9,129.8,376.9,1 113,-1,764.7,453.9,83.4,242.9,1 113,-1,502.2,466.3,33.9,104.3,1 113,-1,669,441.5,99.4,300.7,1 113,-1,834.4,471.5,54.6,77.3,1 113,-1,1051.2,483.1,40.9,110,1 113,-1,1005.2,445.8,39.6,102.7,0.999 58,-1,913.7,483.9,97.5,111.5,1 58,-1,835.9,472.6,54.2,77.4,1 58,-1,478.4,442.6,129.3,318.8,1 58,-1,375.1,445.2,43.2,106.5,1 58,-1,1261.1,446.4,34.8,102.8,1 58,-1,623.7,441.9,91.7,282.2,1 58,-1,1512.1,433,53.9,126,1 58,-1,418.2,458.3,42.7,86.5,1 58,-1,1098,435.2,41,114.6,1 58,-1,1091.1,480.4,34,117.4,1 58,-1,1006.2,442.6,41.4,115.2,1 58,-1,798,475.8,56.3,61.4,1 58,-1,1053.7,485.4,39.3,108.3,0.999 58,-1,693.7,464.4,63.2,205.1,0.591 58,-1,587.9,460.4,33.8,130.8,0.246 553,-1,837.2,471.8,52,79.8,1 553,-1,1087.6,442,110.3,281.2,1 553,-1,651.1,451.5,38.4,115,1 553,-1,716.2,448,37.9,100.9,1 553,-1,891.5,433.1,90.1,253.1,1 553,-1,381.4,463.6,49.6,114.9,1 553,-1,581.2,456.6,38.1,85.3,1 553,-1,986.8,414.2,76.9,292.8,1 553,-1,415.7,467.3,45.9,103.1,1 553,-1,1559.1,393.1,228.7,687.9,1 553,-1,795.5,476,56,61.8,1 553,-1,548.1,460.8,30.3,79.1,0.999 553,-1,1195.6,437.2,40.9,113.7,0.995 553,-1,501.6,457.7,24,58.3,0.92 553,-1,565.7,459.2,24.9,80.7,0.35 397,-1,835.2,472.6,54,77.3,1 397,-1,106.8,434.4,183.1,363.9,1 397,-1,606.3,407.2,120.8,345.9,1 397,-1,1078.5,406.8,216.8,596.9,1 397,-1,313.4,446.9,169.6,355.9,1 397,-1,796.7,476.1,55.6,61.9,1 397,-1,915.4,439.6,59.6,178.1,0.999 397,-1,977.5,424.5,132,511.6,0.999 397,-1,426.7,444.2,119.7,299.9,0.836 397,-1,557.4,462.6,19.5,55.1,0.789 397,-1,532.1,465.1,23.5,55.3,0.736 228,-1,744.9,413,267.8,585.5,1 228,-1,372.4,447.5,42.5,106.8,1 228,-1,1113.4,444.2,109.6,334.7,1 228,-1,610.8,453,51.9,177.3,1 228,-1,426.1,465.8,45.4,112.6,1 228,-1,513.6,453.9,34.9,110.8,1 228,-1,1051.4,489.6,41.6,100.8,0.998 228,-1,551.9,455.5,24.4,63.7,0.926 228,-1,657.8,466.5,29.5,74.8,0.92 228,-1,1082.3,488.8,36,108.9,0.813 228,-1,532.9,457.9,27.2,76.1,0.768 228,-1,478,452.1,31.7,106.2,0.411 316,-1,1035.3,411.7,208.9,604.1,1 316,-1,492.9,454.9,48.4,109.6,1 316,-1,1265.7,426.5,87.7,265.4,1 316,-1,896,416,140.3,529.8,1 316,-1,11.8,404.3,217.2,466.6,1 316,-1,1420.2,440.4,48.1,110.2,1 316,-1,409,467.6,47.8,107.3,1 316,-1,658.1,462.7,26.2,72.8,1 316,-1,809.9,439.7,72.4,219.8,1 316,-1,1710.9,419.8,210.1,516.1,1 316,-1,381.7,464.4,43.9,111.7,0.999 316,-1,579.6,460.3,22.6,56.5,0.982 316,-1,548.8,460.8,23.4,58,0.956 316,-1,627.6,459.9,23.9,58.8,0.949 316,-1,1197.4,448.3,38.1,96.7,0.924 316,-1,591.2,459.2,34.6,57.6,0.097 242,-1,629.5,450.1,75,183,1 242,-1,369.9,446.6,44.7,105.2,1 242,-1,837.3,416.2,208.3,565.8,1 242,-1,1179.4,434.5,118.7,367,1 242,-1,419.6,462.7,37.3,112.2,1 242,-1,512.9,452.5,33.4,112.5,1 242,-1,1085.9,484.2,42,112.8,1 242,-1,1118.5,445.8,39.8,101.3,0.998 242,-1,591,458.5,21.8,65.2,0.993 242,-1,474.1,456.4,32.2,105.5,0.984 242,-1,555.6,458.7,23.9,61.6,0.938 242,-1,443.6,459.1,45.3,104.4,0.354 242,-1,1051.6,486.2,38.4,104.1,0.243 389,-1,836,472.3,53.5,76,1 389,-1,1080.3,405.4,219.8,616.3,1 389,-1,35.1,422.6,178.4,381,1 389,-1,554.5,413.2,138,351.1,1 389,-1,796.6,476.5,56.4,60.4,1 389,-1,358.5,439.6,175.1,310.5,1 389,-1,974,419.6,131.6,521.2,0.999 389,-1,277.3,441.8,116.1,361,0.999 389,-1,519.2,462.6,23.4,63.2,0.95 389,-1,935.5,434.6,65.8,187.8,0.902 389,-1,490.6,461.4,29,81.2,0.323 578,-1,836.9,471.9,53.1,78.7,1 578,-1,721.8,447.7,41.4,107.3,1 578,-1,1169.5,440.2,123.2,276.2,1 578,-1,963.3,437.7,111.3,237.2,1 578,-1,797.5,475.9,55.2,61.4,1 578,-1,381.1,465.1,49.1,112.8,1 578,-1,415.6,470.7,42.5,102.2,1 578,-1,1054.4,410.9,100.4,286.9,0.999 578,-1,1668.7,398.5,252.3,682.5,0.999 578,-1,553.5,461.3,31.2,80.8,0.999 578,-1,666.7,452.6,38.2,105.2,0.999 578,-1,637.9,451.2,34.5,109.2,0.994 578,-1,579.3,460.3,46.2,84.6,0.984 441,-1,914.6,483.6,94.9,111.9,1 441,-1,559.2,434.9,137.4,319.1,1 441,-1,438.4,433.6,128.2,311.2,1 441,-1,776.8,415.2,95,298.4,1 441,-1,1036.4,351.5,406.4,729.5,1 441,-1,717.9,432.9,87.5,272.2,0.549 441,-1,1001,450.5,37.7,107.4,0.38 441,-1,698.1,461.8,31.1,81,0.368 441,-1,428.3,463.6,27.1,85.8,0.085 401,-1,836,472.9,53.1,76.2,1 401,-1,1081.6,411,209.4,615.7,1 401,-1,129.2,430.8,207.7,369.7,1 401,-1,626.5,406.5,136.3,346.3,1 401,-1,334.6,455.7,146.7,335.3,1 401,-1,797,476,56.1,62.7,1 401,-1,907.1,435.8,58.6,175,1 401,-1,471.1,436.3,104.5,299.9,0.999 401,-1,977.1,427.7,140.1,511,0.999 401,-1,582.2,460.4,19.1,56,0.636 401,-1,558.7,464.3,21.7,56.6,0.495 321,-1,1435.9,439.5,48.7,113.3,1 321,-1,492,453.8,46.1,111.2,1 321,-1,27.3,398.4,274.5,459.7,1 321,-1,1047.6,412.2,199.3,605.7,1 321,-1,898.5,423.7,142,521.9,1 321,-1,409.8,468.6,47.4,105.7,1 321,-1,380.9,463.8,44.6,112.6,1 321,-1,657.9,462.7,26.6,73.1,1 321,-1,824.4,441.3,77.4,214.1,1 321,-1,1218.2,428.6,118.1,264.1,0.999 321,-1,1712.1,405.4,171.3,441.7,0.998 321,-1,582.1,459.6,22.6,57.3,0.982 321,-1,623,457.8,24.4,59.3,0.941 321,-1,553.8,459.5,22.5,58.6,0.937 321,-1,1211.9,450.5,36.3,109.2,0.245 491,-1,648.2,434.6,123.9,273.1,1 491,-1,809.2,440.4,136,289.7,1 491,-1,1379.9,393.3,284.5,687.7,1 491,-1,937.9,435.5,100.4,234.8,1 491,-1,569.2,456.3,34.7,81.1,1 491,-1,1200.8,430,206.7,584,1 491,-1,1182.2,448.8,35.5,89.1,1 491,-1,1112.3,439.8,40.1,150.1,0.999 491,-1,1084.9,451.9,42.2,147.2,0.999 491,-1,1613.3,408.3,153.5,434.9,0.999 491,-1,1030.5,441.4,39.3,113.1,0.999 491,-1,536.1,459.4,28,73.2,0.99 491,-1,463.5,460.2,25.6,80.7,0.976 491,-1,407.6,471.7,43.3,101.5,0.93 491,-1,632.5,459.9,29.5,78.7,0.83 96,-1,913.2,483.6,98.3,111.8,1 96,-1,836.2,472.4,53.1,77.8,1 96,-1,373,445.8,44.5,105.3,1 96,-1,1258.6,445.7,38,102.9,1 96,-1,455.8,467.8,44.2,104.8,1 96,-1,1089.2,483.3,35.7,116.8,1 96,-1,547.6,445.7,120.6,351.9,1 96,-1,745.2,454.2,80.3,234.5,1 96,-1,1004.8,442.7,41,108.4,1 96,-1,1052.1,481,41,112.7,1 96,-1,643.4,443,98.5,302.4,0.999 96,-1,512.6,466.4,31,101.9,0.075 472,-1,914.8,486.4,96.4,108.3,1 472,-1,742.7,435.5,99.9,297,1 472,-1,834,405.3,89.4,304.6,1 472,-1,1145.2,419.8,148.6,588.5,1 472,-1,609.1,429,79.8,281.3,1 472,-1,1315.1,390.5,188.1,686.9,1 472,-1,1045.1,440.7,40.3,111.8,1 472,-1,1490.4,411.4,115.4,387.7,0.999 472,-1,1083.7,474.7,44.7,124.5,0.999 472,-1,992.7,446.3,37.8,98.7,0.998 472,-1,3.5,373.8,365.6,707.2,0.996 472,-1,379.8,465,43.7,104.8,0.995 472,-1,563.7,457.3,31.8,76,0.993 472,-1,1108.6,445.3,39.2,134.3,0.917 472,-1,712.7,474.2,21.2,63.4,0.909 359,-1,835.6,471.3,54.1,78.9,1 359,-1,1069.8,411.6,204.6,598.9,1 359,-1,1531.5,436.5,45.5,113.7,1 359,-1,920.9,420.8,142.1,515.8,1 359,-1,1.1,452.1,208.9,413.9,1 359,-1,395.1,407.2,172.7,390.5,1 359,-1,797.4,475.7,56.7,61.9,1 359,-1,659.8,464,27.2,75.7,0.996 359,-1,631.9,458.4,26.7,71.1,0.992 359,-1,557.8,460.5,18.7,57.9,0.937 359,-1,121.3,440,177.6,341.6,0.93 359,-1,878.3,453.3,31.1,70.8,0.919 359,-1,574.6,459.3,22.7,59.1,0.862 359,-1,525,457.9,22.6,66.6,0.273 359,-1,1051.1,434.8,47.5,229.1,0.085 224,-1,733.9,410.1,225.4,581.6,1 224,-1,372.4,447.2,43.5,104.4,1 224,-1,1089.5,445.3,110.9,335.8,1 224,-1,605.6,452.2,55,179.3,1 224,-1,514.9,453.6,34.9,111.7,1 224,-1,430.7,466.4,45.6,111,1 224,-1,1052.4,481.1,40.8,112.4,0.999 224,-1,899.1,430.2,133.6,412.5,0.993 224,-1,660.4,461.5,27.8,77.7,0.947 224,-1,552.2,457.7,26.7,70.9,0.898 224,-1,598,425.2,19.7,37.7,0.28 224,-1,574.8,437.2,19,40.2,0.094 224,-1,417.7,467.9,32.2,98.8,0.081 594,-1,835.7,472.5,53.5,77.4,1 594,-1,914.3,483.2,97.1,112.5,1 594,-1,723.1,446.1,44.2,110,1 594,-1,1246.4,442.9,101,277.5,1 594,-1,1099,407,99.9,289.9,1 594,-1,664.3,455.2,38.9,105.2,1 594,-1,796.9,475.9,55.5,62,1 594,-1,1027,433.2,78.9,239.8,1 594,-1,381.8,462.7,46.9,115.6,1 594,-1,416,466.7,42.3,106.3,1 594,-1,554.2,460.6,30.8,83.7,1 594,-1,629.2,454.4,34.2,101.1,0.995 594,-1,990.6,448.8,34.7,105.6,0.973 594,-1,583.6,457.3,32.8,82.9,0.941 594,-1,601.3,455.6,33,89.1,0.876 248,-1,895,408.8,165.1,626.2,1 248,-1,636.6,449.2,72,188.1,1 248,-1,417.7,465.5,38.1,110.3,1 248,-1,1211.5,442.4,136.1,364.2,1 248,-1,370.2,447.2,45.3,105.1,1 248,-1,513.4,451.6,33.3,113.6,1 248,-1,588.6,459.6,21.1,64,0.995 248,-1,779,437.8,150.9,439.7,0.995 248,-1,1081.9,471.4,45.6,126.6,0.989 248,-1,472.2,456.3,34.7,108.8,0.988 248,-1,546.8,457.9,24.9,63.7,0.892 248,-1,1113.8,439.2,39,112.8,0.5 380,-1,836.2,472.5,54.6,76.8,1 380,-1,1077.8,419.3,216.9,590.7,1 380,-1,531.1,405.8,130.5,369.9,1 380,-1,166.1,446.5,206.4,373.1,1 380,-1,796.6,476.7,56.3,60.6,1 380,-1,2.4,443.6,163.4,373,1 380,-1,967.4,426.3,135.2,510.6,1 380,-1,469.7,453.7,39.7,110.9,0.999 380,-1,412.1,470.9,44.3,104.8,0.992 380,-1,289.8,436.3,140,317.1,0.068 583,-1,834.8,473.2,54.5,76.2,1 583,-1,722.1,447.4,42.6,108.1,1 583,-1,1195.5,441.3,112.5,275.3,1 583,-1,976.8,436.2,97.8,241.3,1 583,-1,1077,412.4,88.8,288.8,1 583,-1,797.3,475.1,55.8,63.1,1 583,-1,416.2,468.1,41.6,105.2,1 583,-1,665.8,453.5,39.3,104.8,1 583,-1,381.2,464.6,48.7,112.4,1 583,-1,555.6,459.8,29.3,82.2,0.999 583,-1,1674.2,406.1,246.8,674.9,0.998 583,-1,911.4,482.5,99.9,112.4,0.998 583,-1,633.9,452.8,37.5,104.5,0.994 583,-1,578.4,458.2,49,86.4,0.977 341,-1,245,413.5,208.9,407.7,1 341,-1,1064,408.7,192.5,585.3,1 341,-1,834.9,472.6,53.5,77.9,1 341,-1,486.6,452.8,34.3,113.7,1 341,-1,904.3,425.7,146.7,520.1,1 341,-1,1482.6,436.7,56,113,1 341,-1,796,475,56.6,63.8,1 341,-1,659.5,464,25.9,72.4,0.999 341,-1,5,444.6,143.2,346.5,0.999 341,-1,412.6,470.7,42.9,109.7,0.988 341,-1,633.7,460.4,24.6,64.4,0.97 341,-1,579.1,459.6,22.6,58.6,0.912 341,-1,558,460.7,19.5,58.8,0.903 341,-1,609.5,457.1,39.2,63.5,0.759 221,-1,720.7,407.9,203.5,583.9,1 221,-1,602.1,453.1,54.2,171.8,1 221,-1,1059.1,443.9,133.7,338.2,1 221,-1,514.5,453.8,35.5,111.1,1 221,-1,372.5,447.6,43.6,104.4,1 221,-1,432.1,466,46.6,109.6,1 221,-1,891.8,426.2,129.3,406.2,0.999 221,-1,1212.7,453.1,39.3,98.2,0.998 221,-1,658.3,462.8,25.8,73.5,0.977 221,-1,551.3,455.6,24.2,64.8,0.936 221,-1,405.6,466.2,40.2,94.5,0.462 221,-1,594.9,422.6,18.7,36.7,0.171 458,-1,914.8,483,95.1,110.6,1 458,-1,380.9,462.5,49.7,116.2,1 458,-1,823.1,407.9,86.2,303.3,1 458,-1,1167.5,410.4,276.8,670.6,1 458,-1,994.5,446.2,36.8,100.4,1 458,-1,1052.5,440.7,39,111.9,1 458,-1,375.4,395.1,382.4,685.9,0.998 458,-1,1381.5,425.5,138.7,352.4,0.997 458,-1,412.5,467.1,39.8,116.5,0.171 171,-1,405.9,468.6,55.7,102.1,1 171,-1,535,423.3,222.8,476.7,1 171,-1,1088.6,484.7,38.1,114.9,1 171,-1,761.9,435.9,118.1,357.4,1 171,-1,371.8,445.8,43.5,104.4,1 171,-1,868.8,445.6,125.7,296.4,1 171,-1,1172.2,449.1,41.5,97.9,1 171,-1,1052,482.5,38.5,110.2,1 171,-1,469.2,466.7,34.4,106.7,0.998 171,-1,506.8,456.3,34,108.6,0.994 171,-1,1149.6,453.2,33,91.1,0.97 171,-1,488.6,463.6,32,106.2,0.145 318,-1,17,401.6,263.3,459.2,1 318,-1,492.2,454.6,47.8,110.5,1 318,-1,1042.8,413.3,204.2,598.2,1 318,-1,1426.9,439.2,47.1,111.2,1 318,-1,897,421.8,141.1,525.3,1 318,-1,409.5,469,47,105.5,1 318,-1,1250.6,428,93.8,257.8,1 318,-1,659,463.4,25.9,71.4,1 318,-1,381.3,464.6,44.8,112.1,1 318,-1,815,439.9,75,219.2,1 318,-1,1746,421.6,175,514.6,0.998 318,-1,577.4,460,22.9,57.1,0.981 318,-1,1204.6,449.6,35.6,95.4,0.979 318,-1,630.3,459.5,25.3,61.4,0.965 318,-1,551.7,460.4,23.2,58.3,0.944 318,-1,600.9,456.5,39.8,61.1,0.762 400,-1,835.4,473,53.7,75.6,1 400,-1,1081.1,415.9,209.6,612.5,1 400,-1,127.4,442.9,200.6,359.1,1 400,-1,621.9,405.2,125.2,345.8,1 400,-1,796.2,476.5,57.7,61,1 400,-1,327.8,445,156.9,348,1 400,-1,907.3,436.2,60.7,177.6,1 400,-1,976.2,426.7,140.4,513,0.999 400,-1,455.8,439.2,112.7,296,0.997 400,-1,580,459.6,20.3,59.2,0.735 400,-1,557.5,463.7,22.8,58.3,0.696 543,-1,655.1,452.5,39.9,117.5,1 543,-1,1489.9,398.1,227.6,682.9,1 543,-1,829.6,432.7,107.2,254.8,1 543,-1,381.8,463,49.7,115.7,1 543,-1,1038.4,441.4,110.6,284.3,1 543,-1,713,450.5,35.9,96.1,1 543,-1,574.7,455,39.2,86.7,1 543,-1,922.7,410.5,132.1,299.2,1 543,-1,1175,441.7,50.5,112,1 543,-1,415.9,467.8,44.5,102.9,0.999 543,-1,794.8,477.3,60.2,60.1,0.996 543,-1,545.6,460.2,30.9,79.5,0.995 543,-1,503.5,458.6,22.5,55.5,0.878 543,-1,1117.8,450.5,69.5,222.6,0.848 543,-1,462.1,462.3,28.5,67.6,0.565 312,-1,1278.1,434.8,121,260.9,1 312,-1,497,456.2,44,108.5,1 312,-1,1681,428.5,240,509.1,1 312,-1,1023.4,405.5,213.3,612.3,1 312,-1,895,421.3,137.1,534.2,1 312,-1,411.3,468.6,46.1,105.1,1 312,-1,4.3,397,140,470.7,1 312,-1,800.1,442.3,65.4,210.4,1 312,-1,381.4,465.7,44.5,110.8,1 312,-1,657.6,462.1,25.7,72.9,1 312,-1,1402.9,435.7,54.8,119.5,0.999 312,-1,1195.7,449.9,37,94.3,0.998 312,-1,582.4,460.5,22.7,56.8,0.986 312,-1,548.8,461.4,23.4,59.5,0.938 312,-1,617.1,458.8,23.4,57.9,0.915 312,-1,852.8,472.1,44.5,89.9,0.186 312,-1,522.7,454.1,34.1,84,0.124 149,-1,558.5,436.4,148.3,447,1 149,-1,1202.9,445.5,38.3,102.6,1 149,-1,402.1,465.2,61.9,108.1,1 149,-1,712,434.2,128,339.6,1 149,-1,1087.9,482.9,39,116.1,1 149,-1,1002.3,443.9,38.5,100.3,1 149,-1,828.4,454.2,91.2,267.3,1 149,-1,372.5,445.3,43.5,107.4,1 149,-1,1051.5,484.2,40.1,109.3,1 149,-1,474.4,463,42.1,112.2,0.999 149,-1,1126,454.8,35.2,89.2,0.998 149,-1,503.6,454.8,35.6,104.7,0.986 149,-1,883.1,459.2,78.5,212.6,0.172 357,-1,835.9,470.6,53.8,79.1,1 357,-1,1073.4,404.4,198.1,597.9,1 357,-1,918.7,421.4,139.8,514.8,1 357,-1,387.4,406.4,155,396,1 357,-1,1527.4,440.3,44.6,109.2,1 357,-1,797.5,474.8,56,63.3,1 357,-1,1,444.6,182,405.3,1 357,-1,120.1,437,175.7,338.2,0.998 357,-1,660.1,462.5,27,75.8,0.997 357,-1,631,459.1,27.1,69.9,0.99 357,-1,557.2,459.1,20.8,59,0.96 357,-1,879.1,456.5,30.8,69,0.918 357,-1,583.9,458.8,22.4,57.8,0.866 357,-1,520.1,457.7,23.1,66.5,0.824 357,-1,502.1,457.6,26.2,89.5,0.142 410,-1,227.8,429.8,140,349.3,1 410,-1,646.1,409.9,149.4,330.9,1 410,-1,835.7,472.7,54.1,77.2,1 410,-1,1074.2,417,196.5,603.7,1 410,-1,878.9,439.8,64,172.7,1 410,-1,794.7,476.4,60.2,59,1 410,-1,377.8,465.4,54.7,110,1 410,-1,425.5,444.6,120.5,327.4,0.999 410,-1,501.3,432.3,148.2,298.9,0.998 410,-1,985.1,417.8,130.9,526.6,0.995 311,-1,496.8,456.1,45.2,109.3,1 311,-1,1282.9,431.4,130,268.4,1 311,-1,1022.1,403.4,213.5,617.1,1 311,-1,1682.8,427.4,238.2,503.2,1 311,-1,896.3,420.8,136.1,536.3,1 311,-1,796.8,441.5,66.5,213.6,1 311,-1,411.4,468.6,46.1,105.4,1 311,-1,381.1,465.3,45,112.1,1 311,-1,657.2,462.4,25.9,73.2,1 311,-1,2.5,390.5,131.7,482.1,0.999 311,-1,1399.6,436.2,54.4,120,0.994 311,-1,576.8,461.6,24.3,57.3,0.991 311,-1,1195.3,450.7,36.4,92.9,0.986 311,-1,554.6,461.6,23.9,58.2,0.939 311,-1,618.4,460.3,23.4,56.6,0.897 311,-1,851.3,469.6,45.8,82.9,0.24 174,-1,547.6,424.2,214.8,483.8,1 174,-1,409.8,469,51.8,103.3,1 174,-1,881.7,444.6,119.4,295.9,1 174,-1,768,436.6,119.7,360.1,1 174,-1,371.2,445.9,44.2,106.2,1 174,-1,1087.5,484.7,38.6,114.7,1 174,-1,1165.4,449.5,43.2,96.9,1 174,-1,506.3,454,37,111.9,0.999 174,-1,1053.3,481.4,37.3,112.2,0.999 174,-1,467.5,463,34.8,110.8,0.992 174,-1,1136.4,452.6,43.8,91.2,0.828 174,-1,540.7,459.6,24.9,70.3,0.147 174,-1,554.3,457.5,21.7,58.4,0.079 565,-1,836.3,473.6,53.2,76.7,1 565,-1,1133.8,438.1,99.9,278.2,1 565,-1,719.4,447.8,40,102.1,1 565,-1,924.3,432.2,85.1,244.6,1 565,-1,1598.8,403.7,285.8,677.3,1 565,-1,797.5,477.2,54.7,60.2,1 565,-1,1006.6,414.2,131.6,294.3,1 565,-1,381.8,464,49.2,113.6,1 565,-1,416.5,466.1,45.1,103.8,1 565,-1,643.4,452.7,37.3,111.8,1 565,-1,582.1,457.1,40.3,82.9,1 565,-1,550.6,458.6,30.4,81.1,1 565,-1,1219.1,444.4,46.1,108.6,0.999 565,-1,503.9,457.5,23.2,56.4,0.873 565,-1,519.7,457.5,22.2,55.2,0.831 548,-1,653.3,453.2,38.7,115.5,1 548,-1,834.8,472.6,54.1,76.7,1 548,-1,1080.2,439.3,92.3,282.8,1 548,-1,715.4,450.2,36.3,96.1,1 548,-1,1185.4,440.2,47.7,108.4,1 548,-1,579.5,455.6,38,85.2,1 548,-1,381.2,463.7,49.4,114.2,1 548,-1,944.5,415,109.1,298,1 548,-1,1543.6,405.4,203.7,675.6,1 548,-1,878,437,76.6,249.1,1 548,-1,794,476.2,59.3,60.2,1 548,-1,415,468,45.4,103.5,1 548,-1,546.3,460.7,30.1,78.5,0.999 548,-1,1044.1,445.5,35.1,94,0.949 548,-1,505.5,457.5,23.2,57.3,0.907 548,-1,456.6,462.8,31.2,72.3,0.448 548,-1,565.5,458.3,26.7,80.7,0.265 445,-1,472.9,435.8,106.8,308.3,1 445,-1,594.8,438.1,110.7,311.4,1 445,-1,791.8,405.8,90.1,316.3,0.999 445,-1,856.8,348.8,375.9,732.2,0.998 445,-1,379.6,466.4,53.3,113.7,0.997 445,-1,416.5,467.6,41.3,102.6,0.984 445,-1,723,439.3,100.3,267.7,0.942 445,-1,1155.3,418.1,200.9,533.4,0.19 445,-1,1326.6,435.8,122.3,332.2,0.105 468,-1,912.5,482.9,99.2,110.8,1 468,-1,833.3,407.4,89.2,306,1 468,-1,585.3,427.5,91.4,286.7,1 468,-1,725.2,433.3,94.5,305.3,1 468,-1,1084.9,478.1,43.7,121.6,1 468,-1,1250.9,396.2,226.3,684.8,1 468,-1,994.8,446.5,36.9,97.9,1 468,-1,1132.4,422,154.5,574.3,0.999 468,-1,1047.7,441,40.1,107.6,0.999 468,-1,60.7,387.2,412.3,693.8,0.999 468,-1,1450.7,419.7,132.7,373.5,0.981 468,-1,569.1,463.9,26.7,73.2,0.485 468,-1,675.8,470.2,27.6,73.9,0.463 468,-1,704.8,473.1,29.3,80.3,0.056 94,-1,914.7,483.1,96.4,112.3,1 94,-1,836.7,472.4,53.1,78.2,1 94,-1,373,446.3,45.2,105.1,1 94,-1,1259.5,446.5,36.7,102.1,1 94,-1,459.7,468.5,43.1,105.7,1 94,-1,738.5,454.4,84.2,228.4,1 94,-1,1089.1,483.5,36.4,117.5,1 94,-1,548.7,442.8,115.2,353.4,1 94,-1,1004.6,442.7,40.9,107.7,1 94,-1,1051.9,482.3,40.5,111.3,1 94,-1,636.2,441.1,101.2,304.2,1 94,-1,427.4,457.4,36,84.6,0.97 94,-1,505.1,465,29.2,90.9,0.164 160,-1,536.5,428.3,165.2,460.8,1 160,-1,1186.6,445.3,39.9,100.6,1 160,-1,399.6,468.8,63,105.5,1 160,-1,1087.7,484.2,38.9,115.6,1 160,-1,737.4,434.7,114.9,342.8,1 160,-1,371.5,446.1,44.1,104.9,1 160,-1,1000,443.5,37.7,102.1,1 160,-1,469.9,466.6,35.6,111.1,1 160,-1,843.6,446.4,89.1,289.2,1 160,-1,1053.3,482.6,38.4,111.1,0.999 160,-1,911.8,439.8,80.5,244.6,0.999 160,-1,1133.9,452.4,33,92.9,0.989 362,-1,834.9,472.2,54.6,78.1,1 362,-1,1,447.8,226,410.7,1 362,-1,1069.9,413.3,203.7,603.6,1 362,-1,395.9,418.5,196.4,378.4,1 362,-1,1535.9,436.1,46.8,112.8,1 362,-1,926.3,419.1,140,518.4,1 362,-1,796.8,475.7,56.8,61.6,1 362,-1,627,458.6,28.6,75.1,1 362,-1,152.3,438.3,146.7,339.1,0.957 362,-1,881.3,455,32.2,68.7,0.905 362,-1,599.8,458.5,23.2,57.7,0.816 362,-1,563.8,459.2,16.4,58.8,0.804 362,-1,657.7,460,25,69.9,0.667 452,-1,1147.7,395.6,258,685.4,1 452,-1,508.3,434.8,118,293.5,1 452,-1,379,463.7,51.2,114.7,1 452,-1,913,485.1,96.5,110.4,1 452,-1,994.7,446,37.3,101.9,1 452,-1,412.3,467.9,46,105.1,0.999 452,-1,602.7,356.4,382.2,724.6,0.998 452,-1,1049.4,438.9,170.1,516.2,0.974 452,-1,473.6,460.1,28,78.5,0.939 452,-1,1344.7,439.9,122.1,333.4,0.855 452,-1,456.3,463.2,24.3,80.5,0.808 452,-1,1028.3,436.8,24.7,87.9,0.523 140,-1,914,484,96.1,110.4,1 140,-1,406.6,466.6,63,103.7,1 140,-1,1214.3,445.4,40.9,104.1,1 140,-1,569,444.6,149.3,411.4,1 140,-1,1088,487.3,37.7,113.2,1 140,-1,1002.7,443.5,38.7,103.7,1 140,-1,815.4,449.4,88.2,262.4,1 140,-1,696.2,435.3,109.8,331.9,1 140,-1,374.3,446,41.8,105,1 140,-1,484,467.1,41.1,107.7,1 140,-1,1051.8,484.6,39.6,108.7,0.994 140,-1,532.6,453.7,28.8,75.2,0.977 140,-1,1108.6,459.4,35,85.6,0.673 137,-1,913.4,484.7,97.3,110.3,1 137,-1,573.7,446.5,145.3,401.4,1 137,-1,408.9,466.3,62.1,104.3,1 137,-1,807.7,453.6,88,261.5,1 137,-1,1217.8,445.3,40.1,102.8,1 137,-1,1088.4,485,37.9,115.9,1 137,-1,1003.4,444.2,38.4,103.2,1 137,-1,373.3,445.9,42.9,105.4,1 137,-1,486,467.7,41.1,107.1,1 137,-1,690.6,433.9,102,328.2,1 137,-1,1051.3,483.1,39.2,110.5,0.995 137,-1,530.8,454.5,29.1,75.3,0.975 137,-1,1102.4,461.4,37.4,93.2,0.179 366,-1,836.2,471.5,54,79.1,1 366,-1,1069.5,405,213.6,613.3,1 366,-1,406.9,410.4,198.3,382,1 366,-1,933.7,421.4,143.8,528.2,1 366,-1,31.2,443.9,197.1,404.1,1 366,-1,1544.5,435.1,46.2,113.8,1 366,-1,796.4,476,57.1,61.3,1 366,-1,628.6,458.2,28.2,72.1,1 366,-1,379.8,462.1,46.8,114.3,1 366,-1,218.2,445.4,109.7,318.7,1 366,-1,593.8,460.6,20.4,55.6,0.928 366,-1,889.4,451.4,27.4,64.3,0.823 366,-1,562.8,463.6,18.9,57,0.7 366,-1,655.1,459.4,23,68.8,0.144 531,-1,1446,417.6,193.9,663.4,1 531,-1,668.3,453.2,41.4,117.3,1 531,-1,999.9,441.2,113.7,286,1 531,-1,796.4,431.6,126.6,260.9,1 531,-1,381.8,463.5,50,115,1 531,-1,573.4,456.1,33.4,84.9,1 531,-1,715.7,451.5,33.1,92.5,1 531,-1,1180.9,445.8,35.9,91,1 531,-1,1641.7,362.3,279.3,718.7,1 531,-1,911.4,409.6,87.8,302.8,0.999 531,-1,1087.9,438.2,99.4,234.9,0.999 531,-1,414.3,468.3,46,103,0.999 531,-1,543.4,461.5,29.1,76.3,0.985 531,-1,463.7,462.6,25.9,65,0.583 531,-1,642.1,452.8,26.7,92.7,0.162 531,-1,699.8,451.8,28.6,104,0.077 531,-1,569.2,430.3,20.3,37.1,0.061 288,-1,1350.7,443,47.2,107.9,1 288,-1,1492.6,435.1,219.9,440.7,1 288,-1,728.8,443.8,81.2,207.4,1 288,-1,840.2,435.4,175.7,500.2,1 288,-1,509.8,456.6,34.1,107.5,1 288,-1,997.4,414.2,155.9,628.9,1 288,-1,659.2,461,26.5,72.2,1 288,-1,408.4,470.5,46.7,105.3,0.999 288,-1,383.4,461.3,42.7,111.5,0.998 288,-1,578.3,461.6,25.9,60.1,0.994 288,-1,449.6,459.1,31,103.1,0.976 288,-1,597.1,458.9,24.7,58.3,0.94 288,-1,560,461.3,25.5,61,0.922 288,-1,546,461.1,26.6,68.3,0.842 288,-1,1143.8,450.4,52.4,102.2,0.062 45,-1,912.5,483,99.1,112,1 45,-1,835.7,472.8,54.3,76.9,1 45,-1,480.5,444.9,112.1,312.7,1 45,-1,1469.3,429.1,63.4,130.1,1 45,-1,374.5,446.5,43.6,105.4,1 45,-1,618.1,441.1,89.9,277.7,1 45,-1,1258.9,447.1,35.4,102.2,1 45,-1,1008.1,441.2,41.4,114.7,1 45,-1,417.6,457.5,42.8,87.2,1 45,-1,1686.2,392.2,234.8,487.8,1 45,-1,795.9,476.4,57.2,60.4,1 45,-1,1053,483.7,40.9,111.9,1 45,-1,1097.2,436.2,41.6,110.3,1 45,-1,1090.7,480.8,33.5,118.3,1 45,-1,584.5,462.7,34.1,131.5,0.477 45,-1,689.3,471.4,58.1,199.6,0.064 123,-1,916.2,483.7,92.9,110.6,1 123,-1,374.1,446,41.7,106.1,1 123,-1,783.8,458.4,98.2,245,1 123,-1,566,437.8,132.6,382.8,1 123,-1,434.8,470,45,104,1 123,-1,1088.6,485,37.4,116.3,1 123,-1,681.4,440.2,98,317.2,1 123,-1,1237,445.1,39,103.1,1 123,-1,1006.5,443.5,39.4,104.4,1 123,-1,498.7,469.5,34,103.2,1 123,-1,1052.1,484.1,39.9,109.2,1 123,-1,531.3,457.3,32.1,77,0.947 570,-1,836.7,471.8,52.3,77.1,1 570,-1,720,447.1,41.1,104.3,1 570,-1,1147.2,442.2,114.5,277.1,1 570,-1,1653.8,412.6,247.1,668.4,1 570,-1,382.1,465.1,48.7,114,1 570,-1,797.3,476.6,54.4,60.2,1 570,-1,417.5,466.8,43.9,104.5,1 570,-1,1018.1,413.8,123.5,292.4,1 570,-1,552,459.5,30,82.6,0.999 570,-1,639.8,452.9,36.2,108.1,0.998 570,-1,666.7,451.3,37.4,103.4,0.997 570,-1,582.4,458.4,40.1,82.8,0.997 570,-1,954.8,432.7,77.8,247.1,0.997 570,-1,502.5,461.9,22.4,53.7,0.526 570,-1,517,459.1,21.1,53.3,0.507 256,-1,655.5,447.1,61.3,189.9,1 256,-1,1228,441.9,206.7,374,1 256,-1,412.1,464,39.6,112.5,1 256,-1,932.2,410.1,161.8,633.2,1 256,-1,807.5,443,130.3,452.9,1 256,-1,514.2,452.6,32.5,112.4,1 256,-1,371.1,446,44.6,106.4,1 256,-1,1791.2,399.7,129.8,376.7,0.998 256,-1,590.2,459.6,24.1,62.9,0.997 256,-1,470.3,460.5,32.8,104.1,0.995 256,-1,765.3,455.1,23.1,71.2,0.985 256,-1,607.9,460.4,23,59,0.909 256,-1,548.3,460.4,24.3,63.6,0.879 256,-1,563.7,459.1,41,65.7,0.473 256,-1,491.6,458.1,23.1,104,0.418 256,-1,779.2,455.1,24.8,68.3,0.192 256,-1,1104.5,447.4,45.4,109.1,0.07 373,-1,835.9,471.9,53.3,78.3,1 373,-1,1074.8,407.2,212.8,609.8,1 373,-1,457.2,410,161.8,374.3,1 373,-1,796.2,475.6,55.9,62.3,1 373,-1,948.5,427,139,513.1,1 373,-1,410.9,471.2,44.4,105.9,1 373,-1,625.8,456,29.8,75.7,0.999 373,-1,145.1,445.8,147.8,374,0.999 373,-1,241.7,439.8,178.9,313.6,0.994 373,-1,378.4,461.8,43.8,120.7,0.99 373,-1,1555,441,45.4,109.3,0.95 373,-1,887.1,458.1,25.1,53.7,0.24 190,-1,622.5,425.2,174.1,509.1,1 190,-1,406.9,469.3,51.9,105.3,1 190,-1,568,456.5,58.8,158.7,1 190,-1,799,439.9,109.1,352.8,1 190,-1,938,444,96.5,310,1 190,-1,370.6,445.5,45.3,105.9,1 190,-1,510,455.8,35.1,108.7,1 190,-1,1149.8,449,40.1,100.2,1 190,-1,1086.1,485.8,40.1,115.6,1 190,-1,1004.1,435.5,83.9,276.8,0.999 190,-1,459.6,469.9,40.3,107.5,0.999 190,-1,1098.6,443.9,37.7,107.5,0.865 190,-1,588.5,424.9,23.4,44.6,0.711 190,-1,549.3,437.3,19.9,44.9,0.152 190,-1,603,414,22.3,47.3,0.071 190,-1,559.4,398.5,36.9,103.7,0.056 533,-1,665.2,450.2,42,121.6,1 533,-1,804.8,434.2,120,260.2,1 533,-1,1001.9,441.6,121,282,1 533,-1,1449.5,418.6,212.7,662.4,1 533,-1,381.3,462.6,50.1,115.8,1 533,-1,716.5,452.8,33,94.2,1 533,-1,918.4,412.2,90.6,302.1,1 533,-1,574.2,454.9,34.4,86.4,1 533,-1,414.7,468.5,45.2,102.9,0.999 533,-1,1662,375.2,259,705.8,0.998 533,-1,1093.8,435.4,94,237.1,0.998 533,-1,1178.4,447.6,35.9,87.1,0.992 533,-1,543.7,462,29.4,77,0.986 533,-1,461.9,462.4,26.6,66.1,0.539 533,-1,568.5,432.4,19.8,36.3,0.069 217,-1,595.8,454.6,57.3,168.9,1 217,-1,1030.3,448.8,160,333.5,1 217,-1,716.6,419.9,181.2,560.5,1 217,-1,514.2,454.5,34.3,111.1,1 217,-1,882.2,437.6,130.6,385.5,1 217,-1,410,468.1,49.3,106.2,1 217,-1,371.2,447.6,44.2,103.9,1 217,-1,442.8,470.4,41.7,105.1,0.999 217,-1,658.2,466.1,25.7,70.4,0.992 217,-1,1204.4,448.1,41.2,101.3,0.99 217,-1,547.4,454.8,25.3,65.5,0.937 217,-1,593.5,421.6,18.4,37,0.166 217,-1,559.3,452.6,46.3,75.9,0.071 19,-1,913.5,484.5,97.3,110.3,1 19,-1,836.5,472,53.2,78,1 19,-1,1459.3,410.5,225.9,412.9,1 19,-1,448.8,441.7,125.7,291.3,1 19,-1,1413,435,54.4,132,1 19,-1,586,443.4,92.1,271.7,1 19,-1,1257.2,448.1,34.8,100.1,1 19,-1,375.1,446.7,43,104.8,1 19,-1,795.9,476,56.8,61.2,1 19,-1,1013.3,437.7,42.3,113.4,1 19,-1,1090.3,482.9,34.1,117.8,1 19,-1,1054.9,485.9,38.2,108.9,1 19,-1,1099.5,438.1,40,109.1,0.999 19,-1,417.7,458.2,41.4,86.3,0.999 281,-1,1444.7,432.5,159.2,419.3,1 281,-1,389.5,465.6,43.1,111,1 281,-1,510,456.2,35,109.2,1 281,-1,829.2,427.8,155.8,494.8,1 281,-1,982.9,406.6,157,648.2,1 281,-1,716,445.8,89.5,195.6,1 281,-1,451.9,461.2,31,105.5,0.999 281,-1,658,461.7,26,74.9,0.999 281,-1,1331.8,442.4,43.8,104.9,0.992 281,-1,578.5,461.7,25.7,61,0.986 281,-1,1543.9,419.1,125,338.3,0.968 281,-1,563.9,462,25.7,60.6,0.9 281,-1,550.1,460,25.8,65.7,0.891 281,-1,614,460.1,24,56.8,0.863 197,-1,647.7,421.7,166.1,531.4,1 197,-1,406.3,468.1,51.9,106.6,1 197,-1,568.7,450.6,62.9,171.4,1 197,-1,371,445.4,44.2,106.1,1 197,-1,810.8,431.8,144.3,377.6,1 197,-1,953.9,445.1,111.1,323.8,1 197,-1,510.5,455.4,34,110.1,1 197,-1,1138.8,449.9,40.2,99.4,0.999 197,-1,1177.5,449.6,36.9,97.4,0.999 197,-1,458.6,467.4,38,108.1,0.998 197,-1,1035.6,440.7,83.5,269.7,0.984 197,-1,590.2,420,23.4,44.8,0.79 197,-1,579.7,430.4,23.3,40.3,0.742 197,-1,547.6,436.7,19.7,45.7,0.234 197,-1,602.7,411.3,22.7,48.8,0.185 197,-1,553.5,425.7,37.8,94.9,0.123 490,-1,650.4,435,115.9,269.6,1 490,-1,807.4,443.3,135,287.8,1 490,-1,1375.6,391.2,283.1,689.8,1 490,-1,568.8,456.4,34,80.9,1 490,-1,934.4,433.5,97.8,246.1,1 490,-1,1203.1,424.9,197.5,581.4,1 490,-1,1182.9,449.7,35,89.6,1 490,-1,1607.7,409.5,150.8,435.6,0.999 490,-1,1085.7,458.2,39.9,141.4,0.998 490,-1,1112.9,435.9,40.3,155.7,0.997 490,-1,1031,439.5,41.4,116,0.997 490,-1,534.5,457.9,27.8,74.3,0.992 490,-1,462.7,459.8,26.5,80.5,0.983 490,-1,417.8,474.9,35.3,96.6,0.841 490,-1,631.6,460.7,28.8,76,0.802 207,-1,405.8,466.1,52,108.3,1 207,-1,686,421,165.4,562.1,1 207,-1,582.6,456.8,61.3,167.4,1 207,-1,1192.2,448.8,34.8,98.2,1 207,-1,1004.4,446,114.8,321.9,1 207,-1,836,433.5,151.4,383.7,1 207,-1,513.1,457,32.8,108.5,1 207,-1,371.2,446.1,43.9,106.3,1 207,-1,454.6,465.3,34,108,0.996 207,-1,659,463.4,26.8,75.2,0.994 207,-1,559.2,460.9,26.3,66.7,0.863 207,-1,538,458.4,25.2,79.4,0.696 207,-1,590.4,421.2,19.3,37.6,0.355 207,-1,577.8,429,19.3,36.4,0.34 326,-1,1445.9,441,51.6,110.5,1 326,-1,490.7,454.3,44.5,111,1 326,-1,896.3,416.8,144.9,533.4,1 326,-1,1058.3,412,187.8,599.4,1 326,-1,68.6,411.6,252.6,437.4,1 326,-1,410.1,468.7,46.5,105.9,1 326,-1,658.7,463.3,26.1,72.8,1 326,-1,380.8,463.4,44.2,112.8,1 326,-1,830.6,444,93.2,224.7,1 326,-1,1750.1,395.9,170.9,477.2,0.999 326,-1,1206.9,447.7,103.3,227.9,0.999 326,-1,797.2,477.9,50.7,59.1,0.998 326,-1,587.7,459.5,21.5,58.7,0.96 326,-1,628.8,459.4,24.3,61.4,0.951 326,-1,558,459.6,22,59.3,0.936 106,-1,913.6,482.3,96.8,113.2,1 106,-1,373.5,446.1,43.5,107,1 106,-1,834.6,472.6,54.5,77,1 106,-1,447.4,466.8,45.1,105.4,1 106,-1,1251.4,446.8,38.8,100.7,1 106,-1,1088.6,483.6,36.7,118.6,1 106,-1,554,443.4,124.9,362.7,1 106,-1,760.1,457.8,83.5,236.8,1 106,-1,1004.8,442.2,40.2,107.6,1 106,-1,659.1,438.9,103.1,308,0.999 106,-1,1050.8,482.7,40.3,110.2,0.999 106,-1,506,464.9,34.3,105.1,0.999 63,-1,913.1,484.1,97.5,111.6,1 63,-1,836.6,472,53.5,78.8,1 63,-1,487.1,442.6,133.7,327.5,1 63,-1,374.7,446.1,43.5,106,1 63,-1,1260.3,446.9,35.8,101.7,1 63,-1,1526.2,430.7,52.1,125.2,1 63,-1,418.8,457.8,41.7,85.6,1 63,-1,620.5,446.2,92.3,281,1 63,-1,1055.2,483.8,38.8,110.5,1 63,-1,1004.6,442,41.5,114.6,1 63,-1,796.3,475.9,56.8,63.3,1 63,-1,1089.6,482,34.3,115.9,1 63,-1,1096.1,438.8,41.3,110,0.999 63,-1,690.3,456.4,77,221.5,0.998 112,-1,913.7,482.3,97,112.8,1 112,-1,373.7,445.9,42.9,107.3,1 112,-1,443.5,469,44,101.8,1 112,-1,1244.8,446.4,40.5,102.5,1 112,-1,1088.5,483.7,36.6,118.6,1 112,-1,554.8,439.5,132.8,364.3,1 112,-1,764.7,453.1,81.8,246.8,1 112,-1,834.8,471.1,53.6,77.4,1 112,-1,666.5,442.2,99.5,304.6,1 112,-1,503.9,463.4,32.9,105.6,1 112,-1,1004.3,444.7,40.1,103.7,0.999 112,-1,1052.8,483.1,39.9,110.2,0.998 112,-1,533.1,465.7,23.8,75.8,0.054 15,-1,913.3,483.5,97.8,111.1,1 15,-1,836.8,472.5,52.8,77.2,1 15,-1,442.7,444.5,129.3,286.5,1 15,-1,375.3,445.8,42.8,106.4,1 15,-1,587,442.4,87.8,272,1 15,-1,1013.7,434.2,42.9,116.1,1 15,-1,1257.1,447.4,34.2,101.7,1 15,-1,795.9,476.1,56.1,61.1,1 15,-1,1090.3,483.4,34.1,116.9,1 15,-1,1448.4,405.4,162.1,396.8,1 15,-1,1100.2,438.8,40.5,108,0.999 15,-1,1397,436.1,61.1,131.2,0.999 15,-1,1056.2,485.5,37.2,109.8,0.999 15,-1,1556.7,412.2,152.9,382.9,0.996 15,-1,417.9,458,39.9,85,0.988 15,-1,663.1,466.1,49.1,177.2,0.051 132,-1,914.7,483.1,96.3,112.2,1 132,-1,797.4,451,91.8,261.2,1 132,-1,1223.9,445.3,42.6,101.1,1 132,-1,414.4,466.6,62.7,104.5,1 132,-1,374.3,446.5,42.3,105.6,1 132,-1,571.9,441.9,142.7,400.9,1 132,-1,1086.8,483.6,38.9,116.2,1 132,-1,1005,443.5,39.1,104.7,1 132,-1,491.2,468.7,37.2,106.5,1 132,-1,687.2,434.2,100.2,324.2,0.999 132,-1,1052.9,483.6,38.9,109.6,0.997 132,-1,527.9,456.9,31.1,73.3,0.993 241,-1,821.3,412.3,214.2,602.2,1 241,-1,627.9,448.5,77.6,185,1 241,-1,1171.4,438.9,123.2,356.7,1 241,-1,369.9,447.3,44.9,104.8,1 241,-1,419.5,463.7,37.5,111.3,1 241,-1,513,452.9,33.7,112.4,1 241,-1,1085,482.6,42.5,117,0.999 241,-1,1117.2,444.4,40.4,104.3,0.997 241,-1,592.5,457.1,22,67.8,0.988 241,-1,474.4,455.6,32.7,107.2,0.984 241,-1,552,458.2,25.3,63.3,0.935 241,-1,1050.6,488,37.5,102.8,0.763 241,-1,445.7,459.3,42.4,104.4,0.327 305,-1,777.2,446.1,73.4,211.6,1 305,-1,503.6,456.6,39.3,108.2,1 305,-1,1014.4,406.8,181,614.4,1 305,-1,1329.4,428,118.4,277.1,1 305,-1,892.8,424.9,141.6,524.9,1 305,-1,410.2,468.1,48.9,106.7,1 305,-1,1656.8,419.7,163.6,484.9,1 305,-1,658,461.9,25.8,73.3,1 305,-1,834.9,471.4,52.9,79.1,1 305,-1,1182.2,447.6,40.3,103.4,1 305,-1,381.9,463,44,112,0.999 305,-1,575.7,461.3,25.5,59.6,0.983 305,-1,555.8,460.9,25,60.9,0.929 305,-1,609.3,459.3,24.1,56.6,0.882 305,-1,532.5,453.4,36,74,0.184 71,-1,912.7,483.5,97.7,111.5,1 71,-1,836.3,472.3,53.7,77.5,1 71,-1,375,447.7,42.8,105.4,1 71,-1,1260.9,447.3,35.2,101,1 71,-1,418.9,457.9,41.1,85.8,1 71,-1,505.3,438.9,132.4,328.1,1 71,-1,1546.5,428.7,52.3,129.2,1 71,-1,1087.6,485.3,35.7,115.7,1 71,-1,1004.5,442.2,41.8,111.1,1 71,-1,615,438.6,99.3,295.5,1 71,-1,1052.3,480.6,40,114.9,1 71,-1,795.5,476.1,57.7,61.4,0.999 71,-1,700.6,456.1,73.5,220,0.999 71,-1,473.7,465.4,34.9,103.1,0.998 71,-1,1098.2,438.6,37.8,114.5,0.993 146,-1,401,464.9,62.3,106.3,1 146,-1,1208,446.3,37.5,102.4,1 146,-1,565.3,438.3,147.8,434.5,1 146,-1,1088.1,486.2,37.6,113.5,1 146,-1,824.5,449,86.9,274,1 146,-1,705.6,437.4,129.9,337,1 146,-1,476.9,466.6,42.6,109.9,1 146,-1,1002.4,444.2,38.1,103.7,1 146,-1,373,445.8,43.5,105.4,1 146,-1,1053.4,484,38.4,110.3,0.996 146,-1,1116.6,448.8,40.2,94.3,0.982 146,-1,516.7,457.5,30.5,76.8,0.978 146,-1,917.3,487.4,87.3,111.5,0.965 146,-1,535,456.2,31,76,0.112 203,-1,405.7,465.8,51.8,108.1,1 203,-1,667.2,424,170.9,536.1,1 203,-1,824.7,437.5,155.8,372.2,1 203,-1,1188.2,448.1,36.1,97,1 203,-1,576.6,451.6,66.9,172,1 203,-1,986.4,441.6,97.7,321.2,1 203,-1,370.1,446.8,45.7,105.3,1 203,-1,510.3,455.4,33.7,110.5,1 203,-1,1136.2,450.5,38.5,99.8,0.999 203,-1,1051.4,434.5,90.8,284,0.999 203,-1,459.2,464.4,34.8,110.5,0.996 203,-1,581.2,430.2,22,38.6,0.79 203,-1,591.6,422.5,22.5,43.6,0.775 203,-1,530.5,455,26.8,95,0.174 203,-1,553.8,420.4,35.2,90.2,0.172 203,-1,605.9,414.4,21.8,47.1,0.141 203,-1,657.3,472.2,23.1,71.3,0.14 183,-1,588.4,424.6,192.8,493.1,1 183,-1,407.2,469.5,51.2,104.2,1 183,-1,783.3,435.3,110.7,361.9,1 183,-1,1086.6,485.9,39.9,114,1 183,-1,370.4,445.1,45.6,106.6,1 183,-1,507.2,455,37.6,107.4,1 183,-1,1155.4,449.9,37.7,99.5,1 183,-1,911.3,443.6,100.9,309.1,0.999 183,-1,462.4,468.2,37.4,109.2,0.999 183,-1,973.4,434.3,104,270.5,0.999 183,-1,553.4,455.2,34.3,89.3,0.596 183,-1,572.2,455.9,37.8,104.8,0.394 183,-1,581.6,436,23.1,42.1,0.299 162,-1,534.2,424.4,170.4,469.8,1 162,-1,400.2,467,61.6,105.5,1 162,-1,1184,446.4,39.4,101.1,1 162,-1,743.3,435.2,111.4,343.9,1 162,-1,1000.2,442.7,38.1,104.7,1 162,-1,1088,484.4,38.9,115.7,1 162,-1,371.7,446.6,44.2,104.9,1 162,-1,470.2,463.2,35.2,112.4,1 162,-1,1052.9,482.6,38.9,112.5,1 162,-1,849.1,451.5,91.2,283.9,1 162,-1,916.2,445.7,82.4,247.8,0.999 162,-1,1136.7,450.8,32.8,95.3,0.987 446,-1,606.4,439.6,104.7,308.6,1 446,-1,479.8,437.4,104.7,293.6,1 446,-1,375.7,464.2,55.7,117.2,1 446,-1,836.1,335.5,354.7,745.5,0.999 446,-1,1132.9,409.8,238.7,624.5,0.999 446,-1,415,468.8,43.2,104.3,0.994 446,-1,794.9,412.9,92,310.6,0.938 446,-1,722.8,461.4,31.7,85.4,0.229 446,-1,736.6,437.4,103.7,268.2,0.09 263,-1,667.2,452,67.6,192.1,1 263,-1,404.3,463.3,43,113.3,1 263,-1,945.7,403.9,166.4,646.2,1 263,-1,1683.8,409.5,223.9,376.4,1 263,-1,512.4,454.5,33.4,109.6,1 263,-1,1312.5,439.9,139.3,383.3,1 263,-1,818.2,430.4,129.2,487.7,1 263,-1,370.2,446.1,45.5,107.9,1 263,-1,591,460.7,23.2,62.8,0.995 263,-1,470,459.1,28.1,104,0.991 263,-1,778.4,453.5,24.8,71,0.981 263,-1,555.8,462,23.4,61,0.929 263,-1,606.8,460.8,23.4,60.7,0.908 263,-1,1295.5,452,47.1,97.9,0.242 263,-1,766.3,453.7,22.4,71.8,0.152 185,-1,600.2,426.2,185.1,495,1 185,-1,406.8,469.5,52,104.3,1 185,-1,786.5,433.7,111.2,363.2,1 185,-1,508.2,455.7,36.1,108.1,1 185,-1,370.7,445.5,45.4,106.9,1 185,-1,1087.4,484.5,39.5,115.8,1 185,-1,1153.3,450.9,39,98.8,1 185,-1,924.2,438.2,92.9,317.7,1 185,-1,460.8,469.3,38,108,0.999 185,-1,984.2,434.1,98,278.1,0.999 185,-1,571.3,457,52.1,147.4,0.998 185,-1,587,425.6,22,39.5,0.596 185,-1,559.7,426.1,36.4,85.3,0.054 195,-1,406.8,467.4,51.3,106.5,1 195,-1,639,418.9,168.4,536.5,1 195,-1,945.8,452.6,117.6,304.6,1 195,-1,567.3,452.8,62,167.3,1 195,-1,371.1,444.9,44.3,106.7,1 195,-1,808.5,433.7,125.7,375.9,1 195,-1,509.8,454.9,33.7,111,1 195,-1,1173.5,451.4,38.6,96.6,0.999 195,-1,459.2,466.1,40.5,110.1,0.998 195,-1,1139.4,450.5,39.7,98.8,0.996 195,-1,589.5,421,22.8,44.3,0.78 195,-1,1015.5,443.5,85.5,264.4,0.443 195,-1,1113.2,447,33.6,96.1,0.432 195,-1,549.9,436.6,19.6,45.5,0.367 195,-1,1089.7,476.9,37.2,117.6,0.209 195,-1,603.5,411.7,22.4,48.8,0.108 195,-1,562.8,394.4,37.6,105.4,0.096 278,-1,706.1,444.6,81.5,206.7,1 278,-1,390.2,465.3,42.1,112.9,1 278,-1,511,455.7,34.7,110.2,1 278,-1,824.6,429.2,149.4,493,1 278,-1,977.6,401.3,158,638.3,1 278,-1,1406.6,430,191.3,417.9,1 278,-1,455.3,458.3,31.6,107.6,0.999 278,-1,1550.4,420.1,147.4,331.9,0.998 278,-1,658.6,462.2,26.4,71.7,0.998 278,-1,580.1,461.1,24.2,61,0.99 278,-1,1324.8,445.9,47.4,105.4,0.984 278,-1,560.5,461.8,24.1,60.8,0.939 278,-1,617.1,459.7,24,57.9,0.907 418,-1,857.2,436.1,59.9,172.2,1 418,-1,691.9,403.9,120.3,332.8,1 418,-1,293.1,437.4,156.5,333.2,1 418,-1,447,435.7,155.7,334.6,1 418,-1,1051.5,402.9,198,612.4,1 418,-1,908.8,483.9,101.3,110.5,0.999 418,-1,581.1,427.4,95.3,291.3,0.998 418,-1,785.4,478.2,68,59.6,0.653 418,-1,427.1,467.6,28.8,98.5,0.111 564,-1,836.2,474,53.3,76.2,1 564,-1,1586.4,400,278.1,681,1 564,-1,918.1,428.9,89.3,254.5,1 564,-1,1122.9,439.9,108,272.6,1 564,-1,719,447.7,40.1,102.6,1 564,-1,1003.3,417.8,133.6,291.3,1 564,-1,797.6,477.3,54.8,60.3,1 564,-1,581.8,457,40.3,83.8,1 564,-1,642.9,451.5,38.1,113.9,1 564,-1,416.7,466.1,45.4,104.3,1 564,-1,381.8,463.8,48.8,113.6,1 564,-1,549.4,460,29.6,80,0.999 564,-1,1217.8,443.7,47.7,109.1,0.999 564,-1,510.2,458.8,23.2,53.3,0.819 352,-1,835.8,471.8,52.7,76.8,1 352,-1,1070.2,402.7,195.1,613.7,1 352,-1,913.1,419.6,142.8,518.2,1 352,-1,355.5,403.6,121.8,406.7,1 352,-1,796.5,474.9,57.1,63.4,1 352,-1,484.4,453.3,33.3,113.9,1 352,-1,79.1,439.4,181.7,336.7,1 352,-1,1514.3,437.8,40.6,110.1,0.999 352,-1,659.5,462.7,27.7,74.4,0.999 352,-1,635.8,461.2,25.7,65.9,0.964 352,-1,558.1,459.5,20.6,59,0.957 352,-1,578.4,459.8,23,58.6,0.944 352,-1,604.4,457.3,44,63.8,0.773 352,-1,507.7,455.6,27.7,81.3,0.325 352,-1,883.7,457.7,27.3,67.2,0.311 352,-1,867.1,457.5,30,72.6,0.147 525,-1,786.1,434.8,83.9,259.6,1 525,-1,1391.4,426,216.7,636.9,1 525,-1,382,461.9,49.5,116.2,1 525,-1,973.3,443.8,105.2,278.8,1 525,-1,1583.9,374.5,311,706.5,1 525,-1,894.4,412.3,89.8,296.5,1 525,-1,572.7,458,33.6,84,1 525,-1,676.5,450.3,45.4,122.8,1 525,-1,1181.5,447,36.3,85.9,1 525,-1,1067.2,437.8,97.1,241.9,0.999 525,-1,416.6,468.1,45.5,103.2,0.998 525,-1,718.5,448.6,32,91.8,0.995 525,-1,648.6,455,31,93.2,0.989 525,-1,542.3,461.9,29.3,76,0.986 525,-1,459.8,461.2,28.4,70.8,0.919 525,-1,666.6,454,27,106.3,0.664 158,-1,541.1,431.3,159.2,457.2,1 158,-1,1190.3,445.8,40.6,102.5,1 158,-1,731.4,434.5,118.1,342.9,1 158,-1,400,468.2,61.5,105.3,1 158,-1,1087.3,482.6,39.5,116.8,1 158,-1,1000.8,443.8,38.5,103.7,1 158,-1,371.3,445.4,44.7,107.2,1 158,-1,843.1,446.4,83.6,286.7,1 158,-1,471,464.9,37,112.6,0.999 158,-1,1051.8,483.7,39.7,110.7,0.999 158,-1,905.7,438.4,78.2,247.1,0.999 158,-1,1129.5,452,35.7,94.2,0.997 158,-1,505.8,452.6,24.3,88.6,0.12 46,-1,912.6,483.9,98.6,111.1,1 46,-1,836,473,54.4,77,1 46,-1,477.5,446.1,114.8,308.6,1 46,-1,615.8,442,93.6,275.3,1 46,-1,1473.9,428.4,61.6,129.2,1 46,-1,374.4,445.7,44,106.3,1 46,-1,1259.2,446.3,35.5,102.8,1 46,-1,1008,441.6,41.7,115.1,1 46,-1,418.3,457,42.8,87.8,1 46,-1,796.3,476.6,56.6,60.7,1 46,-1,1054.9,483.8,38.8,111,1 46,-1,1697.7,382.8,223.3,491.9,1 46,-1,1096.9,435.6,41.7,111.3,1 46,-1,1090,481.8,33.7,117.6,1 46,-1,583.7,457.1,39.5,138.4,0.984 46,-1,692.5,478.7,54.9,190.9,0.106 498,-1,675.6,431.5,99.8,276.9,1 498,-1,836.8,440.3,133.7,290.5,1 498,-1,381.4,462.3,54,119.6,1 498,-1,966.6,429.9,112.3,252.4,1 498,-1,1444.6,370.2,249,710.8,1 498,-1,570.3,455.8,33.4,83.3,1 498,-1,1081.8,449.3,54.5,152.7,1 498,-1,1658.6,401.6,184.1,467.3,1 498,-1,1217.6,428,228.4,592.3,1 498,-1,1178,448.6,37.1,86.1,1 498,-1,635.1,454.3,33.1,90,0.999 498,-1,798.1,478,56.8,58.2,0.998 498,-1,536.9,459.6,28.8,75.3,0.995 498,-1,460.4,459.4,25.4,76.5,0.993 432,-1,913.6,484.8,96.1,109.1,1 432,-1,742.7,415.3,114.4,300.4,1 432,-1,537.2,438.4,138.8,320.8,1 432,-1,400.5,435,104.1,311.5,1 432,-1,1062,398.6,203.4,647.6,1 432,-1,829.4,436.2,52.8,164.5,0.997 432,-1,656,434.5,100.8,279.1,0.997 432,-1,1477,329.5,444,751.5,0.983 432,-1,522.4,469.6,24.1,68,0.795 432,-1,502.1,469,27.6,68.4,0.452 348,-1,837.2,472.5,52.6,76.4,1 348,-1,1070.4,393.2,192.1,616.7,1 348,-1,906.9,422.6,145.2,522.7,1 348,-1,485.1,452.6,34.5,114.8,1 348,-1,1503.8,435.2,44.5,114.2,1 348,-1,294.6,399.5,175.7,416.1,1 348,-1,796.3,475.3,57.7,62,1 348,-1,61.6,445.4,135.2,325.4,1 348,-1,659.7,462.6,26.9,73.1,0.999 348,-1,629.2,460.4,29.2,67.9,0.97 348,-1,554.9,459.1,19.8,59.6,0.919 348,-1,586.8,457.9,22.1,59.1,0.887 168,-1,539.4,421.4,203.6,479.1,1 168,-1,404.9,467.2,56.9,104.5,1 168,-1,755.5,438.5,115.9,347.7,1 168,-1,862.4,444.5,126.8,294.5,1 168,-1,1088.6,484,38.8,115.9,1 168,-1,1178.2,448.6,41,101,1 168,-1,372.7,445.7,42.6,104.9,1 168,-1,1051.8,483.2,40.5,110.7,1 168,-1,998.6,442.1,38.3,106.4,1 168,-1,470.3,466.7,34.9,108.6,0.999 168,-1,1142.3,449.3,34.2,98.6,0.996 168,-1,502.6,456.4,28.7,96,0.919 87,-1,914.2,482.7,96.3,112.5,1 87,-1,836.7,470.7,52.1,80.6,1 87,-1,373.5,446.7,44.3,105.1,1 87,-1,1261.1,446.9,35.2,101.6,1 87,-1,1088.8,483.6,36.4,119.1,1 87,-1,721.7,459.1,92.6,219.7,1 87,-1,544.2,445.1,111.4,334.9,1 87,-1,1005.4,443.2,41,107.1,1 87,-1,1054.6,482.3,39.6,111.8,0.999 87,-1,466.3,468,38.5,103.1,0.999 87,-1,625.3,442.9,100.8,297.7,0.999 87,-1,424.6,458.6,37.8,88.2,0.997 87,-1,506.9,461.9,30,101.3,0.938 87,-1,1100.2,452.3,37.6,103.1,0.174 439,-1,914.7,484.1,94.6,112.6,1 439,-1,548.3,441.7,146.5,314.6,1 439,-1,767.1,418.1,99.8,307.4,1 439,-1,431.1,433,130.3,313.7,1 439,-1,1109.2,352.4,468.7,728.6,0.999 439,-1,710.8,436.7,86.6,270.5,0.955 439,-1,543,470.6,25.6,74.6,0.282 439,-1,679.5,470.2,31.2,94.2,0.052 584,-1,835.2,472.6,54.3,77.1,1 584,-1,722.1,447.8,42.7,107.3,1 584,-1,1204,446.2,103.2,270.8,1 584,-1,976.2,432,102.6,246.3,1 584,-1,1080.1,414.4,89.2,288.5,1 584,-1,797.3,475.2,55.7,62.5,1 584,-1,415.9,467.6,42.3,105.8,1 584,-1,665.4,453.9,40,104.2,1 584,-1,381.6,464.6,48.6,112.5,1 584,-1,913.1,482.9,96.5,112,0.999 584,-1,556,459.4,29.6,83.2,0.999 584,-1,632.8,453.6,38,104.7,0.998 584,-1,1679.5,405.1,241.5,675.9,0.996 584,-1,582.8,457.7,40.2,85.8,0.97 527,-1,793.7,435.7,94.1,258.9,1 527,-1,1409.2,419.4,206.5,650.7,1 527,-1,381.9,461.6,49.5,116.6,1 527,-1,985.6,443.8,100.8,278.6,1 527,-1,573.3,456.1,33.8,85.7,1 527,-1,901,406.4,84.7,311.2,1 527,-1,673,453,46.5,117.9,1 527,-1,1595.2,378.4,325.8,702.6,1 527,-1,1071.3,437.5,105.5,239,1 527,-1,1178.9,446.4,36.2,88.7,1 527,-1,717.2,448.7,34.6,93.6,0.999 527,-1,416.4,467.7,46,103.8,0.998 527,-1,543.1,461.2,29.4,76.5,0.984 527,-1,652.1,452.9,32,95,0.921 527,-1,459.9,460.9,28.5,70.8,0.895 527,-1,567.6,432.2,20.3,38.9,0.093 47,-1,912.6,482.8,98.8,111.9,1 47,-1,835.7,472.6,53.8,77.5,1 47,-1,477.6,445,114.6,316.2,1 47,-1,374.5,445.9,43.6,105.7,1 47,-1,1480,430,59,125.6,1 47,-1,619.4,441.3,88.8,277.9,1 47,-1,1259.7,446.1,35,102.8,1 47,-1,1007.4,441.9,41.4,113.5,1 47,-1,418.3,457.2,42.2,87.8,1 47,-1,796.2,476.4,56,60.6,1 47,-1,1054.3,483.9,38.6,110.8,1 47,-1,1724.6,384.9,196.4,490,1 47,-1,1097.8,435.9,40.8,109.5,1 47,-1,1090.8,481.8,33.1,116.9,1 47,-1,581.6,456.2,41.9,137.8,0.996 47,-1,692.2,472,55.5,202.5,0.351 57,-1,914.3,483.7,96.1,111.7,1 57,-1,836.2,472.5,53.5,77.5,1 57,-1,481.8,446.5,123.8,311.4,1 57,-1,374.5,445.1,44,107.2,1 57,-1,1260.8,446.2,35.3,102.3,1 57,-1,622.9,444.6,92.3,278.3,1 57,-1,418.6,457.5,41.5,86.6,1 57,-1,1511,433.6,52.5,124.5,1 57,-1,1054.9,485.2,39.3,109,1 57,-1,1006.7,443.1,41.7,114.9,1 57,-1,1096.7,434.9,41.8,114.2,1 57,-1,797.7,476.1,56.2,61.3,1 57,-1,1090.4,481.7,34.6,115.1,0.998 57,-1,587.9,457.9,37,133.8,0.776 57,-1,692.8,462.8,62.1,207.8,0.214 267,-1,512.5,454.6,34.5,109.6,1 267,-1,675.6,448.1,66.5,194.2,1 267,-1,824.3,436.7,131.2,481.2,1 267,-1,949.6,409.6,165.4,641.8,1 267,-1,400.5,465,43.6,111.7,1 267,-1,1662.8,418.5,192.9,345.1,1 267,-1,1346.9,435.3,140.3,403.3,1 267,-1,370.7,445.5,44.9,107.4,1 267,-1,1302,444.9,40.6,105,0.998 267,-1,463,461.3,31.4,102.4,0.994 267,-1,585.1,459.6,23.2,61.6,0.991 267,-1,781.6,452,27.2,74.2,0.988 267,-1,618.5,460.6,22.8,58.9,0.943 267,-1,553.5,461.2,24.5,62,0.935 267,-1,648.1,456.4,35.1,73.6,0.071 355,-1,836.9,470.6,52.9,79,1 355,-1,1067.7,394,199.9,609.6,1 355,-1,912.1,422.1,149.4,528.5,1 355,-1,797.2,474.3,55.7,64.1,1 355,-1,1522.9,436.8,46,113.3,1 355,-1,378.5,403.6,134.3,403.2,1 355,-1,99.3,439,188.2,338.5,0.999 355,-1,659.1,462.3,27.7,74.8,0.999 355,-1,3.2,438.2,130.1,421.7,0.998 355,-1,634.3,460.3,26.5,68.9,0.983 355,-1,558.7,458.9,20.3,59.4,0.961 355,-1,587.4,459.1,22.2,57.8,0.899 355,-1,875.3,454.6,31.8,74.7,0.884 355,-1,518.3,456.9,24,68.1,0.711 355,-1,483.9,454.3,29.2,119.4,0.631 355,-1,502,457.5,24.9,90.7,0.122 261,-1,1274,439.3,172.2,383.9,1 261,-1,662.8,451,65.7,188.6,1 261,-1,406.3,464.2,41.9,112.3,1 261,-1,942.3,410.5,162.5,634,1 261,-1,512.5,453.2,33.9,110.6,1 261,-1,1700.9,400.6,220.1,381.1,1 261,-1,369.9,444.7,44.8,108.2,1 261,-1,816.3,433.7,129.1,482.7,1 261,-1,589.6,459.7,23,63.9,0.992 261,-1,470.6,459.3,29.6,103.4,0.991 261,-1,775.9,454.3,24.8,72.7,0.967 261,-1,555.9,461.9,23.1,60.4,0.934 261,-1,604.7,460.1,23.5,62.4,0.79 261,-1,488.5,458.6,23.6,101.7,0.631 428,-1,913.8,484.4,94.7,108.9,1 428,-1,358.7,434.7,133.3,320.8,1 428,-1,1060.3,400.5,197.7,655.2,1 428,-1,723.8,405.8,120,327,1 428,-1,840.3,436.4,55.6,166.9,1 428,-1,532.7,443,95.8,320.1,1 428,-1,619.2,434.2,133.4,284,1 428,-1,489.7,462.6,24.6,71.1,0.389 33,-1,914.2,483.6,95.9,111.9,1 33,-1,835.2,473,53.9,76.5,1 33,-1,474.5,445,118.3,290.1,1 33,-1,375.4,446.5,42.6,106.1,1 33,-1,1445.8,432,65.3,128.4,1 33,-1,604.3,443.6,89,275.9,1 33,-1,1256.9,448.5,35.2,100.4,1 33,-1,418.2,457.2,42.2,88.4,1 33,-1,1604.5,390.6,194.5,459,1 33,-1,1010.3,439.6,42.8,117.3,1 33,-1,795.9,475.7,57.3,61.7,1 33,-1,1090.7,479.9,34,120.3,1 33,-1,1055.6,485,38.8,110,1 33,-1,1098.5,440,40.7,107.7,1 186,-1,407.3,469.9,52.1,104.7,1 186,-1,607.1,425.8,178.4,495.9,1 186,-1,789.4,434.5,109.7,363.3,1 186,-1,508,455.1,36.2,110.1,1 186,-1,1088,485.2,39.4,114.4,1 186,-1,370.1,445.5,45.3,106.7,1 186,-1,1153.5,449.9,38.1,99.2,1 186,-1,927.5,441.7,90.9,313.3,1 186,-1,569,456.3,57.2,153.3,1 186,-1,985.9,436.2,95.2,276.1,0.998 186,-1,459.9,468.6,38.5,108.7,0.998 186,-1,585.9,426.4,22.5,41.2,0.661 186,-1,550.1,438.4,19.4,43.8,0.192 186,-1,559.2,426.5,35.7,85.6,0.064 102,-1,914.1,482.9,96.9,112.2,1 102,-1,374,446.6,43.6,104.5,1 102,-1,1256.1,445.6,38.8,102.7,1 102,-1,836,472.7,53.3,75.6,1 102,-1,450.9,467.5,45.3,105,1 102,-1,754.9,451,82.5,243.1,1 102,-1,553,446,119.9,362.1,1 102,-1,1088.3,484.1,36.9,116.7,1 102,-1,1004.7,443.1,40.6,108.4,1 102,-1,654.8,441.8,98.4,294.5,1 102,-1,1051,482.8,40.5,109.6,0.999 102,-1,505.6,464.5,27.4,95.9,0.845 102,-1,488.1,464,30.5,97.5,0.229 521,-1,759.4,433.1,92.6,262.9,1 521,-1,382.4,462.2,49.9,116.8,1 521,-1,1567.4,375.7,305.1,705.3,1 521,-1,1335.1,419.7,256.4,645.2,1 521,-1,941.5,443.6,123.1,282.6,1 521,-1,683.2,451.2,40.6,123.7,1 521,-1,571.9,458.9,33.2,81.4,1 521,-1,1180.1,449.2,34.6,86.1,1 521,-1,1050.8,442.3,102.3,235.5,1 521,-1,647.6,452.7,32.7,98.4,0.998 521,-1,835.3,472.8,55.9,77.6,0.996 521,-1,541.9,463.4,29.4,73.8,0.99 521,-1,884,417,87.8,282.9,0.98 521,-1,722.9,448.4,29.5,89.3,0.972 521,-1,447.2,462.7,30.7,79,0.951 521,-1,417.8,470.6,45,97.1,0.868 17,-1,914.6,483.8,95.1,111.1,1 17,-1,836.6,472.2,53,77.4,1 17,-1,446.5,443.6,124.6,288.1,1 17,-1,1453.1,411.3,202.2,406.5,1 17,-1,1257.2,447.5,34.7,101.8,1 17,-1,374.6,447,43.5,104.9,1 17,-1,1405,437.5,58.4,129.7,1 17,-1,587.1,440.9,89.1,273.8,1 17,-1,1013.3,435.8,43.2,115.9,1 17,-1,1090.4,483.6,33.9,118,1 17,-1,795.8,475.7,56.3,61.7,1 17,-1,1100.5,437.9,39.1,108.7,1 17,-1,1055.7,486.6,36.7,107.6,0.999 17,-1,417.1,459.2,42.8,85.1,0.997 187,-1,407.2,469.5,52,105.2,1 187,-1,602.9,424.8,181.6,502.8,1 187,-1,790.9,434.1,111.3,363.4,1 187,-1,1152.5,450,39.2,99.1,1 187,-1,1088.6,484,39.7,117.3,1 187,-1,508.2,455.3,36.2,109.8,1 187,-1,370.4,445.7,44.9,106.5,1 187,-1,568.8,453.9,58,153.4,1 187,-1,931,442.9,91.1,313.9,1 187,-1,459.8,468.5,39,108.7,0.999 187,-1,988.2,442.4,99.5,263.1,0.998 187,-1,581.8,434.4,22.9,39.4,0.647 187,-1,550.3,439.5,19.3,43.4,0.154 187,-1,1101.6,451.1,35.6,104.6,0.14 181,-1,575.9,426,201.1,483.6,1 181,-1,406.9,469.1,51.5,105.4,1 181,-1,781.8,437.9,107,359.6,1 181,-1,1155.8,446,38.9,103.7,1 181,-1,1087.2,484.1,39.5,115.6,1 181,-1,370.2,444.8,45.6,107.7,1 181,-1,507.4,454.7,37.5,107.9,1 181,-1,905.5,446.7,105.8,299.2,1 181,-1,465,467.6,36.2,109.8,0.999 181,-1,968.9,437,106.2,270.6,0.999 181,-1,556.6,456.2,25.4,69.6,0.958 181,-1,541.5,452.1,28.2,86.6,0.775 181,-1,580,433.6,21.5,42.3,0.312 181,-1,569.9,453.4,31.5,91.3,0.258 181,-1,1046.8,471.3,41.3,141.3,0.205 181,-1,591,426.8,20.1,39.7,0.056 238,-1,622.6,451.4,71.9,183,1 238,-1,800.3,403.3,240.4,608.1,1 238,-1,370,446.9,44.4,106.3,1 238,-1,1142.4,444.8,144.4,356.5,1 238,-1,420.5,464,40.6,110.1,1 238,-1,512.9,453.5,34.1,110.6,1 238,-1,1086.1,483.1,43.3,115.1,1 238,-1,587.9,459.4,22.5,61.4,0.989 238,-1,472.7,456.3,32.4,105.8,0.985 238,-1,1050,485.4,40.7,106.6,0.972 238,-1,1114.9,460,37.6,92.4,0.93 238,-1,548.6,457.9,25.9,64.1,0.929 239,-1,805,413.7,234.3,589.6,1 239,-1,624.8,450.3,74.6,182.4,1 239,-1,370,446.8,44.4,105.8,1 239,-1,1149.5,446,135.4,356.1,1 239,-1,1086.9,485.3,41.7,112.4,1 239,-1,513.1,453.7,33.9,110.3,1 239,-1,420.3,463.3,39.4,111.9,1 239,-1,1117.2,452.7,38.3,94.8,0.994 239,-1,585.1,457.6,22.7,64.2,0.993 239,-1,472.7,456.8,33.6,106.2,0.986 239,-1,1050.9,487.2,39.5,105,0.953 239,-1,550.3,458.4,25.8,63.9,0.94 239,-1,602.9,462.8,26.8,64,0.273 284,-1,837.8,428.4,165.2,499.1,1 284,-1,510.2,456.3,34.5,109.2,1 284,-1,987,399,158.2,656.4,1 284,-1,1475.6,434.7,154.3,421.6,1 284,-1,386.7,464.4,44.1,113.2,1 284,-1,716.8,450.7,93.4,196.2,1 284,-1,1342.4,441.7,41.1,109.2,1 284,-1,660.6,462.5,25.2,74.6,0.999 284,-1,450.4,459.8,32.8,106.1,0.999 284,-1,581,461.2,25.8,61,0.997 284,-1,555.5,461.3,25.7,66.2,0.818 579,-1,836.6,472,53.6,78.7,1 579,-1,721.8,448.5,41.3,106.2,1 579,-1,965.7,436.7,106.2,240.2,1 579,-1,1168.8,442.5,127.7,273,1 579,-1,381.6,464.7,48.7,113.5,1 579,-1,797.3,475.9,55.4,61.5,1 579,-1,1060.4,412.8,97,289.2,1 579,-1,415.9,470.3,42.3,102.4,1 579,-1,554,461.5,31.6,82.1,0.999 579,-1,666.3,452.2,38.7,105.7,0.999 579,-1,1669.5,406.8,251.5,674.2,0.998 579,-1,635.6,451.5,37.5,108,0.995 579,-1,584.6,458.8,37.2,84,0.977 9,-1,914.3,482.4,96.1,113,1 9,-1,836.2,472.7,53.7,76.8,1 9,-1,375.5,446.5,41.9,105.3,1 9,-1,441.3,447,125.5,282.4,1 9,-1,584.3,443.1,88.4,270.5,1 9,-1,1013.3,433.1,42.1,117.4,1 9,-1,1256.7,447.3,34.9,101.8,1 9,-1,1398.7,406.5,145,399.2,1 9,-1,795.9,475.3,56.7,62.6,1 9,-1,1091.2,481.8,33.8,117.9,1 9,-1,1099.4,438.7,42,107.7,1 9,-1,1054.4,487.7,38.3,106.3,1 9,-1,1502.6,415.7,144.6,366.6,0.997 9,-1,418.5,460.8,40.8,86.5,0.491 9,-1,654.6,470.9,51.5,170.9,0.063 494,-1,815.3,440.6,137.7,292.3,1 494,-1,654.3,437.8,116.3,265,1 494,-1,955.7,432.5,96.4,252.4,1 494,-1,382,463.5,53.2,115,1 494,-1,1399.7,376.7,264.3,704.3,1 494,-1,1083.9,450.6,45.8,148.6,1 494,-1,568.1,457.5,35.1,81.2,1 494,-1,1214.2,437.7,211.4,571.5,1 494,-1,1181.3,450.1,35.2,84.1,0.999 494,-1,634.2,454.9,34.5,90.4,0.998 494,-1,1631.6,403,156.6,446.9,0.995 494,-1,460.4,459.8,25.4,79.2,0.987 494,-1,538.7,461.1,27.6,71.3,0.982 494,-1,1111.6,449.7,37.9,136.5,0.973 511,-1,834.1,471.3,53.6,81.9,1 511,-1,382.4,462.6,52,116.9,1 511,-1,722.5,434.2,111.2,265.6,1 511,-1,902.6,441.9,148.9,288.1,1 511,-1,1528.6,378.9,323.4,702.1,1 511,-1,637.8,457.2,34.6,88.2,1 511,-1,1178,449.5,35.7,86.2,1 511,-1,1317.8,412.9,213.9,638.2,1 511,-1,572.6,457.3,32.3,82.3,1 511,-1,1033.5,439.5,81,238.3,0.999 511,-1,539.3,460.8,29.4,76.4,0.993 511,-1,696.4,452.7,42.4,119.8,0.983 511,-1,460.9,460.2,25.3,72.9,0.981 511,-1,1097.2,451.3,51.7,146.6,0.979 511,-1,1759.4,398.5,161.6,514.4,0.798 511,-1,412.4,470.8,48.5,97.5,0.363 511,-1,658,458.6,41.6,84.1,0.137 569,-1,836.9,472,51.7,77.3,1 569,-1,720.7,447.5,40.8,103.3,1 569,-1,1146.1,445.7,110.9,272.6,1 569,-1,797.5,476.1,54.6,61.4,1 569,-1,1654.8,400.3,238.1,680.7,1 569,-1,417.2,466.5,44.3,105.7,1 569,-1,1013.2,414.3,130,286.9,1 569,-1,381.9,465.2,49,113.2,1 569,-1,552.3,458.9,30.2,83.6,0.999 569,-1,641.8,452.5,37.3,108.6,0.999 569,-1,583.2,456.9,38.8,83.6,0.997 569,-1,951,432.6,77,245.6,0.997 569,-1,665.2,450.7,37.5,103.6,0.994 569,-1,516.2,458.5,21.2,53.3,0.441 569,-1,499.5,462.2,22.6,54.3,0.425 420,-1,854.3,437.9,56.9,168.3,1 420,-1,700.4,404.3,119,327.4,1 420,-1,456.1,439.5,148.6,328.5,1 420,-1,297.8,429.4,172.3,343.6,1 420,-1,1053.1,408.5,196.5,616.5,1 420,-1,911.6,483.8,101.5,109.1,1 420,-1,599.6,436.7,94.2,282.7,1 53,-1,913.4,482.5,97.6,112.5,1 53,-1,836.4,472.8,53.5,76.6,1 53,-1,1497.7,428.7,56,132.7,1 53,-1,479.3,442.5,116.1,316.8,1 53,-1,624,448.2,87.8,269.6,1 53,-1,374.3,444.6,44.3,108.1,1 53,-1,1260.3,446.8,35.2,101.9,1 53,-1,418.4,456.4,42.7,88.2,1 53,-1,1054.5,485,39.6,109.3,1 53,-1,1006.7,442.5,43.1,115,1 53,-1,796.4,474.9,56.1,62.8,1 53,-1,1096.2,435.9,42.5,111.9,1 53,-1,1091.4,482.4,33.2,115.1,0.997 53,-1,580.9,452.6,43.5,134.7,0.996 200,-1,404.7,467.2,51.2,105.9,1 200,-1,661.4,428.7,167.4,525.4,1 200,-1,570.8,449.6,64.9,173.6,1 200,-1,814.6,434,155.3,384.2,1 200,-1,970.3,448.4,104.5,318,1 200,-1,371.2,445.9,45.2,105.8,1 200,-1,1139.1,446.9,37.8,106.2,1 200,-1,510.4,456.5,34.8,109,1 200,-1,1180.7,447.7,36.8,98.2,0.999 200,-1,1035.8,438.3,105.2,280.5,0.999 200,-1,458.2,466.5,36.1,109,0.998 200,-1,592.6,423.7,24.2,46,0.727 200,-1,582.1,433.3,23.5,41.2,0.679 200,-1,604,413.4,22.6,49.4,0.271 200,-1,553,425.8,36.9,92.1,0.137 116,-1,913.7,484.3,97.5,110.1,1 116,-1,374,446.2,43.2,107.1,1 116,-1,441.3,467.3,43.1,103.6,1 116,-1,1242.1,444.9,40.1,102.1,1 116,-1,1088.5,483.7,36.8,118.4,1 116,-1,561.1,440.5,130.3,372.6,1 116,-1,770.6,457.7,84.6,240,1 116,-1,499.8,466.4,35.1,106.7,1 116,-1,672.7,438.6,101.4,315.8,1 116,-1,1051.5,482.9,40.5,110.1,1 116,-1,1006.6,445.9,38.1,99.9,1 116,-1,830.4,468.7,56.8,84.7,0.951 111,-1,913.5,483,97.5,112.2,1 111,-1,373.9,446.1,42.7,106.9,1 111,-1,1246.9,447.2,40.8,101.4,1 111,-1,443,469,45.2,101.3,1 111,-1,835.7,472.4,53.2,76,1 111,-1,1088.4,483.5,36.5,119.2,1 111,-1,763.7,455.6,81.4,239.7,1 111,-1,668.3,440.9,97.3,296.3,1 111,-1,555.5,440,130.6,370.4,1 111,-1,505.2,464.6,33.3,104.4,1 111,-1,1004.4,444.4,40.4,103,1 111,-1,1051.1,483.1,40.8,110.9,0.998 286,-1,1482.6,436.1,179.2,428.3,1 286,-1,991.1,402,159.4,653.4,1 286,-1,510.1,456.6,34.2,108.2,1 286,-1,1349.6,443.4,40.6,109.6,1 286,-1,836.8,431,172.2,495.8,1 286,-1,721.4,446.2,85.9,203.4,1 286,-1,386.4,466.2,46.5,110.3,1 286,-1,659.6,460.8,26.2,75.2,1 286,-1,449,459.6,32.4,104.5,0.991 286,-1,578.7,461.6,26.1,61.5,0.978 286,-1,593.6,459.7,24.8,58.8,0.935 286,-1,563.8,461.3,25.7,61.2,0.89 286,-1,546.4,460.4,26.8,70.2,0.766 286,-1,424.6,468.2,29.3,104.5,0.476 120,-1,914.6,484.8,95.4,109.5,1 120,-1,373.2,446,42.4,106.5,1 120,-1,560.2,436.1,133.6,383.9,1 120,-1,1088.5,483.4,37.6,118,1 120,-1,436.8,468.2,44.8,104.5,1 120,-1,679.1,440.9,99.3,309.8,1 120,-1,1238.9,442.1,40.1,105.2,1 120,-1,775.4,446.8,93.5,252.9,1 120,-1,498.3,467.4,35,105.4,1 120,-1,1051.9,483.1,40.4,110.4,1 120,-1,1006.7,444.5,39.4,104.9,0.999 120,-1,531.8,460.9,28.9,75.9,0.86 79,-1,912.9,483.9,97.8,111.2,1 79,-1,835.4,472,53.1,76.5,1 79,-1,374.2,446.4,43.9,106,1 79,-1,1259.8,448.2,35.9,100,1 79,-1,1088.2,485.6,37.2,115.7,1 79,-1,419.3,457.4,41.8,86.1,1 79,-1,704.4,454.7,89.7,227.4,1 79,-1,533.6,443.9,113.6,333.5,1 79,-1,1053.7,482.3,40.1,111.1,1 79,-1,1004,443.8,42.3,109,1 79,-1,614.2,440.2,96.6,292.4,1 79,-1,469.4,466.3,35.4,100.5,1 79,-1,798.9,478.9,53.3,56.6,0.594 79,-1,1097,448.5,39.6,104.8,0.464 550,-1,835.6,471.2,53.2,79.9,1 550,-1,651.8,452.5,38.3,113,1 550,-1,1084.1,440.9,103.7,281.2,1 550,-1,1188.4,436.4,47.9,113.7,1 550,-1,715.8,450,37.3,98.5,1 550,-1,958.6,421.3,98.2,286.6,1 550,-1,381.3,464.2,49.2,113.7,1 550,-1,578.8,455.9,38.6,84.5,1 550,-1,1543.2,396.3,217.9,684.7,1 550,-1,794.1,475.9,57.9,60.8,1 550,-1,415.7,468.1,45.6,102.6,1 550,-1,883.6,436.1,79.9,249.6,1 550,-1,547.3,461.1,29.8,77.9,0.998 550,-1,510.7,456.5,23.5,57.5,0.92 550,-1,1049.3,446.7,35.7,95.9,0.813 550,-1,453.8,462.5,31.9,74.4,0.251 589,-1,835.5,472.6,53.5,77.3,1 589,-1,722.3,447,45.4,108.8,1 589,-1,1237.2,436.1,86.3,278.7,1 589,-1,997.8,433.8,86.8,240.4,1 589,-1,911.8,483.5,100,112.4,1 589,-1,664.4,454.9,40.7,103.9,1 589,-1,1091.9,412.5,103.3,288.6,1 589,-1,381.2,463.6,48.5,114.9,1 589,-1,797.3,475.6,54.7,61.7,1 589,-1,416.5,467.4,41.5,106.1,1 589,-1,556.2,459.3,29.3,85.1,0.999 589,-1,630.6,455.3,34.5,102.6,0.995 589,-1,586.9,456.6,34.9,85.4,0.968 189,-1,613.1,420.2,181.8,516.1,1 189,-1,405.9,469,53,106.3,1 189,-1,795.7,437.7,112.2,361.3,1 189,-1,567.1,455.1,59.1,158.2,1 189,-1,936.6,443.5,94.2,312.5,1 189,-1,370.2,445.1,45.3,106.2,1 189,-1,509.9,456,35.1,108.5,1 189,-1,1086.8,484,40.7,116.4,1 189,-1,1152.6,450,39.4,98.7,1 189,-1,459.5,470.4,40,107.8,0.999 189,-1,996.5,439.7,92.8,271.7,0.999 189,-1,580.7,433.2,23.3,40.2,0.674 189,-1,1102.9,444.4,34.1,97.8,0.648 189,-1,549.2,438.3,19.5,44.2,0.105 367,-1,836.5,471.8,54.4,79.1,1 367,-1,405.4,410.8,202.2,383.8,1 367,-1,1069.4,405.6,212.2,601.5,1 367,-1,375.6,462.2,49.3,116,1 367,-1,40,441,191.9,398.5,1 367,-1,937.9,423,141.1,524.1,1 367,-1,797,476.3,56.7,60.7,1 367,-1,1546.3,436.1,46.9,112.4,1 367,-1,628.9,458.5,27.9,72.2,1 367,-1,225.8,441.5,115.6,327.6,0.999 367,-1,592.2,460.1,21,56.9,0.934 367,-1,887.4,454,28,62.3,0.786 367,-1,579.2,461.2,23.2,58,0.356 367,-1,653,459.3,23.2,69.1,0.128 367,-1,867.4,457.5,33.1,75.4,0.094 88,-1,913.9,482.9,97,112.5,1 88,-1,835.7,472,52.9,77.9,1 88,-1,373.2,446.4,44.3,105.3,1 88,-1,1261.3,448,34.8,100.8,1 88,-1,1088.6,483.4,36.2,118.6,1 88,-1,547.9,441.9,109.9,336.4,1 88,-1,724.2,456.6,91.2,228.4,1 88,-1,1052.8,482,39.9,113,1 88,-1,1005.1,444,41.3,106,1 88,-1,461.9,468.2,41,99.4,1 88,-1,627.3,444.1,101.7,291.9,0.998 88,-1,427.4,458.4,36.8,87.7,0.998 88,-1,507.1,461.4,29.9,100.5,0.904 88,-1,522.6,467.8,40.6,135.2,0.067 416,-1,283.9,433.9,139.9,340.5,1 416,-1,1061.3,409.3,197,595.9,1 416,-1,675.5,402.5,130.7,333.7,1 416,-1,866.1,439.1,59.7,170.7,1 416,-1,442.1,450.2,158.3,323.3,1 416,-1,559.8,428.8,100.8,297.7,0.995 416,-1,908.7,480.4,101.8,115.7,0.972 416,-1,824,473.1,63.1,71,0.854 416,-1,796.8,476.1,53.4,60.8,0.69 416,-1,996.8,420,120.5,511.7,0.337 416,-1,378,461.7,51.6,135.1,0.086 164,-1,536.5,419.9,182,474.2,1 164,-1,400.6,466.6,61.9,105.7,1 164,-1,1182.3,447.9,40,100.3,1 164,-1,751.2,435.2,112.9,343.4,1 164,-1,1088.2,483.3,39.9,117.6,1 164,-1,1000.1,441.2,37.5,106.7,1 164,-1,372.3,446.9,43.4,104,1 164,-1,470.2,465.4,34.1,108.4,1 164,-1,1051.7,482.1,40,112.6,1 164,-1,851.7,447.5,103.2,289.6,0.999 164,-1,1141,453.4,30.4,90.2,0.983 164,-1,908.7,444.2,85.3,263.6,0.977 164,-1,506,452.5,24.6,92,0.4 576,-1,836.8,472.5,52.6,76.7,1 576,-1,720.9,446.8,41.9,107.2,1 576,-1,1035.3,415.3,114.5,286.8,1 576,-1,381.9,465.5,48.4,112.6,1 576,-1,1164.3,439.4,121.8,273.8,1 576,-1,797.5,476.9,55.6,59.9,1 576,-1,1667,387.4,254,693.6,1 576,-1,962.4,430.6,108,247.1,1 576,-1,416.8,470.4,41.9,102.2,1 576,-1,554.3,460.4,30.3,82.4,0.999 576,-1,666.3,453,36.9,104,0.998 576,-1,637.4,452.5,37.1,107.4,0.997 576,-1,580,460.4,44.6,83.2,0.983 513,-1,723.1,433.1,115.7,271,1 513,-1,382,463.7,51.9,116,1 513,-1,835,471.6,53.4,78.4,1 513,-1,1540.7,379.8,319.2,701.2,1 513,-1,907.3,444,142.8,285.5,1 513,-1,572.3,456,33.5,83.3,1 513,-1,1178.2,448.7,35.9,88.6,1 513,-1,1035.7,437.2,99.1,242.5,1 513,-1,640.6,456.1,34.6,88.4,1 513,-1,1333.4,408.8,225.7,666.8,1 513,-1,693.3,448.8,42.4,128.9,0.999 513,-1,538.8,461.4,29.3,75.1,0.993 513,-1,460.7,460.5,25,72.2,0.979 513,-1,410.1,471,49.7,97.9,0.302 513,-1,1777,401.1,144,503.7,0.098 595,-1,836,472.6,53.4,77.3,1 595,-1,914.3,483.3,96.4,112.3,1 595,-1,722.6,446.7,44.8,110.1,1 595,-1,1245.4,442.6,109.6,278.4,1 595,-1,1098.9,416,102,285.5,1 595,-1,664.2,456.1,39.2,104.2,1 595,-1,796.9,475.7,55.8,62.3,1 595,-1,381.7,462,47.5,116.1,1 595,-1,1026.2,432.8,83.1,238.8,1 595,-1,554.7,459.9,31.1,84.6,1 595,-1,416.6,467.2,41.6,105.8,1 595,-1,629.4,454.5,34.6,101.7,0.997 595,-1,992.5,450.3,34.8,103.7,0.973 595,-1,582.2,456.6,32.9,83.7,0.932 595,-1,649.7,455,27.8,102.5,0.543 237,-1,791.9,411.9,249.8,592,1 237,-1,619.8,448.4,67.7,185.5,1 237,-1,369.5,447,44.7,106.7,1 237,-1,420.6,463.8,40.3,110.8,1 237,-1,1143.1,440.5,139.3,357.3,1 237,-1,512.9,453.1,34.5,111.5,1 237,-1,1085.6,481.9,43.5,117,1 237,-1,590.3,460.7,24.4,61.7,0.987 237,-1,1046.9,484.7,42.1,108.4,0.984 237,-1,472.5,455.1,32.2,106.5,0.982 237,-1,545.8,458,26.2,66.2,0.916 237,-1,444.1,458.1,47.1,106.1,0.673 237,-1,1122.7,465.7,34,81.8,0.649 381,-1,836.2,472.6,54.3,76.1,1 381,-1,1079.2,395.9,212.7,618.9,1 381,-1,534.6,408.3,134.7,356.7,1 381,-1,166.9,448.9,210.9,368.2,1 381,-1,795.8,476.6,56.7,60.7,1 381,-1,471.4,454,39.5,110.4,1 381,-1,1,438,179.9,381.5,1 381,-1,970.6,426.9,132.7,515.1,1 381,-1,416,469.5,41,109.9,0.964 381,-1,298.9,434.2,140.7,315.5,0.199 486,-1,647,433,104.9,266,1 486,-1,1362.4,399.9,287.2,681.1,1 486,-1,1195.6,425.7,172.4,596.4,1 486,-1,566.2,453.5,36.2,82.7,1 486,-1,802.3,438.1,108.9,288.8,1 486,-1,1034.1,439.2,39.8,110.8,1 486,-1,890.9,432.1,123.4,253.7,0.999 486,-1,463.8,460.2,28.5,80,0.998 486,-1,1086.3,460.3,39.1,138.1,0.998 486,-1,741.2,443.3,45.3,130.6,0.997 486,-1,1567.6,412,180.8,421.9,0.996 486,-1,1111.9,438.4,40.1,149.2,0.996 486,-1,532.1,456.8,27.4,74.8,0.992 486,-1,625,462.1,27.7,77.7,0.683 486,-1,1176.2,456.8,23.7,85,0.055 338,-1,487.5,452.8,35.8,113.7,1 338,-1,836.4,472.6,53.7,79.1,1 338,-1,227,409.1,211.1,415.5,1 338,-1,1067.2,395.5,189,624,1 338,-1,1476.4,438.3,50.2,113.1,1 338,-1,900.8,420,149.7,532.1,1 338,-1,795.8,475.6,56.7,61,1 338,-1,414.3,472.3,42.2,107,1 338,-1,1,444,149.9,347.1,1 338,-1,658.9,463.8,26,72.4,0.999 338,-1,634.1,460.2,24.7,65.6,0.97 338,-1,559.8,461,20.1,58.8,0.959 338,-1,583.8,459.3,22.2,58.1,0.852 338,-1,525.9,455.9,34.9,67.2,0.36 387,-1,835.6,471.7,52.8,77.3,1 387,-1,1079,394.7,215.1,630.8,1 387,-1,547.2,413.3,147.3,354,1 387,-1,13.5,428.9,198.8,377.2,1 387,-1,261,449.4,123.9,353.4,1 387,-1,796.4,475.9,56.4,61.6,1 387,-1,359,438.4,150.4,304.9,0.999 387,-1,972.5,424.5,138.8,524.9,0.999 387,-1,470.1,455,38.8,104.3,0.996 387,-1,515.7,459.7,24.1,64.7,0.959 387,-1,941.5,437.1,63.1,196.8,0.214 131,-1,915.2,483.9,95.6,110.4,1 131,-1,571.1,442.2,144.8,397.2,1 131,-1,417.8,465.6,58.5,106.8,1 131,-1,794.5,451.1,94.3,261.3,1 131,-1,374.1,447.1,42.7,105.1,1 131,-1,1224.8,447.2,41.2,99.5,1 131,-1,1087.3,482.2,39.1,117.4,1 131,-1,1005,444.5,39.4,103.7,1 131,-1,1052.5,483.1,38.7,109.5,1 131,-1,493,467.9,36.3,106.5,1 131,-1,686.1,434.6,101.5,328.1,1 131,-1,529.2,456.5,31.7,73.3,0.992 463,-1,911.5,484,100.2,109.2,1 463,-1,682.2,440.6,117.2,294.4,1 463,-1,830.9,403.6,88.1,305.3,1 463,-1,1198.6,405.5,267.9,675.5,1 463,-1,995.7,446.6,36.4,100.8,0.999 463,-1,1051.8,441.7,38.4,108.1,0.999 463,-1,1082.2,483.1,45.9,113.1,0.999 463,-1,1405.7,428.4,165,367.3,0.999 463,-1,573.2,425.3,91.4,288,0.998 463,-1,237.6,341.5,371.4,739.5,0.997 463,-1,789.1,449.7,37.9,143.7,0.144 463,-1,528.8,454.9,32.6,98.9,0.136 463,-1,674.1,473.5,31.4,89,0.135 463,-1,1132.8,423.2,136.4,521.2,0.064 317,-1,492.6,454.3,47.6,111.1,1 317,-1,11.8,403,241.4,457.5,1 317,-1,1036.2,408.8,206.6,605.1,1 317,-1,1260,424.6,88.7,264.3,1 317,-1,1421.7,438.3,48.7,112.2,1 317,-1,410.5,468.2,46.4,106.5,1 317,-1,897.6,422.6,140.5,526.3,1 317,-1,658.5,463.3,26,72.4,1 317,-1,381.6,464.2,44.1,112.3,1 317,-1,812.4,441.9,76.5,216.4,0.999 317,-1,1740.8,419.9,180.2,511.8,0.999 317,-1,578.5,460.5,22.9,56.8,0.981 317,-1,1201.9,448.6,36.1,95.7,0.969 317,-1,627.4,459.5,25,59.9,0.959 317,-1,550.8,460.6,23.2,58.2,0.946 317,-1,598.7,457.7,37.5,59.5,0.458 315,-1,1030.8,406.2,212.4,615.3,1 315,-1,492.6,454.8,49.1,109.9,1 315,-1,1272,427.6,87.1,265,1 315,-1,1414.5,440.4,50.1,111.3,1 315,-1,9.1,401.8,192.5,459.8,1 315,-1,409.1,467.9,47.8,106.8,1 315,-1,1696.4,416,224.6,527.6,1 315,-1,898.3,425.6,139.3,522.7,1 315,-1,808.3,440.4,71,216.5,1 315,-1,657.8,462.1,25.9,73.3,1 315,-1,381.4,464.2,44.3,112.4,0.999 315,-1,1196.8,448.5,38.5,97.8,0.994 315,-1,579.5,460.2,23,56.7,0.984 315,-1,549,461,23.5,58.2,0.955 315,-1,626.5,459.9,23.9,58.3,0.947 315,-1,590.2,459.6,34.3,57.3,0.072 430,-1,914.1,484.4,93.9,108.6,1 430,-1,1057.6,398.1,206.7,660.7,1 430,-1,731,412.6,117.5,317.7,1 430,-1,386.6,435.2,110.7,318.7,1 430,-1,536.4,439.7,118.2,318.4,1 430,-1,833.8,437.9,56.5,163.7,1 430,-1,629.3,428.9,122.2,295,0.999 430,-1,491.8,466.9,24.4,70.2,0.389 430,-1,1584.6,309.5,336.4,771.5,0.341 430,-1,518.9,467.4,24.3,64.5,0.253 393,-1,836.4,471,53.1,78.5,1 393,-1,75.7,430.5,170.9,362,1 393,-1,579.1,407.4,125.7,348.5,1 393,-1,1069.3,419.9,231.7,591.6,1 393,-1,796.5,475.9,56.3,61.6,1 393,-1,975.1,424.6,132.2,511.4,0.998 393,-1,926.6,437.1,63.5,181.1,0.998 393,-1,301.8,444,140.1,353.8,0.998 393,-1,377.3,434,183.2,314.6,0.984 393,-1,532.4,458.9,22.7,63.9,0.968 393,-1,554.1,458.9,23.1,64.3,0.753 320,-1,492.5,454,46.7,111.1,1 320,-1,21.8,404.6,275.1,450.5,1 320,-1,1432.2,439.6,48.4,112,1 320,-1,1045.2,411.5,203.1,605,1 320,-1,409.7,468,47.3,106.3,1 320,-1,897,422.8,142.3,523.5,1 320,-1,658.7,463.2,25.9,72,1 320,-1,381.6,464.4,44.8,112.3,1 320,-1,818.2,439.2,78.7,220.8,1 320,-1,1226.7,432.4,110.1,256.3,0.999 320,-1,1702.2,408.4,167.3,452.1,0.998 320,-1,579.9,459.9,22.8,57,0.978 320,-1,627.9,458.7,25.4,60.5,0.963 320,-1,552.8,460,22.8,58.1,0.941 320,-1,1211.4,449.1,35.5,100.5,0.79 320,-1,602.4,456.1,39.9,61.3,0.774 320,-1,1803.5,412.2,117.5,493.7,0.08 313,-1,1272.4,432.7,111.6,262.9,1 313,-1,494.6,456.3,47.3,108.8,1 313,-1,1024.1,405.6,212.7,618.3,1 313,-1,1683,430,238,493.3,1 313,-1,410.3,467.5,47.4,106.2,1 313,-1,899.2,426.1,134.8,523.6,1 313,-1,1407,437.5,55.4,117.1,1 313,-1,657.9,462.5,25.6,73.7,1 313,-1,802.6,443.7,66.2,208.8,1 313,-1,3.9,403.3,158.9,465.9,1 313,-1,381.1,464.6,44.4,112.6,1 313,-1,1197,447.8,36.9,97.6,1 313,-1,579.5,460.8,23.3,56.8,0.99 313,-1,553.8,461.6,22.9,57.9,0.946 313,-1,620.8,459.4,24.4,57.8,0.94 313,-1,540.7,461.3,24.1,61.3,0.915 24,-1,914.8,483.5,95.2,111.9,1 24,-1,837.1,472.3,53,77.8,1 24,-1,1478.1,409.5,242.2,424.4,1 24,-1,1414.7,430.8,68.9,132.5,1 24,-1,457.6,444.4,121.2,293.4,1 24,-1,375.3,446.4,43.3,106,1 24,-1,591.6,445.5,93.1,270.2,1 24,-1,1256.6,448.8,34.9,100.1,1 24,-1,1012.2,435,43.7,120.5,1 24,-1,1090.7,482.8,33.8,117.5,1 24,-1,795.6,475.7,56.7,60.8,1 24,-1,418.5,457.3,43,86.3,1 24,-1,1053.8,485.1,38.6,109.7,0.999 24,-1,1098.9,439.1,40.1,110.3,0.999 409,-1,214.7,431.9,150.2,345.5,1 409,-1,642.8,410.8,155.4,338,1 409,-1,879.9,440.7,62,175,1 409,-1,1075.2,408.6,193.2,592.6,1 409,-1,833.5,471.7,56.7,79.5,1 409,-1,793.9,476.2,61.1,59.1,1 409,-1,419.2,443.5,116.8,321.6,0.999 409,-1,377.4,465,54,110.7,0.999 409,-1,502.1,429.8,144.4,296.6,0.999 409,-1,983.4,426.6,135.7,514.7,0.997 409,-1,626.5,452.1,25.8,80.8,0.058 156,-1,540.7,430,158.8,460,1 156,-1,1192.8,447.9,40.3,100,1 156,-1,399.4,467.9,62.5,106.1,1 156,-1,1088.3,481.6,38.7,118,1 156,-1,726.3,436.1,118,338.8,1 156,-1,1001.4,443.1,38.3,103,1 156,-1,837.4,443.9,84.4,292.1,1 156,-1,371.2,446.7,45.4,104.9,1 156,-1,1052.2,482.9,41.5,112.9,1 156,-1,470.9,465.2,38.6,115.1,1 156,-1,1128.7,454.5,32.9,92.8,0.997 156,-1,898.1,440.5,74.9,240.4,0.995 156,-1,500.4,456.1,27.4,92.1,0.185 156,-1,516,454.8,26.3,83,0.081 423,-1,846.9,436.3,56.7,169.4,1 423,-1,479.2,442.7,129,319.9,1 423,-1,305,439,179.2,327.7,1 423,-1,912,484.2,101.6,110.5,1 423,-1,713.7,402.8,116,329.1,1 423,-1,1056,410.7,189.7,630,1 423,-1,603.9,438,133,282.2,1 423,-1,448.7,457.4,37,116.2,0.272 331,-1,1059.7,399.7,187.3,612.1,1 331,-1,898.1,421.7,146.5,527.2,1 331,-1,1457.2,442,47.4,107.6,1 331,-1,489.4,453.2,41.4,111.1,1 331,-1,797.7,476.3,58.9,61.7,1 331,-1,410.7,469.6,46.1,104.5,1 331,-1,658.5,463.4,26.9,73.6,1 331,-1,380,462.6,45.3,114.7,1 331,-1,173.7,403.8,164.8,429.9,1 331,-1,840.2,473.5,52.2,79.6,0.997 331,-1,1771.2,398.8,149.8,469.5,0.993 331,-1,562.7,459.9,21.4,60,0.955 331,-1,635.2,461.1,25.4,65.4,0.947 331,-1,584.2,459.1,21.9,59.6,0.907 331,-1,609,457.6,40.8,64.9,0.895 297,-1,1543.5,429.8,215,459.2,1 297,-1,761.1,443.8,64.9,205.4,1 297,-1,508.1,455.3,35.8,109.1,1 297,-1,1162.2,442.9,50.5,112.4,1 297,-1,1006.6,407.2,155.5,618.8,1 297,-1,1388.3,429.2,138.3,285.4,1 297,-1,859.2,426.6,174.4,506.8,1 297,-1,412.1,469,47.5,105,1 297,-1,381.9,461.9,43.7,113.4,1 297,-1,659.5,460.7,25.7,73.7,0.999 297,-1,831.4,479,57.7,66.6,0.998 297,-1,577.9,461.2,26.3,59.8,0.988 297,-1,553.3,460.5,26.3,62.8,0.902 297,-1,594,459.6,24.1,57.5,0.868 535,-1,662.6,450.6,42.1,119.9,1 535,-1,1458.8,421.2,214.4,659.8,1 535,-1,806.1,428.1,123.1,266.2,1 535,-1,1014.2,446.6,115,274.3,1 535,-1,574.7,455.2,36,85.7,1 535,-1,381.3,462.7,50.6,115.8,1 535,-1,717.3,452.7,31.6,94,1 535,-1,916.5,410.6,104.6,301.3,1 535,-1,414.5,467.2,46.5,103.7,0.999 535,-1,1695.5,368.1,225.5,712.9,0.998 535,-1,544.7,462,28.7,76.2,0.988 535,-1,1099.6,438.4,85.8,238.2,0.986 535,-1,1173.1,443,40,98.2,0.917 535,-1,459.1,461.5,28.6,70.8,0.632 535,-1,567.3,433.4,20.4,36.6,0.05 477,-1,752,439.8,103.9,297.4,1 477,-1,622.7,438.7,87.1,268.3,1 477,-1,1344.3,389.2,217,691.8,1 477,-1,1161.8,414.4,161,591.2,1 477,-1,1039.2,437.3,41.1,107.1,1 477,-1,839.1,415.7,85.6,296.2,1 477,-1,991.3,447.8,37,98.2,1 477,-1,564.7,453.7,33.8,81.5,0.999 477,-1,1085.3,469.8,40.7,130,0.998 477,-1,528.9,458.3,30.6,73.8,0.996 477,-1,1112.1,434.9,41.2,149.6,0.996 477,-1,1506.6,406.6,182.3,417.2,0.992 477,-1,915.2,452.8,67.5,228.3,0.783 477,-1,715.6,463.7,22.4,71.3,0.646 273,-1,511.4,455.2,35,111.3,1 273,-1,1367.3,440.8,198.7,408.2,1 273,-1,692.6,447.1,65.3,195.4,1 273,-1,393.4,465.3,41.4,113.1,1 273,-1,822.9,431.9,141.3,485.2,1 273,-1,957.5,402.6,166,649.2,1 273,-1,1620.8,408.3,108.8,342.7,1 273,-1,459.4,458.8,31.6,107.5,0.996 273,-1,654.8,463.9,28.3,70.7,0.992 273,-1,584.6,459.4,23.2,61.3,0.988 273,-1,638.5,461.6,26.4,63.3,0.959 273,-1,558.2,460.4,23.3,61.3,0.93 218,-1,716.8,417,186.2,573.3,1 218,-1,597.2,454.9,56.3,169.9,1 218,-1,1035.1,448.7,155.8,333.7,1 218,-1,514.1,454.4,34.6,110.9,1 218,-1,885.7,431.5,129.5,392.5,1 218,-1,371,447.4,44.9,103.9,1 218,-1,441.7,468.6,42.6,106.9,0.999 218,-1,413.5,467,49.8,105.6,0.998 218,-1,1206.1,450,41.2,101.5,0.991 218,-1,657.6,464.9,25.4,71.4,0.988 218,-1,552.1,455.5,24.4,65.6,0.946 218,-1,546.5,442.2,20.7,52,0.462 218,-1,592.7,421.2,18.1,35.7,0.072 41,-1,913.6,484.2,96.1,110.9,1 41,-1,834.9,472.8,54.6,77.1,1 41,-1,1640.1,402.4,266.7,479.1,1 41,-1,1457.4,426.7,68.1,131.8,1 41,-1,482.5,446.6,110.5,295,1 41,-1,374.9,446.3,43.3,105.9,1 41,-1,1258.4,446.9,35.4,102.7,1 41,-1,1009,439.9,43.3,117.1,1 41,-1,614.8,442.9,87.5,275.7,1 41,-1,418.1,457.8,42.6,86.6,1 41,-1,1054.2,484.8,39.7,110.1,1 41,-1,796,475.8,56.4,61.6,1 41,-1,1091.2,481.2,33.2,117.6,1 41,-1,1097.2,436.9,41.2,113.9,1 41,-1,584.3,465.8,32.9,131.4,0.061 262,-1,663.1,451.6,68.3,190.5,1 262,-1,405.7,464,42.1,112.8,1 262,-1,938.1,410,171.3,636,1 262,-1,1690.6,398.3,226.4,379.6,1 262,-1,1299.7,442.9,146,380.7,1 262,-1,512.4,454.1,33.6,109.9,1 262,-1,818.3,430.6,130.7,490.5,1 262,-1,369.3,446.7,46.1,107.6,1 262,-1,592,460.9,23.8,62.7,0.996 262,-1,470.8,459.2,28.2,103.8,0.992 262,-1,777.8,453.3,25.9,73.4,0.986 262,-1,558,462.8,22.9,60.2,0.925 262,-1,607.6,461.4,24,60.8,0.925 262,-1,763.2,453,24.5,73.4,0.193 262,-1,1109.6,450.1,45.7,99.3,0.082 72,-1,912.7,482.6,97.9,111.8,1 72,-1,836.3,471.9,53.6,77.8,1 72,-1,374,447.1,43.8,105.5,1 72,-1,419.6,457,41.3,85.6,1 72,-1,1260.9,447,35.2,101.1,1 72,-1,510,439.5,129.5,326.5,1 72,-1,1548,427.8,53.7,131.4,1 72,-1,1004.3,443.3,41.4,111.5,1 72,-1,1087.9,484.1,35.7,116.7,1 72,-1,613.2,438.5,100.6,294.8,1 72,-1,1052.1,480.9,40.7,115.2,1 72,-1,700.6,456.4,76.8,220.4,1 72,-1,475.4,467.4,33.9,106.8,0.999 72,-1,794.7,476,57.4,61.9,0.999 72,-1,1098,439.3,37.7,115.3,0.994 35,-1,912.9,483.5,97.8,112,1 35,-1,836.3,471.9,54,79.3,1 35,-1,475.8,445.6,114.7,297.9,1 35,-1,1620.3,393.5,222.8,473.3,1 35,-1,375.3,446.5,42.3,106,1 35,-1,1451.9,430.5,64.2,130.4,1 35,-1,604.6,443.1,90.4,275.4,1 35,-1,418.7,457.7,42,87.7,1 35,-1,1257.1,448.6,35.3,100.7,1 35,-1,1089.8,484.2,34.4,116.9,1 35,-1,795.5,476,57.8,61.8,1 35,-1,1009,441.4,42.3,118.5,1 35,-1,1054.5,484.7,39.3,110.7,1 35,-1,1097.7,439.8,39.7,108.9,0.999 303,-1,773.1,446,72.3,210.7,1 303,-1,504.9,454.6,38.1,109.6,1 303,-1,1639.7,423.9,156.4,476.3,1 303,-1,1015.1,412.2,170.7,614.4,1 303,-1,1356.7,422,96.1,286.4,1 303,-1,410.3,468.5,48.6,105.7,1 303,-1,1174.4,445.5,45.8,108.7,1 303,-1,835.1,474.4,53.1,76.5,1 303,-1,658.5,462,26,74.4,1 303,-1,893,436.1,144.1,501.1,1 303,-1,382.8,464.2,44.3,111.3,1 303,-1,575.8,461.1,26.5,60.7,0.977 303,-1,610.4,459.2,24.5,57.6,0.911 303,-1,554.8,460.8,25.6,62.4,0.902 303,-1,620.7,458.7,40.6,63.1,0.074 587,-1,836,472.3,53,77.9,1 587,-1,722.6,447.4,43.7,107.7,1 587,-1,985.6,436.4,96.9,240.3,1 587,-1,1231.3,438.4,87.2,275.2,1 587,-1,664.9,455.4,40.4,101.6,1 587,-1,1091.8,411.6,93.4,292.4,1 587,-1,797.5,475.9,54.7,61.3,1 587,-1,910.7,484.7,100,109.9,1 587,-1,381.8,465.6,48.4,112,1 587,-1,416.1,467.7,41.7,104.8,1 587,-1,557,459.9,28.2,84.3,0.999 587,-1,630.9,454.9,35.9,103,0.997 587,-1,585.7,457.8,34.8,86.2,0.967 587,-1,1713,379.6,208,701.4,0.885 346,-1,836.1,472.4,53.1,77.1,1 346,-1,1065.6,397,196.9,606.4,1 346,-1,907,421.1,144.7,526.9,1 346,-1,485.1,452.6,35.3,114.3,1 346,-1,272.4,403.6,191.9,418.4,1 346,-1,796.1,475.1,56.5,63.4,1 346,-1,1501.2,437,46.4,112.7,1 346,-1,658.7,462.7,26.8,74.9,1 346,-1,34.6,439.2,139.6,344.7,1 346,-1,639.2,462.1,24.7,65.5,0.946 346,-1,583.6,458.9,22.1,59,0.926 346,-1,559.8,460.2,19.1,58.9,0.9 346,-1,609.5,457.9,42.1,64.4,0.855 448,-1,493.8,435.5,98.7,291.8,1 448,-1,623.2,439.2,89.6,310.6,1 448,-1,1130.3,406.6,259.2,660.1,1 448,-1,376,463.2,54.5,115.1,1 448,-1,738.3,317.5,392.5,763.5,0.999 448,-1,413.4,470.3,46.5,102.9,0.997 448,-1,718.9,456,33.7,87.8,0.982 448,-1,471.1,461.8,27.3,72.4,0.82 448,-1,580.3,465.4,23.6,67.9,0.083 358,-1,835.9,471.3,53.7,78.8,1 358,-1,1072.6,404.8,200.6,599,1 358,-1,394.6,409.7,160.8,392.4,1 358,-1,918.6,420.2,143.4,520.1,1 358,-1,1530,438.2,45.1,111.6,1 358,-1,1,445.6,202.1,407.4,1 358,-1,797.6,475.3,56,62.6,1 358,-1,660.3,464.2,27.2,73.8,0.996 358,-1,632.6,459.4,27,71.3,0.992 358,-1,116.4,442,182,335.7,0.977 358,-1,558.6,460.3,20.1,57.7,0.965 358,-1,648.3,460.4,23.1,71.9,0.943 358,-1,875.6,454.7,30.6,70.1,0.867 358,-1,573.9,459.6,23.2,58.3,0.86 358,-1,519.2,457.4,23.7,68.5,0.715 358,-1,502,457.6,27.4,90.9,0.076 358,-1,1058.9,433.9,46.6,227.3,0.05 339,-1,487,452.9,34.8,113.8,1 339,-1,835.3,472,54.6,79.1,1 339,-1,234.4,414.2,208.5,414.7,1 339,-1,1062,418.7,196,589.4,1 339,-1,1479.7,439.6,51.5,111.4,1 339,-1,904.7,423.7,144.6,524.8,1 339,-1,796.2,474.7,56.1,62.5,1 339,-1,415.4,473,41.1,106.9,1 339,-1,659.5,463.7,25.8,72.3,0.999 339,-1,2.1,459.7,144.8,326.1,0.999 339,-1,632.4,460.1,24.8,65.7,0.975 339,-1,559.2,460.9,20,58.9,0.954 339,-1,572.7,460.3,23.2,58.3,0.848 339,-1,531.1,457.3,35,64.8,0.313 98,-1,913.7,482.7,97.4,112.4,1 98,-1,836,472.2,52.7,77.5,1 98,-1,373.1,446.1,44.3,105.8,1 98,-1,1257.8,445.8,38.3,103.1,1 98,-1,749.1,453.6,82,230,1 98,-1,454.6,467.5,43.8,105.9,1 98,-1,1088.6,485.7,36.2,115.7,1 98,-1,548.8,443.4,120.5,356.3,1 98,-1,1004.5,444,41.3,106,1 98,-1,1052.2,481.6,40.4,111.8,1 98,-1,642,440,100.3,303.6,1 402,-1,836.5,473.5,53,75.3,1 402,-1,134.5,437.3,214.1,360.2,1 402,-1,1080.9,415.7,209.5,609.1,1 402,-1,631.7,406.2,139.7,344.4,1 402,-1,796.5,476.3,56.8,62.2,1 402,-1,902.6,435.4,57.9,176.2,1 402,-1,349.3,443,138,350.9,1 402,-1,477.1,435.6,105,293.3,1 402,-1,977.8,422.1,133.5,514,0.999 402,-1,580.6,469.9,22.9,58,0.276 499,-1,845.3,437.4,128.4,292.8,1 499,-1,682.5,432.9,94.1,274.1,1 499,-1,381.5,463.4,53.4,117.8,1 499,-1,967,434.5,115.2,246.7,1 499,-1,1452.5,377.4,252,703.6,1 499,-1,1081.3,445.1,56.8,154.9,1 499,-1,1221.7,435.7,225.3,579.7,1 499,-1,570.6,456,33,82.8,1 499,-1,1177.9,448.6,37.2,87,1 499,-1,635.4,454,33.4,88.5,1 499,-1,796.9,477.2,57.7,59.6,1 499,-1,1661.7,415.8,196,469.5,0.999 499,-1,536.4,459.9,29.4,74.8,0.994 499,-1,460.5,459.5,25.2,76.2,0.99 86,-1,913.7,482.6,96.8,112.4,1 86,-1,837.2,470.9,52.2,80.2,1 86,-1,373.5,446.6,44.7,105.2,1 86,-1,1261.5,447.1,35.2,100.7,1 86,-1,1088.6,483,36.7,119.3,1 86,-1,720.2,456.8,92.7,225.6,1 86,-1,542.7,446,109.8,330.7,1 86,-1,1004.8,444,41.5,107.9,1 86,-1,625.5,442,100.2,296.5,1 86,-1,1054.1,480.6,39.5,112.7,0.999 86,-1,466.4,467.8,38.1,99.8,0.999 86,-1,425.4,458.6,38.8,87.4,0.998 86,-1,510.2,462.3,29.7,99.6,0.922 86,-1,491.4,462.3,30.2,96.8,0.799 285,-1,840.4,418.7,162.9,510.5,1 285,-1,1479.3,436.5,166.1,421.2,1 285,-1,510.5,456.1,34,108.9,1 285,-1,989.4,401.7,153.8,648.8,1 285,-1,385.8,465.1,44.9,111.7,1 285,-1,717.7,447.9,90.1,200.8,1 285,-1,1345.3,442.5,42.2,108.2,1 285,-1,659.9,462,25.8,74.9,1 285,-1,449.2,459.7,32.3,104.7,0.995 285,-1,579.2,461.4,25.9,61.8,0.976 285,-1,564.4,461.2,25.7,61.2,0.881 285,-1,595.2,459.7,25.8,58.6,0.793 285,-1,545.3,459.3,26.6,71.4,0.771 285,-1,431.3,466.3,26.6,102.9,0.506 76,-1,913.5,483.7,96.8,111.1,1 76,-1,835.5,472.1,53.5,76.7,1 76,-1,375,447.2,43.2,104.9,1 76,-1,1260.4,447.4,35.5,100.4,1 76,-1,1087.7,486.3,36.8,115.4,1 76,-1,1004.5,442.4,41.8,111.2,1 76,-1,419.1,457.1,41.8,85.3,1 76,-1,525.6,444.7,121.1,323.4,1 76,-1,704.2,455.5,80.2,224.6,1 76,-1,472.5,466.3,33.1,101.8,0.999 76,-1,1053.4,481.2,40.3,113.6,0.999 76,-1,610.8,439.9,98.7,295.5,0.999 76,-1,795.9,476.1,55.2,60.2,0.986 76,-1,1097.5,443,40.3,104,0.763 234,-1,772.8,414.6,262.4,593.5,1 234,-1,371,447.3,44.3,107.2,1 234,-1,616.5,446.4,60.6,185,1 234,-1,421.9,464.9,42.7,110.8,1 234,-1,1126,439.7,153.5,358.7,1 234,-1,514.1,454.8,34.3,110.7,1 234,-1,1086,484,41.5,113.5,1 234,-1,1048.3,483.8,41.3,110.3,0.996 234,-1,466.8,455,30.9,105.8,0.936 234,-1,549,458.7,24.5,63.1,0.919 234,-1,493.9,454.4,26.6,107,0.441 234,-1,600.5,465.1,32.4,75.8,0.062 456,-1,914.6,482.7,96.4,111.9,1 456,-1,1163.1,406.5,272.7,674.5,1 456,-1,379.1,463.2,51,114.9,1 456,-1,817.3,407,89.7,307.2,1 456,-1,994.6,445.2,38.1,102.4,1 456,-1,452.1,379.7,404.7,701.3,0.999 456,-1,1382.3,419.8,120.9,361.6,0.996 456,-1,417,469.2,39.7,103.6,0.977 456,-1,1047.9,444.9,29.7,90.4,0.799 561,-1,836.4,473.1,54.5,77.2,1 561,-1,718.6,448.9,38.5,100.5,1 561,-1,1574.3,384.7,265.6,696.3,1 561,-1,1101.6,441.2,116.8,277.9,1 561,-1,905.4,429.7,95.9,251.9,1 561,-1,797.1,476.7,56,61.5,1 561,-1,1001.2,413.4,121.4,288.2,1 561,-1,415.6,466.8,46,104.2,1 561,-1,382.2,463.8,48.9,114.7,1 561,-1,644.4,454.4,36,111.1,1 561,-1,581,456.7,38.8,84.2,1 561,-1,547.7,461.1,30.1,80.2,0.998 561,-1,505,457.9,24.2,57.1,0.925 561,-1,519.2,458.6,23.2,56,0.907 561,-1,1202.6,444.4,46.6,112.3,0.62 180,-1,571.8,428.1,198,479.8,1 180,-1,407.3,469.5,50.8,104.9,1 180,-1,779,437.5,109.9,362.7,1 180,-1,1157.2,446.1,38.6,102.9,1 180,-1,1087.2,485,39.7,115.2,1 180,-1,370.1,445.1,45.8,106.9,1 180,-1,506.9,454.9,38.2,106.9,1 180,-1,900,444.7,107.8,300.3,1 180,-1,464.7,468.5,37.4,108.6,0.999 180,-1,960.5,440.2,116.3,262.6,0.998 180,-1,555.1,457.5,25,66.7,0.951 180,-1,1051.2,480.5,36,122,0.823 180,-1,536.4,451.5,27.7,89.6,0.524 180,-1,566.8,458.9,28.7,77.2,0.462 180,-1,580.3,434.1,21.5,42,0.268 100,-1,913,483.5,97.9,111.5,1 100,-1,834.9,472.7,54,77.1,1 100,-1,373.8,445.8,43.6,105.8,1 100,-1,1257.3,445.5,38.5,103.1,1 100,-1,452.1,467.1,44.4,106.5,1 100,-1,751.8,455.1,83,230.7,1 100,-1,1089.3,485.8,35.8,115.7,1 100,-1,549.2,446.7,121.5,360.2,1 100,-1,1004.6,443.9,40.9,107,1 100,-1,651.2,441.3,99.4,294.5,1 100,-1,1051.5,481.9,40.7,111.6,1 100,-1,511.8,465.2,29.1,103.7,0.114 356,-1,836.2,471.1,53.5,78.2,1 356,-1,1068.1,395.1,201.3,607.3,1 356,-1,384.1,404,143.6,403.3,1 356,-1,913.7,421.2,148.6,526.5,1 356,-1,1524.3,437.8,46.2,112.4,1 356,-1,797.2,474.6,55.9,63.5,1 356,-1,2.4,440.5,151.5,411.3,1 356,-1,660.6,461.7,27.3,75.6,0.998 356,-1,104.1,429.5,186.1,350.1,0.996 356,-1,632.5,459.4,27.1,70,0.986 356,-1,558,458.5,20.6,59.8,0.971 356,-1,586.5,458.5,22.5,58.1,0.895 356,-1,880.9,454.1,30.5,72.7,0.892 356,-1,521.8,457.6,23.2,65.8,0.785 356,-1,481.6,453.5,34.8,120.4,0.237 356,-1,501,457,25.7,94.2,0.061 484,-1,1362.7,383.9,282.9,697.1,1 484,-1,1035.7,440.8,39.1,107.6,1 484,-1,644.5,433.1,94.9,275.8,1 484,-1,1192.6,418,165.3,601.4,1 484,-1,795.2,438.2,101.6,292.1,1 484,-1,566.9,453.7,34.1,81.4,1 484,-1,742.5,445.5,47.3,135.4,1 484,-1,1086.1,469.6,38.6,131,0.999 484,-1,881.2,430.9,128.1,256.2,0.998 484,-1,1111,440.4,41.5,145.9,0.995 484,-1,463.1,459.9,29.3,79.7,0.994 484,-1,533.4,457.8,28.2,73.4,0.99 484,-1,1540,407.9,204.7,428.4,0.986 484,-1,999.5,450.8,27.1,94.7,0.39 484,-1,620.5,463.5,28.6,81.4,0.098 484,-1,1165.7,454,23.9,84.2,0.057 27,-1,914.5,483.2,95.5,112.5,1 27,-1,836,473.1,53.9,76.3,1 27,-1,1420.7,429.4,70,132.7,1 27,-1,375.6,446.2,42.7,107.2,1 27,-1,1520.6,403.2,201.9,430.2,1 27,-1,463.9,445.4,118.8,293.9,1 27,-1,595.2,443,89.8,272.2,1 27,-1,796,475.6,56.2,62.2,1 27,-1,418.2,457.4,42.5,89.8,1 27,-1,1256.6,448.6,34.6,99.7,1 27,-1,1053.7,484.2,39.5,110.8,1 27,-1,1091.7,478.8,33,119.9,1 27,-1,1012,438.8,42.1,114.1,1 27,-1,1098.4,440,40.3,109.6,1 27,-1,1647.4,421.3,138.2,384.2,0.121 105,-1,913.8,482.2,96.2,113,1 105,-1,374.2,446.2,42.8,106.2,1 105,-1,834.7,473,54.7,75.4,1 105,-1,1252.3,447.1,38.7,99.6,1 105,-1,447.7,467.1,45.8,106.2,1 105,-1,1088.8,482.3,36.5,119.4,1 105,-1,552.7,441.8,124,362.2,1 105,-1,758.5,456.3,84.9,239.1,1 105,-1,1004.4,443.3,40.8,106.3,1 105,-1,1052,482.1,40.1,111.2,1 105,-1,658.4,439.1,100.3,301.4,1 105,-1,505.3,464.6,34.3,102.8,0.999 488,-1,644.8,432.8,121.7,273.3,1 488,-1,805.8,441,122.2,289.6,1 488,-1,1368.2,389.5,287.3,691.5,1 488,-1,1199.6,424,190.8,600.6,1 488,-1,568.3,455.4,34.5,81.1,1 488,-1,1031.6,440.5,39.8,112.5,1 488,-1,907.6,433.6,113.6,252.1,1 488,-1,1590.3,411.2,168.7,424.9,0.999 488,-1,460,461.5,28.8,77.5,0.999 488,-1,1086.4,458.9,39.4,139.5,0.998 488,-1,1111.1,437.9,39.3,149.3,0.997 488,-1,532.8,456.8,27.3,76.6,0.995 488,-1,1183.5,451.8,34,90.4,0.99 488,-1,627.3,460.6,27.2,74.2,0.675 184,-1,591.7,424.5,194.1,490.8,1 184,-1,406.5,469.6,52.2,103.8,1 184,-1,785.4,434.7,110.9,362.8,1 184,-1,1153.9,449.3,38.5,100.9,1 184,-1,370.4,445.2,45.7,106.7,1 184,-1,506.6,453.9,37.9,109.5,1 184,-1,1086.7,485.6,39.9,113.3,1 184,-1,974.5,432.4,103.3,275.2,1 184,-1,917.6,441.8,97.4,310.8,0.999 184,-1,461.2,467.1,37.7,110.1,0.998 184,-1,580.7,434.5,22.7,41,0.435 184,-1,544.9,457.4,40,87.3,0.245 184,-1,572.4,456.5,44,127.1,0.132 364,-1,836.2,471.8,53.7,78.3,1 364,-1,1072.2,414.1,211.9,608.4,1 364,-1,404.6,412.8,198.1,384.5,1 364,-1,1.8,444.4,229.9,405.7,1 364,-1,928.7,418,143.6,526.1,1 364,-1,796.6,475.7,56.6,61.9,1 364,-1,1542.4,435.9,46.5,113.6,1 364,-1,627.4,458.5,28.7,73.9,1 364,-1,197.9,438.7,119.3,330.2,0.998 364,-1,888,452.2,27.4,65.9,0.852 364,-1,595.1,460,20.6,55.4,0.846 364,-1,562.8,461,17.4,59.3,0.788 364,-1,657.5,462.1,24,69.5,0.31 211,-1,698.5,425.6,164,556,1 211,-1,587.2,454.8,58.9,166.6,1 211,-1,1014.2,442,161.5,327.8,1 211,-1,513.4,455.7,34,109,1 211,-1,1195.2,451.9,37.4,97.3,1 211,-1,849.3,433.4,146.8,389.5,1 211,-1,370.5,446.6,45,105.1,1 211,-1,407.3,467.7,49.7,106.9,1 211,-1,445.3,468.3,41.6,105.8,0.999 211,-1,656.6,462.8,26.1,74.6,0.991 211,-1,561.8,457.9,23.7,61,0.954 211,-1,594.7,421.3,20.4,39.2,0.567 211,-1,639.6,457,30,86.7,0.528 211,-1,580.1,431.9,19.7,37.3,0.425 16,-1,914,483.4,97,111.5,1 16,-1,836.6,471.9,52.9,77.6,1 16,-1,446,445.2,122.1,284.9,1 16,-1,375.4,446,42.7,105.9,1 16,-1,1401.5,440.2,57.9,125.6,1 16,-1,1453.9,408.7,179.7,400.6,1 16,-1,587.4,441.7,88.7,273.2,1 16,-1,1257.5,447,34.3,101.3,1 16,-1,1013,434.4,43.1,117.4,1 16,-1,795.3,475.5,56.2,61.5,1 16,-1,1090.3,483.7,34.1,116.9,1 16,-1,1100.6,437.8,40.1,108.5,1 16,-1,1056.6,486.9,35.9,107,0.999 16,-1,417,459.1,41.2,84.6,0.992 16,-1,1563.7,419.8,155.5,384,0.699 16,-1,662,465.9,51.9,176.9,0.074 110,-1,913.7,483,97.1,112.4,1 110,-1,373.8,446.3,43.1,106.4,1 110,-1,1249.3,448.5,39.4,99.2,1 110,-1,443.9,468.6,45,100.1,1 110,-1,834.8,471.9,54.3,77.7,1 110,-1,1088.9,483.3,36.1,119.2,1 110,-1,556.5,443.9,130.1,365.4,1 110,-1,763.6,453.2,83.1,244.3,1 110,-1,666.4,443,97.7,292.6,1 110,-1,504.4,465.5,34.6,102.9,1 110,-1,1051.3,482.8,40.9,110.1,1 110,-1,1004.9,443.6,40.5,105.2,1 75,-1,913.2,483.6,97.6,111.4,1 75,-1,835.8,472.4,53.8,76.7,1 75,-1,374.9,447.4,42.8,104.5,1 75,-1,1260.3,447.4,35.6,100.5,1 75,-1,1087.6,486.8,36.6,115.1,1 75,-1,517.6,442.3,125.3,330.8,1 75,-1,419.3,457.2,41.8,84.6,1 75,-1,1005.5,442.4,41.1,110.7,1 75,-1,703.1,454.3,78.5,226.3,1 75,-1,473.3,466.6,32.7,104.1,0.999 75,-1,1053.7,480.4,40,114.1,0.999 75,-1,610.3,440.1,98.9,293.7,0.999 75,-1,795.5,475.8,56.4,61.4,0.997 75,-1,1097.7,441.5,40.3,103.8,0.794 75,-1,1554.2,431.4,53.1,125,0.665 43,-1,913.2,483.6,97.3,111.7,1 43,-1,835.2,472.7,54.9,77.9,1 43,-1,1461.9,426.7,66.5,131.3,1 43,-1,1648.3,401.1,272.5,479.9,1 43,-1,480.7,444.5,113.6,311.2,1 43,-1,374.4,445.7,43.7,107.1,1 43,-1,1009.4,439,42.2,116.8,1 43,-1,1258.5,447.2,35.3,102,1 43,-1,615.1,442.1,88.6,276.8,1 43,-1,417.8,456.8,42.2,86.8,1 43,-1,795.8,475.9,56.7,61,1 43,-1,1054.8,485.4,38.8,110.3,1 43,-1,1090.4,480.8,33.4,119.7,1 43,-1,1097.8,437.1,40.3,110.2,1 43,-1,584.2,465.3,33,135.6,0.374 59,-1,913.8,484.2,97.8,110.9,1 59,-1,836.2,472.8,53.3,77.2,1 59,-1,481,443,128.7,318.5,1 59,-1,375.3,445.7,43.1,106.7,1 59,-1,1261.1,446.1,35.3,103,1 59,-1,418.4,458,43.4,87.8,1 59,-1,1515.9,432.6,55.4,125.8,1 59,-1,624.2,442.4,90.3,281.5,1 59,-1,1097.9,435.8,41,113.5,1 59,-1,1054.4,484.8,39.2,108.8,1 59,-1,797.6,475.1,56,62.7,1 59,-1,1091.6,477.7,33.7,119.7,1 59,-1,1005.5,442.5,41.6,113,0.999 59,-1,686.5,457.4,74.4,218.5,0.979 59,-1,588,460.7,34.1,135.5,0.053 220,-1,721.6,410.7,194.3,581.4,1 220,-1,600.2,453.1,55.6,174,1 220,-1,1048.4,443.6,145.2,338.7,1 220,-1,514.1,454,35.5,111.3,1 220,-1,372.3,447.2,44.2,104.3,1 220,-1,436.7,467.1,44.5,108.7,1 220,-1,886.1,430.4,134.9,397.5,1 220,-1,1210.6,451.9,39.1,99.9,0.999 220,-1,658.6,462.1,28.5,76.1,0.991 220,-1,555.1,456.6,24.8,67,0.932 220,-1,409.1,467.8,44.4,98.4,0.687 220,-1,593,422.6,18.7,37.2,0.232 220,-1,575.2,435,19.2,40.4,0.121 143,-1,918.2,482.5,89.6,113.2,1 143,-1,403.3,466,62.4,105.6,1 143,-1,568.2,437.5,152.7,428.6,1 143,-1,1210,445.2,40.5,104,1 143,-1,1087.5,485.9,38.4,113.1,1 143,-1,818.6,448.1,89.2,268.2,1 143,-1,1002.7,444.2,38.3,101.1,1 143,-1,697.3,434.2,122.5,328.9,1 143,-1,372.7,444.7,43.1,107,1 143,-1,481.2,466.1,42.2,107.7,1 143,-1,1052,484,39.8,108.6,1 143,-1,531.7,456.1,26.6,72.4,0.948 143,-1,513.8,462.5,31.3,74.2,0.913 143,-1,1108.9,451.4,37.6,95.1,0.865 42,-1,912.5,483.8,98.3,111.2,1 42,-1,835.1,472.8,54.7,77.5,1 42,-1,1459.4,426.6,66.9,131.5,1 42,-1,1646.8,399.3,260.8,476.1,1 42,-1,374.6,446.3,43.7,106,1 42,-1,478.6,444.6,115.2,310.3,1 42,-1,1009.1,439.1,42.6,116.9,1 42,-1,1258.5,446.7,35.4,103.1,1 42,-1,614.8,442.2,89.1,276.3,1 42,-1,417.9,456.5,42.9,87.1,1 42,-1,796.1,475.7,55.8,61.5,1 42,-1,1054.6,485.1,39,109.1,1 42,-1,1097.8,437.3,40.8,110.6,1 42,-1,1091,479.6,33.2,119.1,1 121,-1,913.9,485.4,96.6,109,1 121,-1,373.8,446.5,42.2,105.7,1 121,-1,1088.8,482.1,37.7,119.9,1 121,-1,435.8,469,45.7,104.3,1 121,-1,560.4,451.7,133.2,369.5,1 121,-1,677.2,441.7,100.5,311.1,1 121,-1,498,469.1,35.4,102.9,1 121,-1,777.7,451.4,95.6,251.3,1 121,-1,1237.9,442.4,40.5,105.2,1 121,-1,1051.6,483.1,40.5,111.2,1 121,-1,1007,444.6,39.1,104,0.999 121,-1,534.2,459.2,28.9,66.9,0.861 209,-1,583.3,456.2,61.8,166.4,1 209,-1,692.9,413.3,159.9,566.2,1 209,-1,406.6,466.2,52,108.3,1 209,-1,1014,438.2,138.9,329.3,1 209,-1,835,433.5,155.9,384.7,1 209,-1,1193.4,451.4,35,96.2,1 209,-1,513.7,456.5,32.6,108.4,1 209,-1,371.8,446.1,43.6,104.9,1 209,-1,450.2,465.9,36.9,108.4,0.997 209,-1,657.6,461.8,27.1,77.7,0.986 209,-1,560.5,459.4,25.5,64,0.931 209,-1,591.5,423.4,20.3,40.2,0.679 209,-1,578.4,432.1,19.8,37.8,0.522 209,-1,535.1,457.5,25.2,85.6,0.512 209,-1,612.3,416.1,20.6,46,0.237 551,-1,834.9,472.4,52.8,76.8,1 551,-1,651.1,451.4,39.4,114.1,1 551,-1,1084.2,440,110.5,282.9,1 551,-1,715.3,449.4,36.9,99.7,1 551,-1,382,463.9,49.5,114.7,1 551,-1,968.7,412.1,90.5,296.7,1 551,-1,1546.1,398.2,223.9,682.8,1 551,-1,579.4,456.2,38.4,84.9,1 551,-1,885,435.1,82.4,250,1 551,-1,796.1,476.1,57,60.5,1 551,-1,416.5,467.7,44.9,102.3,1 551,-1,1190.1,438.5,44.5,111.5,0.999 551,-1,548.7,460.3,29.5,78.6,0.998 551,-1,511,456.6,23.4,57.3,0.9 551,-1,1046.4,442.6,37.7,100.6,0.814 551,-1,452.7,462.4,32.2,76.2,0.222 304,-1,776.5,446.7,70.4,210.2,1 304,-1,504.5,455.8,38.6,109.9,1 304,-1,1646.4,435,162,464.2,1 304,-1,1013.8,409.5,177,613.2,1 304,-1,410.8,468.8,48.4,105.9,1 304,-1,1343.3,428.9,104.9,271.7,1 304,-1,1177.7,446.8,42.9,106.2,1 304,-1,835.3,475.5,54.1,75.3,1 304,-1,890,430,148.4,512.2,1 304,-1,658.3,462.3,25.9,73.2,1 304,-1,382.2,463.3,44.5,112.2,0.999 304,-1,575.4,461.2,26.1,60.7,0.976 304,-1,610.3,459.3,24.3,57.5,0.916 304,-1,554.7,461,25.2,62.4,0.908 304,-1,4.3,485,87.3,365.5,0.188 287,-1,1349.3,444,42.3,107.4,1 287,-1,841,429.3,164.9,491,1 287,-1,509.8,455.9,33.9,109,1 287,-1,1484,434.5,198.3,431.6,1 287,-1,728.9,443.9,80.3,207.4,1 287,-1,992.1,407.8,158.2,623.4,1 287,-1,658.3,460.6,26.3,74.2,1 287,-1,406.8,471.4,46.6,104,0.999 287,-1,383.8,461.7,43,111.6,0.998 287,-1,577.8,461,26.1,61.2,0.972 287,-1,451.5,459,30.5,102.3,0.971 287,-1,561.2,460.8,25.2,61.3,0.905 287,-1,601.1,458.7,25.6,58.4,0.872 287,-1,542.9,459.3,26.7,72.4,0.736 287,-1,615.2,457.5,42.6,62.4,0.059 585,-1,836,472.4,53.6,77.2,1 585,-1,722,448.3,42.8,106.7,1 585,-1,1217.7,445.4,95.5,271.4,1 585,-1,979.7,428.4,95.5,247.6,1 585,-1,1085.8,412.5,89.5,290.2,1 585,-1,797.8,475.4,55.4,61.9,1 585,-1,665.1,455.3,39.3,102.4,1 585,-1,416.7,466.6,42.9,105.9,1 585,-1,380.4,463.8,48.5,113.3,1 585,-1,914.2,484.8,96.3,109.4,1 585,-1,556.9,458.3,29.7,84.3,0.999 585,-1,631.4,454.3,38.2,104,0.998 585,-1,1686.7,401.7,234.3,679.3,0.996 585,-1,584.2,457.2,36.7,86.8,0.964 223,-1,1079.6,447.4,119.9,336.3,1 223,-1,372.2,447.4,43.3,104.5,1 223,-1,733.6,408.6,214.6,579.3,1 223,-1,603.3,451.4,55.7,180.9,1 223,-1,515,454.1,34.7,110.2,1 223,-1,431.5,466.7,45.5,110.4,1 223,-1,894.3,433,134.3,402.7,0.996 223,-1,1053.7,477.9,38.8,118.2,0.995 223,-1,553.3,458.2,24.9,67.2,0.931 223,-1,660.1,464.6,24,72.3,0.905 223,-1,1215.8,450.6,41,100.7,0.346 223,-1,598.6,424.4,19.8,37.1,0.341 223,-1,407.3,466,30.3,93.4,0.169 427,-1,912.9,482.8,96.6,109.4,1 427,-1,341,436,148.5,323.5,1 427,-1,841.3,436.3,55.8,171.5,1 427,-1,524.2,442.6,96,320.2,1 427,-1,724.1,405.8,117.3,325.6,1 427,-1,1060.6,395,190.3,663.5,1 427,-1,617.1,432.8,136.5,287.9,1 427,-1,482.3,460.6,27,78.5,0.301 465,-1,703.3,441.2,98.7,300.1,1 465,-1,911.2,484.8,98.8,108.5,1 465,-1,831.1,408.6,89.6,300.2,1 465,-1,1219.4,396.8,248.2,684.2,1 465,-1,554.4,429.9,118.5,284.1,1 465,-1,996.1,445.6,37.6,101.4,1 465,-1,1048.7,438,40,109.8,0.999 465,-1,1082.1,484.2,44.3,112.9,0.999 465,-1,167.9,355.6,389.2,725.4,0.999 465,-1,1418.9,419.2,160.4,383.4,0.998 465,-1,1131,418.4,154.6,562.2,0.955 465,-1,680.6,473.1,25.3,75.8,0.438 465,-1,788.1,452.9,37.6,152.3,0.056 153,-1,544.9,432.2,157.2,458.5,1 153,-1,1197.4,446.8,39.5,101.3,1 153,-1,398.6,468.7,64.8,104.3,1 153,-1,721,439.3,119.2,330.7,1 153,-1,1088.3,481.5,39.6,118.4,1 153,-1,1002.5,441.8,38.1,105.8,1 153,-1,835.3,449.3,87.7,283.1,1 153,-1,372.6,446.2,44.4,105.2,1 153,-1,1051.7,482.9,40.4,111.2,1 153,-1,473.3,467.6,39.8,109.4,1 153,-1,1127.7,456.8,33.9,89.9,0.998 153,-1,891.7,440.4,74.3,231.9,0.924 153,-1,499.7,454.5,32.6,107.1,0.882 532,-1,666.2,451.3,42.4,120.1,1 532,-1,1000.4,442.3,121.6,283.9,1 532,-1,1447,418.3,204.3,662.7,1 532,-1,381.7,463.2,49.7,115.1,1 532,-1,801.7,431,122.8,267.2,1 532,-1,715.3,452.6,33.7,91.1,1 532,-1,573.6,455.5,34.3,85.9,1 532,-1,915.3,412,88.8,302.1,1 532,-1,414.5,468.3,45.7,102.9,0.999 532,-1,1656.5,378.3,264.5,702.7,0.999 532,-1,1091.2,435,92.6,240.3,0.999 532,-1,1179.7,446.7,35.8,90.8,0.998 532,-1,543.2,461.7,29.5,76.8,0.987 532,-1,462,462.8,26.8,65.7,0.629 532,-1,568.1,431.7,20,36.6,0.08 309,-1,496.9,455,45.8,109.5,1 309,-1,1022,413.5,212.2,604.3,1 309,-1,1293.9,431.8,137.9,266.7,1 309,-1,1677.3,434.8,233.7,492.2,1 309,-1,792.6,445.1,65.2,210.2,1 309,-1,410.8,468.3,47.7,106.2,1 309,-1,894.5,423.1,139.1,529.5,1 309,-1,657.6,462.8,26.8,73.5,1 309,-1,381.7,464.8,44.3,111.6,0.999 309,-1,1194.6,450.3,35.1,94.6,0.998 309,-1,1.3,386.2,119.8,480.1,0.998 309,-1,578.4,462.2,24.8,57.7,0.992 309,-1,843.1,472.4,52.3,74.4,0.968 309,-1,560.8,462.2,24,58.5,0.905 309,-1,619,460.9,23.1,56,0.89 309,-1,546,461.9,25.4,61.8,0.88 309,-1,1401.8,434.3,57,137.1,0.115 309,-1,523.9,453.8,36.6,80.7,0.101 269,-1,511.4,455,35,110.4,1 269,-1,682.4,449.5,62.1,191,1 269,-1,823.9,436.4,132.9,482.9,1 269,-1,946.6,406.1,170,644.6,1 269,-1,1347.9,441.1,176.7,399.3,1 269,-1,1652.1,417.1,162.9,339.5,1 269,-1,372.2,446.3,43.5,109.9,1 269,-1,396.4,465,42.9,112.6,1 269,-1,584.9,460.2,23.9,62.7,0.993 269,-1,461.7,459.6,30.6,107.2,0.989 269,-1,655.6,464.5,24.6,67.5,0.978 269,-1,559.9,462.4,23.7,60.4,0.941 269,-1,610.6,460.4,24.2,58.6,0.899 269,-1,783.7,452.6,26.8,75.3,0.659 269,-1,1305.2,448.1,42.2,101.7,0.066 386,-1,835.7,472.6,53.2,75.9,1 386,-1,1080.4,402.6,218.3,603,1 386,-1,549.3,405.6,136.3,361.1,1 386,-1,5.7,430.7,201.7,377.9,1 386,-1,240.3,452,139.7,356.4,1 386,-1,796.6,476.5,56.5,60.6,1 386,-1,467.5,453.9,38.9,104.6,0.999 386,-1,974.5,433.4,131.8,507.6,0.999 386,-1,359.4,438.6,131.8,300.3,0.998 386,-1,513.9,459.7,25.4,63.6,0.956 1,-1,915.1,481.5,94.7,113.5,1 1,-1,836.7,472.8,53.5,76.2,1 1,-1,376,446.6,42.7,104.8,1 1,-1,442.4,448.3,109.1,275.4,1 1,-1,586.4,445,87.8,265.6,1 1,-1,1340.1,415.1,166.4,376.9,1 1,-1,796.5,474.9,54.9,61.6,1 1,-1,1090.5,481.4,34.8,118.8,1 1,-1,1055.1,485.2,38.4,107.9,1 1,-1,1256.8,449.2,34.1,99.5,1 1,-1,1014.4,431.1,44.4,122.4,1 1,-1,1099,437.3,42.4,111,1 1,-1,1463.8,414.5,120.2,353.2,0.094 469,-1,912.9,482.4,98.6,111.6,1 469,-1,731.9,434.5,90.5,305.2,1 469,-1,835.1,406.8,86.6,303.5,1 469,-1,595,431.2,85.4,280.8,1 469,-1,1135.6,418.2,149.8,577.5,1 469,-1,1278.2,392,202.6,689,1 469,-1,994.4,446.2,37.4,98.9,1 469,-1,1083.9,475.3,44.7,122,0.999 469,-1,1047.4,439.8,40.8,110.9,0.998 469,-1,25.5,389.8,429.8,691.2,0.998 469,-1,1466.3,418.9,121.2,371.6,0.99 469,-1,563.7,455.7,29.1,76,0.853 469,-1,379.6,463.1,42.7,117.8,0.686 469,-1,709.4,473.7,25.9,70.7,0.511 522,-1,382,462.5,50.1,116.2,1 522,-1,952,447.9,112.7,279.6,1 522,-1,767.8,431.9,85.2,263.3,1 522,-1,1341.2,425.4,255.1,644.6,1 522,-1,1573.5,377.5,308.4,703.5,1 522,-1,682,451.4,40.9,123.6,1 522,-1,572,459,32.8,81.3,1 522,-1,1179.6,448.8,35.6,86.5,1 522,-1,1051.4,441.3,105.3,234.2,1 522,-1,881.3,409.6,93.1,297.3,0.999 522,-1,648.2,452.8,30,99.5,0.998 522,-1,542.3,463.6,28.9,73.5,0.986 522,-1,720.8,449.9,29.7,89.9,0.982 522,-1,447.8,462.3,30.2,78.6,0.95 522,-1,416.6,471.1,45.6,96.9,0.838 522,-1,836.8,474.4,58.8,88.2,0.82 522,-1,463.8,460.9,26.8,67.8,0.552 274,-1,511.5,454.5,34.9,111.8,1 274,-1,1368.3,438,206.4,414.1,1 274,-1,825.4,432,139.6,484.2,1 274,-1,696,445.6,69.4,200.8,1 274,-1,392.6,465.4,41.4,112.8,1 274,-1,962.8,400.5,160.5,651.2,1 274,-1,1610.8,405,109.6,350.1,1 274,-1,458.1,457.3,32.2,109,0.997 274,-1,657.4,463.1,28.8,72.6,0.99 274,-1,582.9,459.4,22.9,61.6,0.988 274,-1,632.3,460.8,25.7,61.1,0.955 274,-1,556.3,459.5,23.6,62.2,0.938 378,-1,835.9,472.7,54.2,77.5,1 378,-1,1079,411,213.3,597.6,1 378,-1,519,402,128.1,362.6,1 378,-1,159.5,443.8,208,386,1 378,-1,796.6,476.5,55.7,61,1 378,-1,963.5,425,139.3,508.8,1 378,-1,410.9,470.1,47.9,106.3,1 378,-1,2.4,429.2,129.7,387.1,0.998 378,-1,471.1,451.7,37.8,118.3,0.998 376,-1,835.1,472.9,54.4,77.8,1 376,-1,499.6,407.8,133.8,361.5,1 376,-1,1079,408.6,213.1,603.7,1 376,-1,796.8,476.3,54.9,61.8,1 376,-1,410.1,468.5,47.2,108.9,1 376,-1,156.2,444,193.9,383.4,1 376,-1,954.8,424.1,143.4,523.6,1 376,-1,475.1,454.7,32.7,110.3,0.991 376,-1,624.6,457,31.8,72.6,0.977 376,-1,377.3,463.3,39.9,121,0.626 376,-1,7.6,459.9,70.9,350.4,0.148 230,-1,754.2,419.6,269.9,579.1,1 230,-1,1120.9,443.4,119.2,347.3,1 230,-1,372.8,447.8,42.4,107,1 230,-1,424.3,465.6,46.1,112.7,1 230,-1,613.8,447.3,53.5,184.9,1 230,-1,513.9,455.5,34.7,108.8,1 230,-1,1047.5,486.3,42.3,105.4,0.999 230,-1,1085.2,486.2,42.2,113.4,0.998 230,-1,552,459.3,24.5,65.6,0.908 230,-1,457.9,457.6,35.5,107.1,0.799 230,-1,662.4,461.1,28.6,80.5,0.691 230,-1,484.3,452.8,29.3,106.1,0.385 310,-1,497.6,456,44.9,110,1 310,-1,1284.1,431.9,139.4,270.3,1 310,-1,1681.2,429.4,239.8,501.8,1 310,-1,1021.3,402.4,214.4,618.3,1 310,-1,793.4,443.1,66.6,211.9,1 310,-1,894.3,423,138,529.3,1 310,-1,410.3,468,47.3,106.6,1 310,-1,657,462.4,26.7,73.1,1 310,-1,381.6,465,43.7,111.4,0.999 310,-1,2.2,391,121.8,475.9,0.999 310,-1,578.2,461.9,23.7,56.8,0.99 310,-1,1195.1,452,35.4,91.4,0.986 310,-1,555.7,461.9,23.8,58.3,0.936 310,-1,621.5,460.7,23,56.4,0.913 310,-1,843,472.6,49.8,75.6,0.873 310,-1,538.9,461.9,24.8,64.2,0.867 310,-1,1408.8,441.7,47.5,117.9,0.325 476,-1,620.9,436.3,86.3,270.7,1 476,-1,1336.6,390.4,211.5,690.6,1 476,-1,751.5,432.5,103.2,304.5,1 476,-1,1152.8,419.5,171.1,586.7,1 476,-1,840.8,409.5,85.7,306.2,1 476,-1,992.5,448.9,37.5,97.3,1 476,-1,565.5,454.6,33,80.1,0.999 476,-1,1040.1,439.1,40.1,105.7,0.998 476,-1,527.1,458.4,32.5,75,0.998 476,-1,1111.3,435.6,43.3,148.4,0.998 476,-1,1085.4,466.5,40.9,131.8,0.996 476,-1,1507.2,414.9,162.4,394,0.985 476,-1,713.2,467.5,21.9,69.2,0.816 476,-1,910.6,456,71.2,219.8,0.759 476,-1,1.5,398.5,265.1,682.5,0.359 329,-1,1058.2,409.7,194.7,606.6,1 329,-1,1452.3,442.3,49.7,108.2,1 329,-1,489.5,453.4,41.8,111.6,1 329,-1,900.1,424.1,143.6,521.3,1 329,-1,134.7,407.8,191.1,429.7,1 329,-1,799,477.9,53.4,60.3,1 329,-1,410.3,469.1,45.7,105.5,1 329,-1,380.2,462.6,45.1,114.2,1 329,-1,658.3,463.8,26.1,72.3,1 329,-1,1762,398.9,159,463.4,0.984 329,-1,563.4,460.2,21.8,59.7,0.966 329,-1,626.6,459.7,24.2,62.1,0.96 329,-1,582.6,460,21.9,58.6,0.941 329,-1,852.1,453,67,186.9,0.367 444,-1,582.6,441.5,117.7,311.3,1 444,-1,463.5,440.3,113,300.2,1 444,-1,890.9,368.6,381.4,712.4,1 444,-1,789.3,405.3,87.9,311.4,1 444,-1,376.7,465.4,56.1,117.6,0.995 444,-1,917.6,484.2,95.8,109.5,0.903 444,-1,717.7,436,103.4,270.7,0.882 444,-1,421,465.6,33.2,103.7,0.799 444,-1,1327,433.1,121.4,345.6,0.321 109,-1,914.1,482.4,96.2,113.2,1 109,-1,373.9,446.5,43.3,106.4,1 109,-1,835.1,471.8,53.8,78.1,1 109,-1,1249.8,447.7,38.9,99.9,1 109,-1,1088.1,483.3,36.9,120.1,1 109,-1,762.8,455,83.8,241.8,1 109,-1,445.9,468.3,44.3,101.2,1 109,-1,554.7,444.7,129.1,362.6,1 109,-1,504,465.2,36.9,104.6,1 109,-1,665.1,438.3,98.4,309.8,1 109,-1,1005.2,443.1,41.2,107.5,1 109,-1,1052.8,482.3,40.9,110.6,1 495,-1,818.2,440.1,137.4,293.2,1 495,-1,658.1,437.5,118.3,270.9,1 495,-1,959.1,431.7,99.3,251.2,1 495,-1,1082.9,448.8,48.5,149.8,1 495,-1,382.5,462.9,51.9,115.4,1 495,-1,1409.8,372.7,272.6,708.3,1 495,-1,568.4,456.3,34.1,82.8,1 495,-1,1214.6,435.6,225.1,579.8,1 495,-1,1179.1,449.8,36.3,84.3,1 495,-1,1641.6,415.8,155.8,424.7,0.999 495,-1,635,454.5,33.6,93.5,0.999 495,-1,461,459,26,78.3,0.99 495,-1,537.5,460.3,27.8,72.4,0.988 495,-1,1117.3,447.3,36,117.8,0.445 495,-1,799.1,476.7,45.1,57,0.178 196,-1,642.9,426.3,168.9,526.1,1 196,-1,406.2,468.2,51.5,106.6,1 196,-1,567.6,451.4,62.6,170,1 196,-1,949.3,449.2,117.8,318.3,1 196,-1,370.9,445.3,44.6,106.1,1 196,-1,811.1,429.9,132.9,381.2,1 196,-1,510,455.4,33.7,110.3,1 196,-1,1138.2,450.1,42.4,98.8,0.999 196,-1,1176.7,451,36.9,95.2,0.998 196,-1,459,467.2,40.6,108.6,0.998 196,-1,589.8,420.7,23.4,45.3,0.791 196,-1,1020.2,439.6,88.1,273.9,0.714 196,-1,1121.7,451.8,35.5,88.5,0.348 196,-1,549.2,437.8,19.8,45.3,0.312 196,-1,602.5,411.3,22.6,49.4,0.218 196,-1,563.8,392.9,38,106.2,0.112 196,-1,1082.1,476.2,45.5,140.2,0.05 563,-1,836.7,473.7,53.6,75.9,1 563,-1,718.9,448.4,39.5,101.4,1 563,-1,913.1,430.9,90.7,248.7,1 563,-1,1117,440.4,110.4,275,1 563,-1,1583,387.1,272.2,693.9,1 563,-1,797.1,477,55,60.7,1 563,-1,1003.6,417.4,133.2,287.8,1 563,-1,381.8,464.1,48.4,113.3,1 563,-1,416.7,466.9,44.8,104,1 563,-1,581.9,457.2,39.9,83.9,1 563,-1,642.7,453.5,36.3,110.6,1 563,-1,1216,444.3,46.2,108.1,0.999 563,-1,549.2,460.7,29.7,79.1,0.998 563,-1,510.2,458.7,23.5,54.1,0.87 557,-1,717.3,447.6,39.4,102.6,1 557,-1,836.4,473.7,53.9,76.7,1 557,-1,1092,445.9,111.5,279.2,1 557,-1,892.9,437.3,100.7,252.8,1 557,-1,1564.1,394.9,246.5,686.1,1 557,-1,646.4,452.3,39.8,115,1 557,-1,381.8,464,49.3,114.3,1 557,-1,999.8,413.3,94.4,292.1,1 557,-1,797.1,476,55.4,61.7,1 557,-1,580,456.7,38.7,85.2,1 557,-1,415.8,467.3,45,102.8,1 557,-1,548.5,460.6,28.6,78.6,0.998 557,-1,507.9,456.5,23.9,56.3,0.859 557,-1,1190.2,442.3,48.9,116.3,0.7 67,-1,912.1,484,98.3,111.7,1 67,-1,836,472.7,53.8,77.9,1 67,-1,497,441.9,131.9,324.1,1 67,-1,419.1,457.7,41.5,85.9,1 67,-1,374.2,447,43.1,105,1 67,-1,1260.3,446.6,35.6,101.6,1 67,-1,1535.8,431.8,51.3,125.2,1 67,-1,1053.7,480.9,39.4,113.6,1 67,-1,1004.7,441.3,41.7,113.6,1 67,-1,1089.3,481.5,35,117.3,1 67,-1,797,475.1,55.8,63.6,1 67,-1,620.5,447.6,90.9,283.4,1 67,-1,1096.5,439,40.5,108.8,0.999 67,-1,692.8,456,75.3,222.9,0.998 67,-1,479.7,466.8,31.9,96.7,0.71 204,-1,406.1,465.5,52.1,108.6,1 204,-1,669.1,423,174.2,539,1 204,-1,1188,449.7,36.4,95.7,1 204,-1,578.6,453.7,64.6,170.1,1 204,-1,990.7,446.9,94.7,311.3,1 204,-1,822.9,436.6,160.5,377.8,1 204,-1,370.7,446.9,45,105.8,1 204,-1,512.2,456,32.8,109.4,1 204,-1,1052.9,434.6,92.9,287.4,0.998 204,-1,1133.9,450.6,37.8,99.6,0.998 204,-1,457.5,464.5,33.1,110.8,0.995 204,-1,592.2,419.8,21.8,43.4,0.649 204,-1,579.5,426.8,21.4,39.3,0.642 204,-1,658,469.4,23.8,72.4,0.516 204,-1,533,455.7,26.3,89.2,0.261 204,-1,551.3,418.4,36.4,93.4,0.184 48,-1,912.9,483,99.3,111.6,1 48,-1,835.9,472.8,53.8,77.3,1 48,-1,477.4,443.6,115.4,312.7,1 48,-1,1484.2,428.5,57.5,129.4,1 48,-1,374.6,446.1,43.7,106,1 48,-1,621.1,441.4,89.9,277.4,1 48,-1,1260.7,445.8,34.8,103.8,1 48,-1,1006.8,442.3,41.7,115.1,1 48,-1,418.3,457.8,44.3,88,1 48,-1,1055.3,483.8,38.2,112.6,1 48,-1,1098.1,436.1,41,109.3,1 48,-1,796.4,475.3,56.5,61.3,1 48,-1,1092.4,478.2,32.5,119.7,0.999 48,-1,1740.3,398.7,180.7,474,0.998 48,-1,581.7,454.6,42,137,0.996 48,-1,695.2,481.8,51.4,185.5,0.06 176,-1,561.7,425.3,203.1,480.1,1 176,-1,409.9,468.2,51.5,105,1 176,-1,772.2,438.2,115.9,359.9,1 176,-1,878.5,445.3,121.2,303.9,1 176,-1,1088,483.9,39.3,115.6,1 176,-1,1164.9,447.7,42.5,100.7,1 176,-1,370.9,445.3,44.3,106.5,1 176,-1,506.6,454.6,38.4,109.7,1 176,-1,1051.2,482.4,38.6,111.1,0.998 176,-1,465.8,464.5,37.2,110.7,0.997 176,-1,1138.4,450.1,29.6,92.1,0.662 176,-1,948.9,434.6,84.5,273.1,0.521 176,-1,542,459.1,25.1,68.8,0.341 176,-1,560.3,458,21.7,58.3,0.06 503,-1,383,463.7,51.8,115.9,1 503,-1,868.4,437.3,132,293.3,1 503,-1,705,432.4,77.5,270.8,1 503,-1,1504.8,374.2,223.3,706.8,1 503,-1,1273.8,422.5,185.9,599.7,1 503,-1,977.7,436.4,106.2,245.7,1 503,-1,1085.5,449,57.4,150.5,1 503,-1,636.7,455.8,34.7,87.7,1 503,-1,1177.8,449.8,36.1,85.6,1 503,-1,795.9,478.2,59.3,59.7,1 503,-1,570.5,457.7,32.6,81.1,1 503,-1,1692.8,406.7,219.7,488.5,0.999 503,-1,537.7,460.7,30.5,75.3,0.993 503,-1,459,460,25.8,75.9,0.991 503,-1,678.9,464.9,31.9,82.9,0.86 503,-1,833,477.5,50.6,59.4,0.31 178,-1,564,427,199.8,485.3,1 178,-1,407.9,468.8,50.9,104.4,1 178,-1,775.1,441,111,352.8,1 178,-1,1160.9,447.2,40.8,101.3,1 178,-1,370.6,444.9,45.6,107.2,1 178,-1,892.1,445.7,110,297.1,1 178,-1,1087.1,483.9,39.8,116,1 178,-1,507.2,454.7,38.7,108,1 178,-1,465.1,466.1,35.5,110.4,0.998 178,-1,961.4,437,103.9,266.6,0.997 178,-1,1053.9,480.8,34.8,114.2,0.974 178,-1,555.6,458.8,24.8,64.9,0.866 178,-1,540.3,451.2,29.1,83.6,0.353 178,-1,569,459.3,27.3,72.3,0.055 421,-1,851.3,434.5,58.5,170.5,1 421,-1,699.1,406,121.4,329.4,1 421,-1,912.7,484.6,99.3,108.2,1 421,-1,1054,406.1,191.4,611.8,1 421,-1,298,435.6,183.8,334.1,1 421,-1,460.3,439.1,143.6,324.9,1 421,-1,602,433.8,110.3,284.4,1 421,-1,446.2,458.6,40.3,126.7,0.264 54,-1,914.2,482.9,96.6,112,1 54,-1,836.3,473.3,54,76.3,1 54,-1,477.4,442.6,121.5,316.4,1 54,-1,1501,431.2,54.7,130.1,1 54,-1,623.6,448.9,88.3,269.3,1 54,-1,374.7,445,43.8,107.4,1 54,-1,1260.3,446.5,35.5,102.1,1 54,-1,418.4,457.4,42.2,87.4,1 54,-1,796.6,475.3,56.3,62.6,1 54,-1,1007.1,444.3,41.6,114.5,1 54,-1,1053,484.6,39.5,110.8,1 54,-1,1097.3,435.7,40.8,113.3,1 54,-1,1091.6,479,33.1,118.7,1 54,-1,582.7,454.3,41.7,133.9,0.982 342,-1,835,472.2,53.7,79.2,1 342,-1,1067.3,408.4,188.4,587.7,1 342,-1,486.5,453.1,34.3,112.1,1 342,-1,252,413.1,209.5,416.3,1 342,-1,905.7,425.9,145.2,520.7,1 342,-1,1485.1,438.3,55.3,111.2,1 342,-1,796.1,475.4,56.2,62.3,1 342,-1,1,447,146.8,331.6,1 342,-1,659,463.1,26.1,74.4,1 342,-1,633.4,460.1,24.7,64.8,0.965 342,-1,581.7,459.7,22.6,58.8,0.928 342,-1,559.5,460.5,19.7,59,0.916 342,-1,607.5,456.9,39,63.5,0.738 342,-1,409.9,471.8,46,114.9,0.61 342,-1,537.1,458.7,34.7,63,0.416 308,-1,497.6,454.9,45.1,109.7,1 308,-1,1294.2,428.6,141.6,272.7,1 308,-1,1018.9,401.3,206.7,617,1 308,-1,1674.8,427.6,209.2,489.3,1 308,-1,787.9,442.8,67,214,1 308,-1,410.9,468.9,48,106.4,1 308,-1,894.6,425.7,138.9,521,1 308,-1,657.7,463.1,26.8,73.3,1 308,-1,1193.7,447.4,34.1,97,1 308,-1,381,464.3,44.7,111.6,0.999 308,-1,835.6,472.9,55.6,76.2,0.996 308,-1,578.8,461.9,24.6,58.3,0.993 308,-1,559.5,462.1,24.2,59.1,0.917 308,-1,617.6,460.5,23,56.3,0.869 308,-1,14.9,405.3,93.3,461,0.791 308,-1,520.9,453.9,36.9,85.4,0.068 283,-1,837,430.1,156.9,496.1,1 283,-1,1468.1,425.3,141.3,429.6,1 283,-1,510.1,456.4,34.7,109.4,1 283,-1,984.2,400.2,157.6,654.6,1 283,-1,388.5,466.2,43.7,110.8,1 283,-1,715.9,450,95.3,198.1,1 283,-1,1339.9,441.5,41.5,108.1,1 283,-1,658.8,461.5,25.3,75.1,0.999 283,-1,580.8,460.9,26,60.6,0.997 283,-1,452.1,460.1,30.4,105.5,0.997 283,-1,552.9,460.8,26.2,66.7,0.801 283,-1,598.3,458.9,24.7,58.4,0.796 283,-1,437.2,465.6,23.9,101.8,0.193 172,-1,407.7,467.8,53.9,103,1 172,-1,535.2,428,221.9,475.2,1 172,-1,1088.3,485.2,37.7,114.1,1 172,-1,872.3,450.8,124.6,291,1 172,-1,372,445.6,43.4,105.5,1 172,-1,761.4,434.4,121.3,358.4,1 172,-1,1169.7,449.8,42.6,97.2,1 172,-1,1051.8,481.2,38.6,111.6,0.999 172,-1,508.3,455.8,35.6,109.8,0.998 172,-1,467.3,464.5,35,109.3,0.997 172,-1,1149.9,452.3,33.2,93.5,0.962 172,-1,491.2,460.1,25.6,109.5,0.339 368,-1,836.6,471.8,53.9,79.3,1 368,-1,408.3,411.1,196.8,383.2,1 368,-1,1075,406.2,209.1,610.2,1 368,-1,376,462,49.9,115.7,1 368,-1,797,476.3,56.4,60.6,1 368,-1,626.3,457.9,29.3,72.9,1 368,-1,937.5,425.1,144.1,520.4,1 368,-1,1547.7,436.9,47.2,110.1,1 368,-1,68.3,441.3,163.3,397.7,0.999 368,-1,231.7,437.2,126.5,330.4,0.999 368,-1,594.9,459.4,21.8,56.7,0.939 368,-1,886.1,456.4,27.6,60.3,0.697 368,-1,579.4,460.3,22.6,58.9,0.689 368,-1,650.1,459.1,22.8,67.6,0.07 62,-1,913.3,483.7,97.2,111.1,1 62,-1,836.7,471.6,52.7,79.9,1 62,-1,485.9,444.2,130.1,324.1,1 62,-1,374.3,446,44.3,106.2,1 62,-1,1260,446.5,36.1,101.9,1 62,-1,1523.8,431.3,52.2,125.9,1 62,-1,1055,484,39.2,109.6,1 62,-1,1004.4,440.8,41.6,114.9,1 62,-1,418.1,458.1,42.6,84.5,1 62,-1,620.3,449.7,91.3,277,1 62,-1,1089.7,479.1,34.5,117.6,1 62,-1,796.5,475.1,56.6,63.3,0.999 62,-1,1096,436.5,41.3,113.3,0.999 62,-1,687.7,456.4,78.1,223.2,0.996 419,-1,856.4,436.4,56.5,172.8,1 419,-1,1051.5,403.3,191.3,605,1 419,-1,693.5,403.2,121.9,334.5,1 419,-1,448.4,440.2,158.2,328.7,1 419,-1,292.8,432.2,172.7,344.9,1 419,-1,588.8,428.2,97.5,294.5,1 419,-1,909.6,483.5,103.7,111.1,1 173,-1,541.9,419.9,219.4,485.8,1 173,-1,409.3,468.9,51.9,103.2,1 173,-1,875.8,449.7,122.1,292.8,1 173,-1,1088.5,484.5,37.1,114.8,1 173,-1,764.9,432.7,119.2,359.2,1 173,-1,371.1,445.8,44.2,105.9,1 173,-1,1169,449.8,41.3,98,1 173,-1,507.9,454.9,36.5,110.8,0.999 173,-1,1053.1,481.3,37.7,110.8,0.999 173,-1,467.4,463.9,34.6,111.5,0.995 173,-1,1147.9,453.4,33.4,92.8,0.961 173,-1,490.8,458.3,33.2,112,0.233 173,-1,552.7,461,22.9,62.5,0.092 173,-1,947.8,436.4,82.9,242.5,0.064 150,-1,552.8,434.8,151.5,451.4,1 150,-1,1202.2,445.7,38.2,102.5,1 150,-1,401.3,466,62.3,105.5,1 150,-1,1089,481.7,38.2,118.1,1 150,-1,1001.6,444,37.9,99.4,1 150,-1,712.1,436.8,124.5,332.1,1 150,-1,372.4,446,44.1,106.7,1 150,-1,832.2,451.4,87.2,279.9,1 150,-1,1051.9,483.6,39.9,110.4,1 150,-1,1125.9,454.5,34.3,91.6,0.998 150,-1,474.6,464.3,39.9,110.7,0.997 150,-1,503.6,456,36.4,107.2,0.994 150,-1,887.5,454.1,76.4,222,0.362 150,-1,526.4,452.7,27.9,90.3,0.132 480,-1,1350.7,391,249.8,690,1 480,-1,1175.8,420.8,159.2,589.8,1 480,-1,632.7,431.6,85.8,273.3,1 480,-1,771,436.4,95.8,299,1 480,-1,563.7,454.7,36.2,82,1 480,-1,1038.8,440.5,38.6,107.2,1 480,-1,843.8,409.9,80.1,305.1,0.999 480,-1,870.5,435.1,140,252.9,0.998 480,-1,1112.7,435.6,40.5,149.7,0.995 480,-1,1085.9,465.3,39.4,132.9,0.991 480,-1,747.9,447,44.2,130.5,0.991 480,-1,991.6,450.7,32.1,97.8,0.969 480,-1,532.6,460.4,28,72,0.967 480,-1,1516.4,420.3,201.4,397.8,0.928 480,-1,1023.4,444.1,28,97.9,0.212 480,-1,1068.5,456.9,35.7,118.2,0.177 161,-1,536.2,428.1,165.1,462.6,1 161,-1,399.3,467.7,63.2,105.9,1 161,-1,1186.3,446.1,39.1,100.1,1 161,-1,740.3,435,113.3,339.8,1 161,-1,1088.1,484.6,38.8,115.6,1 161,-1,1000,444.4,37.4,99.8,1 161,-1,371.8,446.6,44,104,1 161,-1,845,446.5,90.7,292.4,1 161,-1,469.8,465.3,35.5,111.5,1 161,-1,1053,481.9,38.8,112.3,1 161,-1,914.7,443.5,82.9,245.8,1 161,-1,1134.4,450.7,33.8,94.9,0.994 379,-1,835.9,472.9,54.3,76.3,1 379,-1,1081.2,408.3,210.8,599.9,1 379,-1,159.4,447.7,214.8,378.8,1 379,-1,525.9,404.2,125.9,364.4,1 379,-1,963.5,420.6,138.3,516.3,1 379,-1,796.5,476.5,56.4,61.1,1 379,-1,1.3,438.3,150.7,373.5,1 379,-1,411.2,471,45.5,104.8,0.999 379,-1,469.8,453.3,39,115.1,0.999 216,-1,594.2,454.7,57.2,168,1 216,-1,713,412.9,174.1,571.8,1 216,-1,1028.2,445,164.6,330.6,1 216,-1,513.5,454.8,34.5,110.4,1 216,-1,877.6,431.1,132.3,394.7,1 216,-1,408.2,467.8,51.4,106.5,1 216,-1,371.4,447.9,44.4,103.4,1 216,-1,444.8,470.7,41.3,104.3,0.999 216,-1,1202.1,448,40.6,100.8,0.996 216,-1,658.5,464.3,27.3,74.4,0.992 216,-1,554.5,456,24.7,64,0.955 216,-1,592.8,422.6,19.4,38.7,0.474 216,-1,576.5,433.4,19.1,39.4,0.185 216,-1,561.7,453.8,48.5,82.2,0.094 353,-1,1069.3,393.8,196.6,609.6,1 353,-1,835.9,471,52.2,78.3,1 353,-1,914.1,421.8,142.1,519.9,1 353,-1,86.5,431.4,185.3,345.4,1 353,-1,365.4,402.9,119.9,408.5,1 353,-1,796.8,474,56.4,64.9,1 353,-1,484.3,455,32.4,109.8,1 353,-1,1518.5,438.8,41.5,108.5,1 353,-1,659.9,462.6,28,76.1,0.999 353,-1,635.7,460.8,26.6,67.8,0.972 353,-1,557.5,458.1,20.5,59.8,0.948 353,-1,586.6,458.8,22.3,58.2,0.923 353,-1,884.1,454.6,26.9,68.8,0.726 353,-1,511.9,456.5,26,74.1,0.602 388,-1,836.2,471.8,53.4,77,1 388,-1,552.5,407.9,139.6,355.6,1 388,-1,1077.9,406.2,221.7,612.2,1 388,-1,25.6,425.9,186.8,378.6,1 388,-1,361.6,437.2,164.7,300.2,1 388,-1,796.6,476.4,56.4,60.5,1 388,-1,974.9,419.6,130.3,520.8,0.999 388,-1,269.5,442.5,119.6,363.3,0.999 388,-1,515.6,462.7,24,64.1,0.961 388,-1,470.3,458.7,39.4,101.4,0.671 388,-1,939.3,437.1,63.1,195.7,0.462 198,-1,406.3,468,51.2,106.4,1 198,-1,652.7,418.6,169,542.4,1 198,-1,568.8,451.1,64.2,171.2,1 198,-1,811.9,432,152,379.5,1 198,-1,371.7,445.2,44.2,106.6,1 198,-1,511.2,456.8,34.1,107.6,1 198,-1,1139.4,449.4,39.4,101.2,1 198,-1,959.1,443.9,110.8,318.3,1 198,-1,1031.9,432.9,101.3,283.4,0.999 198,-1,1177.7,449.2,37.2,98.5,0.999 198,-1,458.3,466.6,37.6,109.2,0.998 198,-1,589.5,420,23.3,45,0.811 198,-1,549.5,437.6,19.6,45.5,0.362 198,-1,551.5,422.9,37.2,92.5,0.262 198,-1,603.1,410.5,22.5,49.8,0.182 375,-1,835.3,473.1,54.5,78.1,1 375,-1,489.9,405.3,136.6,365.9,1 375,-1,1077.1,407.9,215.1,603.8,1 375,-1,951.3,425.9,144.9,514.7,1 375,-1,148.8,444.2,182.8,381.6,1 375,-1,410.7,470.6,46.3,106.9,1 375,-1,796.8,476.7,55.3,60.7,1 375,-1,625.9,456.3,30.4,72.3,0.996 375,-1,378.4,462.5,44,119.7,0.969 375,-1,464,459.9,26.4,84.3,0.824 375,-1,267.6,441.9,147.7,300.4,0.282 375,-1,886.3,461.4,25.1,49.8,0.076 429,-1,913.8,484.4,94.5,109,1 429,-1,1057.4,400,197.9,669.6,1 429,-1,375.4,437.9,115.3,312.3,1 429,-1,727.1,409,119.1,322.2,1 429,-1,837.1,440.5,55.5,155.8,1 429,-1,531,441.3,113.1,317.9,1 429,-1,620.1,433.1,134.5,281,0.999 429,-1,491.5,476.6,20.8,68.4,0.133 429,-1,1636.2,367.5,284.8,713.5,0.058 372,-1,836.3,472.2,53.8,78.1,1 372,-1,1074.8,409.5,207.9,593.4,1 372,-1,441.9,409.6,171.5,381.7,1 372,-1,796.4,475.7,56.6,62.4,1 372,-1,946.8,426.1,139.6,515.6,1 372,-1,134.9,442.7,143.2,382.7,1 372,-1,625.6,455.9,29.8,74.4,1 372,-1,378.4,462.4,46.5,117.4,0.999 372,-1,411.7,469.2,43.4,107.4,0.999 372,-1,239.3,439,168.8,313.3,0.999 372,-1,1554.4,439.4,47,109.6,0.998 372,-1,888.3,456.9,26.1,56.7,0.226 536,-1,661.6,450.2,42.4,119.6,1 536,-1,1459.6,420.1,222.6,660.9,1 536,-1,807.1,438,124.5,255,1 536,-1,716.9,451.8,32.1,94.3,1 536,-1,1015,444.8,118.2,278.4,1 536,-1,574.9,454.9,36.1,85.7,1 536,-1,380.9,462.9,49.9,115.2,1 536,-1,916.9,407.8,113.7,307.3,1 536,-1,414.8,467.7,46.7,103.7,0.999 536,-1,1708.4,370.5,212.6,710.5,0.998 536,-1,1101.2,444.3,86.8,230.9,0.997 536,-1,544.1,461.2,28.5,77,0.99 536,-1,457.1,462.1,29.3,72,0.585 536,-1,1173.8,449.3,38,86.5,0.311 18,-1,914.8,483.5,94.8,111.5,1 18,-1,836.7,472.3,53.1,77.1,1 18,-1,1457.9,417.6,220.2,403.6,1 18,-1,447,442.9,125,288.8,1 18,-1,587.1,441.1,90.3,274.8,1 18,-1,1409.6,435.9,55.1,132.1,1 18,-1,1257.3,447,34.8,101.7,1 18,-1,374.5,446.3,43.4,105.9,1 18,-1,1012.8,437.3,42.7,115.5,1 18,-1,1090.3,483.7,34.2,118,1 18,-1,795.6,475.6,56.7,61.2,1 18,-1,1099.8,438.6,39.6,109.2,0.999 18,-1,417.6,458.8,41.4,86,0.999 18,-1,1055.7,485,37.9,110.9,0.998 18,-1,664,472.5,51.1,171.1,0.058 97,-1,913.3,484,97.4,111.5,1 97,-1,836.1,472.3,53,78.1,1 97,-1,373.1,445.9,44.7,105.9,1 97,-1,1258.5,445.7,38,102.6,1 97,-1,455.2,468,44,105.5,1 97,-1,747.9,455.5,79.9,227.6,1 97,-1,1088.9,484.3,35.9,116,1 97,-1,548.7,443.9,121.4,354.7,1 97,-1,1004.7,442.9,41.3,107.7,1 97,-1,1051.8,481.6,41,112.7,1 97,-1,644.3,441.8,100.5,303,1 562,-1,837.1,473.4,54,76.6,1 562,-1,718.5,448.3,38.8,101,1 562,-1,1581,385.8,267.3,695.2,1 562,-1,1108.7,441.3,110.2,276,1 562,-1,906.4,433.4,95.7,252.7,1 562,-1,797,477.2,55.2,59.6,1 562,-1,416.2,467.4,45,103.7,1 562,-1,382.1,464.2,48.8,114.4,1 562,-1,1000.5,416.2,133.4,289,1 562,-1,644.1,454.7,35.1,110,1 562,-1,581,457.6,39.2,83.5,1 562,-1,1212.4,443.7,45.4,109.5,0.999 562,-1,548.9,461.3,29.9,79.9,0.998 562,-1,505.6,458,23.8,55.9,0.897 562,-1,520.1,458.4,22.7,55.3,0.874 577,-1,836.4,472.3,53.4,78.1,1 577,-1,721.3,446.7,41.9,107.7,1 577,-1,381.7,464.9,48.7,113,1 577,-1,1165.3,441,123.9,275.5,1 577,-1,962.3,432,109.8,245.9,1 577,-1,797.7,477.1,55.3,60,1 577,-1,1047.6,415.2,106.7,283.2,1 577,-1,416.8,470.5,41.2,101.4,1 577,-1,553.8,461.3,31.3,82.6,0.999 577,-1,667.1,452.6,37.9,104.8,0.999 577,-1,1674.7,402.3,246.3,678.7,0.998 577,-1,635.4,452.4,38.3,108.6,0.998 577,-1,583.8,459.4,37.4,83.3,0.98 295,-1,755.8,442.2,66.8,204.5,1 295,-1,508.6,455.5,35.4,109.2,1 295,-1,1522.5,421,241.8,454.5,1 295,-1,1003.6,406.2,158.3,612.1,1 295,-1,1160.9,443.5,46.9,112.5,1 295,-1,861.2,430.6,164.1,497.5,1 295,-1,409.9,470.9,49.1,103.8,1 295,-1,659.7,460.1,25.9,74.5,1 295,-1,1360.9,439.9,54.1,111.4,0.999 295,-1,382.7,463.2,44.7,111.5,0.999 295,-1,1397.3,426.4,154.6,284.4,0.999 295,-1,576.6,462.6,26.1,59.2,0.988 295,-1,553,461.6,26.2,62.8,0.907 295,-1,445.8,460.2,31.2,97.7,0.885 295,-1,596.3,460,23.4,56.2,0.839 295,-1,826.2,480.6,52.4,62.3,0.501 295,-1,475.4,457.7,33.3,94.6,0.068 255,-1,653.6,448,63,189.2,1 255,-1,1227.1,436.4,203.5,380.8,1 255,-1,411.9,464,40.8,112.7,1 255,-1,923.8,413.7,162.5,630.2,1 255,-1,804.1,446.5,133.3,440.9,1 255,-1,371.7,446.1,44.6,106.8,1 255,-1,514,452.2,32.6,112.8,1 255,-1,588.8,458.5,23.9,65.3,0.997 255,-1,470.6,461,31.6,103.8,0.994 255,-1,767.9,452.9,24.5,71.5,0.987 255,-1,1809,405,112,368.5,0.986 255,-1,548.3,460.1,24.2,63.6,0.892 255,-1,606,459,23.3,61.4,0.817 255,-1,620.1,461.2,24.5,60.6,0.779 255,-1,495,457.6,21.7,105.2,0.409 255,-1,1106.1,447.5,44.3,106,0.147 453,-1,915.4,483.4,97.5,110.5,1 453,-1,1148,399.1,263,681.8,1 453,-1,379.2,463.8,51.9,115,1 453,-1,995.9,446.7,37.7,101.4,1 453,-1,579.3,361.5,365.6,719.5,0.999 453,-1,412.7,467.8,45.4,104.2,0.997 453,-1,512.3,429.3,130.6,309.8,0.969 453,-1,476.2,462.3,28.2,78.8,0.962 453,-1,1364.4,433.9,112.6,336.4,0.944 453,-1,459.5,465.1,25.4,78.7,0.774 453,-1,1061.8,436.5,160.4,527.1,0.705 453,-1,1032.2,438.6,25.2,85.9,0.301 193,-1,634.7,417.5,170.9,533.4,1 193,-1,942.1,448.3,114.1,311.3,1 193,-1,406.4,468.5,51.2,107,1 193,-1,568.4,452.3,58.9,164.6,1 193,-1,804.9,436.5,114.9,359.2,1 193,-1,370.8,444.9,44.7,106.3,1 193,-1,509,455.2,35,110.4,1 193,-1,458.1,468.2,42.1,109.3,0.999 193,-1,1142.8,449.7,42.2,100.1,0.998 193,-1,1088,483.4,39.7,111.2,0.992 193,-1,1175.1,450.8,36.2,94.8,0.985 193,-1,1099.5,438.8,42.4,102.5,0.978 193,-1,589.7,422.5,23.4,45.2,0.685 193,-1,550.4,433.3,19.9,44.9,0.16 193,-1,603.7,414,22.3,47.8,0.078 193,-1,562.2,394.1,37.1,105.2,0.058 515,-1,726.6,434.5,115.6,267.4,1 515,-1,382.6,463.8,51,115.7,1 515,-1,836.4,472.2,54.1,78.9,1 515,-1,913.2,444.8,143.1,280,1 515,-1,1546.9,376.5,323.3,704.5,1 515,-1,1042.5,442.6,102.8,238.7,1 515,-1,1178.5,448.1,36.2,89.1,1 515,-1,689.2,448.3,42.9,127.9,1 515,-1,1328.7,424.2,244,646.5,1 515,-1,572.2,455.5,32.7,84.3,1 515,-1,641.8,454.6,34.3,92.7,1 515,-1,539,461.8,29.3,74.5,0.993 515,-1,458.6,460.1,26.1,73.7,0.983 515,-1,1787.3,373,133.7,549.8,0.479 515,-1,413,471.4,48.3,96.7,0.423 526,-1,790.9,433.3,86.9,264,1 526,-1,980,442,105.6,281.6,1 526,-1,381.9,461.6,49.5,116.7,1 526,-1,895.6,406.9,89.2,305.1,1 526,-1,573.1,456.2,33.5,85.6,1 526,-1,675.6,451.5,45.2,121,1 526,-1,1067,438.8,102.6,239.2,1 526,-1,1394,421.5,216.9,639.4,1 526,-1,1178.6,447.1,37.1,90.7,1 526,-1,1580.4,369.2,339.1,711.8,1 526,-1,719.6,448.7,32.3,92.1,0.998 526,-1,416.5,467.8,45.6,104,0.998 526,-1,542.4,461.1,29.3,76.7,0.987 526,-1,650.2,454.7,31.4,91.4,0.962 526,-1,460.3,460.6,28.4,70.6,0.923 526,-1,567,432.5,19.9,38.1,0.076 474,-1,1327.4,383.5,193,697.5,1 474,-1,1149.7,415.3,156.5,595.6,1 474,-1,745.3,439.4,99.9,289,1 474,-1,617.2,431.5,77.1,278.5,1 474,-1,836.7,411.4,86,296.7,1 474,-1,911,489.9,100.9,107.9,0.999 474,-1,1044.6,442.6,40.6,108.7,0.999 474,-1,562.8,455.5,32.3,78.4,0.999 474,-1,1084.6,470.8,42.4,127.5,0.998 474,-1,992.2,447,38.1,100.2,0.995 474,-1,1111.1,440.2,42.6,140.9,0.993 474,-1,1502.4,417.6,127.5,386.4,0.992 474,-1,717,471.4,20.9,65.6,0.915 474,-1,542.1,458.2,26.9,70.6,0.85 474,-1,1,420,303.9,661,0.812 474,-1,520.7,457.8,27.7,72,0.208 474,-1,372.5,459,50.2,100.5,0.106 229,-1,1115.5,444.2,115.8,345.8,1 229,-1,747,416.9,271.8,584.4,1 229,-1,372.3,447.9,42.6,106.9,1 229,-1,612.2,451.9,51.9,180.2,1 229,-1,426.2,466.1,46.1,111.1,1 229,-1,513.6,454.7,34.7,109.5,1 229,-1,1049.6,487.1,41.3,106,0.998 229,-1,1085.9,484.3,40.3,114.9,0.99 229,-1,551.2,456.7,24.8,64.4,0.917 229,-1,658.5,464.6,30.8,80.6,0.891 229,-1,534.3,458.9,26.6,74.7,0.737 229,-1,454.1,458.3,37.7,108.9,0.719 229,-1,481.6,452.6,30.5,106.9,0.452 56,-1,914.6,482.9,96.6,112.4,1 56,-1,836.5,472.6,53.7,77.3,1 56,-1,477.3,442.6,127.2,320,1 56,-1,374.9,445.1,43.5,107.3,1 56,-1,622,446.2,90.8,276.1,1 56,-1,1260.8,446.2,35,102.6,1 56,-1,1507.3,433,54.9,125.6,1 56,-1,418.5,457.4,42.2,87.8,1 56,-1,1053.6,484.6,39.2,108.8,1 56,-1,796.7,475.8,57.2,61.7,1 56,-1,1097.4,435.4,40.6,113.4,1 56,-1,1006.9,442.9,41.4,115.6,1 56,-1,1091.2,482.6,34.2,114.8,0.999 56,-1,585.2,456.2,37,135.5,0.83 56,-1,695.4,462.2,60.4,204,0.16 205,-1,406.5,465.6,51.5,107.9,1 205,-1,1189.1,449.3,36,96.1,1 205,-1,578.7,454.1,63.1,168.4,1 205,-1,671.9,424.2,177.2,545.4,1 205,-1,828.9,436.2,156.8,378.8,1 205,-1,370.9,447.2,44.9,105.1,1 205,-1,995.7,446.6,101.4,314.9,1 205,-1,511.1,456.4,32.9,108.6,1 205,-1,1132,451,37,97.2,0.996 205,-1,456.3,464.8,33.4,110.6,0.995 205,-1,1058.1,436.2,89,281.8,0.991 205,-1,657.3,466.7,28.4,74.1,0.951 205,-1,592.2,418.3,20.4,41.3,0.409 205,-1,533,454.8,25.8,86.5,0.398 205,-1,578.7,425.2,20.4,38.2,0.373 205,-1,563.2,458.5,27.5,68,0.339 205,-1,635.6,455.3,31.7,98.2,0.103 84,-1,913.7,482.4,96.6,112.8,1 84,-1,835.7,472,53.8,78.4,1 84,-1,374.1,446.7,44.3,105.1,1 84,-1,1260.8,446.9,35.9,101.5,1 84,-1,716.8,459.9,92.3,217.5,1 84,-1,1088.3,485.5,36.2,116.5,1 84,-1,1004.7,443,42.2,110.4,1 84,-1,465.6,466.7,38.8,106.8,1 84,-1,541,441.9,108.2,335.9,1 84,-1,1052.4,481.5,40,112,1 84,-1,624.6,445.2,96.5,289.8,0.999 84,-1,421.7,458.2,39.4,85.6,0.998 84,-1,504.3,462.7,29.1,95.3,0.713 84,-1,1096.9,445.8,38.9,108.8,0.638 84,-1,521.2,462.3,31,93,0.088 455,-1,915.2,484,97.1,110.6,1 455,-1,378.1,463,51.2,115.7,1 455,-1,1154.3,398.8,269.9,682.2,1 455,-1,994.8,445.1,37.5,101.9,1 455,-1,497,372.4,394.7,708.6,0.999 455,-1,414.8,467.8,41.5,104,0.987 455,-1,1378.1,429.4,116.3,347.6,0.984 455,-1,812.9,400.1,86.7,328.2,0.844 455,-1,1039.8,441.9,27.5,82.5,0.498 455,-1,453.7,464.1,27.3,85.3,0.435 455,-1,477.8,460.5,28.1,85.4,0.343 455,-1,1060.4,445.3,29.6,88.7,0.236 455,-1,1075.1,421.1,160.7,547,0.092 99,-1,913.6,483.7,96.6,111.2,1 99,-1,1257.2,445.2,38.8,103.6,1 99,-1,373.4,445.4,44.1,106.2,1 99,-1,834,473,55.3,76.6,1 99,-1,453.3,467.4,44.8,107.1,1 99,-1,751.5,454.3,83.6,231.4,1 99,-1,547.6,440.6,119.9,359.6,1 99,-1,1088.5,484.8,35.9,116.5,1 99,-1,643.9,442,100.1,301.2,1 99,-1,1004.3,443.7,41.8,107.6,1 99,-1,1051.9,481.3,41.4,113,1 99,-1,512,465.5,30.3,104.9,0.051 350,-1,1071.5,405,193.9,610.3,1 350,-1,836.4,472.6,53.4,76.1,1 350,-1,908.7,420.4,145.8,520,1 350,-1,485.2,452.9,33.3,114.3,1 350,-1,327.4,396.3,144.7,408.3,1 350,-1,75.8,442.2,152.6,339.4,1 350,-1,796.9,475.5,57.4,61.9,1 350,-1,1509.7,437.2,41.5,110.3,1 350,-1,660,462.7,26.8,73.7,1 350,-1,636.1,461.8,24.8,64.5,0.962 350,-1,557.3,459.1,20,59,0.942 350,-1,578.8,459.1,22.7,58.4,0.922 350,-1,607.3,457.8,42.3,63,0.665 350,-1,875.3,458.7,30.1,67.2,0.118 227,-1,739.9,411.5,262.4,588,1 227,-1,372.4,447.4,43.1,107.1,1 227,-1,608.7,452,53.4,181,1 227,-1,426.2,465.1,45.6,113.3,1 227,-1,1110.2,442.6,102.7,342.7,1 227,-1,514,453.7,34.6,110.6,1 227,-1,1052.3,486.9,41.3,105,0.999 227,-1,551.4,455.8,24.4,64.1,0.93 227,-1,658.1,465.4,27.7,74.3,0.925 227,-1,532.7,458.2,27.2,77.9,0.726 227,-1,1076.6,489.2,34.5,103.8,0.624 227,-1,891.1,431.3,142.4,423.4,0.54 227,-1,481,451.8,31,105.7,0.326 571,-1,836.2,472.3,52.7,76.5,1 571,-1,1149.7,442,119.5,277,1 571,-1,720,447.8,41,102.6,1 571,-1,1653.9,404.1,254.8,676.9,1 571,-1,382.2,464.2,49,115.1,1 571,-1,797.2,476.6,55.1,60.3,1 571,-1,1020.2,412.2,121.4,294.8,1 571,-1,416.5,467,43.4,104.5,1 571,-1,551.9,459,30,82.9,0.999 571,-1,955,430.2,86.6,257.3,0.999 571,-1,640.6,451.7,36.6,109.8,0.998 571,-1,581.9,457.8,40,83.8,0.997 571,-1,666.6,450.9,37.2,103.5,0.996 571,-1,517.8,458.8,20.4,53.3,0.167 571,-1,498.3,461.9,22,56.2,0.062 34,-1,914,484,96.1,111.4,1 34,-1,835.4,472.3,54.4,77.7,1 34,-1,474.7,447.3,116.2,296.3,1 34,-1,375.9,446.9,42.2,105.6,1 34,-1,606.1,444.5,88.7,275.1,1 34,-1,418.9,457.7,41.6,87.1,1 34,-1,1619,392.6,207.8,459.7,1 34,-1,1257.1,448.4,35.3,101.2,1 34,-1,795.9,475.8,56.7,61.9,1 34,-1,1447.9,430.3,64.3,130.9,1 34,-1,1089.9,481.8,34.1,119.3,1 34,-1,1009.8,440,43,119.7,1 34,-1,1055,484.1,38.6,110.7,1 34,-1,1098.1,439.4,39.5,108.4,0.999 202,-1,666.2,428.4,168.8,527.5,1 202,-1,405.7,466.4,50.9,107.4,1 202,-1,1186.4,446.7,36.1,99.3,1 202,-1,820.3,439.3,159.9,369.6,1 202,-1,370.5,446.3,46,106.4,1 202,-1,982.9,447.5,98.1,319.1,1 202,-1,576.1,452.3,64.2,169.6,1 202,-1,510.6,456.2,35.2,109.7,1 202,-1,1137.3,449.9,38,103,1 202,-1,1042.1,433.4,106.8,286.8,0.998 202,-1,456.9,465.6,36,109.3,0.997 202,-1,590.8,422.4,22.9,43.7,0.771 202,-1,554.6,421,35.8,89,0.197 202,-1,530.8,455.5,27.2,94.7,0.177 202,-1,605.1,413.1,21.9,47.5,0.153 202,-1,1173.5,448.8,28,95.8,0.063 138,-1,912.5,483.9,98.5,110.9,1 138,-1,1216.8,444.8,41.2,103.8,1 138,-1,406.7,467.6,64.2,103.8,1 138,-1,571,446.5,148.8,406.7,1 138,-1,1088.1,484.7,38.1,115.7,1 138,-1,810.6,449.9,87,266.2,1 138,-1,373.5,445.2,42.7,107,1 138,-1,1002.3,443.5,38.8,102.9,1 138,-1,485.4,466.9,39.8,106.9,1 138,-1,692.4,434.2,104.2,330.2,1 138,-1,1053.5,482.3,37.7,110.5,0.999 138,-1,531.5,453.1,28.1,75.7,0.97 138,-1,1103.8,460.3,37,93.1,0.355 235,-1,785.5,412.4,248.7,596.3,1 235,-1,1131.1,445,145.3,352.2,1 235,-1,370.5,447.1,43.9,106.2,1 235,-1,617.6,446.3,61.2,187.1,1 235,-1,421.4,464.7,41.5,110.9,1 235,-1,514.3,453.5,33.5,111.3,1 235,-1,1086.6,482.2,40.9,116.5,1 235,-1,1047.6,484,40.9,111.8,0.994 235,-1,470.2,453.9,29.7,106.7,0.955 235,-1,548.3,457.4,25.1,64.3,0.921 235,-1,597.1,465.2,29.3,65.3,0.496 235,-1,497.9,453,27,109.9,0.361 231,-1,372.3,447.7,42.7,106.1,1 231,-1,757,420.2,275,579.8,1 231,-1,1122.9,443.2,123.9,347.5,1 231,-1,423.9,466,46.1,111.6,1 231,-1,615.2,449.8,53.2,184.3,1 231,-1,514.2,455.3,34.6,109.9,1 231,-1,1084.6,488.2,42.6,112.1,1 231,-1,1048.6,482.5,41.2,111.1,0.997 231,-1,555.4,458.2,23.9,65.1,0.917 231,-1,539.8,459.4,25.4,70.8,0.761 231,-1,453,459,37.3,107.5,0.68 231,-1,659.3,462.1,28.4,81.4,0.608 231,-1,481.3,452.3,29.7,105.7,0.388 231,-1,596.9,449.8,32.4,83.9,0.079 530,-1,797.8,433.9,117.8,264,1 530,-1,669.2,453.8,42,117.2,1 530,-1,382,463.2,49,115.4,1 530,-1,1437.5,420.5,196.6,656.9,1 530,-1,997.4,436.1,108.3,291.8,1 530,-1,573.7,454.6,34.6,87.3,1 530,-1,715.4,450.8,33.1,93.6,1 530,-1,1087.8,430.5,98,240.7,1 530,-1,910.8,401.9,83,308.4,1 530,-1,1179.5,449,35.6,88,0.999 530,-1,1625.1,344.3,295.9,736.7,0.999 530,-1,415.5,468,45.4,103,0.999 530,-1,544.7,461.3,28.7,76.6,0.98 530,-1,461,461.9,27.6,68,0.812 530,-1,569.6,433.2,21.1,38.8,0.107 530,-1,693.5,452.1,30.7,107.4,0.082 493,-1,813.3,440.1,135.7,289.7,1 493,-1,654.3,434.1,117,272.9,1 493,-1,1396.2,384.7,269.4,696.3,1 493,-1,952.2,434.2,96.6,242.8,1 493,-1,1208.4,429.5,214.8,595.9,1 493,-1,568.2,457.4,35.4,81.1,1 493,-1,380.6,463.4,54.2,117.7,1 493,-1,1180.9,450.7,35.8,84.2,0.999 493,-1,1632.9,401.1,149.7,458.6,0.999 493,-1,1084.2,450.8,42.8,147.9,0.999 493,-1,1113.2,447.6,37.7,141,0.996 493,-1,632.2,456.5,34.5,86.1,0.994 493,-1,460.8,459.7,25.3,81.1,0.987 493,-1,540,461.3,27.3,71.5,0.981 493,-1,1039,447.2,32.3,121.4,0.417 328,-1,1449.6,441.3,51,110.3,1 328,-1,490.9,454,41.6,111.6,1 328,-1,1057.6,402.8,189.5,611,1 328,-1,116.8,400.8,211,443.5,1 328,-1,900.3,422.1,142.5,524.7,1 328,-1,410.5,468.8,45.9,105.9,1 328,-1,799,477.8,54.8,59.5,1 328,-1,380.8,462.8,44.7,114,1 328,-1,658.6,463.7,26,72,1 328,-1,1754,402.6,167,450.6,0.997 328,-1,841.7,449.4,81.7,212.8,0.996 328,-1,560,459.9,22.1,60,0.966 328,-1,625.8,459.5,24.1,61.9,0.958 328,-1,582.5,459.5,21.8,58.4,0.929 70,-1,912.8,483.4,97.7,111.7,1 70,-1,836.1,471.9,53.9,77.5,1 70,-1,374.3,447.4,43.5,105.4,1 70,-1,419.3,458.2,42.6,85.8,1 70,-1,1261,447.4,34.9,100.8,1 70,-1,505.7,446,128.3,317.9,1 70,-1,1543.6,431.1,52,126.2,1 70,-1,1004.4,442.8,42.1,110.6,1 70,-1,1088.6,482.7,35.4,117.5,1 70,-1,615.4,437.3,98,296.6,1 70,-1,1053.2,481.2,39.5,114.1,1 70,-1,795.1,475.7,57.8,62.5,0.999 70,-1,696.6,455.7,74.9,221.2,0.999 70,-1,1095.9,442.6,39.3,108.5,0.998 70,-1,474.6,465,34.8,103.9,0.998 240,-1,816.3,417.5,223.7,591.1,1 240,-1,626.8,448.6,75.8,183.3,1 240,-1,369.9,447.8,44.7,104,1 240,-1,419,463.9,39,110.7,1 240,-1,1157.8,439,132.6,362.3,1 240,-1,513.4,453.1,33.2,111.3,1 240,-1,1085.2,483.4,42.2,115.7,1 240,-1,1118.2,446.6,39.7,101.8,0.997 240,-1,587.6,457.8,21.7,66.6,0.991 240,-1,474.3,455.9,32.3,107,0.985 240,-1,550.3,457.6,25.6,64.1,0.928 240,-1,1053.2,488.4,36.8,102.9,0.917 240,-1,599,460.9,25.9,66.9,0.351 240,-1,442.3,460.7,42.9,104.4,0.256 60,-1,913.3,484.5,97.8,110.2,1 60,-1,836.4,473.3,53.8,76.9,1 60,-1,482.7,443.7,128.7,319.8,1 60,-1,374.5,445,43.7,107.1,1 60,-1,1261,446.2,35.3,103.1,1 60,-1,622.3,447.2,91.2,279.5,1 60,-1,418.6,457.3,42.6,85.8,1 60,-1,1055.2,484,39.2,109.4,1 60,-1,1518.8,433.4,53.4,123.2,1 60,-1,1005.6,441.9,40.7,114.8,1 60,-1,1097.2,436.1,42.4,112.6,1 60,-1,797.6,475.2,56.3,63.1,1 60,-1,1090.1,481.7,34.9,116.3,0.998 60,-1,688.3,456.2,75.6,219.8,0.993 166,-1,537,423.6,194.3,476.4,1 166,-1,403.5,466.8,58.8,105.1,1 166,-1,1179.8,447,40.7,101,1 166,-1,753.5,441.8,113.6,338.3,1 166,-1,857.1,449.7,115.3,287.2,1 166,-1,372.4,446,42.8,104.9,1 166,-1,1087.9,484.7,39.2,115.9,1 166,-1,1000.3,443.4,38.1,103.7,1 166,-1,470.3,466.8,34.8,107,1 166,-1,1051.1,482.8,40.2,111.4,1 166,-1,1142.5,453.6,32.2,91.1,0.991 166,-1,507.7,456.5,27.8,87.5,0.756 270,-1,511.6,454.7,34.9,110.8,1 270,-1,1355.2,438.2,183.7,406.7,1 270,-1,686.6,448.8,61,191.5,1 270,-1,1643.2,413.3,152,339.7,1 270,-1,823.9,432.9,131.2,482.3,1 270,-1,946.9,401.6,170.2,646.3,1 270,-1,373.4,447,42.8,111,1 270,-1,392.7,464,42.8,113,0.999 270,-1,461.9,460.5,30.2,106.6,0.994 270,-1,585.3,459.6,23.8,62.4,0.994 270,-1,653.8,463.6,24,69.9,0.989 270,-1,559.5,461.9,23.6,60.4,0.941 270,-1,618,461,24.3,59,0.899 270,-1,782.4,454.4,25.7,73.3,0.173 534,-1,664.6,451.1,41.2,119.4,1 534,-1,803.2,437.6,126.2,254.6,1 534,-1,1453.3,427.5,214.8,652.7,1 534,-1,381.3,462.8,50.5,116,1 534,-1,1009.7,441.2,119.7,285.2,1 534,-1,717.9,452.9,32.1,93.7,1 534,-1,920.1,415.6,98.1,298.5,1 534,-1,574.9,454.6,35.6,86.5,0.999 534,-1,415.1,467.7,46,103.1,0.999 534,-1,1681.9,367.1,239.1,713.9,0.996 534,-1,1095.4,435.6,90.2,235,0.994 534,-1,543.7,461.4,30,77.2,0.989 534,-1,1177.1,445,37,88.4,0.965 534,-1,460.1,462.1,27.9,68.8,0.552 534,-1,569,433.5,20.7,38.4,0.056 454,-1,915,483.1,98.3,111,1 454,-1,1149.8,397.9,270,683.1,1 454,-1,378.2,463.5,51.9,115.7,1 454,-1,995.5,445,37.3,101.9,1 454,-1,542.9,363.2,381.6,717.8,0.998 454,-1,413.9,468.8,43.7,102.7,0.992 454,-1,1371.2,431.8,115,347,0.977 454,-1,478.4,458.7,28.3,84.3,0.965 454,-1,462.6,464.1,25.5,80.1,0.748 454,-1,1037.5,440.2,26.2,83.1,0.491 454,-1,1070.6,428.5,156.3,530.7,0.378 500,-1,849.8,433.8,131,298,1 500,-1,381.5,463.2,53.8,118,1 500,-1,689.6,432.3,89.1,276.1,1 500,-1,1467.6,374.6,241.5,706.4,1 500,-1,966.5,434.6,116.4,248.6,1 500,-1,1081.9,444,56.5,157,1 500,-1,569.9,457.4,32.9,82,1 500,-1,1227,435.5,221.2,581.8,1 500,-1,635.8,454.3,33.7,90.2,1 500,-1,796.9,476.5,57.4,61.1,1 500,-1,1178.4,450.1,35.9,85.2,1 500,-1,1675.5,402.9,209.8,483.1,0.999 500,-1,536.6,460.1,30.4,75.5,0.995 500,-1,460.2,459.8,25.9,76,0.994 282,-1,828.6,425.6,159.5,495.3,1 282,-1,510.2,456.2,34.5,109.2,1 282,-1,1457,425.3,147.1,433.6,1 282,-1,388,466.1,44.5,110.5,1 282,-1,984.9,401,155.1,654.6,1 282,-1,716.2,451.8,92,196.5,1 282,-1,1336.7,441.2,42.2,107.3,1 282,-1,658.8,461.2,25.9,75.7,0.999 282,-1,451.8,461.4,30.3,105.3,0.998 282,-1,579.2,461.3,25.8,61,0.985 282,-1,549.6,460,26.5,68.5,0.766 282,-1,604.4,459.2,24.3,57.6,0.733 282,-1,1527.9,421.6,148.9,343.1,0.603 29,-1,914,484.7,96,111.3,1 29,-1,836,473.4,53.8,75.7,1 29,-1,1429.9,430.6,67.3,130.5,1 29,-1,1555,397.7,186.9,437.7,1 29,-1,376.1,447,42.3,105.5,1 29,-1,596.6,442,90.6,270.5,1 29,-1,469.2,444.7,120.9,295.2,1 29,-1,418.4,458.5,43.2,89.2,1 29,-1,795.5,475.1,56.8,62.7,1 29,-1,1011.6,437.5,43.7,118.4,1 29,-1,1256.4,448.1,34.7,100,1 29,-1,1090.7,479.3,33.8,120.9,1 29,-1,1055,485.2,38.6,108.9,1 29,-1,1098.9,439.1,40.4,107.9,1 29,-1,1688.1,442.5,168.3,357.6,0.187 233,-1,767.5,411.2,269.7,594.9,1 233,-1,371.6,447.3,43.8,106.9,1 233,-1,1122.9,444.3,142.8,351.1,1 233,-1,615.8,447.8,56.6,184,1 233,-1,514.8,455.1,33.9,110.3,1 233,-1,422.2,465.8,45.3,110.6,1 233,-1,1086.1,486.6,40.9,110.8,1 233,-1,1047.8,483,41.9,110.9,0.997 233,-1,548,459,25.5,65,0.919 233,-1,459.7,458.5,33.2,105.5,0.845 233,-1,486.8,454.2,28.3,105.2,0.455 233,-1,598.3,464.2,31.2,72.5,0.156 519,-1,749.5,434.5,96.7,263.4,1 519,-1,382.9,463.9,50.7,115.6,1 519,-1,925.5,439.5,136.7,288.1,1 519,-1,835.7,471.9,52.7,79.3,1 519,-1,1323.3,430.9,261.6,616.6,1 519,-1,1561.3,372.8,307.1,708.2,1 519,-1,572.2,459.2,32.8,81.2,1 519,-1,1178.7,447.9,36.5,88.4,1 519,-1,688.1,452.3,39.7,122.7,1 519,-1,1051.4,441.8,100.7,237,1 519,-1,647.1,453.3,31.6,97.1,0.999 519,-1,540.4,462.8,28.9,73.9,0.993 519,-1,456.2,460,26.8,75.6,0.975 519,-1,413.1,471.5,47.5,97.6,0.541 519,-1,896.7,418.6,74,291.5,0.085 519,-1,729.2,452.6,35.7,99.9,0.063 461,-1,911.6,484.6,98.9,109.3,1 461,-1,825.8,408.2,90.4,302.4,1 461,-1,1173.2,388.7,294.6,692.3,1 461,-1,665.1,434.5,133.3,306.8,1 461,-1,1052,439.5,37.6,112.7,1 461,-1,996,446,36.6,102.7,1 461,-1,1396.9,430.9,165.4,362.9,0.999 461,-1,281.4,370.9,396.9,710.1,0.997 461,-1,644.9,460.8,32,91.6,0.15 461,-1,580.3,431.2,71.3,273.1,0.099 461,-1,790.5,445.4,41.2,155.2,0.056 289,-1,731.5,444.2,77.8,207.1,1 289,-1,1352.1,442.8,50.2,107.6,1 289,-1,1486.8,435.2,235.1,447.2,1 289,-1,845.4,433.7,174.2,503,1 289,-1,509.8,455.8,34.1,109.1,1 289,-1,998.6,408.7,153.5,637.8,1 289,-1,659,459.6,27,75.3,1 289,-1,409.3,471.8,47.1,103.7,0.999 289,-1,383.4,462.2,43.7,110.8,0.998 289,-1,576.7,461.3,26,61.2,0.974 289,-1,450.7,459.4,30.3,100.8,0.963 289,-1,597.5,458.7,23.3,58.5,0.92 289,-1,561.3,461.2,25.4,61.5,0.915 289,-1,543.5,460.1,26.8,70.6,0.827 289,-1,1147.4,449.3,51.8,100.8,0.291 588,-1,835.7,472.4,53.4,77.4,1 588,-1,722.7,447.3,44.6,108.1,1 588,-1,991.9,433.3,88.6,241,1 588,-1,1236.7,436.3,84,278.8,1 588,-1,664.7,456.2,40,102.1,1 588,-1,912.2,482.9,97.5,112.1,1 588,-1,1089.2,413,104.2,288.5,1 588,-1,381.7,464.5,48.2,113.8,1 588,-1,797.5,475.7,54.9,61.5,1 588,-1,416.5,467.2,41.4,105.1,1 588,-1,557,459.2,28.9,85.5,0.999 588,-1,630.3,455.8,35.6,102.8,0.997 588,-1,584.5,457.7,34.9,86.5,0.96 588,-1,1725.8,330.7,195.2,750.3,0.522 244,-1,1193.6,439.3,114.3,359.9,1 244,-1,631.5,450.1,74.5,186.3,1 244,-1,848,418.1,202.9,601.2,1 244,-1,370.1,447.1,44.9,104.7,1 244,-1,418.3,462.9,37.7,111.9,1 244,-1,513.4,453,32.8,111.9,1 244,-1,1084.6,481.5,41.9,116.8,0.999 244,-1,1117.6,444.9,38.9,104,0.997 244,-1,590.9,457.9,21.2,65.6,0.995 244,-1,475.5,456.6,31.7,106,0.985 244,-1,551.8,457.2,24.5,63.4,0.93 244,-1,774.1,446,141.1,421,0.247 244,-1,444.9,460,42.6,102.5,0.184 232,-1,758.6,413.8,274.5,592.2,1 232,-1,372.2,447.5,42.9,106.8,1 232,-1,1120.9,443.4,138.6,349.6,1 232,-1,615.9,449.1,54.2,184.2,1 232,-1,423,466.9,45.8,110.8,1 232,-1,514.6,456.1,34.5,109.1,1 232,-1,1085.4,489.6,40.3,108.5,1 232,-1,1048.1,483,41.3,109.4,0.995 232,-1,557.6,459.5,23.6,63.7,0.936 232,-1,454.7,459.9,35.4,105,0.672 232,-1,483,453.7,29.4,103.8,0.337 232,-1,658.3,460.4,28.7,86.8,0.155 151,-1,550.8,433.4,154.3,452.7,1 151,-1,1201.7,447.2,37.2,100.8,1 151,-1,401,466.6,63.2,105.5,1 151,-1,716.1,438.2,122.1,335.7,1 151,-1,1088.3,481.7,38.5,118.9,1 151,-1,372,446,44.3,106.4,1 151,-1,832.5,450.9,89.2,282.5,1 151,-1,1002,442.1,38.6,103.3,1 151,-1,1051.8,483.6,39.6,111.1,1 151,-1,1127.4,455.6,34,90,0.998 151,-1,473.8,465.8,40.3,109.9,0.998 151,-1,503.4,455.2,36.2,108.6,0.989 151,-1,524.8,453.3,28,92.7,0.21 151,-1,893.8,454.2,70.8,214,0.165 73,-1,912.6,483,98.1,111.3,1 73,-1,836.2,472,53,76.4,1 73,-1,374.7,447.7,43.1,104.8,1 73,-1,1261,447.1,34.9,101,1 73,-1,511.9,442.3,130,330.9,1 73,-1,419.7,457.6,41,84.4,1 73,-1,1088.1,482.8,35.8,118,1 73,-1,1003.8,443.2,42,110.9,1 73,-1,1549.2,428.4,53.3,130.1,1 73,-1,1053.1,480.9,40.8,115.2,1 73,-1,699.6,456.2,78,223.9,0.999 73,-1,473.7,469,32.3,100.4,0.999 73,-1,794.8,475.4,57.3,62.4,0.999 73,-1,616.1,437.2,97.9,293.3,0.999 73,-1,1098,439.1,37.5,116.6,0.988 258,-1,657.9,448.3,63.8,193.4,1 258,-1,407.8,463.6,42.7,112.3,1 258,-1,1242.7,437.9,192,384.3,1 258,-1,937.5,391.5,164.1,661.5,1 258,-1,810.7,435.7,132.8,463.8,1 258,-1,513.3,452.9,33.3,111.1,1 258,-1,371.2,445.5,44.3,106.2,1 258,-1,1756,396.6,165,381.3,1 258,-1,587.2,459.8,24,62.9,0.996 258,-1,773.6,448.9,26,79.2,0.994 258,-1,471.8,460.5,30.9,103,0.992 258,-1,604.8,460.4,22.9,58.5,0.948 258,-1,552.7,462.2,23.4,60.7,0.932 258,-1,625.4,462,25,61,0.521 258,-1,496.2,456.6,21.6,106.2,0.459 258,-1,762.3,451.4,22.6,76.6,0.141 258,-1,1108,447.3,41.7,105.5,0.107 404,-1,153.4,436.8,201,353.5,1 404,-1,835.6,473.7,53.4,76.3,1 404,-1,1079.8,415.9,206,610.9,1 404,-1,632.8,407.9,152.8,343.7,1 404,-1,373.6,441.4,122.8,343.5,1 404,-1,795.2,475.5,56.7,62.9,1 404,-1,894.9,439.1,58.1,176.8,1 404,-1,484.4,430.9,126.2,301.6,0.999 404,-1,978.9,422.5,140,520.6,0.999 31,-1,913.9,484.7,96.4,110.6,1 31,-1,835.6,472.8,54,76.5,1 31,-1,375.9,447.2,42.1,104.9,1 31,-1,1440.3,431.1,62.3,129.2,1 31,-1,1257,447.9,34.7,100.3,1 31,-1,598.7,443.7,90.9,275.2,1 31,-1,418.5,458.5,42.1,86.8,1 31,-1,472,442,117.7,292.1,1 31,-1,1091.1,480.6,34,120,1 31,-1,795.8,475.5,57.1,61.9,1 31,-1,1592.1,396.8,172.5,440.1,1 31,-1,1011.7,439,42.5,117.8,1 31,-1,1098.4,438.9,39.9,111.9,1 31,-1,1053.9,485.4,38.7,110.4,1 31,-1,1681.3,422.4,220.3,390.7,0.996 399,-1,835.4,473.2,52.7,76.1,1 399,-1,124,434.2,198.2,360.8,1 399,-1,1077.7,407.1,213.6,600.2,1 399,-1,620.4,408.4,122.9,339.6,1 399,-1,317,455.4,167.1,341,1 399,-1,796.5,476.4,56,61.4,1 399,-1,909.3,436.9,60.9,179.7,1 399,-1,978.5,423.4,130.2,512.7,0.999 399,-1,450,431.6,111.3,306.7,0.997 399,-1,562.3,462.2,21.3,56.2,0.873 399,-1,579.6,460.5,22.4,60.1,0.505 301,-1,769.1,443.4,71.4,211.1,1 301,-1,1604.6,431.5,178.3,458.2,1 301,-1,506.4,454.8,37,108.8,1 301,-1,885.9,424.5,144.8,508.8,1 301,-1,1013.7,398.7,156.8,627.9,1 301,-1,1172,445.8,46.2,108.4,1 301,-1,834.1,473.7,52.2,76,1 301,-1,1372.5,414.8,101.3,297.5,1 301,-1,411,470.8,46.9,104.4,1 301,-1,659,462.2,26.2,74.4,1 301,-1,382.6,463.2,43.6,112.5,1 301,-1,578.3,460.8,26.2,58.5,0.987 301,-1,553.3,459.9,26.1,63.7,0.91 301,-1,598,457.6,24.8,59.2,0.904 64,-1,912.4,484.2,98.4,112,1 64,-1,836.2,472,53.8,78.8,1 64,-1,374.1,446.1,43.6,106,1 64,-1,1260.4,446.2,35.8,101.9,1 64,-1,487.4,444.2,134.7,324.6,1 64,-1,418.7,458.1,42.2,85.4,1 64,-1,1004.4,440.7,41.8,114.7,1 64,-1,1528,427.9,52.9,128.2,1 64,-1,622.9,445.9,89.8,282.7,1 64,-1,1054.5,483.5,39.4,111.2,1 64,-1,1089.6,482.4,34.5,115.6,1 64,-1,795.8,475.2,56.4,64.3,1 64,-1,1096.7,438.3,40.8,111.2,0.999 64,-1,691.6,457.2,75.2,221.8,0.999 541,-1,656.1,452.3,40.8,117,1 541,-1,1031.9,442.5,113.9,282.8,1 541,-1,816.8,433.8,117.3,252,1 541,-1,1466.1,411.2,238.8,666.8,1 541,-1,381.7,463,49.8,116,1 541,-1,574.9,454.3,37.9,87.4,1 541,-1,714,450.9,35.5,95.3,1 541,-1,918.3,414.2,134.2,298.1,1 541,-1,415.7,468.1,44.7,102.8,0.999 541,-1,543.6,459.5,30.2,79.1,0.994 541,-1,1172.7,445.8,45.7,102.1,0.989 541,-1,797.1,478.2,48.7,65,0.778 541,-1,459.7,462.2,28.6,68.2,0.583 541,-1,507,457.6,21.7,53.7,0.521 541,-1,1762.2,372.3,158.8,708.7,0.519 541,-1,1101.3,445.5,80.9,238.5,0.142 152,-1,549,434.3,155.6,455.5,1 152,-1,1198.6,446.3,38.9,101.2,1 152,-1,398.3,467.2,66.1,104.9,1 152,-1,1088.6,479.6,38.8,120.2,1 152,-1,719.8,440.4,116.9,326.4,1 152,-1,1002,442.4,38.8,104.7,1 152,-1,830.6,455.2,92.6,277,1 152,-1,372.6,446.2,45.1,105.8,1 152,-1,1052.4,483.1,39.8,112,1 152,-1,1127.2,456.3,33.7,89.3,0.999 152,-1,474.3,466,38.9,110.6,0.999 152,-1,501.4,454.2,36.6,111.3,0.974 152,-1,887.6,441.7,77.5,222.5,0.195 152,-1,526.4,454,28,93.1,0.166 40,-1,912.8,484.8,97.1,110.3,1 40,-1,835.1,472.7,54.2,77.6,1 40,-1,1455.8,427.9,66.9,131.5,1 40,-1,1642.6,399.5,258.3,478.1,1 40,-1,375.4,446.3,42.6,105.6,1 40,-1,1258.1,447.4,35.5,102.2,1 40,-1,481.9,445,110.9,304.8,1 40,-1,1009.4,440.5,43.2,116.7,1 40,-1,417.5,458.4,42.9,87.1,1 40,-1,615.5,441.1,86,277.9,1 40,-1,1053.9,485.5,40.1,109.5,1 40,-1,796,475.5,56.2,61.9,1 40,-1,1092,480.4,32.9,117.9,1 40,-1,1097.3,437.4,41.1,112.8,1 459,-1,914.2,483.3,95.5,110.1,1 459,-1,1167.5,408.6,283.6,672.4,1 459,-1,826.4,411.5,83.4,301,1 459,-1,1052.5,440.3,39.4,113.2,1 459,-1,994.4,445.6,37.5,102,1 459,-1,1387.9,425.4,146.7,351.6,0.997 459,-1,341.6,385.2,379,695.8,0.995 459,-1,665.4,439.2,122.1,316.8,0.831 459,-1,383.6,463.5,55.1,127.9,0.777 459,-1,793.6,440.9,43.8,173.2,0.064 597,-1,915.5,483.7,94.4,112.1,1 597,-1,835.6,473.1,52.9,76.7,1 597,-1,722.8,446.8,45,111.3,1 597,-1,1249.8,445.5,106.1,273.5,1 597,-1,664.6,456.3,38.3,103.5,1 597,-1,1099.8,419,100.7,284.6,1 597,-1,797.3,475.8,55,62.2,1 597,-1,381.6,462.5,47.6,115.6,1 597,-1,1029.3,435.5,89.5,240.2,1 597,-1,416.4,467.2,42,106.2,1 597,-1,554.9,460.8,30.6,84.3,1 597,-1,629.6,454.9,35.4,100.2,0.997 597,-1,584,453.3,39.7,83.5,0.924 597,-1,992.9,450.9,34.6,93.9,0.783 5,-1,914.5,482.5,96.3,112.9,1 5,-1,836.9,472.5,52.7,77,1 5,-1,442.1,447.9,114,276.5,1 5,-1,376.2,447.1,41.3,104.3,1 5,-1,588.2,445,85.4,265.6,1 5,-1,1357.1,411.8,175.9,384.1,1 5,-1,1257.4,448.3,34.2,102.4,1 5,-1,1090.5,482.5,34.3,117.5,1 5,-1,1013.7,431,44.5,118,1 5,-1,796.9,474.7,55.6,62.9,1 5,-1,1054.1,485,39.1,108,0.999 5,-1,1099.5,438.5,40.2,108.2,0.999 5,-1,419.6,464.1,43.2,91.1,0.079 391,-1,836.9,471.7,53.1,77.8,1 391,-1,58.9,436.2,170.4,362.8,1 391,-1,1075.8,414.1,229.9,605.3,1 391,-1,567.9,405.8,125.7,357,1 391,-1,796.7,475.9,55.9,61.2,1 391,-1,370.2,436.5,177.3,306.9,0.999 391,-1,978.7,418,128.6,519.3,0.999 391,-1,929.1,435.1,66.2,180.2,0.999 391,-1,299.7,452.3,124,341.3,0.997 391,-1,524.9,459.9,23.5,63.8,0.954 391,-1,544.4,459.1,22.8,62.9,0.653 391,-1,495,460.2,29.1,80.2,0.161 14,-1,914.9,482.5,94.9,111.8,1 14,-1,836.4,472.4,53.4,76.7,1 14,-1,442.2,447.2,128.5,282.8,1 14,-1,585.8,444.5,88.3,268.5,1 14,-1,375.4,447,43.2,104.7,1 14,-1,1256.9,447.2,34.7,102.3,1 14,-1,1012.8,435.3,42,114.2,1 14,-1,1090.4,484.5,34.3,116.7,1 14,-1,1443.2,396.7,148.3,408.9,1 14,-1,796.5,475.2,55.7,62.6,1 14,-1,1100,438.9,40.2,109.4,0.999 14,-1,1055.4,485.4,38,109.5,0.999 14,-1,1391.3,436.6,61.8,130.5,0.999 14,-1,1545.8,412.1,148.5,378.6,0.996 14,-1,417,458.1,40,86.4,0.973 520,-1,751.8,434.3,95.7,261.7,1 520,-1,382.4,462.8,50.5,116.2,1 520,-1,1566.5,375.7,302.3,705.3,1 520,-1,927.6,443.2,139.3,284.9,1 520,-1,1330.8,432.7,259.2,623.5,1 520,-1,685.1,451.2,40.6,122.7,1 520,-1,572.2,459,33.8,81.4,1 520,-1,1179.7,449.3,34.8,86,1 520,-1,1050.1,442.1,102.3,234.9,1 520,-1,835.5,472.6,53.5,75.5,1 520,-1,647.3,452.5,29.7,99.6,0.998 520,-1,540.5,462.9,29.8,74.3,0.994 520,-1,725.1,449.6,30,91.2,0.954 520,-1,448.9,462.9,29.4,78.2,0.945 520,-1,415.8,471,46,97.5,0.814 520,-1,886.2,417.6,82.8,283.1,0.794 520,-1,465.1,461.5,26.3,67.9,0.719 574,-1,836.2,472.6,53.5,77.8,1 574,-1,719.5,447,41.5,104.9,1 574,-1,1157.2,437.3,128.3,279.9,1 574,-1,1664.2,387.7,256.8,693.3,1 574,-1,381.6,465.3,48.3,113.1,1 574,-1,797.4,476.9,54.8,60.5,1 574,-1,417.1,468.3,42.2,103.8,1 574,-1,1032.4,411.3,117.4,287.1,1 574,-1,553.1,459.5,31.1,83.2,0.999 574,-1,665.1,453,39.8,102,0.999 574,-1,960.6,432.5,106.9,249.3,0.999 574,-1,639.8,453.4,34.3,105.4,0.99 574,-1,583.9,457.8,38.6,83.4,0.986 574,-1,616.8,458.6,24.8,87.6,0.115 504,-1,383,463.1,52.1,116.6,1 504,-1,873.7,435.6,131.4,296.5,1 504,-1,708.3,433.8,79.1,268.4,1 504,-1,1508.6,380.9,240.7,700.1,1 504,-1,636.6,455.3,34.9,88.3,1 504,-1,987.3,438.8,98.2,240.6,1 504,-1,794.2,478.1,59.5,59.8,1 504,-1,1177.5,450,36.4,85.5,1 504,-1,571.8,456,33.5,83.1,1 504,-1,1282.9,417.9,190,607.1,1 504,-1,1707.3,417.5,209.8,471.3,1 504,-1,1085,449.3,61.8,149.5,1 504,-1,536.7,460.5,30.7,75.3,0.995 504,-1,459.9,459.5,25.4,74.7,0.986 504,-1,835.7,476,52.6,64.8,0.98 504,-1,668.2,460.1,27.7,78.1,0.924 504,-1,410.5,469.8,49.6,98.4,0.184 44,-1,912.9,483.7,97.9,111.5,1 44,-1,835.2,472.8,54.8,77.5,1 44,-1,1465.4,429.4,63.7,128.9,1 44,-1,374.2,445.9,43.7,106.8,1 44,-1,479.5,443.9,114.3,316.1,1 44,-1,1668.5,391.6,252.5,487.8,1 44,-1,1008.9,439.8,42.3,116.8,1 44,-1,1258.5,447.1,35.4,102.1,1 44,-1,617.7,443,89.1,275.4,1 44,-1,417.8,456.9,42.4,87,1 44,-1,1055,484.8,38.9,110.5,1 44,-1,795.9,475.7,56.7,61.5,1 44,-1,1090.2,480.5,33.6,119.7,1 44,-1,1097.4,437.4,40.8,110.1,1 44,-1,583.7,466.5,32.4,133.7,0.356 12,-1,914.9,482.7,93.9,112.1,1 12,-1,836.3,472.2,52.8,77,1 12,-1,587.6,443.2,84.2,265.5,1 12,-1,440.4,444.4,127.8,285.3,1 12,-1,375.3,447.2,43,104.8,1 12,-1,1014,434.5,42.1,115.1,1 12,-1,1256.9,447.8,34.6,101,1 12,-1,796.3,475,55.7,63,1 12,-1,1435.6,405.9,132.3,400.9,1 12,-1,1090,483.1,34.2,117.9,1 12,-1,1383.8,437.7,59.9,126.6,1 12,-1,1055.2,485.9,38.3,108.1,1 12,-1,1099.5,438.2,41.1,108.1,1 12,-1,1531.1,424.2,143.7,355.7,0.974 12,-1,416.6,458.3,41.6,86.4,0.946 12,-1,658.6,465.6,50.4,174.9,0.079 280,-1,1430.8,431.7,171.5,420.5,1 280,-1,389.8,465.7,42.4,111.5,1 280,-1,825.4,429.8,153,486.6,1 280,-1,509.9,455.9,35,109.7,1 280,-1,709.3,443.4,92.9,207.6,1 280,-1,981.5,401.9,158.2,646.2,1 280,-1,452.9,460.1,32.2,105.6,1 280,-1,1329.1,443.7,44.2,105.9,0.999 280,-1,658.6,462.5,25.9,72.8,0.999 280,-1,578.1,462.2,25.5,60.5,0.987 280,-1,621,461.3,23.9,57.7,0.92 280,-1,1547.1,414.7,142.4,330.2,0.907 280,-1,564.5,462.5,25.1,60.1,0.903 280,-1,546.4,460.4,27,70.1,0.771 497,-1,830,442,135.6,292.1,1 497,-1,670.2,438.5,103.8,264.7,1 497,-1,381.9,462.1,53.5,120,1 497,-1,967.8,428,105.5,253.7,1 497,-1,1429.2,378.2,261.7,702.8,1 497,-1,1080.9,445.3,55.9,153,1 497,-1,1219.6,417.7,216.3,602.8,1 497,-1,569,455.7,33.9,83.5,1 497,-1,1177.8,450.5,36.9,83.1,1 497,-1,634.3,454.2,33.6,90.7,1 497,-1,1653.1,407.4,166.7,450,1 497,-1,460,459,25.1,78,0.992 497,-1,538.9,460.6,27.8,72.8,0.983 497,-1,795.2,478.4,55.4,55.7,0.97 302,-1,770.6,444.7,73.1,210.4,1 302,-1,505.6,455.1,37.3,108.3,1 302,-1,1016.3,411.7,165.1,615.3,1 302,-1,1172.4,445,46.9,109.1,1 302,-1,1618.3,431.5,166.5,457.3,1 302,-1,410.2,469.2,47.3,105.9,1 302,-1,835.2,473.2,52.3,76.1,1 302,-1,1365.8,418.9,95,284.1,1 302,-1,658.7,462.5,25.5,74.2,1 302,-1,888.5,431.6,147.9,505.1,1 302,-1,382.5,463.7,44,111.8,1 302,-1,577.2,461.1,26.4,58.5,0.988 302,-1,554,460.3,25.8,62.9,0.908 302,-1,609.6,458.5,24.6,58.1,0.901 302,-1,621.1,458.5,41.3,63.6,0.086 507,-1,382.6,463.2,51.4,116.5,1 507,-1,883.3,439.8,145.5,290.8,1 507,-1,718.4,434.2,86.7,266.1,1 507,-1,835.3,471.7,50.9,77.8,1 507,-1,1514.7,383.3,273.7,697.7,1 507,-1,1311.1,415.9,177.5,609.9,1 507,-1,638.8,456.4,35.6,87.5,1 507,-1,1176.9,449,36.8,88.1,1 507,-1,572.3,457.3,32.2,82.5,1 507,-1,1010.1,438.8,85.3,243,0.999 507,-1,1090.3,447.6,57.8,148.3,0.999 507,-1,1738.3,403.4,177,503,0.999 507,-1,538,462.2,30.3,74.5,0.989 507,-1,460.2,459,25.2,73.3,0.97 507,-1,670.5,457.2,28.9,78.2,0.946 507,-1,801.9,478.2,55,60.6,0.762 507,-1,414,469.3,46.9,98.5,0.335 351,-1,1071.2,403.9,195.6,614,1 351,-1,836,472.6,52.9,76.3,1 351,-1,912.8,423.2,142.1,513.1,1 351,-1,485.6,452,32.8,114.4,1 351,-1,341.6,402.6,130.8,406.8,1 351,-1,78,440.5,167.8,340.3,1 351,-1,796.6,475.6,57.7,61.9,1 351,-1,1511.6,437.2,41.5,109.9,1 351,-1,659.4,463,27.6,73.9,0.999 351,-1,636.2,462.2,25.4,65.6,0.963 351,-1,557,459.4,20.5,58.7,0.952 351,-1,579,459.5,22.9,58.2,0.927 351,-1,610.7,458.9,41.9,63.8,0.781 351,-1,871.9,459,29.4,69.5,0.066 478,-1,627.5,442.2,86.4,264.6,1 478,-1,1163.1,419.2,166.2,582.9,1 478,-1,1345.3,387.6,227.2,693.4,1 478,-1,753.9,430.7,102.4,305.1,1 478,-1,1039,439.2,40.1,107.6,1 478,-1,840.4,408,83.3,303.2,1 478,-1,563.9,454,34.3,81.9,0.999 478,-1,526.7,457.7,31.3,76.9,0.998 478,-1,990.9,449,34.9,97,0.997 478,-1,1111.7,436.1,40.4,150.3,0.996 478,-1,1085.9,470.8,39.9,128,0.995 478,-1,1508.2,403.9,186,414.8,0.986 478,-1,898.9,443.6,88.7,234.1,0.805 478,-1,708.1,464.1,24.3,78.8,0.356 478,-1,1020.5,444.8,24.8,93.9,0.336 478,-1,1063.6,451.4,37.1,115.3,0.111 124,-1,915.5,483.6,94.8,110.8,1 124,-1,374.8,447,41,104.2,1 124,-1,785.1,455,95,247.7,1 124,-1,432.7,469.5,45.7,104.3,1 124,-1,564.4,440.2,137,391.8,1 124,-1,1088.4,484.6,37.5,116.8,1 124,-1,1236.9,446.2,38.7,101.8,1 124,-1,497.2,470.8,35.1,103.5,1 124,-1,682.1,437.7,99.2,316,1 124,-1,1005.8,443.5,39.2,105.2,1 124,-1,1052.2,484,39.4,109.2,1 124,-1,530.9,458.5,30.9,73.3,0.962 74,-1,913.1,483.2,97.5,111.1,1 74,-1,836.4,471.4,53.1,77.7,1 74,-1,374.8,447.4,42.9,104.8,1 74,-1,1260.5,446.9,35.8,101.1,1 74,-1,1088.2,485.3,36,116.7,1 74,-1,514.6,446.9,128.6,322.1,1 74,-1,419.2,457.4,41.8,84.6,1 74,-1,1004.3,443.5,42.1,111.3,1 74,-1,701.2,457.2,79.4,219.4,1 74,-1,1552.3,429.5,52.5,126.9,1 74,-1,1052.7,480.3,40.7,114.6,1 74,-1,472.4,467,32.9,102.4,0.999 74,-1,613.7,440.2,95,295.4,0.999 74,-1,796,475.7,55.2,61.7,0.998 74,-1,1097.5,438.5,40.3,108.2,0.981 567,-1,836.4,472.9,52.3,76.8,1 567,-1,1144.3,440.6,97.8,279.2,1 567,-1,719.9,448.4,40.5,102.4,1 567,-1,797.7,476.8,54,60.6,1 567,-1,1009.7,415.9,130.8,287.6,1 567,-1,382.3,463.4,48.2,114.6,1 567,-1,1626.5,399.1,260.3,681.9,1 567,-1,416.7,466.1,44.1,105.2,1 567,-1,937.2,433.8,79.5,236.4,1 567,-1,642.9,453.2,36.5,109.4,1 567,-1,551.7,458.3,30.3,83.1,1 567,-1,581.2,458.3,41.4,82.8,0.999 567,-1,666.9,451.1,34.4,99.8,0.944 567,-1,503.3,458.9,22.7,56.2,0.818 567,-1,520.3,458.3,21.6,54.8,0.737 567,-1,1214.9,444.3,52.6,113.9,0.59 502,-1,383,463.7,52.2,116.6,1 502,-1,700.2,434.2,82.2,272.7,1 502,-1,864.6,437.3,127.8,292.8,1 502,-1,1488,374.3,236.3,706.7,1 502,-1,1260.4,419.6,193.3,606.7,1 502,-1,975.3,434.9,111.4,246,1 502,-1,1084.5,446.3,57.2,151.9,1 502,-1,636.6,456.1,33.3,87.7,1 502,-1,571.2,457.5,32.8,82,1 502,-1,1689,408.3,219.7,484.4,1 502,-1,795.1,477.3,57.8,59.7,1 502,-1,1178.7,450.1,35.5,84.8,1 502,-1,459.9,459.6,26.4,77.7,0.994 502,-1,537.1,461.1,30.3,74.2,0.993 502,-1,671.5,463.1,31,86.5,0.254 38,-1,914.5,483.8,95.1,111.9,1 38,-1,835.2,472.1,54.2,78.8,1 38,-1,1635.1,399.1,245.9,466.5,1 38,-1,1453.7,427.8,64.3,131.5,1 38,-1,375,446.4,42.9,106.1,1 38,-1,1257.9,447.5,35.3,101.7,1 38,-1,481,443.9,114.2,305.6,1 38,-1,609.5,442.4,90.3,277.2,1 38,-1,418.1,457.1,42,87.1,1 38,-1,1009.6,440.6,43,118.4,1 38,-1,795.7,475.1,56.7,62.7,1 38,-1,1090.8,483.1,33.4,116.8,1 38,-1,1053.9,485.3,39.2,109.4,1 38,-1,1097.7,438.7,40.5,111.6,0.999 144,-1,401.6,466.1,63.1,105.5,1 144,-1,564.6,440.9,154.1,429,1 144,-1,1209.6,447.9,39.1,100.9,1 144,-1,915.6,484.5,92.9,113,1 144,-1,1087.6,487.4,38.2,112.5,1 144,-1,699.3,439.1,127.3,324.7,1 144,-1,819.3,449.6,88.7,266.2,1 144,-1,1002.5,444.8,38.2,101.1,1 144,-1,479,467.3,42.5,107.9,1 144,-1,372.8,445.4,44.2,106.6,1 144,-1,1052.2,483.8,39,108.6,0.999 144,-1,516.2,462.3,30.2,72.8,0.955 144,-1,1114.7,449,39,96.6,0.952 144,-1,534.4,454.9,27.3,70.6,0.845 384,-1,835.7,472.3,53,77.6,1 384,-1,1085.3,398.3,205.4,626.7,1 384,-1,541.4,398.9,141.2,372.3,1 384,-1,2.3,434.2,201.1,381,1 384,-1,200.9,435.4,175.8,379,1 384,-1,796.9,476.6,55,61.1,1 384,-1,968.8,423.1,136.6,516.6,1 384,-1,469.7,452.5,39.4,109.8,1 384,-1,353.1,443.7,106.3,300.3,0.999 384,-1,515.2,459.3,27.2,69.4,0.94 28,-1,914.3,483.6,95.7,112.6,1 28,-1,836.1,473.4,53.8,76.3,1 28,-1,1424.4,428.3,70.3,131.9,1 28,-1,375.5,447.1,43,105.7,1 28,-1,1533.1,407.1,204.2,422.3,1 28,-1,594.4,442.6,91.2,275.9,1 28,-1,466.6,446.8,117.2,287.5,1 28,-1,795.8,475.5,57,62.3,1 28,-1,1256.6,448.2,34.5,100.4,1 28,-1,418.2,458.7,42,88.3,1 28,-1,1012,437.6,42.9,116.8,1 28,-1,1055.6,486.2,38,107.7,1 28,-1,1091.5,477.6,33,121.4,1 28,-1,1098.3,438,40.8,110.7,1 28,-1,1665.5,421.1,147.7,388.7,0.368 395,-1,836.3,471.6,54,78.5,1 395,-1,82.3,429.5,182.5,365.2,1 395,-1,593,406.8,121.1,345,1 395,-1,1072,406.2,234,605.2,1 395,-1,306.6,446.1,169.8,355.8,1 395,-1,797.2,476.2,55.9,62,1 395,-1,920.2,436.9,61.6,180.6,0.999 395,-1,977.6,420.2,128.3,522.9,0.999 395,-1,529.7,460.8,21.7,61.3,0.939 395,-1,558.5,460.5,20.8,59.5,0.896 395,-1,569.5,464.7,24.5,72.5,0.13 485,-1,1364.5,396.7,285.2,684.3,1 485,-1,645.3,434,101.4,267.8,1 485,-1,1193.1,419.1,167.4,594,1 485,-1,1036.2,440.1,39.7,108.2,1 485,-1,566.5,453.8,35.1,81.7,1 485,-1,800.6,435.9,103.8,294.4,1 485,-1,884.9,432.5,126.5,255.6,0.999 485,-1,742.1,445,46.8,135.3,0.999 485,-1,1086.8,464.8,37.5,135,0.999 485,-1,462.9,460.4,29,80.9,0.998 485,-1,1111.9,440.2,39.7,146,0.997 485,-1,533.1,456.8,26.8,73.7,0.989 485,-1,1542,407.7,215.8,428.6,0.96 485,-1,623.6,465.4,27.8,79.2,0.137 485,-1,1171.2,456.1,22.4,84.5,0.053 471,-1,915.9,484.1,94.4,110.5,1 471,-1,741,438.9,96.9,300.3,1 471,-1,604.3,429.8,81.8,280.6,1 471,-1,1300.5,396.6,201.3,677.7,1 471,-1,1143.9,422.2,149.6,569,1 471,-1,836.2,407.5,86.4,300.2,1 471,-1,1082.7,475.5,44.9,122.2,1 471,-1,994.1,447.1,37.4,97.9,0.999 471,-1,1047.4,440.3,40.1,111.6,0.999 471,-1,8.6,368.4,384.8,712.6,0.996 471,-1,1485.4,421.6,114.5,378,0.996 471,-1,562.3,456.4,32.9,77.4,0.994 471,-1,381.7,460.6,42.5,114.1,0.993 471,-1,713,473.5,21.9,67.6,0.891 471,-1,1107.2,458.5,35.6,120.8,0.397 299,-1,764.4,444.9,66.3,206.1,1 299,-1,507.1,455.3,36,108.4,1 299,-1,1574.3,430.9,196.7,456.6,1 299,-1,1165.7,443,48.1,110.9,1 299,-1,875.3,425.2,152.7,509.9,1 299,-1,1384.1,423.6,115.8,286,1 299,-1,1014.5,406.5,158.8,630.2,1 299,-1,833.1,476.4,53.3,71,1 299,-1,410.3,471.4,46.4,104.5,1 299,-1,382.1,462.1,42.9,113.1,1 299,-1,659.2,462.8,25.6,71.6,0.999 299,-1,579.1,460.4,26,59.5,0.991 299,-1,560.6,460.8,25.4,60.5,0.906 299,-1,599.7,458.1,25.3,58,0.716 299,-1,438.4,463.9,29.3,96.6,0.244 3,-1,916.2,481.4,93.5,113.6,1 3,-1,836.7,472.7,53,77.1,1 3,-1,1346.8,417.5,172.8,379.6,1 3,-1,375.7,446.6,42.3,104.8,1 3,-1,441.1,448.3,110.7,274.8,1 3,-1,586.7,442.4,86.6,269.8,1 3,-1,796.2,474.8,56.1,62.7,1 3,-1,1256.7,448.9,34,101.1,1 3,-1,1090.2,482.2,34.9,117.9,1 3,-1,1015.5,430.3,43.3,119.4,1 3,-1,1054.7,484.2,39.1,108.6,1 3,-1,1099.1,438.7,41.7,109.8,0.999 3,-1,1489,448.8,111.2,324.4,0.052 6,-1,914.3,483.5,96.2,111.7,1 6,-1,836.1,473.1,53.3,76.4,1 6,-1,376.2,447,41.6,105.5,1 6,-1,586.4,443.9,87.8,267.6,1 6,-1,441.5,444.1,117.7,285.6,1 6,-1,1361.5,409.3,172.1,387.6,1 6,-1,1257.4,447.2,34.1,102.9,1 6,-1,1090.8,482.5,34.4,117.8,1 6,-1,1014.4,431.4,43.7,117.2,1 6,-1,796.3,475.3,56.6,61.6,1 6,-1,1055.6,485.4,38.6,108.5,1 6,-1,1099.8,438.4,40.9,109,0.999 6,-1,1484.7,431.7,131,344.4,0.364 8,-1,914.2,482.2,96.2,113.3,1 8,-1,836.7,472.6,53,76.7,1 8,-1,375.5,446.8,42.4,104.9,1 8,-1,439.2,446.1,124,285.2,1 8,-1,585.6,444.3,87.1,268.6,1 8,-1,1388.5,411.3,155,389.4,1 8,-1,1013.9,434.2,41.4,114.3,1 8,-1,1256.8,448.1,34.4,101,1 8,-1,1091.2,481.8,34,118.6,1 8,-1,1054.2,485.6,38.8,108.4,1 8,-1,796.4,475.1,56.1,62.8,1 8,-1,1099.9,438.6,41.7,106.6,1 8,-1,1483.5,417.4,145.5,366.1,0.993 8,-1,418.5,463.3,46.5,95,0.064 13,-1,914.8,482.8,95.1,112,1 13,-1,836.1,471.9,53.5,77.8,1 13,-1,441.5,445.1,130.6,283.8,1 13,-1,587.2,440.2,86.6,275.5,1 13,-1,376.3,448,42.9,103.2,1 13,-1,1257.2,447.6,34.7,101.2,1 13,-1,1445.2,403.6,133,398.1,1 13,-1,1090.3,484,34.3,117.2,1 13,-1,1013.8,434.9,42.4,112.9,1 13,-1,796,475.2,56,62.8,1 13,-1,1054.7,485.7,38,107.9,1 13,-1,1100,437.4,40.2,109.4,0.999 13,-1,1387.1,437.6,62.3,127.6,0.999 13,-1,1540.1,426.9,145.3,364.1,0.992 13,-1,416.5,458.9,39,87,0.979 21,-1,914,484.4,96.2,110.3,1 21,-1,836.3,472.6,53.9,77.2,1 21,-1,1460.7,414.7,240.9,408,1 21,-1,451.1,442.4,125.6,294.2,1 21,-1,375,446.2,43.4,106.5,1 21,-1,1417.7,438,55.2,127.3,1 21,-1,1256.8,448.8,35.1,99.6,1 21,-1,1012.1,436.6,43.6,117.8,1 21,-1,589.7,442.3,90.8,272.2,1 21,-1,796,476.1,57,60.4,1 21,-1,1091.3,480.9,33.6,118.2,1 21,-1,1099.2,438.9,39.2,112.8,1 21,-1,1056.9,485.7,37.2,111,0.999 21,-1,419.1,457.3,39.8,84.5,0.999 22,-1,914,483.8,97.1,111.6,1 22,-1,836.5,472.6,53.6,77.4,1 22,-1,452.9,440.6,121.9,295.9,1 22,-1,1471.6,409.1,239.9,421,1 22,-1,375.1,446.2,43.2,106.4,1 22,-1,1256.9,448.5,34.8,100.1,1 22,-1,1415.8,433.3,59,131.5,1 22,-1,589.8,443.6,91.7,270.4,1 22,-1,1012,435.2,44.1,120.5,1 22,-1,795.7,475.8,56.8,61.3,1 22,-1,1090.8,481.5,33.8,117.5,1 22,-1,1098.6,439.2,40.4,111.2,0.999 22,-1,1054.3,485.9,38.5,108.4,0.999 22,-1,418.2,457.4,42.1,85.4,0.999 23,-1,914.7,483.6,95.1,112.1,1 23,-1,837.3,472.3,52.8,77.6,1 23,-1,1473.4,413.8,233.6,416.6,1 23,-1,455,443.5,122.9,295.1,1 23,-1,375.2,446.8,43.5,105.6,1 23,-1,1415.3,432.7,64.2,129.8,1 23,-1,1257,449,34.7,99.2,1 23,-1,590.5,442.1,91.5,273.2,1 23,-1,1010.5,434.4,45.4,123.2,1 23,-1,1091,480.8,33.7,118.8,1 23,-1,795.5,475.6,56.6,61,1 23,-1,1054.6,485.7,38.3,108.8,1 23,-1,418.5,458.3,42.7,85.4,1 23,-1,1098.7,438.8,40.3,111.7,0.999 26,-1,914.8,483.1,94.7,112.7,1 26,-1,836.3,473.2,53.8,76.5,1 26,-1,1420.9,429.1,68.7,133.3,1 26,-1,1504,403.7,218.6,428.4,1 26,-1,375.3,446.1,43.4,107.4,1 26,-1,460.5,443.6,121.1,290.3,1 26,-1,593.5,441.2,89.5,274,1 26,-1,795.8,475.7,57.2,62,1 26,-1,1256.7,448,34.9,100.6,1 26,-1,1012.3,436.8,43.3,117.9,1 26,-1,418.4,458.1,42,88,1 26,-1,1091.8,478.6,33,121.1,1 26,-1,1053.9,483.6,39.1,112.1,1 26,-1,1098.1,439.8,40.7,109.7,1 26,-1,1640.9,416.2,145.9,387.9,0.154 36,-1,912.7,483.4,98.6,112.1,1 36,-1,835.8,471.9,54.1,79.2,1 36,-1,1626,390.4,232.1,478.9,1 36,-1,375.1,446.5,42.6,105.6,1 36,-1,1451.9,428.9,63.2,132.8,1 36,-1,1257.2,448,35.7,102.3,1 36,-1,605.9,445.9,90.1,273.9,1 36,-1,418.9,457.6,41.7,87.7,1 36,-1,477,445.7,115.9,292.5,1 36,-1,1089.8,484.4,34.1,116.8,1 36,-1,1009.1,440.8,42.6,118.6,1 36,-1,795.2,476.3,56.3,61.4,1 36,-1,1054.1,484.4,39.8,110.4,1 36,-1,1097.6,438.7,39.5,110.5,0.999 36,-1,670.5,482.4,54.6,190.8,0.093 39,-1,914.2,484,95.6,111.7,1 39,-1,835.1,472.6,54.7,77.7,1 39,-1,1636.9,399.3,249.3,470,1 39,-1,1452.9,427.1,67,132.9,1 39,-1,374.6,446,43.4,106.3,1 39,-1,1258.1,447.3,35.4,102.7,1 39,-1,611.9,441.6,88.8,277.8,1 39,-1,1009.7,439.9,42.9,118,1 39,-1,479.5,445.1,114.4,303.4,1 39,-1,417.7,457.2,43,86.5,1 39,-1,796.3,475.6,56.1,61.5,1 39,-1,1091.1,481.8,33.2,117.3,1 39,-1,1053.8,485.4,40.1,108.7,1 39,-1,1098,436.6,40,112.9,1 49,-1,913.2,483.2,98.4,111.6,1 49,-1,835.9,472.8,53.7,77,1 49,-1,478.9,440.9,113.9,315.4,1 49,-1,374.8,445.2,43.4,107.6,1 49,-1,622.8,444.2,89.7,274.6,1 49,-1,1260.5,445.7,35.3,103.7,1 49,-1,1489.1,429.8,56.4,129.6,1 49,-1,418.6,457,42.9,88.4,1 49,-1,1007.6,442.9,41.8,114.3,1 49,-1,1091.3,481.5,33.1,117.6,1 49,-1,1053.5,483.3,38.8,111.6,1 49,-1,795.6,474.9,56.3,61.7,1 49,-1,1098.6,437.2,40.5,109,1 49,-1,580.3,454.2,43.5,136,0.999 49,-1,1762.5,392.7,158.5,478.5,0.969 50,-1,912.8,483.9,98.6,110.9,1 50,-1,835.8,472.9,53.7,76.8,1 50,-1,480.1,441.7,112,314.8,1 50,-1,374.3,445.8,43.9,106.9,1 50,-1,1491.3,430.4,55.8,131.7,1 50,-1,624,444.5,89.3,274,1 50,-1,1260.5,446.1,35.4,102.7,1 50,-1,418.3,456.2,43.3,89.8,1 50,-1,1008.8,443.7,40.4,111.6,1 50,-1,1099,437.9,40.6,106.7,1 50,-1,795.6,475.4,57.1,61.3,1 50,-1,1053.9,483.2,38.8,112.2,1 50,-1,1091.7,478.7,33.1,120.2,1 50,-1,580.5,453.6,44,135.6,0.998 50,-1,1777.7,391.1,143.3,477.8,0.952 61,-1,914,483.9,96.9,111.8,1 61,-1,836.4,471.4,53.1,80,1 61,-1,483.1,443,129.4,324.5,1 61,-1,374.4,444.6,43.5,107.9,1 61,-1,1260.5,445.9,36.3,102.3,1 61,-1,1521.1,429.5,53.5,127.6,1 61,-1,1055.1,483.9,39.1,109.9,1 61,-1,418.7,458.5,42.4,85.3,1 61,-1,1005.7,440.5,40.5,114.5,1 61,-1,624.3,443.1,89.3,283,1 61,-1,1096.6,436,42.4,115.4,1 61,-1,797.3,475.7,56.3,62.2,0.999 61,-1,689.2,456.7,75.5,221.6,0.996 61,-1,1087.6,479.2,34.6,113.4,0.679 66,-1,912.3,483.8,97.8,111.8,1 66,-1,835.9,472.6,53.7,78.4,1 66,-1,491.2,448.1,136.4,317,1 66,-1,374.6,447.1,43.1,104.4,1 66,-1,418.9,458.2,40.9,84.7,1 66,-1,1260.4,446.7,35.5,101.3,1 66,-1,1533.6,430.1,52.3,127.1,1 66,-1,1004.3,441.7,42.1,114.6,1 66,-1,1054.9,481.3,38.9,113.8,1 66,-1,796.7,474.9,56.4,63.9,1 66,-1,621.1,444.6,91.7,286.6,1 66,-1,1088.8,482.3,35.1,116.2,1 66,-1,1095.9,440.8,41,108.1,0.998 66,-1,692.9,456.9,74,221.4,0.998 68,-1,912.8,483.8,97.4,111.8,1 68,-1,835.7,472.8,54.1,76.5,1 68,-1,374.4,447.3,43.3,104.8,1 68,-1,419.5,458.2,42,85.7,1 68,-1,500,440.8,133,329,1 68,-1,1260.8,447.5,35.1,101,1 68,-1,1539.3,432.5,49.8,126.4,1 68,-1,1089,483,35.3,116.5,1 68,-1,1053.6,481,39.4,113.7,1 68,-1,796.2,475.5,57.2,63,1 68,-1,1005.4,441.4,40.9,111.3,1 68,-1,616.1,442.5,96.6,290.2,1 68,-1,1096.2,441.8,40.1,107.3,0.999 68,-1,694.8,455.2,76,221.5,0.998 68,-1,477.9,465.6,31.8,94.4,0.98 68,-1,462.7,464,26.8,81.4,0.073 78,-1,913,484,97.4,111.3,1 78,-1,836,472,52.6,76.6,1 78,-1,374.8,446.4,43.1,105.7,1 78,-1,1259.5,448.1,36.5,99.9,1 78,-1,1088.5,485.5,37.2,116,1 78,-1,704.4,456.4,86.9,224.5,1 78,-1,418.8,457.4,41.7,86.3,1 78,-1,529.9,448,118,325.6,1 78,-1,1052.7,481.3,40.2,112.9,1 78,-1,1003.8,443.5,42.6,109.5,1 78,-1,469.9,465.8,35.3,100.3,0.999 78,-1,617.6,441.1,93.2,288.6,0.998 78,-1,799.1,477,51.1,58.6,0.699 78,-1,1097.6,447.2,39.8,104,0.525 85,-1,913.7,483.6,96.5,111.6,1 85,-1,836.4,471.1,52.8,80.1,1 85,-1,373.8,446.8,44.6,105,1 85,-1,719,457.8,91.8,221.4,1 85,-1,1261.5,447,35.2,101.1,1 85,-1,1089.2,482.7,36,119.3,1 85,-1,542.8,443.6,108,335.3,1 85,-1,1004.6,443.4,41.8,109.6,1 85,-1,1053.6,481.7,40.3,112,1 85,-1,422.3,459.3,41.1,85,1 85,-1,624.3,441.9,98.7,297.1,0.999 85,-1,467,466.6,37.5,105.1,0.999 85,-1,504.3,460.8,30.4,98.4,0.915 89,-1,913.5,483.4,97.5,112,1 89,-1,836.7,471.9,52.4,78.4,1 89,-1,373.4,446.3,44.7,105.8,1 89,-1,1261.2,448.2,34.7,100.8,1 89,-1,1087.8,483.2,37.7,119.4,1 89,-1,546.4,447.8,115.6,332.4,1 89,-1,724.9,452.5,94.1,233.7,1 89,-1,1005.1,443.5,41.4,106.7,1 89,-1,462.8,467.7,40.6,100.3,1 89,-1,1053.8,483.9,40.1,109.9,1 89,-1,628.7,444.5,102.9,294.1,0.999 89,-1,425.8,458.4,38.2,88.3,0.998 89,-1,505.9,461.4,29.4,97.5,0.858 89,-1,486.2,462.5,33.4,96.5,0.481 90,-1,913.9,482.6,97,112.4,1 90,-1,836.2,472.2,51.7,78,1 90,-1,373,446.7,45.2,105.3,1 90,-1,1261,448.2,35,100.6,1 90,-1,1088,483.9,37.3,118.4,1 90,-1,727.2,453.1,91.2,233.7,1 90,-1,546.1,445.2,114.7,336.4,1 90,-1,462.8,467.7,42,103.9,1 90,-1,1005.2,443.9,41.1,106.1,1 90,-1,1054.5,483.5,40,110.3,0.999 90,-1,635.2,445.4,99.8,290.7,0.999 90,-1,426.1,457.3,36.9,88.6,0.995 90,-1,505.4,461.8,30,97.6,0.858 92,-1,914.2,483.3,97.1,111.7,1 92,-1,835.5,473.1,54.9,77.8,1 92,-1,373.6,446.8,44.6,104.5,1 92,-1,1260.2,447.2,36.2,101.4,1 92,-1,1088.6,483.9,37.1,117.7,1 92,-1,550.7,444.4,115.6,346.7,1 92,-1,731.8,455.1,88.9,225.2,1 92,-1,1004.8,442.4,40.4,108.1,1 92,-1,462,468.4,42.4,103.3,1 92,-1,1052.3,482.4,39.3,110.9,1 92,-1,633,436.1,103,306.1,0.999 92,-1,424.8,456.2,39.2,90,0.996 92,-1,508.6,462.7,28.8,101.7,0.614 103,-1,913.5,483,97.4,112.3,1 103,-1,373.9,446.9,43.2,105,1 103,-1,835.5,473.3,54.6,74.7,1 103,-1,1255.3,446.5,38.8,101.3,1 103,-1,450.3,467.1,45.9,106.3,1 103,-1,1088.7,483.5,36.8,118,1 103,-1,757.2,454.1,82.2,236.6,1 103,-1,553.8,446,120.1,360.8,1 103,-1,1005.2,442.9,40.7,107.8,1 103,-1,655.2,438.8,99.5,307.6,1 103,-1,1052.8,482.1,39.9,110,1 103,-1,505.8,464.3,30.7,104.5,0.951 103,-1,479.3,466.3,31.4,96.1,0.161 104,-1,913.4,482.5,96.8,112.7,1 104,-1,374.5,446.6,42.9,105.1,1 104,-1,835.9,472.5,54.6,76,1 104,-1,448.4,466.5,45.3,105.6,1 104,-1,1253.8,446.2,39.4,101,1 104,-1,552.8,441.7,123.8,364.6,1 104,-1,757.6,455.1,84.4,239.2,1 104,-1,1089.2,483.2,36.2,118.2,1 104,-1,1004.8,443.4,40.3,106.3,1 104,-1,1051.3,482.4,40.7,110.4,1 104,-1,657.3,437.3,101.3,303,0.999 104,-1,507.9,464.8,31.7,101.2,0.992 104,-1,489.4,465.5,27.9,86.5,0.579 107,-1,914,482.9,96.5,113.2,1 107,-1,374.3,446.5,43.1,106,1 107,-1,835.2,472.5,54.6,77.4,1 107,-1,1249.7,446.5,39.7,101.6,1 107,-1,1088.2,482.4,37,118.9,1 107,-1,446.3,468.4,45.5,102.1,1 107,-1,554.1,442.1,126.1,366,1 107,-1,759.5,458.3,84.4,238.2,1 107,-1,1005.7,442.8,40.2,107.3,1 107,-1,663.5,438.7,99,303.9,1 107,-1,1053,482,40.4,109.8,1 107,-1,505.9,465.5,34.9,105.2,0.999 108,-1,913.6,482.4,96.8,113.3,1 108,-1,374.2,446.5,43,106.1,1 108,-1,835,471.8,54.3,78.2,1 108,-1,1249.5,447.3,39.5,100.4,1 108,-1,1088.3,482.6,37.1,119.8,1 108,-1,446.6,468.5,44.8,102.6,1 108,-1,761,455.2,83.7,241.3,1 108,-1,553.7,443,128.3,363.5,1 108,-1,662.5,438.2,101.3,307.9,1 108,-1,1052.5,482.4,40.8,110,1 108,-1,1005.6,443.2,40.1,107,1 108,-1,504.1,464.9,37.3,108.3,1 117,-1,914.2,484.2,97.2,109.8,1 117,-1,373.5,445.4,43.4,107.4,1 117,-1,439.2,466.9,42.3,104.4,1 117,-1,1088.4,482.7,37.6,119.3,1 117,-1,554,443,135.4,378.9,1 117,-1,1240.6,443.8,40.5,103,1 117,-1,671.6,440.3,100.8,315.4,1 117,-1,498.7,466,36.6,108.4,1 117,-1,772.6,450.5,86.3,250.7,1 117,-1,1051.3,483.5,39.8,109.5,1 117,-1,1006.9,446.6,38.6,99.9,0.999 117,-1,536.3,462.6,27.3,69,0.631 117,-1,832.1,468.5,52.1,85.3,0.089 117,-1,553.1,466.1,25.8,74.4,0.066 126,-1,914.8,482.5,95.9,111.4,1 126,-1,373.5,446.8,42.4,104.4,1 126,-1,786.8,459,95.2,250.6,1 126,-1,427.1,467.9,52.1,105.2,1 126,-1,1232.7,447.2,39.2,101.6,1 126,-1,570.3,450.8,136.4,376,1 126,-1,1087.8,483.3,37.9,117.1,1 126,-1,1004.7,445.7,39.4,101.1,1 126,-1,496.8,469.8,34.6,105.6,1 126,-1,1052.3,483.3,39.3,109.7,1 126,-1,682.7,437,98.4,319.1,0.999 126,-1,528.3,457.8,30.5,69.5,0.986 128,-1,912.5,484.2,95.7,111.4,1 128,-1,424.3,464.9,53.6,109.4,1 128,-1,373.2,446.7,43,105.5,1 128,-1,1228.6,445.4,41,102.3,1 128,-1,786.8,451.6,97.9,259.4,1 128,-1,1086.7,482.3,39.4,117.5,1 128,-1,569.8,438.5,138.5,392.4,1 128,-1,494.8,468.6,35.2,106.5,1 128,-1,1004.6,445.7,39.3,101,1 128,-1,1053,483.3,40,109.2,0.999 128,-1,682.2,440.4,100.5,323.2,0.999 128,-1,531.5,455.3,30.8,70.6,0.976 129,-1,914,484.3,96.2,110.5,1 129,-1,421.8,463.9,54.6,110,1 129,-1,789,454.7,96.8,251.1,1 129,-1,373.3,446.9,43.6,105,1 129,-1,1087.3,481,39.3,118.8,1 129,-1,1227.5,447.9,40.4,99.3,1 129,-1,569.4,439.6,141.3,391.1,1 129,-1,493.4,469.1,36.1,104.8,1 129,-1,1005.5,444.5,38.6,102.6,1 129,-1,1052.3,482.5,39.5,110.1,1 129,-1,686.2,436.6,97.9,327.2,0.999 129,-1,530.8,455.6,30.6,71.6,0.988 130,-1,914.1,484.5,96.8,110.2,1 130,-1,573.2,439.9,136.2,393.4,1 130,-1,420.8,464.3,55,108.9,1 130,-1,792.5,453.7,93,258.3,1 130,-1,373.7,446.9,43.1,104.9,1 130,-1,1226.8,448.9,40.6,97.8,1 130,-1,1087.2,481.9,39.5,118.2,1 130,-1,492.6,469.4,36.7,105.8,1 130,-1,1006.3,444.5,38.8,102.3,1 130,-1,1051.6,482.3,39.6,109.2,1 130,-1,685.1,439.3,101.5,325.1,0.999 130,-1,530.6,455.1,30.9,74.3,0.986 135,-1,913.4,484.6,97.4,110.4,1 135,-1,803.3,448.3,90.6,264,1 135,-1,410.4,468.7,62.3,102.1,1 135,-1,1219.8,446,40,102.4,1 135,-1,575.4,449.9,140.6,387.5,1 135,-1,373.2,446.2,42.8,105.7,1 135,-1,1087.4,485.2,38,115.6,1 135,-1,1003.4,444.2,38.6,103.3,1 135,-1,488.4,468,38.9,104,1 135,-1,1054.1,484.5,38.2,108.4,0.999 135,-1,689,427.5,100.2,330.6,0.999 135,-1,529.6,456.3,31.1,75.4,0.984 135,-1,465.7,470.4,27.5,90.8,0.185 136,-1,914.7,484.9,95,109.5,1 136,-1,410.3,468.2,62,103.4,1 136,-1,806.2,448.6,89.7,264.6,1 136,-1,1219.8,446.5,39.2,101.8,1 136,-1,574.5,447.2,140.6,396.5,1 136,-1,1087.5,484.9,38.4,116.4,1 136,-1,373.3,447.2,43,104.9,1 136,-1,1002.9,444.1,38.4,102.8,1 136,-1,487.2,467.9,40.1,104,1 136,-1,689.5,438.5,101.5,317.6,1 136,-1,1053,483.9,37.6,109.3,0.999 136,-1,530.3,455.8,31,76.5,0.987 136,-1,469.1,471.2,27.5,92.1,0.106 141,-1,912.2,482.9,98.2,111.9,1 141,-1,1212.9,446.3,40.6,103.4,1 141,-1,405.9,466.8,62.7,103.8,1 141,-1,567.6,437.8,155.3,427.7,1 141,-1,1087.5,487.5,38,112.9,1 141,-1,1003.1,443,38.3,103.4,1 141,-1,697.7,433.9,113.8,331.8,1 141,-1,373.9,446.1,42.8,105.6,1 141,-1,482.4,468.3,41.5,105.8,1 141,-1,816.4,449.6,89.8,266.9,1 141,-1,1053.2,484.5,39.8,108.6,0.998 141,-1,532.9,455.4,29.1,71.3,0.971 141,-1,1107.8,458.3,36.1,86.3,0.686 142,-1,913,482.5,97.7,112.9,1 142,-1,405.6,466.4,60.6,104.3,1 142,-1,1212,445.6,40.1,103.1,1 142,-1,1088.1,486.9,38.1,113.9,1 142,-1,569.6,444.8,148,414.9,1 142,-1,1003.6,443.4,37.8,103.1,1 142,-1,481.6,466,42.2,107.6,1 142,-1,373.6,446.3,43,105.3,1 142,-1,815.6,448.7,91.8,274.2,1 142,-1,697.5,437.7,121.5,335.3,1 142,-1,1052.9,484.3,39.8,109,0.998 142,-1,526.9,459.3,29.7,69.7,0.967 142,-1,1105.6,460.8,36.8,88.5,0.533 154,-1,543.5,429.9,159.1,458.4,1 154,-1,1196.2,447.7,39.4,100.3,1 154,-1,399.2,468.3,64.4,104.3,1 154,-1,722.2,436.2,120.8,337.1,1 154,-1,1087.7,482.3,39.9,117.4,1 154,-1,472,467,40.3,111.1,1 154,-1,372.5,446.5,44.3,105.1,1 154,-1,1002.2,443.1,38.2,103.9,1 154,-1,832.2,446.9,90.2,289.7,1 154,-1,1051.5,482.9,40.4,111.2,1 154,-1,1128.7,458,34.2,87.5,0.999 154,-1,891.4,439.2,76.3,235,0.971 154,-1,500.6,455,29.3,98.6,0.54 155,-1,541.6,427.9,160.6,461.1,1 155,-1,1194.9,448.2,39.3,99.6,1 155,-1,398.9,468,63.5,105.3,1 155,-1,723.5,434.7,120.5,341,1 155,-1,1088.1,482.6,39.4,117.2,1 155,-1,1002.2,442.7,39,105,1 155,-1,372,446.1,45,105.8,1 155,-1,838.2,447.1,82.9,288.3,1 155,-1,471.4,466.3,40,112.8,1 155,-1,1051.7,483.1,40.1,111.3,1 155,-1,1129.2,455.2,34.2,91.5,0.999 155,-1,898.2,437.4,72.1,238.6,0.993 155,-1,502,455.9,29.3,94.2,0.506 157,-1,540.8,430.2,160.4,458.8,1 157,-1,1191.3,447.4,40.1,100.3,1 157,-1,399.6,468.7,62,104.7,1 157,-1,1088.1,482.6,38.8,117.1,1 157,-1,728,434.5,118.6,343.3,1 157,-1,1000.7,443.5,38.5,102.7,1 157,-1,371.2,445.9,45.1,106,1 157,-1,841.2,446.1,82.6,287.6,1 157,-1,1051.7,484.1,40.3,111,1 157,-1,470.8,464.7,37.9,114.2,1 157,-1,903.4,439.5,71.5,245.2,0.998 157,-1,1128.3,450.7,35.6,93.8,0.998 157,-1,500.3,454.9,25.1,90.2,0.062 163,-1,538.7,424.7,176.2,469.1,1 163,-1,400.5,466.2,62.1,106.3,1 163,-1,1182.7,445.5,41,103.3,1 163,-1,999.3,442.5,38.6,106.4,1 163,-1,747.3,433.9,111.2,343.9,1 163,-1,1087.5,484.1,39.4,116.3,1 163,-1,372.4,446.8,43.3,104.2,1 163,-1,469.4,465.4,34.9,108.6,1 163,-1,1052.1,482.3,39.1,112.9,1 163,-1,850,453.4,95.9,281.6,0.999 163,-1,915,447.9,84.6,250.9,0.999 163,-1,1140,452,31.1,93.2,0.988 163,-1,506.6,452.3,24.2,87.7,0.217 170,-1,534.4,428.3,221.5,470.2,1 170,-1,405.3,468.2,56.5,102.9,1 170,-1,1088.8,484.8,38.2,115.2,1 170,-1,758.2,438,118.5,352.3,1 170,-1,868.7,446.1,125.5,296.1,1 170,-1,372.1,445.4,43.2,105,1 170,-1,1174.4,449.3,41.1,98.8,1 170,-1,1052,481.1,39.4,111.6,1 170,-1,469.2,467.4,34.8,106.7,0.999 170,-1,1146.4,453,33.8,92.1,0.985 170,-1,503.2,457.7,30.2,99.4,0.966 170,-1,995.3,441.8,40.7,106.1,0.717 182,-1,577.1,421.1,203.1,492.1,1 182,-1,406.9,469.6,50.8,105.4,1 182,-1,782.9,435.1,109.9,361.8,1 182,-1,1087,485.9,39.5,114.3,1 182,-1,1156.1,446.8,38.2,102.5,1 182,-1,506.9,455.1,37.8,107.2,1 182,-1,370.6,446.1,45.2,105.2,1 182,-1,907.5,447.1,105.8,298.4,1 182,-1,464.2,467.5,36.7,109.7,0.999 182,-1,972.2,435.6,104.7,272.4,0.998 182,-1,552.8,453.5,31.7,88.3,0.779 182,-1,571.1,454.4,34.3,99.3,0.607 182,-1,581.3,434.3,21.9,43.2,0.337 191,-1,625.8,421.2,170.7,521.2,1 191,-1,406.5,468.4,51.9,107.2,1 191,-1,566.7,455.4,60.2,160,1 191,-1,799.1,437.2,113.3,357.9,1 191,-1,941.2,444.3,97.3,309.1,1 191,-1,371,445.3,44.6,106.2,1 191,-1,509.6,454.2,35.1,111.1,1 191,-1,1086.6,481.8,40.7,115.3,1 191,-1,1147.9,449.6,40.3,99.2,0.999 191,-1,459.9,467.9,40,109,0.999 191,-1,1006,437,82.9,271.3,0.996 191,-1,1097.8,441.3,39.4,103.6,0.971 191,-1,588.1,422.8,23.4,45.5,0.746 191,-1,1171.8,450.5,32.9,95.5,0.606 191,-1,548.7,433.8,19.8,44.7,0.13 191,-1,602.3,413.7,22.3,48,0.116 191,-1,559.6,395.8,37.3,105.4,0.058 206,-1,405.7,465.7,51.7,108.2,1 206,-1,1190.7,449.5,34.8,96.3,1 206,-1,580.3,455.6,64.3,170.5,1 206,-1,833.4,433.9,151.7,379.6,1 206,-1,680,421.4,164.6,557,1 206,-1,998.9,445,108.2,321.7,1 206,-1,370.3,446.2,44.5,105.6,1 206,-1,511.8,456.8,32.9,108.7,1 206,-1,456.2,465.2,32.9,109.5,0.997 206,-1,659.2,464.3,26.5,73.7,0.969 206,-1,1126.7,453.4,41.8,96.6,0.847 206,-1,536.2,456.1,25,80.4,0.686 206,-1,590.7,420.1,19.9,39.2,0.579 206,-1,578.6,428.5,20,37.4,0.559 206,-1,563.4,459.1,26,64.9,0.504 206,-1,1060.2,441.1,84.3,268.1,0.282 206,-1,547.4,419.5,36.6,93.1,0.079 206,-1,610.3,414.1,20.7,44.6,0.062 208,-1,406.9,466.1,52.4,107.4,1 208,-1,582.8,455.1,61.9,169.7,1 208,-1,691.6,419.1,159.9,562.5,1 208,-1,1193,450.5,34.6,97.1,1 208,-1,836.8,433.8,153.4,383.9,1 208,-1,1010.5,440.5,127.6,327.2,1 208,-1,513.8,456.5,33.1,107.2,1 208,-1,371.8,446.6,43.9,104.9,1 208,-1,449.5,465.5,37.8,108.3,0.998 208,-1,658.5,462.3,25.6,77.1,0.987 208,-1,558.8,459.2,25.4,64.4,0.935 208,-1,591.6,423.6,20.2,40.7,0.701 208,-1,578.5,432.2,19.6,38.3,0.575 208,-1,534.1,457.9,25.6,87.1,0.457 208,-1,610.2,416,20.4,46.1,0.253 210,-1,585.9,457.5,59.3,164.7,1 210,-1,1014.2,446,151.8,321.2,1 210,-1,697.2,417.1,159.8,564.9,1 210,-1,513.3,456,33.7,108.3,1 210,-1,841.3,434.6,151.4,385,1 210,-1,1194.4,452.8,35.5,96.1,1 210,-1,370.5,447.4,44.7,104.6,1 210,-1,406.3,468.3,50.8,106.2,1 210,-1,447,470.2,40.7,104.3,0.999 210,-1,656.3,462.4,24.5,74.2,0.984 210,-1,562.1,458.7,23.8,61.8,0.943 210,-1,595.4,421.6,21,40.9,0.663 210,-1,580.4,431.5,19.9,37.9,0.448 210,-1,533,456.4,26.1,90.6,0.217 212,-1,700.9,419.3,164,566.5,1 212,-1,590,456,57.3,165.1,1 212,-1,1017.8,444.4,167,328.8,1 212,-1,512.9,455,34.2,111.5,1 212,-1,1196.5,451.8,37.4,96.7,1 212,-1,858.7,429.5,144.1,390,1 212,-1,406.8,466.8,50.6,107.6,1 212,-1,370.1,446.3,45.6,105.2,1 212,-1,447.7,466.7,39,106.7,0.998 212,-1,659.5,463.2,27.1,75.5,0.993 212,-1,557.5,457.3,23.9,62,0.953 212,-1,595.6,421.1,20.2,38.6,0.336 212,-1,578.1,431.6,19.1,37.5,0.141 212,-1,563.8,455.3,39.2,88.6,0.102 213,-1,700.3,415.8,167,571.1,1 213,-1,591.4,453.3,56.3,169,1 213,-1,1018.3,450,164,323.8,1 213,-1,514.4,455,33.7,110.1,1 213,-1,864.2,430.4,140.5,382.3,1 213,-1,1196.3,450.9,37.7,96.8,1 213,-1,408.2,467.3,50.3,108.1,1 213,-1,370.7,446.9,45,104.6,1 213,-1,442.9,467,42.7,106.7,0.998 213,-1,657.8,463.6,25.1,72.9,0.993 213,-1,555.5,456.8,24.1,63.1,0.948 213,-1,594.9,420.6,20.2,39.1,0.362 213,-1,538.5,451.2,30.3,89.5,0.134 213,-1,577.4,431.4,19.2,37.7,0.111 214,-1,592.4,452.1,56.2,168.1,1 214,-1,710.2,410.5,163.2,572.6,1 214,-1,1021.3,446.8,161.9,326.7,1 214,-1,513.9,455.2,33.9,109.9,1 214,-1,869.2,433.1,135.7,382.4,1 214,-1,370.8,447.3,45.5,104.2,1 214,-1,1198.2,450.8,38.3,96.1,1 214,-1,408.3,467.3,49.3,108,1 214,-1,443.9,467.8,42,106.4,0.999 214,-1,659.7,464.9,26.9,74.1,0.992 214,-1,556.8,457.7,23.3,61.4,0.958 214,-1,594.7,420.1,19.6,38.2,0.398 214,-1,578.6,431.8,19.2,37.9,0.184 214,-1,536.5,452.2,29.3,90.1,0.117 215,-1,593.8,452.7,56.2,167.3,1 215,-1,711,413.5,171.6,572.1,1 215,-1,1028.5,442.7,160,330.1,1 215,-1,512.9,455.8,34.9,110.1,1 215,-1,872.9,435.7,134.1,387.5,1 215,-1,408.4,467.9,51.2,106.4,1 215,-1,371.1,447.6,45.6,104.4,1 215,-1,443.6,470.1,41.2,104.2,0.999 215,-1,1200.6,446.5,39.2,101.2,0.998 215,-1,659.9,464.5,25.7,73.4,0.996 215,-1,552.9,457.3,23.7,61.6,0.957 215,-1,594.4,422.1,19.2,36.8,0.34 215,-1,575.4,433.7,18.4,36,0.078 215,-1,562.7,454.6,48.6,83.2,0.06 219,-1,1039.5,443.5,153.7,334.9,1 219,-1,598,451.4,56.7,174.4,1 219,-1,719.6,416.8,189.7,571.4,1 219,-1,514.5,454.3,35.5,111,1 219,-1,371.7,447.4,44.3,103.8,1 219,-1,888.4,434.4,126.2,391,1 219,-1,437.4,467.1,44.5,108.4,1 219,-1,1209.2,451.3,39.5,100.3,0.998 219,-1,658.2,465.3,24.7,70,0.979 219,-1,551.2,457,24.9,66.8,0.936 219,-1,413.1,467.5,45,101.8,0.8 219,-1,594,422.3,18.9,37.5,0.23 219,-1,558.9,452.2,45.7,75.4,0.084 225,-1,372.7,446.8,43.3,106,1 225,-1,733.4,406.9,246.6,588.1,1 225,-1,1096.5,449.7,104.6,333.5,1 225,-1,605.9,452,55.8,181.5,1 225,-1,514.7,453.4,34.7,111.7,1 225,-1,429.6,465.9,44.8,112.4,1 225,-1,1051.7,483.3,41,110.9,0.999 225,-1,897.6,428.7,133.1,415.6,0.967 225,-1,551.1,457.4,25,65,0.938 225,-1,660,465.2,27.5,74,0.937 225,-1,536.2,457.3,27,74.4,0.819 225,-1,463.9,456.4,36.9,107.4,0.445 225,-1,598.5,424,19.9,37,0.198 236,-1,790.6,410.6,248.2,595.6,1 236,-1,619.6,448.1,63.7,187.1,1 236,-1,1134.4,447.3,147.7,351.7,1 236,-1,370.7,447.5,44.4,106.2,1 236,-1,420.8,464.4,42.2,110.8,1 236,-1,513.4,453,34.2,111.8,1 236,-1,1087.5,483.6,40.3,114.1,1 236,-1,1048.4,485.5,40.9,109,0.991 236,-1,592.1,463,25.7,60,0.979 236,-1,468.8,454.7,32,106.1,0.967 236,-1,547.4,457.7,26,65.8,0.92 243,-1,631.2,451.5,74.3,185.4,1 243,-1,1185.2,439.3,118.7,359.4,1 243,-1,837.4,413.7,205.4,597.8,1 243,-1,370.4,446.8,44.4,105.3,1 243,-1,419.1,463,37,112.7,1 243,-1,513.3,452.9,33,112,1 243,-1,1084.9,481.2,42.1,117.1,1 243,-1,1117.7,444.6,40.6,103.2,0.997 243,-1,592.7,457.2,22.7,68.3,0.996 243,-1,475.1,456.4,32.1,105.4,0.983 243,-1,555.3,458.1,23.9,62.2,0.933 243,-1,443.4,459.4,44,103.9,0.277 243,-1,1050.9,488,38.9,104.4,0.071 243,-1,770.6,447.5,129.8,415.6,0.071 246,-1,632.4,449.8,77.2,188.8,1 246,-1,875.7,405,175.7,615,1 246,-1,416.9,465,37.6,110.2,1 246,-1,370.4,447,44.9,104.5,1 246,-1,1207.1,442.4,114.5,356.8,1 246,-1,513.4,453.1,33.2,111.8,1 246,-1,1083.5,484.9,43.4,113.5,1 246,-1,590,460.3,22,65.1,0.996 246,-1,1115.2,445.5,40.5,102.5,0.995 246,-1,777.2,438.5,149.8,437.8,0.993 246,-1,474.8,456.7,33.4,107.5,0.986 246,-1,552.2,458.8,24.5,62.2,0.924 247,-1,881.6,402.5,173.9,632,1 247,-1,635.2,448.4,74,189.3,1 247,-1,1210.4,442.3,121.4,360.1,1 247,-1,418,465.5,37.8,110,1 247,-1,370.1,446.7,45,105.4,1 247,-1,513.8,452.2,32.7,112.6,1 247,-1,1083.8,479.4,43.9,118,0.999 247,-1,589.6,460,21.6,64.3,0.995 247,-1,779.6,439.5,153.1,439.1,0.994 247,-1,473.4,456.4,34,108.5,0.989 247,-1,1114.2,443.6,39.1,106.8,0.977 247,-1,547.1,458.6,25.2,64.8,0.888 249,-1,899.3,402,168.1,644.8,1 249,-1,639.5,447.3,69.9,190.9,1 249,-1,417.3,466.1,38.7,109.6,1 249,-1,370.7,447.3,45,104.4,1 249,-1,1212.8,439.5,152.1,372.8,1 249,-1,513.5,451.2,32.5,114.3,1 249,-1,587.3,458.1,22.1,64.2,0.996 249,-1,470.3,457.2,34.9,109.2,0.996 249,-1,784,436.5,147.5,451.1,0.995 249,-1,549,457.6,24.4,63,0.91 249,-1,1080.3,469.9,47.9,126.4,0.881 249,-1,1108,441.1,41.9,116.6,0.46 249,-1,492.2,454.8,26.3,109.4,0.175 252,-1,1217.6,441.7,198.5,379.7,1 252,-1,646.4,450.5,66.1,184.8,1 252,-1,370.6,446,44.6,106.8,1 252,-1,415.4,463.4,39,112.8,1 252,-1,917.4,402.5,166,649.8,1 252,-1,513.5,451.8,32.9,113.2,1 252,-1,798.1,436.2,140.9,450.4,0.999 252,-1,591,459.2,23,62.8,0.997 252,-1,470.1,458.5,32.7,105.8,0.994 252,-1,549.3,459.2,24.2,62.8,0.91 252,-1,763.9,447.2,25.1,76.4,0.472 252,-1,495.2,455.6,22.5,107.8,0.348 252,-1,621.1,466.9,25.9,58.7,0.246 252,-1,1076.1,488.3,49.7,107,0.16 252,-1,1106.7,446.4,42.1,109.3,0.15 253,-1,1228.6,437,197.4,384,1 253,-1,651.4,448.7,61.3,187.8,1 253,-1,414.3,462.8,39.6,113.3,1 253,-1,371.1,445.6,44.4,107.8,1 253,-1,918.8,406.7,162.3,640.3,1 253,-1,513.4,451.8,33.7,113.8,1 253,-1,798,435.6,138.1,451.1,0.998 253,-1,589.8,458.1,24.2,63.9,0.998 253,-1,471.6,459,31.8,105.6,0.991 253,-1,547.9,459.4,24.7,64.5,0.89 253,-1,764.8,449.8,24,75.5,0.879 253,-1,618.1,461.5,23.6,60.1,0.696 253,-1,497.3,454.9,22.5,109.2,0.301 253,-1,1856.4,486.9,64.6,281.1,0.218 253,-1,1104.5,448.3,44.9,107.7,0.112 253,-1,1078.7,486.8,48.4,104.1,0.056 264,-1,668.1,452.5,67.1,190.8,1 264,-1,1320.6,435,136,382.3,1 264,-1,1675.6,412.6,218.6,361.4,1 264,-1,512,454,33.8,109.3,1 264,-1,940.6,407,172.8,641.4,1 264,-1,402.8,465,42.6,111.9,1 264,-1,822.3,433.6,128,484.6,1 264,-1,370.4,445.8,44.5,107.9,1 264,-1,1298,447.5,44.4,99.6,0.995 264,-1,591.3,461.3,23.1,61.9,0.995 264,-1,468,458.7,28,103.4,0.991 264,-1,778.3,453.2,24.7,71.1,0.974 264,-1,606.3,461.7,23.8,60.1,0.932 264,-1,556.6,461.9,23,60.9,0.922 268,-1,511.7,454.6,35.1,110.1,1 268,-1,678.7,450,65,190,1 268,-1,1657.2,416.2,177.2,344.3,1 268,-1,823.3,436.2,131.9,481.6,1 268,-1,949.8,410.2,167.4,642.4,1 268,-1,1351.4,438.8,145.9,399.3,1 268,-1,397.4,464.9,43.9,113,1 268,-1,370.3,446.7,45.3,108.4,1 268,-1,462.1,460.2,31.5,105.9,0.993 268,-1,583.6,459.4,23.8,62.7,0.991 268,-1,653.2,467.5,26.2,62.8,0.971 268,-1,559.4,462.3,23.7,60.1,0.945 268,-1,620.5,460.3,23.9,59.5,0.94 268,-1,782,451.4,25.7,76.7,0.932 268,-1,1304.9,447.6,43.3,101.3,0.089 291,-1,741.2,444.3,70,208,1 291,-1,850.5,431,168.5,494.5,1 291,-1,509.6,454.9,34.4,109,1 291,-1,1354.5,439.6,51.7,112.9,1 291,-1,1496.2,434.4,248.6,442.8,1 291,-1,1003.1,402,153,633.7,1 291,-1,406.7,470.5,48.1,105.2,1 291,-1,659.2,458.5,26.7,76.2,1 291,-1,1154.1,446.2,48.7,110.8,1 291,-1,383,461.7,43.6,111.3,0.997 291,-1,577.7,462.8,25.7,60.2,0.986 291,-1,451.3,459.6,31.2,100.4,0.975 291,-1,561.5,462,25.3,60.5,0.918 291,-1,545.3,461.2,27,68.4,0.837 291,-1,598,460,24.5,56.8,0.757 291,-1,469.5,458.6,35.6,95.5,0.536 292,-1,746.8,445,66.1,206.4,1 292,-1,850.3,433.3,171.7,491.5,1 292,-1,1355.8,439.7,50.3,113.4,1 292,-1,508.7,455,35.5,109.5,1 292,-1,1505.5,436.2,250,447.4,1 292,-1,998.1,407.2,156.1,631.6,1 292,-1,1154.9,444.7,48,112.5,1 292,-1,658.2,460,27,74.6,1 292,-1,408,470.9,46.7,104.4,1 292,-1,383.3,462.4,43.5,111.7,0.999 292,-1,577.1,462.6,25.6,58.9,0.989 292,-1,448.1,460.7,30.3,99.7,0.976 292,-1,558,461.7,25.5,60.4,0.934 292,-1,542.2,460.7,27.5,69.6,0.853 292,-1,599.9,459.7,24.7,56.3,0.72 292,-1,822.7,479.3,50,70.5,0.401 292,-1,473,458,34.5,95.9,0.305 292,-1,1420.4,418.1,144.7,305.7,0.25 300,-1,767.3,443.6,69.2,211.2,1 300,-1,507.7,455.4,35.9,108.4,1 300,-1,1587.3,429.8,189.2,461,1 300,-1,881.1,423.5,147.6,515.3,1 300,-1,1379.9,417.2,109.3,298.2,1 300,-1,1168.5,443.3,48.7,111.5,1 300,-1,1014.6,404.2,150.9,628.4,1 300,-1,835,475.3,51.2,73.3,1 300,-1,410.7,471.2,45.9,104.2,1 300,-1,658.9,463.9,26.5,72,1 300,-1,382.9,463.2,43.5,112.2,1 300,-1,579.2,460.2,25.9,58.9,0.988 300,-1,559.8,460.5,25.1,61,0.918 300,-1,546.1,459.1,26.1,68.5,0.878 300,-1,598.7,457.7,24.8,59,0.834 306,-1,502.1,456.1,40.9,109,1 306,-1,781.8,443.9,69.8,213.5,1 306,-1,1015,409.1,188.8,617,1 306,-1,1662.3,422,180.6,480.2,1 306,-1,1321.4,428.5,122.5,274.8,1 306,-1,410.4,468.9,48.4,105.6,1 306,-1,893.7,422.9,139.9,525.3,1 306,-1,657.7,462.3,25.7,72.5,1 306,-1,835.6,471.9,54.5,77,1 306,-1,1187.9,449.2,37.3,99.4,0.999 306,-1,381.8,463.8,44.1,111.4,0.999 306,-1,578.8,461.6,24.6,58.3,0.989 306,-1,558.3,461,24.6,60.1,0.928 306,-1,542.3,460.5,25.8,66.8,0.874 306,-1,609.9,459.5,24,56.8,0.855 306,-1,9,459.8,89.9,397.5,0.161 307,-1,501.1,456,42.2,109,1 307,-1,1666.2,420.9,193.1,491,1 307,-1,785,441.7,68.9,217.1,1 307,-1,1304.8,425.7,137.2,276.2,1 307,-1,1017,403.9,195.2,607.8,1 307,-1,410.8,470.3,47.7,105,1 307,-1,898.9,422.1,133,525.5,1 307,-1,658,462.7,26.1,73.1,1 307,-1,1191.1,450,35,96.2,0.999 307,-1,380.9,464.4,44,110.6,0.999 307,-1,835.6,471.7,54,76.8,0.997 307,-1,578.7,461.9,24.6,58.8,0.989 307,-1,557.9,461.8,24.8,60.2,0.931 307,-1,542.3,461,25.5,66.3,0.884 307,-1,611.4,460.1,23.9,56.2,0.845 307,-1,14.1,388.5,78.8,502.9,0.501 319,-1,491.9,454.9,48.1,110.6,1 319,-1,896.8,413.9,142.6,538.7,1 319,-1,15.7,399.5,275.7,455.4,1 319,-1,1429.9,438.9,47.8,111.8,1 319,-1,1038.6,412.7,207.3,605,1 319,-1,409.4,468.6,47.2,105.9,1 319,-1,658.8,463.1,26,71.9,1 319,-1,817.1,440.5,76.6,216.5,1 319,-1,1237.4,431.9,104.4,253.6,1 319,-1,381.4,464.7,44.7,112,1 319,-1,580.5,459.5,22.6,57.6,0.98 319,-1,628.8,458.8,25.2,61.1,0.961 319,-1,1207.9,448.3,34.4,98.2,0.948 319,-1,1777.7,418.6,143.3,510.2,0.948 319,-1,551.9,460,22.7,58,0.939 319,-1,601.3,456.3,39.2,61.1,0.76 322,-1,1437.7,439,48.7,113.7,1 322,-1,32.5,398.8,274.4,458,1 322,-1,491.4,454.4,46.1,110.4,1 322,-1,896.2,414.8,143.4,537.5,1 322,-1,1049.9,412.4,196.6,606.6,1 322,-1,1210.9,432.8,121.9,254.4,1 322,-1,824,441.9,82.6,218.5,1 322,-1,409.8,468.8,47.2,105.3,1 322,-1,657.8,462.8,26.9,73.6,1 322,-1,380.8,464,44.7,112.6,1 322,-1,1721.7,402.9,160.9,451.3,0.998 322,-1,583.6,459,22.6,58,0.974 322,-1,623.8,458.1,25,60.2,0.953 322,-1,554,459.4,22.3,58.6,0.936 322,-1,800.6,471.2,41.8,70.8,0.428 323,-1,1439.8,438.5,51.8,114.6,1 323,-1,490.9,454,46,110.9,1 323,-1,28.4,405.5,286.9,449.9,1 323,-1,895.8,411.4,143.8,544.6,1 323,-1,1049.9,412.2,193.3,605.2,1 323,-1,410.2,470.8,46.6,102.9,1 323,-1,1732.7,402.4,159.3,447.5,1 323,-1,380.3,465.1,45.7,112.3,1 323,-1,658.2,463,26.3,73.6,1 323,-1,827.4,442.7,83.2,216.9,1 323,-1,1210.3,439.9,123,247.5,0.999 323,-1,583.8,459.2,22.7,57.6,0.976 323,-1,623,458.3,24.7,59.5,0.949 323,-1,556.8,460.3,22.2,58.7,0.938 323,-1,799.7,472.5,43.3,66.4,0.854 330,-1,1057,400.4,190.5,611.1,1 330,-1,489.1,453,42.9,111.7,1 330,-1,1455.4,441.1,48,108.5,1 330,-1,898.7,422.4,144.9,525.3,1 330,-1,797.9,477.5,54.8,60.7,1 330,-1,411,469.3,45.5,104.8,1 330,-1,151.8,405.7,180.7,424.8,1 330,-1,380.4,462.7,44.8,114.5,1 330,-1,658.1,463.3,26.8,73.3,1 330,-1,1767.7,402,153.3,466.2,0.994 330,-1,631.5,459.8,25.4,64.1,0.96 330,-1,562.2,460.5,20.2,58.7,0.945 330,-1,582.9,459.3,21.7,59,0.918 330,-1,845,472.9,48.7,86.8,0.535 332,-1,1058,393.8,198.2,617.3,1 332,-1,489.8,453.3,40.4,110.8,1 332,-1,1461.5,442.7,46.7,108.4,1 332,-1,410.1,468.9,46.6,105.9,1 332,-1,796.6,475.8,59.8,62,1 332,-1,192,399.9,151.8,422.7,1 332,-1,902.7,423,142.9,525,1 332,-1,834.9,471.9,54.7,81.2,1 332,-1,659.4,462.8,27,73.6,1 332,-1,379,461.1,46.6,115.2,1 332,-1,1769.9,401.7,151.1,456.8,0.987 332,-1,631.2,459.7,26,64.3,0.969 332,-1,556.5,462.3,20.8,58.2,0.942 332,-1,585.4,460.6,21.3,57.8,0.847 332,-1,514.7,455.2,36.7,81.5,0.088 332,-1,2,442,72.6,353.2,0.07 334,-1,490.7,454.4,38.7,110.5,1 334,-1,1468.5,439.2,45.9,111.7,1 334,-1,1059.3,404.4,193.7,611.9,1 334,-1,903.4,422.3,143.4,523.2,1 334,-1,833.1,472.4,56.1,77,1 334,-1,215.7,405.4,153.7,424.4,1 334,-1,410.8,469.9,46,104.6,1 334,-1,797.1,476.6,59.3,60.8,1 334,-1,659.4,460.5,27.1,76.7,1 334,-1,383.4,464.2,44.1,112.2,0.999 334,-1,631.6,460.1,25.2,64.8,0.957 334,-1,559.9,462.5,21.2,58.4,0.953 334,-1,586.9,459.2,22.1,59.8,0.926 334,-1,1.1,430.5,127.7,339.3,0.92 334,-1,607.2,456.6,38.6,65.1,0.855 334,-1,1777.6,411.6,143.4,442.2,0.621 334,-1,512.1,455.1,36.5,84.4,0.057 336,-1,488.4,453.1,37.1,112.7,1 336,-1,223.6,405.7,180.9,424,1 336,-1,835.9,471.3,53.1,79.6,1 336,-1,1473.1,438.7,46,113.5,1 336,-1,1066.7,390.5,188.9,630.3,1 336,-1,903,418.9,146.6,530,1 336,-1,795.7,475.6,56.3,61.3,1 336,-1,412.1,472.8,44.3,103.1,1 336,-1,659.1,463.1,26.1,74.1,1 336,-1,1,445.9,142.2,346.4,0.998 336,-1,382.2,465.3,40.3,114.3,0.983 336,-1,632.1,459.5,24.7,64,0.965 336,-1,560.2,461.5,20.5,58.1,0.957 336,-1,581.4,459.9,22.3,58,0.887 336,-1,519.7,454.8,34,72.8,0.29 344,-1,835,473.4,53.6,77.4,1 344,-1,261,412.8,202.6,409.5,1 344,-1,1067.3,416.7,197.5,591.8,1 344,-1,486.9,453.6,33.9,112.1,1 344,-1,905.7,422.6,151.4,524.5,1 344,-1,9.9,446.1,151.9,344,1 344,-1,796.3,475.7,56.2,63.3,1 344,-1,1488.7,436.7,52.7,112.7,1 344,-1,658.3,462.8,26.6,74.4,1 344,-1,634.2,460.3,24.5,63.8,0.959 344,-1,579.5,459.6,22.6,58.7,0.937 344,-1,559.3,460.3,20,59.3,0.927 344,-1,607.2,457,39.6,62.7,0.712 344,-1,535.9,458.1,34.7,63.6,0.505 345,-1,835.7,472.7,53.2,77.1,1 345,-1,1068.1,410.6,190.8,607.4,1 345,-1,264.7,406.5,201.9,414.6,1 345,-1,485.3,452.7,34.3,114,1 345,-1,905.5,422.9,147.8,522.4,1 345,-1,796.5,475.2,56.1,63.1,1 345,-1,658.4,463,27.2,76.2,1 345,-1,1493.1,436.8,50.2,112.3,1 345,-1,23.4,436.3,144.8,359.3,1 345,-1,635.5,460.6,24.4,64.8,0.961 345,-1,581.8,459.2,21.9,58.5,0.925 345,-1,557.5,460.3,19.1,58.7,0.883 345,-1,608.7,457.4,41.4,64,0.854 347,-1,836,472.1,53.7,77.7,1 347,-1,1072.6,410.7,192.3,607,1 347,-1,906.4,419.8,145.9,528.2,1 347,-1,484.8,452.9,35.2,113.6,1 347,-1,1500.9,437.3,46,112.8,1 347,-1,280.6,400.1,186.9,419.8,1 347,-1,796.2,475.4,56.7,63.1,1 347,-1,53.4,440.1,132.2,328.7,1 347,-1,659.4,462.7,26.9,75.2,1 347,-1,639.1,461.9,25.2,66.7,0.951 347,-1,584.9,457.7,22.3,59.7,0.912 347,-1,558.1,459.6,19.6,58.9,0.894 354,-1,1071.9,397.5,194.4,604.3,1 354,-1,836.9,471,52,78.8,1 354,-1,914.4,422.5,142.5,516.6,1 354,-1,797.3,474.1,55.8,64.8,1 354,-1,1520.8,437.1,44,112,1 354,-1,372.3,398,127.5,408.8,1 354,-1,90.6,442.5,190.5,336.2,1 354,-1,660.1,462.1,28.2,75.8,0.999 354,-1,484.1,456.3,29.8,106.5,0.998 354,-1,633.5,460.3,26.9,68.8,0.983 354,-1,556.8,459.2,20.6,59,0.957 354,-1,586.1,459.1,22.4,57.7,0.905 354,-1,514.2,457.4,25,68.7,0.767 354,-1,869.5,456.2,29.9,72.5,0.696 354,-1,6.8,452.4,68,397.2,0.203 361,-1,835.2,471.5,54.9,78.8,1 361,-1,1070.1,406.4,204.3,609.3,1 361,-1,1533.4,436.9,46.9,113.6,1 361,-1,2.4,447,227.5,413.8,1 361,-1,926.5,417.8,143.6,526.2,1 361,-1,397.9,407.2,188.4,389.1,1 361,-1,797.4,475.7,56.4,62.1,1 361,-1,630.1,457.1,28.5,75.1,0.998 361,-1,881.3,457.3,32.5,69.5,0.936 361,-1,564.1,459.1,17.3,59.2,0.844 361,-1,658,462.6,25.9,71.8,0.82 361,-1,595.4,458.3,21.6,56.5,0.799 361,-1,137.4,440.2,158.3,340.9,0.123 365,-1,835.9,471.3,54.1,79,1 365,-1,1070.9,404.7,209.6,602.7,1 365,-1,406,410.6,196.5,382.2,1 365,-1,10.4,438.1,217.7,410.1,1 365,-1,1546.1,435.5,46.4,113.9,1 365,-1,796.5,475.8,56.8,61.4,1 365,-1,932.7,418.7,141.4,531.9,1 365,-1,629.5,458.4,27.7,72.5,1 365,-1,210,442.2,109.8,324.5,0.999 365,-1,589.6,460.9,19.6,55.9,0.877 365,-1,889.7,452,27.3,65.2,0.827 365,-1,563.7,462.8,17.7,58.5,0.814 365,-1,380.9,463.5,41.9,103.6,0.74 365,-1,656.3,460.6,23.6,69.1,0.217 369,-1,836.9,472.2,53.7,78,1 369,-1,1075.1,409,208.5,603.7,1 369,-1,410,411.5,199.8,381.3,1 369,-1,376.9,463,49.8,115.3,1 369,-1,797.6,475.8,55.9,62.1,1 369,-1,938,427.1,144.6,518.4,1 369,-1,626.5,458.5,29.5,73.5,1 369,-1,232.3,440.2,141.1,321.7,1 369,-1,1549.1,435.2,48.1,111.7,1 369,-1,92.1,445.2,141,387.1,1 369,-1,590.6,458.9,22.1,58.8,0.918 369,-1,886.8,456.1,26.7,59.8,0.613 369,-1,417.8,466.2,33.2,100.4,0.35 370,-1,836.7,471.8,53.2,78.9,1 370,-1,1073.8,407.8,211.4,610.4,1 370,-1,376.4,463.6,50.5,115.1,1 370,-1,942.4,426.4,141.4,514.5,1 370,-1,414.9,409.1,190.4,382.3,1 370,-1,797,475.6,56.5,62.8,1 370,-1,625.7,458.4,30,73.5,1 370,-1,1550.9,435.8,47.7,112,1 370,-1,115.7,438.7,126.2,387.8,1 370,-1,235.2,435.8,158.3,327.7,1 370,-1,412.4,466,37.9,105.3,0.92 370,-1,594.9,458.3,21.8,58.6,0.887 370,-1,889.1,455.6,26.1,58.5,0.474 371,-1,836.3,472,53.2,78.6,1 371,-1,1072.5,411.4,213.3,605.1,1 371,-1,426.5,409.8,179.3,379.6,1 371,-1,947.4,426.3,136.6,515.8,1 371,-1,796.6,476.1,56.4,62.1,1 371,-1,378.5,462.5,48,117.6,1 371,-1,123.5,440.2,130.5,387.1,1 371,-1,626.4,457.9,29.6,72.6,1 371,-1,230.1,431.8,167,325.1,1 371,-1,1550.8,437.3,48,110.6,0.999 371,-1,414.2,466.7,39.5,108.2,0.979 371,-1,889.9,455.5,26,58.7,0.345 371,-1,580.7,457.4,26.4,72.4,0.239 374,-1,835.1,473,54.1,77.9,1 374,-1,1078,406.2,214.6,607.5,1 374,-1,474.7,404,147.3,377,1 374,-1,952.1,426.5,137.7,514.8,1 374,-1,411.7,467.3,45.2,108.9,1 374,-1,796.4,476.2,55.8,61,1 374,-1,148.9,446.3,162.5,376.1,1 374,-1,627,455.2,30.4,76.5,0.999 374,-1,381,459.7,42.9,121.3,0.988 374,-1,234.2,441.8,182.1,308.6,0.548 374,-1,452,458.6,27.8,91.5,0.366 382,-1,835.8,472.7,53.3,76,1 382,-1,1081.4,399.7,209.3,608.8,1 382,-1,536.5,408.8,137.2,358.2,1 382,-1,181.5,446.8,199.9,370.9,1 382,-1,1,452.8,185.5,368.8,1 382,-1,796.6,476.2,55,61.7,1 382,-1,471.1,453.3,40.2,112.9,1 382,-1,967.4,427.7,139.8,521.2,1 382,-1,520.3,457.3,26.8,72.1,0.727 382,-1,315.9,438.7,125.3,309.6,0.672 382,-1,424.9,469.6,34.5,97.3,0.441 383,-1,836.4,472.6,52.9,76.7,1 383,-1,1081.4,414.4,215,599.6,1 383,-1,540.4,410.9,136.6,360.5,1 383,-1,4,449.8,192.4,366.1,1 383,-1,191.3,453.6,186.4,365.2,1 383,-1,796.3,476,55.3,61.8,1 383,-1,470.8,454.4,39,108,1 383,-1,969.8,421.2,134.5,520,1 383,-1,338.7,452.4,106.9,290.3,0.977 383,-1,516.4,461.6,25.7,66.9,0.899 383,-1,427,468.9,33.7,98,0.298 390,-1,836.4,471.6,53.3,78.1,1 390,-1,45.5,432.2,172.7,372.1,1 390,-1,1072.4,407.4,226.5,601.5,1 390,-1,560.3,409.4,133.8,345.2,1 390,-1,796.6,476.2,56.2,60.8,1 390,-1,975.9,421.1,130.5,515.3,1 390,-1,368,434.7,173.7,313.3,0.999 390,-1,290.4,448,115.1,355.4,0.996 390,-1,932.9,435.4,64,184.2,0.995 390,-1,518,460.4,23.3,63.6,0.954 390,-1,491.5,459.9,29.6,80.9,0.264 390,-1,532.5,463.2,26.4,64.5,0.208 390,-1,551.8,459.4,26.5,68.5,0.171 392,-1,836.2,471.4,52.9,77.7,1 392,-1,65.5,424,170.8,371.3,1 392,-1,1074.8,417.7,227.9,588.8,1 392,-1,570.8,404.4,129.6,357.7,1 392,-1,796.4,475.9,55.9,61.1,1 392,-1,301.7,441.4,129,356.7,1 392,-1,977.8,420.1,128.2,521.3,0.999 392,-1,927.4,439,62.9,173.9,0.999 392,-1,368.9,441.7,183,302.2,0.998 392,-1,521,459.9,21.1,64.2,0.918 392,-1,554.2,460.3,22.6,63.4,0.657 392,-1,537,461,24.2,64.2,0.178 394,-1,836.1,470.8,53.4,79.2,1 394,-1,76,429.4,180.9,360,1 394,-1,586.7,411.4,120.6,346.7,1 394,-1,1074.2,403.5,234,606.1,1 394,-1,796.4,476,55.8,61.4,1 394,-1,304.5,447.4,157.5,346.1,1 394,-1,923.4,436.1,62.4,184.5,0.999 394,-1,976,423.9,135.4,513.4,0.997 394,-1,532.8,459.9,22.3,62.3,0.966 394,-1,557.3,459.8,21.8,61.5,0.847 394,-1,388.8,430.9,156.7,316.5,0.653 405,-1,162.6,435.5,193.8,353.8,1 405,-1,835.2,472.9,54.5,78.6,1 405,-1,634.3,410,155.9,340.6,1 405,-1,1075.3,419,209.2,596.7,1 405,-1,381.7,441.1,115,344.1,1 405,-1,892.6,436.6,59.1,177.6,1 405,-1,795.4,475.9,56.1,61.9,1 405,-1,981.5,422.1,131.2,512.9,0.999 405,-1,487.3,440.1,138.4,291.3,0.999 407,-1,835,471.8,54.3,79.9,1 407,-1,186.2,429,168.6,359.5,1 407,-1,1073.3,416.3,206.7,601.8,1 407,-1,637.5,413.7,155.8,334.6,1 407,-1,884.7,441.3,60.8,172.4,1 407,-1,794.7,475.4,58,61.6,1 407,-1,406,440.6,101.4,340.7,1 407,-1,493.1,433.2,148.6,298.3,0.999 407,-1,984.7,423.6,133.5,523.2,0.994 407,-1,617.3,456.6,20.9,70.5,0.058 411,-1,243.4,427.9,133.3,348.1,1 411,-1,1071.4,410.2,193,600,1 411,-1,643,408.3,153.1,338.2,1 411,-1,875.7,440.5,64.5,169.2,1 411,-1,430.7,445.8,132.4,327.5,1 411,-1,836.5,471.7,56.2,81.6,1 411,-1,794.5,476.7,60.7,59.3,0.999 411,-1,379.9,465.8,52.3,112.3,0.999 411,-1,985.4,415.5,128.3,533.2,0.992 411,-1,505.1,432.3,149.1,300.4,0.991 413,-1,267.8,433.1,119.1,345.2,1 413,-1,1071,415.1,192.4,587.8,1 413,-1,653.9,405.9,144.4,339.3,1 413,-1,875.1,440.5,64.4,170.4,1 413,-1,427.3,444.5,166.9,331.5,1 413,-1,378.6,468.4,54.1,108.4,0.999 413,-1,835.8,471.8,56.1,79.5,0.999 413,-1,791.7,477.4,66.2,59.7,0.996 413,-1,985.3,420.9,134.1,529,0.983 413,-1,534.8,434.7,121.8,284.3,0.862 414,-1,277.8,431.8,114.2,350.4,1 414,-1,663.1,406.7,142.1,334.8,1 414,-1,1071.2,414.8,188.3,612.5,1 414,-1,874,439.2,61.7,174.7,1 414,-1,433.5,445,161.5,333,1 414,-1,834.5,473.6,55.9,77.4,0.999 414,-1,984.8,425.5,130.5,508.4,0.996 414,-1,376.6,470.5,55.9,104.6,0.994 414,-1,548.6,433.6,111.2,294.9,0.98 414,-1,788.8,477,68.4,60.7,0.97 424,-1,845.6,436.3,57.1,171.1,1 424,-1,913.7,485.3,96.2,108.5,1 424,-1,313,438.8,173,326.9,1 424,-1,499.5,439.7,112.3,325,1 424,-1,711.7,406.4,118.3,323.3,1 424,-1,1056.4,407.6,195.8,633,1 424,-1,604,438.1,143.7,282.5,1 424,-1,458.5,464.1,33.1,107.5,0.073 425,-1,843.6,438.4,54.8,167.7,1 425,-1,319.7,435.4,172.2,325.6,1 425,-1,913.6,484.1,97.2,109.3,1 425,-1,1057.1,403.4,199.6,642.8,1 425,-1,505.5,437.6,111,323.5,1 425,-1,719.1,406.6,115.6,324.4,1 425,-1,608.2,434.6,142.6,286.2,1 425,-1,480.8,463.6,28.1,84.9,0.077 426,-1,328,435.9,163.8,323.5,1 426,-1,912.8,483.2,98.5,109.2,1 426,-1,843.2,436.5,55.1,171.5,1 426,-1,1060.2,403.7,195.3,651.1,1 426,-1,513.8,439,107.2,322.3,1 426,-1,721.8,406.2,115,324.5,1 426,-1,611,427.8,140.8,293,1 426,-1,480.3,460.4,27.7,91.2,0.064 434,-1,914.7,485.3,94.5,109.7,1 434,-1,414.4,429.6,113,314.8,1 434,-1,543.4,442.2,140.7,306.9,1 434,-1,745.5,410.6,115.2,321.3,1 434,-1,1069.3,402.9,217.8,646.7,1 434,-1,677.6,431.7,82,286.2,0.998 434,-1,1372.3,260.1,510.4,820.9,0.995 434,-1,519.8,464.1,25.4,70.2,0.931 434,-1,827.8,434.3,55.4,165.8,0.073 438,-1,915.2,483.2,94,112.7,1 438,-1,762.6,415.4,101.5,310.5,1 438,-1,426.6,437.8,130,315.5,1 438,-1,544.5,436.4,148.4,318.9,1 438,-1,1150.2,328.3,488.3,752.7,0.998 438,-1,706.5,432.5,81.6,275.2,0.989 438,-1,1098.7,408.8,190.5,656.5,0.857 438,-1,541.6,465.6,25.1,70.7,0.149 440,-1,915.2,483.5,93.9,112.9,1 440,-1,554.6,432.7,143,322.5,1 440,-1,775.1,413.4,95.7,310,1 440,-1,437.6,436,125.8,310.1,1 440,-1,1081.8,347,407.8,734,0.999 440,-1,716.1,438.6,77.1,266.5,0.548 440,-1,1002.8,448.3,31.4,102.3,0.169 440,-1,705.5,457.3,31.4,99.7,0.095 442,-1,914.2,487.4,92.2,110.6,1 442,-1,440.9,433.9,125.7,316.1,1 442,-1,566.2,440.2,136.5,313,1 442,-1,781.9,407.3,91.7,305.2,1 442,-1,988.5,361.1,392.4,719.9,1 442,-1,718.6,434.3,95,269.7,0.472 442,-1,426.2,464.1,26.7,84.1,0.232 443,-1,575.4,445.1,125.6,313.3,1 443,-1,915.2,487,90.6,109,1 443,-1,451.6,427.5,117.5,325.7,1 443,-1,934.8,366.3,404.9,714.7,0.999 443,-1,787.4,410.3,87.8,303,0.999 443,-1,734.6,433,97.3,273.1,0.479 443,-1,380.6,467.6,56.2,113.5,0.415 443,-1,425.1,466.2,28.9,93.7,0.378 443,-1,1328.7,438.9,115.9,336.2,0.122 447,-1,489.1,436,95.3,289.4,1 447,-1,615.1,435.5,100.6,310.3,1 447,-1,1132.6,402.8,246.6,657.3,1 447,-1,375.8,462.5,52.9,117.4,1 447,-1,414.7,469.2,45.1,104.1,0.998 447,-1,745.5,332.4,412.4,748.6,0.997 447,-1,718.2,456.2,32.8,86.8,0.858 447,-1,464.9,465,30,83.2,0.354 447,-1,1326,441.5,124.9,323.9,0.052 464,-1,911.2,484.5,99.5,108.8,1 464,-1,690,437.5,111.5,301.5,1 464,-1,831.6,404,88.4,304.7,1 464,-1,1215.7,400.1,248.5,680.9,1 464,-1,1050.1,438.6,38.5,110.8,0.999 464,-1,996.3,445.6,36.3,99.9,0.999 464,-1,203,353,375.4,728,0.999 464,-1,554.6,427.9,120.7,290.1,0.999 464,-1,1081.6,483.9,47.2,115.8,0.998 464,-1,1410.4,419.4,165.1,382.4,0.998 464,-1,1131.6,419.8,143.9,552.9,0.819 464,-1,677.4,476.2,31.9,83.5,0.236 464,-1,790,451.1,34.6,143.2,0.071 467,-1,911.1,483.8,100.3,109.2,1 467,-1,724.1,438.6,89.7,296.9,1 467,-1,1250,397.3,222.2,683.7,1 467,-1,576.8,424.6,98.9,291.5,1 467,-1,833.6,404.8,86.8,312,1 467,-1,1084.5,483,44.8,117.1,1 467,-1,994.7,446.5,37.9,98.6,1 467,-1,1130.2,422.2,149.8,570.1,1 467,-1,1047.9,438.9,39.7,108.2,1 467,-1,87.7,376.6,424.9,704.4,0.998 467,-1,1430.7,418,153.6,384.4,0.995 467,-1,673,472.2,25.6,72.3,0.626 467,-1,473.3,453.8,28.5,79.7,0.136 475,-1,747.8,443.3,100.3,292.7,1 475,-1,1335.1,387.8,200,693.2,1 475,-1,620.7,437.7,81.3,271.9,1 475,-1,838.3,407.7,86.5,302.7,1 475,-1,1153.9,418,158.3,585,1 475,-1,991.2,448.3,38.1,98.3,0.999 475,-1,1044.6,439.9,40,108.3,0.999 475,-1,565.3,453.3,32.3,81.1,0.998 475,-1,1109.5,438.4,44.5,145.8,0.998 475,-1,1085.8,469.9,40.3,127,0.996 475,-1,1503.8,411,143.1,394,0.993 475,-1,524.8,458.6,33.2,75.9,0.983 475,-1,714.4,470.3,21.6,66.6,0.9 475,-1,1,382.2,267.3,698.8,0.617 475,-1,548.4,458,27,74.2,0.114 492,-1,809.2,437.6,140.9,292,1 492,-1,651.7,431.4,117.7,273.7,1 492,-1,945,437.4,99.2,234.8,1 492,-1,1386.6,379.1,281.1,701.9,1 492,-1,568.7,456,34.8,81.9,1 492,-1,1207.8,425.5,209.8,603.8,1 492,-1,1181.3,448.5,35.8,88.7,0.999 492,-1,1620.4,408.4,154.5,436,0.999 492,-1,382.6,464.6,55.7,116.1,0.999 492,-1,1112.1,439.7,38.9,151.9,0.998 492,-1,1089.3,449,41,150.3,0.996 492,-1,537.7,460.1,28,72.9,0.986 492,-1,462.5,460.7,25.6,79,0.98 492,-1,632.9,455.9,32,86.6,0.977 492,-1,1034.6,443.3,34.1,121.2,0.917 492,-1,1058.1,447.1,47.7,128.5,0.209 496,-1,823.3,436.6,138.4,299.3,1 496,-1,963.3,432.9,102.8,250.2,1 496,-1,660.7,434.8,112.7,270.6,1 496,-1,382.6,462.9,53.1,116.3,1 496,-1,569.2,455.4,33.8,82.9,1 496,-1,1082.4,448.8,52.2,149.5,1 496,-1,1419.1,373.2,269.1,707.8,1 496,-1,1216.2,431.4,220.3,581.7,1 496,-1,1644.2,415.5,164.7,433.8,0.999 496,-1,1177.5,449,36.5,84.8,0.999 496,-1,636.9,455.2,33.4,91.7,0.999 496,-1,461.6,459.4,25.6,78.3,0.987 496,-1,538.5,460.5,27.5,71.8,0.983 496,-1,795.7,476.8,52.8,56.3,0.817 496,-1,1113.5,449.1,39.5,121.8,0.156 496,-1,421.2,469.4,45.4,93.5,0.07 501,-1,695.6,431.9,86.3,277.4,1 501,-1,382.3,463.6,53.2,117.5,1 501,-1,857.7,438.2,128.1,291.6,1 501,-1,1477.5,372.6,239.9,708.4,1 501,-1,1083.2,448.4,56.7,151.8,1 501,-1,969.9,438.7,115.5,245.7,1 501,-1,1241.7,411.8,214.5,616.1,1 501,-1,570.4,457.7,32.1,81.7,1 501,-1,637.9,456.4,34,87.5,1 501,-1,1683.2,406.9,215.2,479.9,1 501,-1,796.3,476.9,58.4,60.2,1 501,-1,1177.9,449.5,35.8,86.2,1 501,-1,460,459.4,26.4,76.7,0.995 501,-1,537.9,460.8,29.9,74.2,0.991 506,-1,382.8,463.5,51.7,116.1,1 506,-1,888.7,430.6,130.5,299.2,1 506,-1,1513.7,374.8,261.7,706.2,1 506,-1,716.5,432.7,83.1,271.4,1 506,-1,1306.3,416.3,176.5,613.6,1 506,-1,833.9,471.8,51.9,77.1,1 506,-1,638.1,456.5,35.1,87.6,1 506,-1,1092.8,447.7,54.9,147.9,1 506,-1,1177.2,449.1,36.9,88.3,1 506,-1,572.2,456.6,33.3,83,1 506,-1,1729.1,417.8,190.9,485.3,1 506,-1,1004.2,442.1,87.5,240.8,0.999 506,-1,536.8,460.7,30.6,75.7,0.994 506,-1,459.2,459.2,25.3,74.5,0.975 506,-1,677.2,460.7,29.7,78.2,0.95 506,-1,794.3,478.5,61.1,59.2,0.936 506,-1,411.9,469.4,48.4,98.4,0.277 510,-1,382.2,463.4,52.6,116.3,1 510,-1,722.2,430.5,108.3,268.5,1 510,-1,901.8,441.3,145.8,285.9,1 510,-1,835.6,470.6,51.2,81.7,1 510,-1,637.6,456.9,34.7,89.3,1 510,-1,1315.8,430.5,214.2,620.8,1 510,-1,1521.1,383.8,315.9,697.2,1 510,-1,572.4,456.7,33.9,83.5,1 510,-1,1178.4,449.3,36,86.3,1 510,-1,1032.3,439.4,77.1,241.7,0.999 510,-1,1755.2,394.4,165.8,523.1,0.998 510,-1,539,461.5,29.7,75.4,0.991 510,-1,462.1,460.4,24.8,72.8,0.98 510,-1,1097.6,452.1,51.7,139.9,0.979 510,-1,681.6,458.9,27.8,87,0.815 510,-1,697,456.3,39.7,110.2,0.656 510,-1,409.3,470.3,49.5,98.7,0.24 510,-1,880.9,451.3,33.9,88.5,0.081 512,-1,382.3,463.9,51.8,115.7,1 512,-1,834.1,471.6,53.7,78.5,1 512,-1,723.2,435.8,111.9,263.8,1 512,-1,905.3,443.1,145.4,286.2,1 512,-1,1534.7,375.1,317.1,705.9,1 512,-1,638.8,455.7,34.9,89.7,1 512,-1,572.6,455.6,33.7,83.8,1 512,-1,1177.7,448.2,36,89,1 512,-1,1316.6,418,224,633.8,1 512,-1,1034.9,437.7,92,242.4,1 512,-1,538.3,461,29.4,76.2,0.994 512,-1,694.8,449.9,43,125.9,0.991 512,-1,460.8,460.4,24.9,72.4,0.978 512,-1,1759.9,401,161.1,513.2,0.747 512,-1,408.8,471.1,50.3,98.1,0.295 512,-1,1092.7,443.9,57.1,169.7,0.263 523,-1,382,462.2,49.1,116.3,1 523,-1,959.4,446.9,109.1,281.9,1 523,-1,777.4,433.7,80.5,262.4,1 523,-1,1574.1,379.7,309.3,701.3,1 523,-1,1179.9,447.8,35.6,89.1,1 523,-1,572.6,458.6,33.7,82.6,1 523,-1,1358.7,423.3,240.4,647,1 523,-1,679.2,450.9,43.7,124.3,1 523,-1,1056,441.5,105.9,236.5,1 523,-1,881,408.7,98.2,295.2,0.999 523,-1,414.6,469.8,44.5,102.6,0.994 523,-1,650.3,453.6,28.7,95.4,0.988 523,-1,723.7,449,32,90.3,0.988 523,-1,543.7,463.1,28.2,74.1,0.978 523,-1,438.6,464.5,33.3,86.8,0.868 523,-1,463.4,460.8,26.8,69.2,0.536 523,-1,838.7,473,54.3,94.6,0.053 524,-1,381.6,461.5,49.9,117.2,1 524,-1,782.6,431.8,78.4,264.5,1 524,-1,969.3,444.5,103.6,279.4,1 524,-1,1365.2,429.7,237.3,633.3,1 524,-1,1576.8,380.7,316.2,700.3,1 524,-1,1180.6,447.5,35.5,87.4,1 524,-1,572.5,457.5,33.7,84.7,1 524,-1,890,407,93.2,302.4,1 524,-1,677,449.6,45.6,123.9,1 524,-1,1060.4,438.2,103.7,240,0.999 524,-1,416.3,469.1,44.5,102.1,0.994 524,-1,719.8,447.1,32.7,93.9,0.993 524,-1,647.7,454,32,94.1,0.993 524,-1,544,462.3,28.2,75.2,0.977 524,-1,461.6,461.2,27.5,69.7,0.774 528,-1,795.2,435.3,102.8,258.7,1 528,-1,381.9,463,50.3,115.7,1 528,-1,673.1,452.9,44,118.9,1 528,-1,573.6,455.8,34.5,85.6,1 528,-1,990.5,435.2,101.4,289.5,1 528,-1,904.4,406.3,80.4,303.1,1 528,-1,1072.5,434.3,106.3,243.1,1 528,-1,1593.2,368.7,327.8,712.3,1 528,-1,718.1,449.3,33.7,92.8,1 528,-1,1421.4,413,206.8,661,0.999 528,-1,1178.4,446.6,36.4,88.6,0.999 528,-1,416.6,467.9,46.1,102.3,0.999 528,-1,546.4,461.9,27.4,75.7,0.971 528,-1,455.8,463.3,30.7,72.8,0.805 528,-1,647.7,455.2,30.4,91.5,0.694 528,-1,568.2,432.9,20.5,37.5,0.096 544,-1,654.7,451.6,39.8,118.3,1 544,-1,714,450.6,35.5,94.7,1 544,-1,1497.6,405.3,223.5,674,1 544,-1,381.7,463.3,49.5,114.9,1 544,-1,837.9,433.8,103.7,252,1 544,-1,1050.4,441.7,100.3,281.3,1 544,-1,928.9,408.3,125.5,299,1 544,-1,577.1,455.2,38.6,85.3,1 544,-1,415.6,468.1,44.5,103,1 544,-1,1174,441.8,53.6,112.8,0.999 544,-1,794.4,477.6,59.8,57.4,0.998 544,-1,546.2,459.6,31.2,80.1,0.998 544,-1,1117.8,448.2,72.6,225.2,0.991 544,-1,503.6,458.1,22.4,56,0.839 544,-1,461.3,462.9,28.8,67.9,0.531 545,-1,654.4,451.9,39.4,116.8,1 545,-1,714.4,450.2,36.2,96.3,1 545,-1,1058.3,441.5,95.4,280.6,1 545,-1,845.4,433.8,102.6,250.8,1 545,-1,381.4,463.8,49.7,114.3,1 545,-1,577.8,455.2,37.3,85.4,1 545,-1,1511.7,407.5,213.2,668.1,1 545,-1,1177.1,441.6,52.8,110.7,1 545,-1,930.3,412.7,123.1,294.4,1 545,-1,415.3,468.1,44.8,103.6,1 545,-1,795.6,477.9,60.4,57.4,0.999 545,-1,546.1,460.5,30.5,79,0.998 545,-1,1118.1,443.6,67.4,234,0.893 545,-1,503.8,458,22.6,56.5,0.849 545,-1,458.7,463,30.1,70.6,0.422 545,-1,1039.3,452.2,41.3,110.9,0.093 545,-1,824.9,476,64.9,73.6,0.054 549,-1,652.4,452.9,38.5,114.3,1 549,-1,1080.2,437.6,99.1,286.9,1 549,-1,834.8,471.9,53.5,78,1 549,-1,715.2,450.2,37.1,97.6,1 549,-1,951.5,416.5,102.8,292.1,1 549,-1,1186.6,439.1,47.5,109.9,1 549,-1,578.7,455.8,38.5,85,1 549,-1,381.4,464,49.5,114.1,1 549,-1,1546.4,408.6,208.7,672.4,1 549,-1,794.2,475.9,57.8,61.1,1 549,-1,415.3,467.9,45.7,103.2,1 549,-1,879.9,434.6,82.4,250.8,1 549,-1,547.3,460.2,30.1,78.2,0.997 549,-1,1045.1,446.3,37.3,92.1,0.933 549,-1,507.5,456.7,23.4,57.7,0.916 549,-1,455.6,462.3,31.5,73.6,0.356 555,-1,1091.1,441.6,109.5,282.1,1 555,-1,836.1,473.8,52.9,77.2,1 555,-1,716.9,447.4,38.3,101.8,1 555,-1,648.4,453.2,38.4,113.7,1 555,-1,1558.4,412.4,246.9,668.6,1 555,-1,381.5,463.4,49.3,115.1,1 555,-1,893.4,428.2,96.1,261.4,1 555,-1,581.2,457,37.4,84.2,1 555,-1,993.7,411,83.9,296.3,1 555,-1,415.8,466.8,45.1,103.5,1 555,-1,796.8,476.1,54.4,61.7,1 555,-1,548.3,461.1,29.4,78.6,0.998 555,-1,506.7,457.4,23.9,57.3,0.92 555,-1,1190.8,441.7,45.5,110,0.678 555,-1,1078.4,457.9,34.7,103.4,0.23 556,-1,836.3,474.2,53.5,75.9,1 556,-1,1091.1,444.3,111.9,279.3,1 556,-1,1562.1,398.1,243.3,682.9,1 556,-1,717.1,447.8,38.9,101.3,1 556,-1,647.2,452.1,39.1,115.4,1 556,-1,893.6,432.7,96.6,251.7,1 556,-1,381.2,463.2,49.2,115.1,1 556,-1,994.3,411.8,91.8,293.4,1 556,-1,796.8,476.4,55.2,61.4,1 556,-1,416,467.1,45.3,103.4,1 556,-1,580.4,456.7,38.1,84.8,1 556,-1,547.8,461,28.8,78.6,0.998 556,-1,506.9,457.8,23.8,56.2,0.895 556,-1,1189.8,443.1,49.1,112.7,0.381 556,-1,1077.6,454.6,36.6,116.5,0.162 559,-1,836.3,472.7,54.6,77.7,1 559,-1,717.7,448,39.1,101.3,1 559,-1,1570.9,386.5,259.9,694.5,1 559,-1,1091.5,444.1,121.5,278.1,1 559,-1,896.3,435.2,101.5,253.3,1 559,-1,644.6,452.4,38.9,113.5,1 559,-1,381.8,464.1,48.8,113.9,1 559,-1,1001.9,414.4,107.4,289.6,1 559,-1,796.8,476.1,55.8,61.5,1 559,-1,415.7,467.3,44.9,102.8,1 559,-1,578.1,456.8,39.9,84.9,1 559,-1,547.8,461.2,29,77.9,0.997 559,-1,509.8,455.9,24.8,57.4,0.933 559,-1,1195.9,449.1,48.1,106.8,0.181 581,-1,835.7,472.9,53.7,77.2,1 581,-1,721.8,448.3,42.3,107.5,1 581,-1,971.7,436.6,103.3,241.6,1 581,-1,1178,439.6,121.7,275.5,1 581,-1,1070.3,414.8,91.3,285.8,1 581,-1,797.1,475.5,55.7,62.1,1 581,-1,416.4,469.3,41.3,103.7,1 581,-1,381.3,464.8,48.6,112.4,1 581,-1,665.8,453.9,39.7,103.7,1 581,-1,1676.1,397.7,244.9,683.3,0.999 581,-1,553.7,460.1,31.5,83.3,0.999 581,-1,636.2,451.5,33.6,107,0.986 581,-1,585.4,457.9,37.9,85,0.982 581,-1,909.5,486.6,100.2,105.2,0.927 581,-1,621.3,457.1,30.6,93.7,0.187 590,-1,835.5,472.5,53.7,77.7,1 590,-1,722.4,446.7,45.6,109.7,1 590,-1,1004.2,431.2,86.8,244.2,1 590,-1,914,483.1,96.9,113,1 590,-1,1091.9,414.2,107.1,288,1 590,-1,1239.8,439.7,89.5,276,1 590,-1,664.7,454.7,39.7,105.7,1 590,-1,381.3,463.1,48.6,115.7,1 590,-1,797,475.6,55.9,61.8,1 590,-1,416,466.7,42,106.1,1 590,-1,557.1,459.4,28.2,84.6,0.999 590,-1,629.6,454.1,35.3,102.5,0.995 590,-1,586.3,457.4,33.1,84.3,0.962 593,-1,835.8,472.3,53.5,77.6,1 593,-1,913.7,482.8,97.8,112.6,1 593,-1,722.6,446,44.4,110.2,1 593,-1,1244.4,441.9,97.3,276.6,1 593,-1,1098.5,406.5,100.8,294,1 593,-1,1023.2,432.5,77.4,239.6,1 593,-1,664.6,455.5,38.5,105,1 593,-1,382,462.6,47.8,116.2,1 593,-1,796.7,476.1,55.8,61.3,1 593,-1,554.4,459.9,30.7,84.1,1 593,-1,416.5,466.4,42.2,105.9,1 593,-1,628.9,454.6,33.9,100.9,0.997 593,-1,585.2,457.2,32.6,83,0.946 593,-1,604.7,456.2,31.7,90.1,0.863 593,-1,992.9,450.6,31.3,106.1,0.622 ================================================ FILE: assets/MOT17-mini/train/MOT17-02-FRCNN/gt/gt.txt ================================================ 1,1,912,484,97,109,0,7,1.0 2,1,912,484,97,109,0,7,1.0 3,1,912,484,97,109,0,7,1.0 4,1,912,484,97,109,0,7,1.0 1,2,1338,418,167,379,1,1,1.0 2,2,1342,417,168,380,1,1,1.0 3,2,1346,417,170,380,1,1,1.0 4,2,1351,417,171,381,1,1,1.0 1,3,586,447,85,263,1,1,1.0 2,3,586,446,85,264,1,1,1.0 3,3,586,446,85,264,1,1,1.0 4,3,586,446,85,264,1,1,1.0 1,4,1585,-1,336,578,0,9,0.98153 2,4,1585,-1,336,578,0,9,0.97777 3,4,1585,-1,336,578,0,9,0.974 4,4,1585,-1,336,578,0,9,0.97023 1,5,1163,441,33,89,0,8,1.0 2,5,1163,441,33,89,0,8,1.0 3,5,1163,441,33,89,0,8,1.0 4,5,1163,441,33,89,0,8,1.0 1,6,1308,431,34,118,0,8,0.85714 2,6,1308,431,34,118,0,8,0.97143 3,6,1308,431,34,118,0,8,1.0 4,6,1308,431,34,118,0,8,1.0 1,8,1416,431,184,336,1,1,0.51351 2,8,1422,431,183,337,1,1,0.5163 3,8,1428,431,182,338,1,1,0.51366 4,8,1434,431,181,339,1,1,0.51099 1,9,1056,484,36,110,1,1,0.94595 2,9,1055,483,36,110,1,1,0.94643 3,9,1055,483,36,110,1,1,0.94643 4,9,1055,483,36,110,1,1,0.94643 1,10,1091,484,31,115,1,1,1.0 2,10,1090,484,32,114,1,1,1.0 3,10,1090,484,32,114,1,1,1.0 4,10,1090,484,32,114,1,1,1.0 1,11,734,487,29,68,0,2,0.31884 2,11,733,487,30,68,0,2,0.31884 3,11,733,487,30,69,0,2,0.31429 4,11,732,487,31,69,0,2,0.31429 1,12,679,492,53,105,0,2,0.30573 2,12,679,492,52,105,0,2,0.29263 3,12,679,492,52,105,0,2,0.28622 4,12,679,492,52,105,0,2,0.28622 1,13,738,458,27,75,0,2,0.3985 2,13,737,457,27,75,0,2,0.40273 3,13,737,457,27,75,0,2,0.40273 4,13,737,457,27,75,0,2,0.40273 1,14,1255,447,33,100,1,1,1.0 2,14,1255,447,33,100,1,1,1.0 3,14,1255,447,33,100,1,1,1.0 4,14,1255,447,33,100,1,1,1.0 1,15,1016,430,40,116,1,1,0.98687 2,15,1015,430,40,116,1,1,0.98666 3,15,1015,430,40,116,1,1,0.98666 4,15,1015,431,40,116,1,1,0.98645 1,17,1101,441,38,108,1,1,0.65843 2,17,1100,440,38,108,1,1,0.64832 3,17,1100,440,38,108,1,1,0.64832 4,17,1100,440,38,108,1,1,0.64832 1,18,935,436,42,114,1,1,0.41739 2,18,934,435,42,114,1,1,0.42609 3,18,934,435,42,114,1,1,0.42609 4,18,934,435,42,114,1,1,0.42609 1,19,442,446,105,283,1,1,1.0 2,19,442,446,107,282,1,1,1.0 3,19,442,446,109,282,1,1,1.0 4,19,442,446,111,282,1,1,1.0 1,20,636,458,61,187,1,1,0.41935 2,20,636,458,61,187,1,1,0.41935 3,20,636,458,62,187,1,1,0.42857 4,20,637,458,61,187,1,1,0.43548 1,21,1364,434,51,124,1,1,0.0 2,21,1365,434,52,124,1,1,0.0 3,21,1366,434,54,124,1,1,0.0 4,21,1368,435,55,124,1,1,0.0 1,22,1478,434,63,124,1,1,0.0 2,22,1480,433,62,125,1,1,0.0 3,22,1483,433,60,125,1,1,0.0 4,22,1486,433,59,126,1,1,0.0 1,23,473,460,89,249,1,1,0.16667 2,23,473,460,89,249,1,1,0.14444 3,23,474,460,89,249,1,1,0.13333 4,23,475,460,89,249,1,1,0.12222 1,24,835,473,52,75,0,7,1.0 2,24,835,473,52,75,0,7,1.0 3,24,835,473,52,75,0,7,1.0 4,24,835,473,52,75,0,7,1.0 1,25,796,476,55,60,0,7,0.69643 2,25,796,476,55,60,0,7,0.69643 3,25,796,476,55,60,0,7,0.69643 4,25,796,476,55,60,0,7,0.69643 1,26,548,465,35,93,1,1,0.52778 2,26,547,464,35,93,1,1,0.52778 3,26,547,464,35,93,1,1,0.5 4,26,547,464,35,93,1,1,0.47222 1,30,376,446,41,104,0,7,1.0 2,30,375,446,41,104,0,7,1.0 3,30,375,446,41,104,0,7,1.0 4,30,375,446,41,104,0,7,1.0 1,31,418,459,40,84,1,1,0.58537 2,31,418,459,40,84,1,1,0.58537 3,31,418,459,40,84,1,1,0.58537 4,31,418,459,40,84,1,1,0.58537 1,36,582,456,35,133,1,1,0.11111 2,36,582,455,34,134,1,1,0.11429 3,36,582,455,34,134,1,1,0.11429 4,36,582,455,34,134,1,1,0.11429 1,39,972,456,32,77,1,1,0.29371 2,39,972,456,32,77,1,1,0.30458 3,39,973,456,32,77,1,1,0.31546 4,39,974,456,32,77,1,1,0.32634 1,46,693,462,20,67,0,7,0.32633 2,46,693,462,21,67,0,7,0.29078 3,46,694,462,21,67,0,7,0.28075 4,46,694,462,23,67,0,7,0.25735 1,47,713,478,19,57,0,7,0.24138 2,47,712,477,20,57,0,7,0.27258 3,47,712,477,20,57,0,7,0.27258 4,47,712,477,20,57,0,7,0.25452 1,50,734,505,31,44,0,4,0.0055556 2,50,733,504,31,45,0,4,0.0033967 3,50,733,504,31,45,0,4,0.0033967 4,50,733,504,31,45,0,4,0.0033967 1,51,911,408,26,129,0,9,0.55897 2,51,910,408,26,129,0,9,0.5735 3,51,910,408,26,129,0,9,0.5735 4,51,910,408,26,129,0,9,0.5735 1,52,730,509,37,60,0,4,0.92105 2,52,730,509,37,60,0,4,0.94737 3,52,730,509,37,61,0,4,0.94737 4,52,730,509,37,62,0,4,0.94737 1,53,679,528,46,79,0,4,0.59574 2,53,679,528,46,79,0,4,0.59574 3,53,679,528,46,79,0,4,0.57447 4,53,679,528,46,79,0,4,0.57447 1,66,1004,454,18,61,0,7,0.44482 2,66,1003,453,18,61,0,7,0.39983 3,66,1003,453,18,61,0,7,0.37606 4,66,1003,453,18,61,0,7,0.35229 1,68,578,432,20,43,1,1,0.45779 2,68,578,431,20,43,1,1,0.45779 3,68,578,431,20,43,1,1,0.45779 4,68,578,431,20,43,1,1,0.45779 1,69,596,429,18,42,1,1,0.36353 2,69,595,428,18,42,1,1,0.34517 3,69,595,428,18,42,1,1,0.34517 4,69,595,428,18,42,1,1,0.34517 1,70,1036,453,25,67,1,1,0.08767 2,70,1035,452,25,67,1,1,0.08767 3,70,1035,452,25,67,1,1,0.08767 4,70,1035,452,25,67,1,1,0.08767 1,72,663,451,34,86,1,1,0.05977 2,72,664,451,34,85,1,1,0.074086 3,72,665,451,34,85,1,1,0.076412 4,72,666,451,34,85,1,1,0.090033 ================================================ FILE: assets/MOT17-mini/train/MOT17-02-FRCNN/gt/gt_temp.txt ================================================ 1.000000,1.000000,912.000000,484.000000,97.000000,109.000000,0.000000,7.000000,1.000000 2.000000,1.000000,912.000000,484.000000,97.000000,109.000000,0.000000,7.000000,1.000000 3.000000,1.000000,912.000000,484.000000,97.000000,109.000000,0.000000,7.000000,1.000000 4.000000,1.000000,912.000000,484.000000,97.000000,109.000000,0.000000,7.000000,1.000000 1.000000,2.000000,1338.000000,418.000000,167.000000,379.000000,1.000000,1.000000,1.000000 2.000000,2.000000,1342.000000,417.000000,168.000000,380.000000,1.000000,1.000000,1.000000 3.000000,2.000000,1346.000000,417.000000,170.000000,380.000000,1.000000,1.000000,1.000000 4.000000,2.000000,1351.000000,417.000000,171.000000,381.000000,1.000000,1.000000,1.000000 1.000000,3.000000,586.000000,447.000000,85.000000,263.000000,1.000000,1.000000,1.000000 2.000000,3.000000,586.000000,446.000000,85.000000,264.000000,1.000000,1.000000,1.000000 3.000000,3.000000,586.000000,446.000000,85.000000,264.000000,1.000000,1.000000,1.000000 4.000000,3.000000,586.000000,446.000000,85.000000,264.000000,1.000000,1.000000,1.000000 1.000000,4.000000,1585.000000,-1.000000,336.000000,578.000000,0.000000,9.000000,0.981530 2.000000,4.000000,1585.000000,-1.000000,336.000000,578.000000,0.000000,9.000000,0.977770 3.000000,4.000000,1585.000000,-1.000000,336.000000,578.000000,0.000000,9.000000,0.974000 4.000000,4.000000,1585.000000,-1.000000,336.000000,578.000000,0.000000,9.000000,0.970230 1.000000,5.000000,1163.000000,441.000000,33.000000,89.000000,0.000000,8.000000,1.000000 2.000000,5.000000,1163.000000,441.000000,33.000000,89.000000,0.000000,8.000000,1.000000 3.000000,5.000000,1163.000000,441.000000,33.000000,89.000000,0.000000,8.000000,1.000000 4.000000,5.000000,1163.000000,441.000000,33.000000,89.000000,0.000000,8.000000,1.000000 1.000000,6.000000,1308.000000,431.000000,34.000000,118.000000,0.000000,8.000000,0.857140 2.000000,6.000000,1308.000000,431.000000,34.000000,118.000000,0.000000,8.000000,0.971430 3.000000,6.000000,1308.000000,431.000000,34.000000,118.000000,0.000000,8.000000,1.000000 4.000000,6.000000,1308.000000,431.000000,34.000000,118.000000,0.000000,8.000000,1.000000 1.000000,8.000000,1416.000000,431.000000,184.000000,336.000000,1.000000,1.000000,0.513510 2.000000,8.000000,1422.000000,431.000000,183.000000,337.000000,1.000000,1.000000,0.516300 3.000000,8.000000,1428.000000,431.000000,182.000000,338.000000,1.000000,1.000000,0.513660 4.000000,8.000000,1434.000000,431.000000,181.000000,339.000000,1.000000,1.000000,0.510990 1.000000,9.000000,1056.000000,484.000000,36.000000,110.000000,1.000000,1.000000,0.945950 2.000000,9.000000,1055.000000,483.000000,36.000000,110.000000,1.000000,1.000000,0.946430 3.000000,9.000000,1055.000000,483.000000,36.000000,110.000000,1.000000,1.000000,0.946430 4.000000,9.000000,1055.000000,483.000000,36.000000,110.000000,1.000000,1.000000,0.946430 1.000000,10.000000,1091.000000,484.000000,31.000000,115.000000,1.000000,1.000000,1.000000 2.000000,10.000000,1090.000000,484.000000,32.000000,114.000000,1.000000,1.000000,1.000000 3.000000,10.000000,1090.000000,484.000000,32.000000,114.000000,1.000000,1.000000,1.000000 4.000000,10.000000,1090.000000,484.000000,32.000000,114.000000,1.000000,1.000000,1.000000 1.000000,11.000000,734.000000,487.000000,29.000000,68.000000,0.000000,2.000000,0.318840 2.000000,11.000000,733.000000,487.000000,30.000000,68.000000,0.000000,2.000000,0.318840 3.000000,11.000000,733.000000,487.000000,30.000000,69.000000,0.000000,2.000000,0.314290 4.000000,11.000000,732.000000,487.000000,31.000000,69.000000,0.000000,2.000000,0.314290 1.000000,12.000000,679.000000,492.000000,53.000000,105.000000,0.000000,2.000000,0.305730 2.000000,12.000000,679.000000,492.000000,52.000000,105.000000,0.000000,2.000000,0.292630 3.000000,12.000000,679.000000,492.000000,52.000000,105.000000,0.000000,2.000000,0.286220 4.000000,12.000000,679.000000,492.000000,52.000000,105.000000,0.000000,2.000000,0.286220 1.000000,13.000000,738.000000,458.000000,27.000000,75.000000,0.000000,2.000000,0.398500 2.000000,13.000000,737.000000,457.000000,27.000000,75.000000,0.000000,2.000000,0.402730 3.000000,13.000000,737.000000,457.000000,27.000000,75.000000,0.000000,2.000000,0.402730 4.000000,13.000000,737.000000,457.000000,27.000000,75.000000,0.000000,2.000000,0.402730 1.000000,14.000000,1255.000000,447.000000,33.000000,100.000000,1.000000,1.000000,1.000000 2.000000,14.000000,1255.000000,447.000000,33.000000,100.000000,1.000000,1.000000,1.000000 3.000000,14.000000,1255.000000,447.000000,33.000000,100.000000,1.000000,1.000000,1.000000 4.000000,14.000000,1255.000000,447.000000,33.000000,100.000000,1.000000,1.000000,1.000000 1.000000,15.000000,1016.000000,430.000000,40.000000,116.000000,1.000000,1.000000,0.986870 2.000000,15.000000,1015.000000,430.000000,40.000000,116.000000,1.000000,1.000000,0.986660 3.000000,15.000000,1015.000000,430.000000,40.000000,116.000000,1.000000,1.000000,0.986660 4.000000,15.000000,1015.000000,431.000000,40.000000,116.000000,1.000000,1.000000,0.986450 1.000000,17.000000,1101.000000,441.000000,38.000000,108.000000,1.000000,1.000000,0.658430 2.000000,17.000000,1100.000000,440.000000,38.000000,108.000000,1.000000,1.000000,0.648320 3.000000,17.000000,1100.000000,440.000000,38.000000,108.000000,1.000000,1.000000,0.648320 4.000000,17.000000,1100.000000,440.000000,38.000000,108.000000,1.000000,1.000000,0.648320 1.000000,18.000000,935.000000,436.000000,42.000000,114.000000,1.000000,1.000000,0.417390 2.000000,18.000000,934.000000,435.000000,42.000000,114.000000,1.000000,1.000000,0.426090 3.000000,18.000000,934.000000,435.000000,42.000000,114.000000,1.000000,1.000000,0.426090 4.000000,18.000000,934.000000,435.000000,42.000000,114.000000,1.000000,1.000000,0.426090 1.000000,19.000000,442.000000,446.000000,105.000000,283.000000,1.000000,1.000000,1.000000 2.000000,19.000000,442.000000,446.000000,107.000000,282.000000,1.000000,1.000000,1.000000 3.000000,19.000000,442.000000,446.000000,109.000000,282.000000,1.000000,1.000000,1.000000 4.000000,19.000000,442.000000,446.000000,111.000000,282.000000,1.000000,1.000000,1.000000 1.000000,20.000000,636.000000,458.000000,61.000000,187.000000,1.000000,1.000000,0.419350 2.000000,20.000000,636.000000,458.000000,61.000000,187.000000,1.000000,1.000000,0.419350 3.000000,20.000000,636.000000,458.000000,62.000000,187.000000,1.000000,1.000000,0.428570 4.000000,20.000000,637.000000,458.000000,61.000000,187.000000,1.000000,1.000000,0.435480 1.000000,21.000000,1364.000000,434.000000,51.000000,124.000000,1.000000,1.000000,0.000000 2.000000,21.000000,1365.000000,434.000000,52.000000,124.000000,1.000000,1.000000,0.000000 3.000000,21.000000,1366.000000,434.000000,54.000000,124.000000,1.000000,1.000000,0.000000 4.000000,21.000000,1368.000000,435.000000,55.000000,124.000000,1.000000,1.000000,0.000000 1.000000,22.000000,1478.000000,434.000000,63.000000,124.000000,1.000000,1.000000,0.000000 2.000000,22.000000,1480.000000,433.000000,62.000000,125.000000,1.000000,1.000000,0.000000 3.000000,22.000000,1483.000000,433.000000,60.000000,125.000000,1.000000,1.000000,0.000000 4.000000,22.000000,1486.000000,433.000000,59.000000,126.000000,1.000000,1.000000,0.000000 1.000000,23.000000,473.000000,460.000000,89.000000,249.000000,1.000000,1.000000,0.166670 2.000000,23.000000,473.000000,460.000000,89.000000,249.000000,1.000000,1.000000,0.144440 3.000000,23.000000,474.000000,460.000000,89.000000,249.000000,1.000000,1.000000,0.133330 4.000000,23.000000,475.000000,460.000000,89.000000,249.000000,1.000000,1.000000,0.122220 1.000000,24.000000,835.000000,473.000000,52.000000,75.000000,0.000000,7.000000,1.000000 2.000000,24.000000,835.000000,473.000000,52.000000,75.000000,0.000000,7.000000,1.000000 3.000000,24.000000,835.000000,473.000000,52.000000,75.000000,0.000000,7.000000,1.000000 4.000000,24.000000,835.000000,473.000000,52.000000,75.000000,0.000000,7.000000,1.000000 1.000000,25.000000,796.000000,476.000000,55.000000,60.000000,0.000000,7.000000,0.696430 2.000000,25.000000,796.000000,476.000000,55.000000,60.000000,0.000000,7.000000,0.696430 3.000000,25.000000,796.000000,476.000000,55.000000,60.000000,0.000000,7.000000,0.696430 4.000000,25.000000,796.000000,476.000000,55.000000,60.000000,0.000000,7.000000,0.696430 1.000000,26.000000,548.000000,465.000000,35.000000,93.000000,1.000000,1.000000,0.527780 2.000000,26.000000,547.000000,464.000000,35.000000,93.000000,1.000000,1.000000,0.527780 3.000000,26.000000,547.000000,464.000000,35.000000,93.000000,1.000000,1.000000,0.500000 4.000000,26.000000,547.000000,464.000000,35.000000,93.000000,1.000000,1.000000,0.472220 1.000000,30.000000,376.000000,446.000000,41.000000,104.000000,0.000000,7.000000,1.000000 2.000000,30.000000,375.000000,446.000000,41.000000,104.000000,0.000000,7.000000,1.000000 3.000000,30.000000,375.000000,446.000000,41.000000,104.000000,0.000000,7.000000,1.000000 4.000000,30.000000,375.000000,446.000000,41.000000,104.000000,0.000000,7.000000,1.000000 1.000000,31.000000,418.000000,459.000000,40.000000,84.000000,1.000000,1.000000,0.585370 2.000000,31.000000,418.000000,459.000000,40.000000,84.000000,1.000000,1.000000,0.585370 3.000000,31.000000,418.000000,459.000000,40.000000,84.000000,1.000000,1.000000,0.585370 4.000000,31.000000,418.000000,459.000000,40.000000,84.000000,1.000000,1.000000,0.585370 1.000000,36.000000,582.000000,456.000000,35.000000,133.000000,1.000000,1.000000,0.111110 2.000000,36.000000,582.000000,455.000000,34.000000,134.000000,1.000000,1.000000,0.114290 3.000000,36.000000,582.000000,455.000000,34.000000,134.000000,1.000000,1.000000,0.114290 4.000000,36.000000,582.000000,455.000000,34.000000,134.000000,1.000000,1.000000,0.114290 1.000000,39.000000,972.000000,456.000000,32.000000,77.000000,1.000000,1.000000,0.293710 2.000000,39.000000,972.000000,456.000000,32.000000,77.000000,1.000000,1.000000,0.304580 3.000000,39.000000,973.000000,456.000000,32.000000,77.000000,1.000000,1.000000,0.315460 4.000000,39.000000,974.000000,456.000000,32.000000,77.000000,1.000000,1.000000,0.326340 1.000000,46.000000,693.000000,462.000000,20.000000,67.000000,0.000000,7.000000,0.326330 2.000000,46.000000,693.000000,462.000000,21.000000,67.000000,0.000000,7.000000,0.290780 3.000000,46.000000,694.000000,462.000000,21.000000,67.000000,0.000000,7.000000,0.280750 4.000000,46.000000,694.000000,462.000000,23.000000,67.000000,0.000000,7.000000,0.257350 1.000000,47.000000,713.000000,478.000000,19.000000,57.000000,0.000000,7.000000,0.241380 2.000000,47.000000,712.000000,477.000000,20.000000,57.000000,0.000000,7.000000,0.272580 3.000000,47.000000,712.000000,477.000000,20.000000,57.000000,0.000000,7.000000,0.272580 4.000000,47.000000,712.000000,477.000000,20.000000,57.000000,0.000000,7.000000,0.254520 1.000000,50.000000,734.000000,505.000000,31.000000,44.000000,0.000000,4.000000,0.005556 2.000000,50.000000,733.000000,504.000000,31.000000,45.000000,0.000000,4.000000,0.003397 3.000000,50.000000,733.000000,504.000000,31.000000,45.000000,0.000000,4.000000,0.003397 4.000000,50.000000,733.000000,504.000000,31.000000,45.000000,0.000000,4.000000,0.003397 1.000000,51.000000,911.000000,408.000000,26.000000,129.000000,0.000000,9.000000,0.558970 2.000000,51.000000,910.000000,408.000000,26.000000,129.000000,0.000000,9.000000,0.573500 3.000000,51.000000,910.000000,408.000000,26.000000,129.000000,0.000000,9.000000,0.573500 4.000000,51.000000,910.000000,408.000000,26.000000,129.000000,0.000000,9.000000,0.573500 1.000000,52.000000,730.000000,509.000000,37.000000,60.000000,0.000000,4.000000,0.921050 2.000000,52.000000,730.000000,509.000000,37.000000,60.000000,0.000000,4.000000,0.947370 3.000000,52.000000,730.000000,509.000000,37.000000,61.000000,0.000000,4.000000,0.947370 4.000000,52.000000,730.000000,509.000000,37.000000,62.000000,0.000000,4.000000,0.947370 1.000000,53.000000,679.000000,528.000000,46.000000,79.000000,0.000000,4.000000,0.595740 2.000000,53.000000,679.000000,528.000000,46.000000,79.000000,0.000000,4.000000,0.595740 3.000000,53.000000,679.000000,528.000000,46.000000,79.000000,0.000000,4.000000,0.574470 4.000000,53.000000,679.000000,528.000000,46.000000,79.000000,0.000000,4.000000,0.574470 1.000000,66.000000,1004.000000,454.000000,18.000000,61.000000,0.000000,7.000000,0.444820 2.000000,66.000000,1003.000000,453.000000,18.000000,61.000000,0.000000,7.000000,0.399830 3.000000,66.000000,1003.000000,453.000000,18.000000,61.000000,0.000000,7.000000,0.376060 4.000000,66.000000,1003.000000,453.000000,18.000000,61.000000,0.000000,7.000000,0.352290 1.000000,68.000000,578.000000,432.000000,20.000000,43.000000,1.000000,1.000000,0.457790 2.000000,68.000000,578.000000,431.000000,20.000000,43.000000,1.000000,1.000000,0.457790 3.000000,68.000000,578.000000,431.000000,20.000000,43.000000,1.000000,1.000000,0.457790 4.000000,68.000000,578.000000,431.000000,20.000000,43.000000,1.000000,1.000000,0.457790 1.000000,69.000000,596.000000,429.000000,18.000000,42.000000,1.000000,1.000000,0.363530 2.000000,69.000000,595.000000,428.000000,18.000000,42.000000,1.000000,1.000000,0.345170 3.000000,69.000000,595.000000,428.000000,18.000000,42.000000,1.000000,1.000000,0.345170 4.000000,69.000000,595.000000,428.000000,18.000000,42.000000,1.000000,1.000000,0.345170 1.000000,70.000000,1036.000000,453.000000,25.000000,67.000000,1.000000,1.000000,0.087670 2.000000,70.000000,1035.000000,452.000000,25.000000,67.000000,1.000000,1.000000,0.087670 3.000000,70.000000,1035.000000,452.000000,25.000000,67.000000,1.000000,1.000000,0.087670 4.000000,70.000000,1035.000000,452.000000,25.000000,67.000000,1.000000,1.000000,0.087670 1.000000,72.000000,663.000000,451.000000,34.000000,86.000000,1.000000,1.000000,0.059770 2.000000,72.000000,664.000000,451.000000,34.000000,85.000000,1.000000,1.000000,0.074086 3.000000,72.000000,665.000000,451.000000,34.000000,85.000000,1.000000,1.000000,0.076412 4.000000,72.000000,666.000000,451.000000,34.000000,85.000000,1.000000,1.000000,0.090033 ================================================ FILE: assets/MOT17-mini/train/MOT17-02-FRCNN/seqinfo.ini ================================================ [Sequence] name=MOT17-02-FRCNN imDir=img1 frameRate=30 seqLength=600 imWidth=1920 imHeight=1080 imExt=.jpg ================================================ FILE: assets/MOT17-mini/train/MOT17-04-FRCNN/det/det.txt ================================================ 375,-1,1222,31.4,61,118.8,1 375,-1,686.4,206,79.7,113.1,1 375,-1,1632.7,15.3,59.8,162.8,1 375,-1,1079.3,447.2,68.5,202.7,1 375,-1,358.8,110.2,55.7,176.5,1 375,-1,445.8,308,73.6,214.7,1 375,-1,285,130.4,54.7,168.9,1 375,-1,828.5,1,55.8,113.1,1 375,-1,109,350.7,53,189.7,1 375,-1,455,545.4,71.9,233,1 375,-1,1719.1,455,78.5,214.2,1 375,-1,953.1,41.1,61.6,176.7,1 375,-1,445.3,75.7,69.2,197,1 375,-1,1590,632.3,83.1,243.1,1 375,-1,795.9,150.3,59.3,171.1,1 375,-1,348.2,529.4,88.2,246.3,1 375,-1,508.4,86.8,51,168.9,1 375,-1,215.8,139.5,58.3,158.4,1 375,-1,1018.4,52.6,54.8,164.2,1 375,-1,1434.3,2,52.3,97.2,1 375,-1,562.9,566,99.4,253.7,1 375,-1,1803.1,449.2,64.2,214,1 375,-1,380.9,2.2,47.5,92.3,1 375,-1,212.1,306.5,53.4,180.2,1 375,-1,850.4,488.2,84.6,232.2,1 375,-1,911.3,500.3,78.1,212.6,1 375,-1,756.5,97.5,46.8,142.8,1 375,-1,1767.7,104.3,53.6,154.4,0.999 375,-1,1810.5,69.2,64.4,165.5,0.999 375,-1,969.5,916.2,86.2,164.8,0.997 242,-1,1220.8,30.7,63.6,119.6,1 242,-1,686.3,207.5,79.9,111.6,1 242,-1,1163.6,120.3,53,160.5,1 242,-1,795.4,150.9,59.8,176.4,1 242,-1,1592.6,2.1,57.8,145.1,1 242,-1,1483.3,59.7,52.9,151,1 242,-1,446.1,175.5,74.8,209.5,1 242,-1,1083.9,120.4,59.9,182.2,1 242,-1,1363.1,568,110.2,244.7,1 242,-1,288.8,127.8,55.1,172.2,1 242,-1,1720.8,457.1,77.9,212.3,1 242,-1,387.5,523.2,86.9,236.9,1 242,-1,109.3,350.3,49.7,191,1 242,-1,704.4,1,54.9,160.1,1 242,-1,355.5,104.7,54.2,179.6,1 242,-1,212.1,125.6,55.5,167.1,1 242,-1,929.4,120,69,185.2,1 242,-1,495.8,356.4,73.2,224.5,1 242,-1,222,475.7,62.3,204.3,1 242,-1,196.3,717.6,86,253.1,1 242,-1,844.9,345.4,79.5,193.6,1 242,-1,516.2,118.1,52.1,181,1 242,-1,589.8,366.6,61.8,194.9,1 242,-1,787.2,332.6,80.9,206,1 242,-1,111.2,563.6,87.4,243,0.999 242,-1,931,894.7,72.4,186.3,0.979 242,-1,156.7,667.7,61.7,198.4,0.089 583,-1,1221.4,30.7,61.8,119.6,1 583,-1,687,206.1,79.6,113.5,1 583,-1,1480.8,4.7,60.4,144.5,1 583,-1,801.3,143.7,62.8,175,1 583,-1,377.4,253.1,65.8,198.8,1 583,-1,1646.6,1,55.3,129.1,1 583,-1,1650.4,245.1,79.6,201.3,1 583,-1,288.5,123.8,52.6,173.1,1 583,-1,1718.1,452.8,82.9,214.2,1 583,-1,873.9,2.7,50.3,100.9,1 583,-1,558.9,112.6,51.2,175.1,1 583,-1,1576.1,588.7,92.1,234.5,1 583,-1,217.1,275.2,64.1,190.9,1 583,-1,216.5,135,51.1,160.3,1 583,-1,358.2,109,53.5,176.6,1 583,-1,754,80,44.1,155.5,1 583,-1,157.4,253.2,60.5,209.5,1 583,-1,460.6,117.5,51.3,158.2,1 583,-1,1849.1,263.2,68.6,177.3,1 583,-1,1050.3,833.8,127.4,247.2,0.999 583,-1,426.7,61.9,44.7,169,0.999 583,-1,696.8,569,85.3,256.4,0.999 583,-1,1132.4,844.4,91.4,236.6,0.244 583,-1,1004.2,926.9,70.8,154.1,0.085 542,-1,1221.4,30.5,62.6,119.9,1 542,-1,687.3,206,78.1,113.9,1 542,-1,1488.9,2.6,58.2,142.2,1 542,-1,780.2,143.8,66.4,174.5,1 542,-1,387.2,208.5,62.1,192.6,1 542,-1,1677.8,287.3,80,206,1 542,-1,1717.1,457,82.3,210.1,1 542,-1,878.9,1.2,52.6,112,1 542,-1,991.4,1.5,53,105.1,1 542,-1,289.7,124.4,53,171.2,1 542,-1,1660.5,2.6,53.8,160,1 542,-1,176.8,307.4,65.6,191.8,1 542,-1,788.7,597.5,85.1,257.1,1 542,-1,455.6,105.7,69.4,186.5,1 542,-1,525.2,106.2,60.2,177.9,1 542,-1,1778.5,228,68.1,177.2,1 542,-1,1598.4,1,54.1,155.1,1 542,-1,217.6,134.8,59.6,158.2,1 542,-1,1590.5,582.1,69.1,242.2,1 542,-1,359.7,112.5,52.9,170.8,1 542,-1,200.9,811.3,97.1,269.7,0.999 542,-1,406.9,46.9,49,158.8,0.999 542,-1,926.9,1.2,58,104.3,0.999 542,-1,260.6,849.8,76.3,231.2,0.999 542,-1,129.9,271.8,54.1,216.3,0.994 542,-1,984.2,756.2,118,250.3,0.992 542,-1,1063.7,769,88.3,241.7,0.986 542,-1,756.5,83.5,44.7,151.6,0.956 518,-1,1221.5,30.6,61.9,119.6,1 518,-1,1490.5,1,59.4,140.4,1 518,-1,686.6,207,80.1,113.3,1 518,-1,994.7,1,55.3,122.8,1 518,-1,1672.6,22.5,54.9,165.3,1 518,-1,161.7,324.9,66.7,190.4,1 518,-1,391.9,185.1,62.1,187.7,1 518,-1,884.3,1.8,52.6,120.4,1 518,-1,827.4,610.6,73.5,254.8,1 518,-1,1735.1,627.6,70.2,217.3,1 518,-1,788.4,145.3,55.7,174.6,1 518,-1,1567.3,599.1,63.7,239.9,1 518,-1,1612.5,13.8,54.6,175.6,1 518,-1,459.6,131.8,68.4,185.6,1 518,-1,1719.9,461.7,79.5,203.3,1 518,-1,930.5,2.5,57.7,117.8,1 518,-1,1850.9,215.5,70.1,186,1 518,-1,287,128.8,54.3,166.1,1 518,-1,346.3,171,48.4,163.6,1 518,-1,1604,298,63,202.2,1 518,-1,946.4,710.9,122.8,264.6,1 518,-1,1708.1,319.7,90.6,200,1 518,-1,195.9,778.4,93.9,271.9,1 518,-1,732.7,92.4,66.1,169.1,1 518,-1,515.7,95.6,57.8,181.4,1 518,-1,216.8,136,63.9,160.7,1 518,-1,451.3,3.3,75.1,179.4,1 518,-1,274.4,804.5,82.6,264.5,1 518,-1,1760.1,206.4,58.3,168.3,1 518,-1,398.7,25.5,47.3,162.1,0.999 518,-1,574.2,67.7,43.8,151,0.998 518,-1,1046,931.2,74.4,149.8,0.084 977,-1,686.8,206.4,79.2,112.9,1 977,-1,793,140.5,74.5,172.2,1 977,-1,1221.9,31.2,60.9,118.7,1 977,-1,1171.5,106.2,59.2,166.4,1 977,-1,411.3,259.1,68.5,195.7,1 977,-1,1575.8,589.9,102.1,235.9,1 977,-1,1469.1,155.1,68.9,167.3,1 977,-1,493.7,246.4,67.1,189,1 977,-1,1780.7,167.8,70.1,182.3,1 977,-1,230.4,138.3,55.2,163,1 977,-1,307.3,436.6,83.9,202,1 977,-1,1658.7,128.9,57.3,170.3,1 977,-1,752.4,72.6,55.2,163.8,1 977,-1,335,813.2,93.1,267.8,1 977,-1,846,332.3,64.4,205.2,1 977,-1,1720.3,451.7,79.6,216.7,1 977,-1,325.3,253.6,62.3,198.8,1 977,-1,549.9,120.2,52.1,166.8,1 977,-1,926.8,319.7,67.4,212.9,1 977,-1,1454.2,1,58.8,102,1 977,-1,1199.6,696.6,91.7,274.8,1 977,-1,391.3,429.8,65.4,217.2,1 977,-1,1739.1,676.1,98.5,252.6,1 977,-1,313.8,1,47.3,129,1 977,-1,448.5,62.8,54.7,183.9,1 977,-1,290.6,127.2,53,174.6,1 977,-1,1393.6,1,46.6,97.1,1 977,-1,348.5,166.3,69.2,187,1 977,-1,380.4,1,54.5,131.5,0.999 977,-1,488,62.3,53.2,156.4,0.998 580,-1,1221.3,30.7,62,118.8,1 580,-1,686.7,205.6,79.5,114.2,1 580,-1,1480.8,5.5,60.4,144.1,1 580,-1,1647.2,1,54.6,131.8,1 580,-1,800,146.1,63.6,172.4,1 580,-1,377.5,247.8,67.3,196.1,1 580,-1,1715.6,453.4,85.8,213.7,1 580,-1,214.3,273.6,63,192.6,1 580,-1,288.3,125.2,52.7,169.6,1 580,-1,1650.9,245.5,78.9,203.3,1 580,-1,1574.5,588.6,93.6,233.6,1 580,-1,216.3,137.8,50.6,156.8,1 580,-1,556.9,113.6,52.2,173.6,1 580,-1,155,252.7,61.7,209.9,1 580,-1,874.6,2.8,51.2,101,1 580,-1,754.4,79.8,44,155.5,1 580,-1,457.9,119.4,50.6,153.7,1 580,-1,358.4,109.6,53.1,175.2,1 580,-1,1844.5,259.4,67.6,179.9,1 580,-1,1045.1,825.7,130.1,255.3,1 580,-1,706.5,574.8,81.4,252,1 580,-1,423.9,58.5,46.1,170.8,0.998 580,-1,1011,932.3,67.6,148.7,0.27 580,-1,1126,838.5,89.3,241.7,0.051 423,-1,1221.6,30.3,62.5,119.7,1 423,-1,686.9,205,78.6,115.6,1 423,-1,1668.8,73.7,67.7,175,1 423,-1,942.9,11.4,61.8,164.3,1 423,-1,359.2,110.6,54,174.7,1 423,-1,1251.9,508.4,88.9,208.6,1 423,-1,1719.7,457.7,79.1,207.5,1 423,-1,110.6,351.1,52.4,185.8,1 423,-1,451.6,242.5,78,204.2,1 423,-1,839.1,1,52,133.6,1 423,-1,1008.9,25.8,53.8,157.4,1 423,-1,1577.9,614.8,96.3,243,1 423,-1,286.4,127.9,54.5,165.2,1 423,-1,544.3,70.4,56.6,164.9,1 423,-1,734.4,561.2,75.2,240.3,1 423,-1,1765.1,135.2,55.5,164.9,1 423,-1,284.6,610.2,95.7,248.8,1 423,-1,864.3,546.5,103.1,242.1,1 423,-1,798.5,149.7,54.3,174,1 423,-1,216,255.9,53.1,182.2,1 423,-1,220.9,139.9,72.5,162.9,1 423,-1,389.8,631.8,74.1,239.3,1 423,-1,358.9,1.9,67,120.4,1 423,-1,428.4,108.6,52.7,164.5,1 423,-1,942.5,566.3,83.6,223,1 423,-1,714.1,91.4,62.3,172.6,1 423,-1,424.9,1.6,44.1,124.7,0.999 423,-1,718.7,1.8,51.3,121.6,0.999 423,-1,455.5,59.5,71.5,195.8,0.999 423,-1,1805.4,70.2,75.7,175.5,0.993 423,-1,987,930.6,81.1,150.4,0.164 423,-1,1869.1,429.6,51.9,185.9,0.144 355,-1,1222.3,31.1,61,119.2,1 355,-1,688.2,206.9,76.9,113.3,1 355,-1,1616.5,1,70.2,153,1 355,-1,1440.1,2.6,50,110.5,1 355,-1,1749,83.6,58.8,154.8,1 355,-1,1014.1,420.8,69.7,196.7,1 355,-1,427.7,333.9,81.8,212.5,1 355,-1,287.4,131.2,55.7,172.8,1 355,-1,1032,60.5,54.6,169.3,1 355,-1,109.6,350.7,53,189,1 355,-1,1720.7,456.6,77.6,214.3,1 355,-1,1823.1,478.7,69.5,206.6,1 355,-1,445.8,86.7,69.9,203.7,1 355,-1,964.4,54.6,63.5,174.7,1 355,-1,364.4,107.4,54.9,179.6,1 355,-1,1556,619.8,93,246.6,1 355,-1,208.1,137.7,57.4,162.5,1 355,-1,489.7,580.4,100.5,238.1,1 355,-1,796.7,149.8,60.9,175.1,1 355,-1,223,329.2,55.5,184.8,1 355,-1,387.6,503,83.8,233.1,1 355,-1,514.4,90.5,43.1,168.7,1 355,-1,923,8,65,165.3,1 355,-1,1858.3,58.5,53.9,164.9,1 355,-1,903.1,478,78.2,207.8,1 355,-1,842.6,1.8,49.7,98,1 355,-1,841.8,462,85.5,226.7,0.999 355,-1,764.1,92.6,43.9,152.9,0.999 355,-1,953.8,927.8,80.4,153.2,0.79 355,-1,710.4,91.6,54.8,169.9,0.209 976,-1,686.7,206.3,79.2,112.8,1 976,-1,1221.9,30.8,61.5,119.8,1 976,-1,793.1,141.1,73.1,170.7,1 976,-1,305,436.4,87.3,197.2,1 976,-1,1168.5,104.7,59.7,167.8,1 976,-1,1656,128.1,58.4,169.5,1 976,-1,1780,166.3,67.8,182,1 976,-1,412.3,257.6,67.6,194.7,1 976,-1,493,244.5,67.9,191,1 976,-1,229.6,138.1,56.3,162.8,1 976,-1,1576.6,589.8,101.5,236.2,1 976,-1,1469.7,153.7,68.8,168.2,1 976,-1,846.2,333.1,66.1,207.4,1 976,-1,334,812,92.5,269,1 976,-1,752.2,72.8,55.4,162.9,1 976,-1,1721.5,453.7,77.7,213.4,1 976,-1,326.6,249.3,61.8,204.6,1 976,-1,550.8,116.8,49.8,170.6,1 976,-1,928.2,320.6,65.9,213.1,1 976,-1,1454.5,1,58.4,102,1 976,-1,1201.2,700.4,91.1,270.9,1 976,-1,391.3,429.1,66.1,216.9,1 976,-1,448.2,61.3,55.1,184.8,1 976,-1,1740.3,677.1,96.5,251,1 976,-1,314,1,47.2,128.7,1 976,-1,290.2,127.7,53,171.7,1 976,-1,1394.8,1,46.4,95.7,1 976,-1,344.9,165.6,69.8,187.8,1 976,-1,379.7,1,55.9,130.9,0.999 976,-1,485.9,61.9,56,157.4,0.999 803,-1,1221.5,29.9,62,118.1,1 803,-1,686.7,205.7,79.8,114.2,1 803,-1,282,530.7,78,236,1 803,-1,1723.6,451.4,75,215.7,1 803,-1,1613.6,1,57.7,133.5,1 803,-1,785.2,130.7,50.6,180.4,1 803,-1,549,114.3,63.3,177,1 803,-1,1574.7,590,100.2,235.7,1 803,-1,278.3,166.7,59.5,196.8,1 803,-1,478.7,99.7,62.2,177.2,1 803,-1,1478.6,30.3,60.5,150.3,1 803,-1,232.4,134.6,51.9,165,1 803,-1,385.4,241.3,70.2,175.5,1 803,-1,1076.7,585.5,81.5,245.7,1 803,-1,439.4,231.8,58.2,198.8,1 803,-1,1005.4,612.5,78.8,243.7,1 803,-1,750.5,70.9,56.9,163.4,1 803,-1,347.3,180.5,50.2,178.3,1 803,-1,254.1,1.5,53,123.2,1 803,-1,1439,56.9,49.8,156.1,1 803,-1,422,99.1,58.6,167.9,1 803,-1,442.2,1.9,43.4,83.5,0.999 803,-1,614.2,582.1,91.4,236.1,0.533 251,-1,1221.5,31.3,62.7,117.5,1 251,-1,1603.9,7,66.9,148.3,1 251,-1,686.6,207.3,79.1,112.6,1 251,-1,391.8,512.3,90.1,244.1,1 251,-1,212,127.2,55.7,165.6,1 251,-1,1480.9,57.6,53.8,151.2,1 251,-1,797.1,154.2,59,173.3,1 251,-1,287.5,127.3,55.5,170.9,1 251,-1,1378.3,569.2,104.4,238.4,1 251,-1,355.9,105.7,54,181.6,1 251,-1,1720.1,457.4,79.1,211,1 251,-1,1151.2,112.8,50.9,164.6,1 251,-1,224.8,462.8,59.9,197.2,1 251,-1,449.3,172.2,76.3,208.1,1 251,-1,108.9,349.9,50.7,190.2,1 251,-1,704.4,1.5,53.9,155.7,1 251,-1,219.9,735.6,91.1,258.8,1 251,-1,1073.8,115.1,57.4,182.7,1 251,-1,935.3,109.8,71.3,180.4,1 251,-1,488,365.4,76.1,228.7,1 251,-1,127.6,570.1,84.4,240.9,1 251,-1,512.6,116.9,55.8,178,1 251,-1,855.1,352.4,79.5,198.9,1 251,-1,582.2,379.4,64.5,206.4,1 251,-1,791.4,345.5,83.3,207,1 251,-1,764.7,100.9,52.8,170.4,0.999 251,-1,928.2,906.2,77.1,174.8,0.997 251,-1,908,111,47.2,152.1,0.989 1025,-1,1221.6,29.8,62,120.2,1 1025,-1,686.9,206.7,79.5,112.9,1 1025,-1,373.1,304.6,75,201.4,1 1025,-1,793.5,141.7,72,171.7,1 1025,-1,491.7,298.4,68.3,192.8,1 1025,-1,1699.7,182.9,61.3,183.2,1 1025,-1,289,128.1,52.2,166.6,1 1025,-1,930.1,256.6,69.2,207.1,1 1025,-1,843,268.6,66.5,194.7,1 1025,-1,1249.8,169.1,62.9,173.9,1 1025,-1,1143.5,589.3,90.5,257.9,1 1025,-1,232.5,140.8,57.2,161.5,1 1025,-1,1721.8,455.7,77.8,211.4,1 1025,-1,287.9,504.2,89.5,204.4,1 1025,-1,378.7,491.2,63,227.5,1 1025,-1,294.3,304.7,66.5,206.6,1 1025,-1,750.8,75.2,54.1,159.7,1 1025,-1,1839.5,229.7,61,187.4,1 1025,-1,1576.3,589.5,101.8,239.9,1 1025,-1,539.3,118.9,61.6,176.6,1 1025,-1,1702.3,684.2,92.4,238.1,1 1025,-1,1468.8,197.3,65.3,161.7,1 1025,-1,463.6,164.5,76.5,198,1 1025,-1,580.9,554.9,75.3,234.4,1 1025,-1,418.3,170.5,57.7,161.1,1 1025,-1,374.7,103.9,59.2,176.2,1 1025,-1,312.6,2,36.1,130.6,0.999 1025,-1,361,921.1,91.8,159.9,0.415 76,-1,1221.9,30.5,61.2,118.3,1 76,-1,1247.3,174.7,68.6,157.8,1 76,-1,1487,69.7,55.7,147.2,1 76,-1,704.1,1,56.3,159.8,1 76,-1,686.8,206.1,79.7,116.8,1 76,-1,411,329.6,83.2,230.4,1 76,-1,356.7,106.2,54.5,178.2,1 76,-1,1722.6,456.3,75.8,210,1 76,-1,1361.4,566.7,105.3,244.5,1 76,-1,489.8,201,80.3,196.3,1 76,-1,986,186.5,70.2,186.2,1 76,-1,10.6,729.5,71.5,232.7,1 76,-1,1429.8,200,76.1,195.4,1 76,-1,102.7,546,85.4,253.9,1 76,-1,290,129.5,53.4,165.7,1 76,-1,776.5,191.8,70.8,179.3,1 76,-1,135.1,357.8,49.8,185.8,1 76,-1,1334.8,203.2,40,164.6,1 76,-1,211.9,131.9,51.4,162,1 76,-1,538.4,63.1,48.7,169.6,1 76,-1,840.6,171.8,57.8,185.1,1 76,-1,434.8,25.4,52.2,161,1 76,-1,885.8,192,55.6,170.6,1 76,-1,380.7,28.2,53.9,166.3,0.999 76,-1,472.3,121.4,61.6,149.5,0.999 76,-1,389.5,900.1,97.1,180.9,0.999 76,-1,253.3,98.3,57.6,174.1,0.996 76,-1,1502,210.4,41,154.9,0.182 475,-1,1222.2,30.6,61.9,118.3,1 475,-1,687,205.9,78.9,113.8,1 475,-1,1000.9,1,57.6,149.7,1 475,-1,451.3,177.9,72.7,194.5,1 475,-1,288.4,206.7,52.4,167.2,1 475,-1,934.1,1,57.4,143.8,1 475,-1,360,110.7,55.4,174.9,1 475,-1,1696.3,457.1,105.3,210.4,1 475,-1,1503.9,1,58.6,118.8,1 475,-1,1788.4,364.5,88.8,211.1,1 475,-1,878,1.3,51.2,133.5,1 475,-1,1535.5,599.9,78.8,242.5,1 475,-1,803.8,144.1,47.6,177.5,1 475,-1,1724.6,177.2,65.7,162,1 475,-1,230.5,696.6,89.7,267.5,1 475,-1,809.8,591.5,94.2,256.9,1 475,-1,1640.3,341,63.2,199.3,1 475,-1,124.6,343.2,58.6,187.7,1 475,-1,217.9,136.1,63.6,162.4,1 475,-1,325,728.6,75.4,253.3,1 475,-1,905.9,626.5,115.6,247.9,1 475,-1,1774.4,148.9,83.2,176.7,1 475,-1,514.1,85.4,60.7,172.5,1 475,-1,446.3,32.3,71.9,180.2,1 475,-1,1708.4,53.6,51.8,167.7,1 475,-1,1659.8,43.5,58,173.3,0.999 475,-1,714.3,94.2,54.1,162.4,0.999 475,-1,753.2,99,53.3,139.8,0.999 475,-1,412.9,7.1,46.2,152.2,0.998 475,-1,1023.2,925.6,83.1,155.4,0.954 475,-1,989.5,653,77.4,229.7,0.951 475,-1,430.5,152.7,56,180.6,0.33 700,-1,1221.6,30.3,61.9,118,1 700,-1,687.2,206.4,79.2,113.7,1 700,-1,1482.4,6.3,58.6,146.1,1 700,-1,1604,140.9,70.9,182.7,1 700,-1,1710.6,457.5,98.2,206,1 700,-1,1477.8,135.3,52,171.9,1 700,-1,561.9,110.3,53.6,178.7,1 700,-1,299.4,378.9,73.9,215.4,1 700,-1,417.3,150,71.1,164.5,1 700,-1,383.7,536.7,72.8,253.2,1 700,-1,1574.9,588.8,97.7,236.6,1 700,-1,485.6,137.6,48,184.2,1 700,-1,1315.8,803.2,92.6,271.2,1 700,-1,802.9,139.3,48.4,180.3,1 700,-1,360.3,109.1,49.7,175.3,1 700,-1,477.4,26,45.4,141.5,1 700,-1,749.8,78.5,50.4,157.7,1 700,-1,1022.6,1.7,65.4,90.7,1 700,-1,1232.1,822,87.6,259,1 700,-1,408.6,23.1,57.1,161.2,1 700,-1,304.8,212.1,57.2,180.4,1 700,-1,254.9,199.4,60.1,195.7,1 700,-1,226.7,134.2,53,163.8,1 700,-1,831.4,928.5,81.9,152.5,0.726 97,-1,1222,30.3,61.6,116.7,1 97,-1,704.8,1,55.8,161,1 97,-1,397.8,841.6,99.6,239.4,1 97,-1,1487.4,69.2,55.2,149,1 97,-1,356.5,107.2,54.7,176.9,1 97,-1,424.8,305.4,76.5,233.1,1 97,-1,958.1,199,73.3,188.6,1 97,-1,1358.5,566,105,246.3,1 97,-1,1181.8,155.6,79.3,172.3,1 97,-1,1722.2,456.7,76.4,211.3,1 97,-1,101.9,546.3,86.8,254.8,1 97,-1,111.6,350.7,49.9,191.4,1 97,-1,292.2,123.4,54.9,174.2,1 97,-1,209.8,128.9,49.8,167.2,1 97,-1,504.4,220.5,69.2,197,1 97,-1,714.4,188.7,58.3,163.2,1 97,-1,1280.9,194.5,47.5,169.7,1 97,-1,29.9,695.2,65.7,228.7,1 97,-1,539.6,65.2,47.4,165.8,1 97,-1,1449.1,190.7,60.2,179.7,1 97,-1,438.1,9.1,51.5,157.1,1 97,-1,863.2,211,53.8,164.2,1 97,-1,377.2,14.8,50.4,159.6,1 97,-1,819.9,193.8,60.3,184.1,1 97,-1,1402.8,192.6,59.1,192.5,1 97,-1,482.2,136.5,57.6,163.8,0.999 97,-1,256,90,64,186.4,0.998 97,-1,482.3,37.2,59.8,157,0.993 53,-1,1221.2,29.8,62.6,117.7,1 53,-1,686.5,206.4,79.5,113.3,1 53,-1,399.4,350.8,86.5,232.7,1 53,-1,490.1,179.4,87.9,196.1,1 53,-1,1487.2,70.1,55.1,148.8,1 53,-1,1361.9,567,103.8,244.7,1 53,-1,704.6,1,55.2,157.9,1 53,-1,213.6,127.2,50,165.5,1 53,-1,354.6,110.5,55.2,173.3,1 53,-1,1721.8,457.4,77.1,208.9,1 53,-1,160.4,361.1,63.6,194.8,1 53,-1,1008.3,170.1,72.8,183.1,1 53,-1,284.4,127.6,54.3,168.8,1 53,-1,102.4,546.5,85.3,252.8,1 53,-1,793.2,147.2,63.5,181,1 53,-1,876.1,193.2,64.9,183.4,1 53,-1,4.8,780.9,71,237,1 53,-1,431.7,97.6,57.4,157.9,1 53,-1,1316.8,173.6,57.1,172.7,1 53,-1,540.4,62.9,45.2,169.1,1 53,-1,485.8,45.4,55.8,158.6,0.999 53,-1,1478.7,215.2,61.7,198.1,0.999 53,-1,1375.1,213.8,41.1,169.9,0.999 53,-1,1858.4,270.6,62.6,197.7,0.999 53,-1,391.9,53.7,49.3,161.3,0.991 132,-1,1221.5,30.3,61.9,117.6,1 132,-1,1488.1,68.7,55.5,149.4,1 132,-1,356.6,104.3,56.3,180.5,1 132,-1,704.1,1,56.1,157.5,1 132,-1,393.8,751.5,99,273.1,1 132,-1,108.1,353.1,50.5,183.9,1 132,-1,1722.1,456.1,76.8,210.8,1 132,-1,287.6,127.1,55.6,169.4,1 132,-1,423.7,274.2,75.5,224.8,1 132,-1,1359.1,566.7,104.6,246.1,1 132,-1,687.8,206.2,78,114.5,1 132,-1,538.4,67.3,50.4,161.3,1 132,-1,1085.5,140,55.4,177.4,1 132,-1,894.5,209.4,74.6,197.9,1 132,-1,219.3,127.7,50.5,163.3,1 132,-1,1208.6,172.7,45.5,165.1,1 132,-1,527.5,252.9,68.4,210.9,1 132,-1,477,175.9,59.6,170.7,1 132,-1,378.9,1,48.8,139.7,1 132,-1,120.4,647.9,68.4,215.3,1 132,-1,822.4,237,57.1,175.6,1 132,-1,477.2,46.8,55.9,156.4,1 132,-1,776.3,226.8,62,189.2,1 132,-1,1328.4,182.6,54.5,179.2,1 132,-1,448,1,50.5,139.7,0.998 132,-1,1078.2,924.3,83.5,156.7,0.938 539,-1,1221.4,30,62.4,121.1,1 539,-1,1487.6,2.4,58.1,141.6,1 539,-1,687.3,206.3,77.9,114.1,1 539,-1,779.9,146.9,63.5,172.6,1 539,-1,387.9,202.9,63.5,192.8,1 539,-1,992.8,1.2,52.9,107.2,1 539,-1,288.6,122.6,54.1,173.6,1 539,-1,1717.4,457,82.5,209.6,1 539,-1,879.2,2,52.3,112.5,1 539,-1,1684.2,294.8,73.6,202.6,1 539,-1,1660.4,3,53.7,161.4,1 539,-1,173.8,308.9,66.9,195.4,1 539,-1,1774.9,226.9,69.7,175.5,1 539,-1,520.9,103.4,59.7,180.5,1 539,-1,458.3,111.2,68.2,177.1,1 539,-1,797.4,598.4,80.6,264.1,1 539,-1,1599.5,1,54.8,161.7,1 539,-1,214.5,133.6,64.8,165,1 539,-1,929.5,1.4,55.4,107.1,1 539,-1,1590,587.4,66.7,240.4,1 539,-1,261.7,843.8,78.5,237.2,1 539,-1,406,44.3,49.7,154.6,0.999 539,-1,974.7,746.7,126,257.7,0.999 539,-1,196.9,802.9,98.1,278.1,0.999 539,-1,361.9,115.8,53,169.6,0.999 539,-1,450.9,1.6,66.7,156.9,0.972 539,-1,1064.1,767.7,79.9,244,0.446 539,-1,133.4,273.6,42.7,209.3,0.279 498,-1,1221.4,30.3,62.5,118.5,1 498,-1,686.4,206.2,79.8,112.8,1 498,-1,1496.8,1,57.9,129.6,1 498,-1,998.9,1,55.6,132,1 498,-1,1821.2,178.2,83.2,190.6,1 498,-1,794.4,141.4,61.6,179.5,1 498,-1,467.2,154.5,64,192,1 498,-1,1734.1,190.9,69.1,174.5,1 498,-1,1542.7,597.8,86.7,243.5,1 498,-1,931.7,1,55.8,129.5,1 498,-1,1647.4,599,69,214.6,1 498,-1,211.6,739.9,95.2,266,1 498,-1,1686.1,39.4,55.5,165.4,1 498,-1,1623,323.8,61.4,190.5,1 498,-1,1724.4,456.4,76.4,210.9,1 498,-1,878.3,1,51.7,126.3,1 498,-1,405.9,165.5,60.5,186.7,1 498,-1,298.8,771.6,77.5,263,1 498,-1,816.7,607.8,83.6,258.5,1 498,-1,141.5,336.5,64.5,187.8,1 498,-1,923.7,672.7,115.3,252.2,1 498,-1,316.1,189.7,48.9,165.1,1 498,-1,1624.9,29.5,58.3,174.3,1 498,-1,217.3,134.3,63.4,163.7,1 498,-1,1750.3,340.4,78.2,217,1 498,-1,715.8,92.9,60.1,166.6,1 498,-1,507.8,96,60.8,174.6,1 498,-1,449.4,15.7,74.6,181.6,1 498,-1,360.2,113.1,53.9,171.8,1 498,-1,403,16.1,48.3,161.8,0.999 498,-1,286.3,126.7,54.3,168.2,0.999 498,-1,1011.7,689.5,83.8,231.4,0.999 498,-1,1020.4,936,83.7,145,0.091 872,-1,1221.4,29.3,61.8,118.8,1 872,-1,687.1,206.2,79.2,113.1,1 872,-1,1478.6,79.6,57.9,153.2,1 872,-1,794.6,137.8,77.5,176.3,1 872,-1,480.2,1.4,48.9,125.6,1 872,-1,1087.5,2.6,56.6,139.3,1 872,-1,277.8,631.9,86.5,258.8,1 872,-1,1690.6,48.8,53.1,162.5,1 872,-1,333.8,313.3,85.3,179,1 872,-1,1722.1,454.6,77.3,211.8,1 872,-1,1575.5,588.8,103.1,237.2,1 872,-1,300.1,160.5,70.3,196.6,1 872,-1,558,117.7,58.9,175.1,1 872,-1,1579.1,23.7,50.9,144.6,1 872,-1,476.5,159,63.4,190.4,1 872,-1,901.8,485.1,70.2,229.7,1 872,-1,1417.3,12.7,50.5,154.3,1 872,-1,988.2,469.7,73.8,234.5,1 872,-1,753.4,72.2,54.1,162.2,1 872,-1,238.9,132.4,53.5,167.1,1 872,-1,253.5,1,54.1,119.4,1 872,-1,429.7,306.6,57.3,200.8,1 872,-1,412.7,158.5,57.4,174.6,1 49,-1,396.2,358.7,86.6,233.7,1 49,-1,1220.5,29.4,63.5,116.2,1 49,-1,685.9,206.4,79.9,113.6,1 49,-1,1362.1,566.6,104.5,245.8,1 49,-1,1487.7,70.2,54.8,149.5,1 49,-1,490.1,175.2,89.2,198,1 49,-1,705,1,55.3,157.3,1 49,-1,1722.2,456.2,76.7,210.8,1 49,-1,354.9,107.8,55.5,176.4,1 49,-1,893.4,198.7,65.7,176.8,1 49,-1,165.3,364.4,65.2,191.8,1 49,-1,213.3,125.8,49.4,166.9,1 49,-1,1006.5,164.8,78.9,189.7,1 49,-1,794.7,147.6,62.9,178.3,1 49,-1,102.3,547,85.9,252.4,1 49,-1,283.8,126.3,54.2,170.3,1 49,-1,422.3,97.5,54.4,154.3,1 49,-1,3.6,783.6,70.5,246,1 49,-1,1325.4,178.5,54.3,167.7,1 49,-1,1855.3,275.3,65.7,190,1 49,-1,485.5,45.7,56.9,155.3,1 49,-1,1484.2,215.7,62.8,198.2,0.999 49,-1,1378.3,224.3,44.5,160.5,0.999 49,-1,540.6,62.8,44.6,172.6,0.999 49,-1,859.4,155.3,64.3,183.4,0.994 49,-1,446.3,43.6,42.1,161.2,0.088 1039,-1,1221.6,29.8,61.1,119.8,1 1039,-1,687.1,206.5,79.4,114.5,1 1039,-1,794,142,70.1,172,1 1039,-1,482.3,316.2,75.2,197.8,1 1039,-1,1720.3,455.8,80.2,215.2,1 1039,-1,289.7,127.6,52.2,169.3,1 1039,-1,232,139,55.5,163.9,1 1039,-1,937.6,237.8,66.1,205.2,1 1039,-1,1127.8,561.6,90.5,256,1 1039,-1,1285.4,188.1,64,165.5,1 1039,-1,363.3,322.2,74.4,196.4,1 1039,-1,279.7,534.3,94.9,203.9,1 1039,-1,751.7,74.9,54.1,161.4,1 1039,-1,850,250.7,63.8,198.3,1 1039,-1,293,317.6,70.1,205.9,1 1039,-1,1712.6,206.1,59.2,180.5,1 1039,-1,445.6,170.7,64.4,170.2,1 1039,-1,374.4,506.4,66.3,234.1,1 1039,-1,370.5,104.5,58.5,175.2,1 1039,-1,1855.4,241,65,198.4,1 1039,-1,1468.4,210,74.5,168.8,1 1039,-1,1664.1,674.7,89.4,236.8,1 1039,-1,1573.7,589,103.8,241.7,1 1039,-1,307.6,2.6,37.4,127.3,1 1039,-1,580.7,538.7,69.4,252.9,1 1039,-1,498.6,169,72.4,189.8,1 1039,-1,539.4,117.1,58.6,177.3,0.994 1039,-1,431.7,67.1,66,190.8,0.984 417,-1,1221.8,29.9,61.3,119.3,1 417,-1,686.7,205.7,78.8,114.4,1 417,-1,1719.9,458.6,77.8,205.3,1 417,-1,551.6,70.6,55.7,165.4,1 417,-1,453.8,245.6,80.8,205.9,1 417,-1,944.3,15.4,61.4,167.6,1 417,-1,359,110.7,54.4,174.5,1 417,-1,1662.6,66.3,72.7,172.1,1 417,-1,109.8,348,53,190.2,1 417,-1,1006.3,30,55.3,161.1,1 417,-1,1582.3,616.3,101.2,241,1 417,-1,287.1,130.1,54,164.2,1 417,-1,1232.8,502.9,78.5,204.2,1 417,-1,836,1.3,51.2,131.3,1 417,-1,1769.2,133.3,52.2,159.4,1 417,-1,210.2,261,54.5,179.7,1 417,-1,397.2,624.4,78,233.7,1 417,-1,357.8,1,68.9,117.8,1 417,-1,290,595.8,89.4,248.7,1 417,-1,796.8,149.6,57.1,173.4,1 417,-1,219.8,141.5,71.9,157.8,1 417,-1,859.7,541.5,110.7,247.6,1 417,-1,1830.6,75.8,77.5,179.2,1 417,-1,716.8,1,50.6,127.9,1 417,-1,426.4,97.7,53.7,170.6,1 417,-1,715.1,556.2,87.2,247.5,1 417,-1,424,1.1,46.4,119.6,1 417,-1,460.4,64.4,67.1,196.5,0.999 417,-1,713.9,89.6,62.4,174.4,0.999 417,-1,938,555.9,80.8,221.1,0.997 417,-1,983.2,926.1,81.6,154.9,0.456 223,-1,1221.2,30.5,61.1,120.1,1 223,-1,686.3,206.8,79.2,113.5,1 223,-1,795,143,66,180.6,1 223,-1,109,346.9,51.4,191.1,1 223,-1,1492.4,68.3,53.8,149.4,1 223,-1,705.5,1.1,55.2,159.9,1 223,-1,1195,131.6,45.6,164.6,1 223,-1,212.1,127.7,55,165.6,1 223,-1,289,126.6,55.1,173.1,1 223,-1,431.2,190,74.3,215.5,1 223,-1,400,567.2,85.4,244.7,1 223,-1,356.8,107.2,53.4,178.4,1 223,-1,1721.6,456.6,77.5,212.2,1 223,-1,1356.6,567.2,104.8,244.7,1 223,-1,903.9,138.7,75.5,184.1,1 223,-1,1115.4,129.4,60.5,183.8,1 223,-1,134.7,672.3,102,258.9,1 223,-1,507.1,334.9,73,221.6,1 223,-1,518.9,123.4,47.3,175.8,1 223,-1,216.8,503.7,60.7,200.1,1 223,-1,765.5,317.4,77.8,202.2,1 223,-1,825.9,324.1,74.7,191.1,1 223,-1,68.6,626.3,102.8,244.3,1 223,-1,984.9,127,39.7,153.1,1 223,-1,1572.8,2.4,53.3,138.4,0.999 223,-1,596.1,347.2,59.5,198.6,0.997 223,-1,940.1,908.1,71.2,172.9,0.994 157,-1,1221.8,30.9,62.6,118.3,1 157,-1,996.5,131.5,74.7,168.9,1 157,-1,1488.4,68.1,55.5,150.2,1 157,-1,356.1,103.7,54.7,180.3,1 157,-1,441.5,37.4,60.9,164.2,1 157,-1,109.7,349.8,49.6,188.4,1 157,-1,704.7,1,55.6,158.6,1 157,-1,287.9,123.7,55.5,174.1,1 157,-1,213.7,123.8,55.4,168.9,1 157,-1,1357.9,567.3,106.7,244.3,1 157,-1,1721.8,457.2,77,211.3,1 157,-1,686.4,206.8,79.6,113.6,1 157,-1,408.3,706.9,89.4,262.1,1 157,-1,538.8,65,50.3,165.2,1 157,-1,1151.7,160.4,46.2,157,1 157,-1,420.2,249.6,79.4,223.8,1 157,-1,101.2,545.1,85.6,254.5,1 157,-1,198.9,609.4,64.1,217.7,1 157,-1,592.4,263.6,61.2,196.1,1 157,-1,857.5,203,71.9,192.4,1 157,-1,387.3,4.4,45.7,116.5,1 157,-1,1261.7,173,65.8,169.8,1 157,-1,530.6,271.1,63.1,209,1 157,-1,802.6,263.3,62.7,180.8,1 157,-1,492.9,204.5,60.5,168.5,1 157,-1,754.6,253.3,68.8,185.4,1 157,-1,795.1,147.4,61.5,180.1,0.999 157,-1,1035.8,909.4,70.4,171.6,0.981 396,-1,1222.3,30.2,61.2,118.9,1 396,-1,686.5,206.4,79.3,113.3,1 396,-1,1639.3,36.9,63.3,173.6,1 396,-1,451.4,275.2,78.4,207.6,1 396,-1,358.8,105.8,55.3,179.5,1 396,-1,1772.6,114.5,67.9,164.7,1 396,-1,948,25.4,65.3,173.2,1 396,-1,1150.2,473,71.9,202.1,1 396,-1,794.7,152.3,60.4,170.6,1 396,-1,828,2,55.6,119.5,1 396,-1,315.8,562.8,91.1,248.1,1 396,-1,283.3,128.1,55.3,166.4,1 396,-1,108.6,349.4,52.5,190.2,1 396,-1,220.2,142.3,61.9,155.4,1 396,-1,1717.1,458.8,82.2,211,1 396,-1,364.4,2.7,62.9,100,1 396,-1,432.7,585.5,72.1,239,1 396,-1,205.1,283.9,54.5,182.2,1 396,-1,1010.3,40.4,55,160.4,1 396,-1,1593.6,621.9,89.8,254.4,1 396,-1,463.2,71.7,69,189.3,1 396,-1,922.2,526.5,79.7,217.4,1 396,-1,546.9,66.6,55.9,171.2,1 396,-1,851.9,515.8,91.6,234.2,1 396,-1,712.8,1.3,51.5,139.1,0.999 396,-1,430.1,83.7,47.2,171.7,0.998 396,-1,979.9,906.8,87.5,174.2,0.99 396,-1,711.6,100.9,58.7,165.9,0.988 396,-1,1767.6,425.4,68.5,212.9,0.98 513,-1,1221.1,29.8,62,119.4,1 513,-1,1492.9,1,60.1,135.7,1 513,-1,686,207,80.9,113.5,1 513,-1,997,1,54.7,123.5,1 513,-1,396.8,185.1,63.3,186.5,1 513,-1,157.4,328.6,66.2,189,1 513,-1,1700.3,624.3,89.6,213.8,1 513,-1,338.9,169.3,51.3,173.1,1 513,-1,1674.5,25.5,54.3,166.8,1 513,-1,789.8,140.8,56.1,179.8,1 513,-1,931,1,56.1,120.4,1 513,-1,941.4,696,123,269.3,1 513,-1,1614,15.2,55.6,176.1,1 513,-1,460.3,139.6,71.3,186.7,1 513,-1,884,1,52.1,121.8,1 513,-1,1710.8,328,95.4,196.8,1 513,-1,1609.3,302.2,62.1,198.5,1 513,-1,1559.1,598.8,72.2,238.6,1 513,-1,828.7,609.6,72.5,256.5,1 513,-1,1721,460.4,77.6,207.4,1 513,-1,288.4,120.6,53,177.2,1 513,-1,1844.4,200.8,75.4,194.1,1 513,-1,201.2,765.5,91.4,274,1 513,-1,217,134.3,62.9,160.7,1 513,-1,283.4,800.5,79.6,259.6,1 513,-1,726.6,96.6,67,162.4,1 513,-1,451.3,6.1,72.6,181.6,1 513,-1,515.8,93.3,57.2,175.9,1 513,-1,1750.8,202.7,60.8,175.5,0.999 513,-1,398.3,22.6,46.4,163.6,0.991 513,-1,1039.5,724.1,66.8,229.4,0.189 513,-1,360.9,108.6,48.1,197.9,0.136 513,-1,1041.6,935.8,77.7,145.2,0.125 669,-1,1221.4,29.2,61.7,119,1 669,-1,687,205.9,79.5,113.7,1 669,-1,1481.4,6,60.2,142.5,1 669,-1,801.1,144.2,64,173.1,1 669,-1,315.7,343.7,71.1,209.2,1 669,-1,1709.8,457.7,98.5,206.4,1 669,-1,480.5,114.1,48.5,177.6,1 669,-1,359.8,117.9,49.4,164.8,1 669,-1,1121.7,1,63,108,1 669,-1,557.9,109.6,53.1,178.6,1 669,-1,1574.5,588.2,97.7,235.6,1 669,-1,1493.1,163.3,57.2,175.2,1 669,-1,751.7,80,47.2,155,1 669,-1,1622.8,158.9,76,188,1 669,-1,1405.4,877.7,98.8,203.3,1 669,-1,415.5,125.7,74.5,161.2,1 669,-1,413,523.9,83.2,254.9,1 669,-1,408.9,4.1,55.5,155.2,1 669,-1,226,207.5,62.1,204.1,1 669,-1,277.1,222.4,56.3,186.7,1 669,-1,1328.5,901.8,81.7,179.2,1 669,-1,352.7,3.9,53.6,152.6,0.999 669,-1,290.2,123.8,49.6,168.8,0.997 669,-1,864.7,931.4,69.1,149.6,0.184 669,-1,300.9,5.4,45.3,131.6,0.133 263,-1,1221.4,30.8,62,118.9,1 263,-1,287.7,129.6,56.4,169.4,1 263,-1,1628.5,18.8,62.6,145.8,1 263,-1,687.7,205.6,77.9,113.9,1 263,-1,796.3,153.9,60.2,172,1 263,-1,452.7,155.3,75.8,215.9,1 263,-1,1055.2,107.9,62.1,184.7,1 263,-1,356.2,109,53.3,176.2,1 263,-1,1479.5,48.1,52.5,150.2,1 263,-1,379.7,484,92.2,237.9,1 263,-1,108.9,350,50.5,191.6,1 263,-1,1721.1,457.5,77.8,210.9,1 263,-1,938.2,96.2,69.4,178.4,1 263,-1,704.7,1,54.7,156.3,1 263,-1,692.2,316.6,59.6,188.5,1 263,-1,215.5,127.6,54.8,164.9,1 263,-1,1403.1,563.1,98.2,249.2,1 263,-1,1131.7,99.1,53.5,165.6,1 263,-1,878.4,110.7,46.7,152.4,1 263,-1,375.6,7.1,56.8,162,1 263,-1,244.6,758.5,89.8,271.9,1 263,-1,869.6,366.7,78.7,191.7,1 263,-1,798.8,349.3,86.2,213.3,1 263,-1,160.3,565.3,80.4,245.9,1 263,-1,483.3,383.7,73.2,221.2,1 263,-1,230.6,447.4,60.3,196.6,1 263,-1,513.4,117.5,56.3,174.4,1 263,-1,757.2,101.1,48.6,172.1,0.999 263,-1,572.2,390.6,63.4,210.8,0.999 263,-1,937,917.8,84.7,163.2,0.976 752,-1,1221.4,29.9,61.6,118.8,1 752,-1,687.4,205.7,78,114.5,1 752,-1,546.8,117.9,63.9,174.7,1 752,-1,1461.8,94.5,56.1,166.8,1 752,-1,781.4,134.1,61,178.4,1 752,-1,262,183.5,60.7,201.1,1 752,-1,304.2,448.4,73.4,226.1,1 752,-1,1714.3,456.6,88.3,207.4,1 752,-1,1576.4,589.9,98.7,233.7,1 752,-1,333.3,198.3,54.3,172.1,1 752,-1,463.4,189.9,53.4,187.3,1 752,-1,1594.1,88.4,60.2,180,1 752,-1,402.3,198.8,66.2,174.2,1 752,-1,1494.2,17,57.6,139.1,1 752,-1,1109.3,709.1,78.9,263.4,1 752,-1,446.2,62.2,55.7,166.5,1 752,-1,468.5,564.2,100.5,251,1 752,-1,750.5,76.4,49,155.9,1 752,-1,1175,681.3,89.1,256.4,1 752,-1,257.6,1.1,49.7,123,1 752,-1,358.7,107.8,50.3,176.8,0.999 752,-1,395.8,60.5,57.5,167.3,0.997 752,-1,236.1,142.2,50.2,149.7,0.991 752,-1,293,132.9,43.9,157.2,0.823 670,-1,1221.4,29.5,61.6,119.6,1 670,-1,687,206.1,79.2,113.6,1 670,-1,1481.5,5.9,59.9,142.6,1 670,-1,315.6,345.9,70.3,208.8,1 670,-1,1119.6,1.7,60.9,105.2,1 670,-1,801.9,145.3,62.9,171.8,1 670,-1,359.6,116.6,49.6,166.8,1 670,-1,559.3,110.6,53.2,175.7,1 670,-1,481,116.4,48.4,175,1 670,-1,1709.9,455.9,100.5,211.3,1 670,-1,1575.3,588.4,96.7,235.6,1 670,-1,751.4,79,47.5,157,1 670,-1,1623.5,158,76.2,188.8,1 670,-1,1491.2,163,56.9,177.6,1 670,-1,406.2,528.2,87.6,249,1 670,-1,415,127.6,74.3,161.4,1 670,-1,1402.6,873.9,99.5,207.1,1 670,-1,407.9,3.7,56.5,156.6,1 670,-1,227.1,209.1,63.3,201.9,1 670,-1,277.6,222.7,55.7,184.1,1 670,-1,1325,903.2,81.7,177.8,1 670,-1,353.9,4,52.9,150.9,0.999 670,-1,289.9,122.7,49.8,172.2,0.991 670,-1,300,6.4,46.4,130.4,0.358 670,-1,863,931.4,69.4,149.6,0.085 828,-1,1221,29.3,62.4,118.6,1 828,-1,687.3,206.3,78.4,112.9,1 828,-1,1638.6,3.5,55.9,157.6,1 828,-1,791.7,134.9,66.3,180.4,1 828,-1,275.2,563.3,80.8,237.4,1 828,-1,1035.1,547.6,95.8,241,1 828,-1,558.2,115.8,60.7,175.6,1 828,-1,1723.2,453.2,75.1,213.5,1 828,-1,1575.5,588.1,101.8,236,1 828,-1,1476.6,44.4,59.1,157,1 828,-1,751.6,71.9,57,162.4,1 828,-1,373.7,271.5,74.1,174.5,1 828,-1,438.1,257.8,54.8,192.4,1 828,-1,473.5,124.7,60.4,174.4,1 828,-1,238.6,135,49.7,164.8,1 828,-1,960.9,563.7,74,235.9,1 828,-1,1423.2,39.8,50.9,157.2,1 828,-1,290.5,162,66.9,198.2,1 828,-1,422.9,121.8,57.1,172.1,1 828,-1,348.4,172.3,46.3,178.3,0.998 828,-1,251.8,1,56.5,116.7,0.656 147,-1,1221.8,31.2,61.8,118,1 147,-1,1032.2,134.9,69.5,172.2,1 147,-1,1488.1,67.9,55.8,150.4,1 147,-1,356.9,102.9,55.8,179.8,1 147,-1,704.5,1,55.9,157.1,1 147,-1,398.6,719.8,92.7,266.6,1 147,-1,420.8,257.8,76.7,222.6,1 147,-1,1722.7,456.6,75.6,210.7,1 147,-1,109.3,351.4,48.2,184.1,1 147,-1,287.2,122.6,55.9,175.2,1 147,-1,539,65.2,49.3,164.1,1 147,-1,1358,566.1,106.1,245.8,1 147,-1,685.2,206.2,82.7,114.6,1 147,-1,218.7,127.5,52.3,163.4,1 147,-1,867,203.1,70.3,195.8,1 147,-1,810.4,251.5,58.8,182.3,1 147,-1,1172.3,164.4,50.3,164.5,1 147,-1,381.7,1.1,47.8,128.5,1 147,-1,530,264.5,60.5,205,1 147,-1,485.3,195,58.2,170.2,1 147,-1,762,239.7,66.1,191.2,1 147,-1,100.2,543.4,88.2,258,1 147,-1,168.3,623.1,75.3,213.7,1 147,-1,1294,174.8,57.3,176.4,1 147,-1,587.5,258,58.2,193,1 147,-1,465.3,37.4,49.7,161.1,1 147,-1,1055.1,920.9,70.9,160.1,0.987 147,-1,796.7,153.2,62,197.5,0.146 850,-1,1221.2,29.8,62.2,118.7,1 850,-1,687.2,206.3,79,113.7,1 850,-1,795.2,139.9,78.8,174,1 850,-1,1071.1,2,60.1,116.5,1 850,-1,560.2,116.1,58.5,174.3,1 850,-1,1721.5,452.8,78,214,1 850,-1,1574.8,590.1,103.2,235.2,1 850,-1,1470.7,61.3,60,156.4,1 850,-1,752.9,71,55,162.1,1 850,-1,296.3,160.3,73.4,198.1,1 850,-1,265.7,598.3,82.8,242.7,1 850,-1,1414.3,29,53.9,153.9,1 850,-1,1662.1,29.6,51.6,158.3,1 850,-1,352.9,293,72.6,179.9,1 850,-1,253.2,1,54.9,120.3,1 850,-1,930.3,527.6,70.3,236.7,1 850,-1,239.8,132.4,53.5,165.6,1 850,-1,434.5,277.2,54.1,198.4,1 850,-1,1012.4,503.7,73,238.8,1 850,-1,471.8,141.1,60.4,179.9,1 850,-1,492.4,1,47.7,110.8,1 850,-1,417.2,140.1,61,168.8,1 651,-1,687.3,206.6,79.1,112.5,1 651,-1,1480.3,3.3,61,146.2,1 651,-1,547.2,112.6,62.8,174.1,1 651,-1,1710.5,456.4,97.1,209.7,1 651,-1,1221.1,30.8,62.3,120.3,1 651,-1,801.3,145.5,65.5,172.1,1 651,-1,454.1,537.5,89,242.8,1 651,-1,359.4,110.2,51.5,175.1,1 651,-1,334.1,326.6,69.6,207.5,1 651,-1,1575.8,588.3,96.4,237.5,1 651,-1,1616.2,176,68.5,187.1,1 651,-1,411,1,58.8,151.5,1 651,-1,216.8,221.3,56.4,201,1 651,-1,268.4,236.5,59.8,184.4,1 651,-1,751.6,77.6,45.7,157.6,1 651,-1,469.8,102.8,47.7,174.4,1 651,-1,424.1,117.2,55.3,159.9,1 651,-1,287.4,125.1,52,173.4,1 651,-1,1176.3,1,70,122.1,0.999 651,-1,1459.7,926,81.9,155,0.86 651,-1,1375.1,945.5,89.1,135.5,0.603 647,-1,687.4,206.6,78.9,113.2,1 647,-1,1481.7,5.2,59.5,144.8,1 647,-1,1221,30.4,63.4,122.6,1 647,-1,546.2,112.4,64.1,173.6,1 647,-1,802.1,144.6,64.5,172.7,1 647,-1,359.2,111.1,52.3,173.6,1 647,-1,1710,454.1,99.1,214.6,1 647,-1,338.1,322.5,69.1,202.5,1 647,-1,412,1,59,146.9,1 647,-1,1575.1,588.7,96.2,236.1,1 647,-1,213.5,223.5,59.5,200.8,1 647,-1,1617.3,185.4,67.7,188.9,1 647,-1,267.6,238.8,59.1,182.9,1 647,-1,469.1,535.7,85.8,246.7,1 647,-1,423.8,116.5,56.1,159.6,1 647,-1,752,84.2,44.6,152,1 647,-1,467.5,102.7,49.3,173.8,1 647,-1,287.4,125.9,51.7,170.1,1 647,-1,1481.3,945.3,71.2,135.7,0.915 647,-1,1186.1,12.7,56.1,111.7,0.12 738,-1,1221.3,29.8,62.6,119.5,1 738,-1,686.5,205.9,79.4,114.2,1 738,-1,255.9,187,59.7,197.2,1 738,-1,1481.6,8,60.6,146,1 738,-1,1465.3,106.5,53.9,169.5,1 738,-1,550.5,111.8,60.8,178.6,1 738,-1,781.9,137.5,54.2,177.4,1 738,-1,295.8,426.7,77.6,222.1,1 738,-1,476.1,169.5,48.3,185.8,1 738,-1,1713.2,456.3,93.2,209.4,1 738,-1,401.6,188.2,75.5,162.7,1 738,-1,1575.3,590.9,99.5,234.2,1 738,-1,435.3,557.1,83.6,246.5,1 738,-1,1599.9,103.8,58.9,177.9,1 738,-1,329.2,198,58.1,177.9,1 738,-1,750.2,83.2,50.4,151.6,1 738,-1,1134.9,736.4,89.3,268,1 738,-1,434.2,51.6,57.3,165.6,1 738,-1,1216,712.9,87.5,266.8,1 738,-1,360.2,110,48.8,171.9,1 738,-1,291.6,130.5,46.2,161.5,0.968 738,-1,316.9,3.5,45.4,135.5,0.055 570,-1,1221.3,30.2,62.3,119.3,1 570,-1,686.7,205.8,80,114.5,1 570,-1,1481,4.2,59.7,145.9,1 570,-1,791.3,145.4,70.8,172.6,1 570,-1,379.1,235.6,65.6,195.9,1 570,-1,1828,253.1,71.3,177.8,1 570,-1,1712.2,452.2,88.5,214.3,1 570,-1,1650.6,1,57.3,139.1,1 570,-1,1664,263.4,67.7,202.7,1 570,-1,871.9,1,52.5,105.5,1 570,-1,549.5,116.2,52.9,169.7,1 570,-1,288.2,121.3,52,173.8,1 570,-1,219.1,136.7,55.5,166.2,1 570,-1,754.8,79.6,44.2,155.5,1 570,-1,1589.1,590.5,79,235.2,1 570,-1,205.8,283.5,64.2,195.2,1 570,-1,147,256.5,61.2,212,1 570,-1,1573.4,3.5,52.9,132.5,1 570,-1,444.2,130.2,51.9,161.1,1 570,-1,468.8,75.8,62.7,176.7,1 570,-1,1021.4,806.9,132,274.1,1 570,-1,358.9,109.7,52.9,177.1,1 570,-1,724.4,584.1,85.3,255.3,1 570,-1,421,57.6,47.7,172.2,0.999 570,-1,251.1,913.4,80.9,167.6,0.993 570,-1,1012.6,931.2,73.2,149.8,0.502 570,-1,982.7,2,52.3,79.5,0.2 740,-1,1221.6,29.8,62.5,118.7,1 740,-1,686.4,205.8,79.8,114.5,1 740,-1,1484.4,9.8,59.2,144.7,1 740,-1,255.4,185.2,60.9,198.2,1 740,-1,550.6,114.4,60.8,177.1,1 740,-1,780.3,137.8,56.3,176.2,1 740,-1,1464.3,106.9,53.2,165.4,1 740,-1,296.4,429.9,77.6,223.3,1 740,-1,474.5,172.9,49.6,183.8,1 740,-1,1711.8,455.6,96.3,207.9,1 740,-1,1575.2,590.5,99.9,233,1 740,-1,1600,103.7,57.5,178.8,1 740,-1,399.1,189.8,76.4,168,1 740,-1,331.7,199,56.2,173.5,1 740,-1,441,555.9,83.3,253.5,1 740,-1,1129.4,738,84.8,255.4,1 740,-1,1210.4,712.8,83.1,260.4,1 740,-1,434.3,53,58,167.2,1 740,-1,750.2,81.8,50.6,152.1,1 740,-1,357.7,111.6,48.7,174.8,0.999 740,-1,291.2,126.2,47.5,164.9,0.992 740,-1,239.2,148.6,49.2,163.3,0.586 740,-1,259.3,4.7,45.9,114.8,0.057 637,-1,1221.8,31.5,62.2,116.7,1 637,-1,687.5,206,78.6,113.9,1 637,-1,1481.8,5.2,60.4,144.3,1 637,-1,341,311,67.8,205.7,1 637,-1,1709.3,456.5,97.5,208.8,1 637,-1,801.2,145.2,65.5,172.4,1 637,-1,546.2,113.7,63.7,173.1,1 637,-1,359.3,110.5,51.2,173,1 637,-1,496.3,538.2,103.3,242.6,1 637,-1,1575.2,588.2,96.1,236.5,1 637,-1,1622.5,195.7,68.9,186.8,1 637,-1,259.4,242.2,60.7,189.4,1 637,-1,203.3,229.8,62.2,201.1,1 637,-1,417.4,112.7,54.8,156.4,1 637,-1,752.2,85.2,45.4,151.3,1 637,-1,287.5,124.9,51.6,170.3,1 637,-1,419.6,3,56.3,138.5,1 637,-1,461.2,94.1,47.9,169.6,0.999 637,-1,493.3,71,46,147.4,0.999 637,-1,353.3,1,55.5,129.8,0.998 637,-1,234.7,136.3,46.7,162.1,0.991 637,-1,1509.1,968.2,74.5,112.8,0.05 915,-1,1221.5,30.2,61.7,119.2,1 915,-1,686.4,206.3,80.1,113.4,1 915,-1,794,139.8,75.8,173.8,1 915,-1,1112.8,33.2,63.7,164.9,1 915,-1,464.9,202.4,69.9,189.5,1 915,-1,1432.8,2,48,136.4,1 915,-1,557.1,116.6,57.9,173.1,1 915,-1,1574.2,589.8,104.8,236,1 915,-1,1721.8,452.2,78.5,214.9,1 915,-1,1476.4,105.4,63.1,157.4,1 915,-1,307.4,699.3,89.7,268.4,1 915,-1,329,365.3,83.1,192.3,1 915,-1,1605.3,64.8,53.5,162.4,1 915,-1,1297.3,857.1,95.6,223.9,1 915,-1,869.4,424.6,62.3,221.3,1 915,-1,960.8,406.9,65.9,221.6,1 915,-1,752.1,77,55.3,156.4,1 915,-1,412.7,349.2,58.4,208.3,1 915,-1,376.3,200.3,58.8,178.2,1 915,-1,301.8,162.5,68.9,199.4,1 915,-1,1721,93.2,55.1,172.5,1 915,-1,240.8,133.5,56.2,164.8,1 915,-1,421,65.6,61.4,177,1 915,-1,469.3,16.8,51.1,147.6,1 915,-1,1750.6,686.1,90.4,237,1 915,-1,1498.8,1.8,58.1,133.9,1 915,-1,253,2,54.7,120.5,1 915,-1,313.6,1,47.2,133.8,1 648,-1,687.1,206.5,79.4,113,1 648,-1,1481.6,5.2,59.9,144.7,1 648,-1,546.7,112.3,64.1,174.5,1 648,-1,1219,30.5,64.3,121.4,1 648,-1,359.5,109.9,52.2,175.5,1 648,-1,1708.8,454.9,99.9,213.7,1 648,-1,801.2,145,65.5,172.4,1 648,-1,463.8,532.7,86.1,244.7,1 648,-1,1574.6,588.1,97.5,237.4,1 648,-1,336.8,321.8,68.9,205.9,1 648,-1,411.8,1,59,149.2,1 648,-1,215.2,224.2,57.7,197.1,1 648,-1,1616.4,182.9,68.7,188.5,1 648,-1,267.5,238.5,59.1,183.2,1 648,-1,752.1,80.9,45,154.4,1 648,-1,468,105.8,48.8,171.3,1 648,-1,424,116.3,55.3,160.1,1 648,-1,287.6,126.7,51.7,168.2,1 648,-1,1185.2,7.9,63.5,118.8,0.928 648,-1,1475.4,942.3,72.4,138.7,0.79 954,-1,686.5,206,80,113,1 954,-1,1471.4,138.8,65.3,165.8,1 954,-1,793.8,139.8,73.4,174.2,1 954,-1,1221.6,30.3,62.4,118.6,1 954,-1,1478.3,1,55,110.3,1 954,-1,928.4,345.9,72.9,220.4,1 954,-1,1575,587.5,102.7,238.5,1 954,-1,1719.6,453.7,79.4,214.4,1 954,-1,1148.1,79.4,59,168.5,1 954,-1,320,770.3,96.9,272.1,1 954,-1,1639.1,109.1,53.8,166.3,1 954,-1,852.8,363,68.2,209.4,1 954,-1,751,72.6,55.9,160.8,1 954,-1,392.1,392.1,67.8,217.7,1 954,-1,1759.6,139.8,65.6,180.5,1 954,-1,552.9,116.1,55.8,172.9,1 954,-1,321.1,413.7,82.5,193.8,1 954,-1,1237,753.3,93.9,264.3,1 954,-1,1412.3,2.5,45.6,111.2,1 954,-1,424,235.6,68.5,190.4,1 954,-1,232.1,136.7,57.1,167.2,1 954,-1,436.1,74.9,56,175.5,1 954,-1,340.9,236.8,64,186.7,1 954,-1,482.8,222.7,59.7,179.1,1 954,-1,1742.5,676,95,251,1 954,-1,480.2,41.6,54.6,158.8,1 954,-1,245.5,2.6,53.7,123.3,1 954,-1,288.7,125.4,53.6,167.8,0.999 954,-1,320.8,166.8,55.1,201,0.906 954,-1,313.6,1,42.8,132.1,0.114 321,-1,1221.3,31.4,62,118.8,1 321,-1,1455.7,2,57.4,142.1,1 321,-1,332.6,581,111,255.3,1 321,-1,687.1,206.8,79,113,1 321,-1,108.6,350.7,52.4,190.6,1 321,-1,1719.7,458.4,79.3,212,1 321,-1,1713.3,51.2,56.8,161.3,1 321,-1,795.5,147.5,59.2,177.1,1 321,-1,453.2,114.9,72.7,202.4,1 321,-1,359.7,108.1,58.5,181.9,1 321,-1,1512.2,600.2,89.9,249.6,1 321,-1,420.1,45.1,55.9,170.8,1 321,-1,992.3,76,61.7,177.8,1 321,-1,433.6,453.9,70.4,243.4,1 321,-1,237.6,371.4,58,190.4,1 321,-1,894,439.7,69.7,204.6,1 321,-1,280.6,130.8,54.5,172.6,1 321,-1,929,46,61.1,172.4,1 321,-1,1576.4,2.1,59,109.3,1 321,-1,213.2,132.8,57,166.5,1 321,-1,518.8,474.6,66.6,218.2,1 321,-1,1049.9,77.6,52.6,163.8,1 321,-1,829.3,434.9,76.9,208.8,1 321,-1,728,99.8,48.8,175,1 321,-1,706.3,4.2,52.8,153.9,1 321,-1,515.2,100.8,42.3,168.4,0.999 321,-1,362.7,897.1,98.9,183.9,0.997 321,-1,927.7,907.7,78.2,173.3,0.983 844,-1,1221.5,29.4,62,118.6,1 844,-1,687.4,206.2,79.1,113.3,1 844,-1,793.8,138.6,79.5,175.1,1 844,-1,557.2,116.4,60.3,178.8,1 844,-1,1721.1,452.5,78.7,213.8,1 844,-1,1578.1,594.9,97.9,231.3,1 844,-1,1651.9,18,57,161.7,1 844,-1,265.9,587.4,83.9,245.1,1 844,-1,1469.7,60.8,60.7,154.9,1 844,-1,752.7,70.8,55.1,163.1,1 844,-1,1069.6,1.4,57.7,106.9,1 844,-1,240.6,131,51.7,167.3,1 844,-1,295.9,161.3,71.9,196.3,1 844,-1,1414.8,29.8,54,158.1,1 844,-1,937.2,535.6,71.2,238.2,1 844,-1,353.7,285.1,78,181.2,1 844,-1,436.6,269.4,55.5,205.6,1 844,-1,474,136.9,60.5,182.3,1 844,-1,414.7,136.1,60.5,172.6,1 844,-1,1023.9,515,72.8,240.9,1 844,-1,253.7,1.1,54.4,123,1 792,-1,1220.9,29.3,62.8,119.4,1 792,-1,687.4,205.5,78.5,113.8,1 792,-1,783.1,129.5,51.9,182.3,1 792,-1,1722.5,451.9,76.7,216.3,1 792,-1,549.5,114.5,59.4,178.5,1 792,-1,1485.6,26.4,59.1,147.8,1 792,-1,1574.8,591.4,100.5,234.2,1 792,-1,477.8,96.5,60,173.3,1 792,-1,290.8,506.7,78.6,233.4,1 792,-1,277.1,167.4,58.4,196.4,1 792,-1,750.1,70.2,55,160.4,1 792,-1,232.9,132.4,51.4,168.3,1 792,-1,1086.3,605.2,97.3,256.9,1 792,-1,1442.2,67,49,161,1 792,-1,339.3,187.6,50.1,176.6,1 792,-1,445.6,228.1,53.5,185.7,1 792,-1,392.5,228.4,65.3,181.8,1 792,-1,253.5,1.3,52.5,123.1,1 792,-1,597.4,580.8,73,244.6,1 792,-1,422.5,92.7,56.6,165.7,1 792,-1,1028,628.9,73.9,242.3,1 792,-1,449.6,2.8,44.6,89.9,0.989 991,-1,686.4,206.1,80,113.7,1 991,-1,793.1,140.7,75,171.5,1 991,-1,1795,183.2,71.2,183.8,1 991,-1,1220.8,31.2,62.1,119.1,1 991,-1,401.9,271.7,67.3,199,1 991,-1,1193.9,125.3,54.1,165.2,1 991,-1,1471.3,170.2,64.4,166.1,1 991,-1,497.7,261.2,66.8,185.2,1 991,-1,838.8,311.9,68.5,205.3,1 991,-1,300.3,454.3,85.8,204.3,1 991,-1,289.5,123.4,53.7,171.7,1 991,-1,327.8,844.1,97.5,236.9,1 991,-1,1573.7,589.1,104.5,236.7,1 991,-1,1722.4,452.9,76.9,215.7,1 991,-1,1673.2,145.8,56.2,172.1,1 991,-1,752.1,72.9,55.3,161.8,1 991,-1,545.3,118.1,57.7,170,1 991,-1,230.7,134.3,54.4,166.5,1 991,-1,315.2,271.8,63.2,195.9,1 991,-1,919.8,303,71.7,208.7,1 991,-1,1187.4,663.5,89.5,264.2,1 991,-1,445,65.5,57.8,177.3,1 991,-1,389.2,442.2,66.1,223.6,1 991,-1,1739.5,673.2,94,250.8,1 991,-1,503.5,76.1,51.8,154,1 991,-1,314.6,1.6,43.9,130.3,1 991,-1,381.3,166.1,64.9,189.1,0.998 991,-1,1444.4,1,55.9,86.7,0.998 991,-1,385.6,1,49.7,142.8,0.854 834,-1,1221.5,29.2,62.4,119.2,1 834,-1,687.2,205.8,78.4,114,1 834,-1,791.1,136.9,71.3,178.4,1 834,-1,559.1,114.9,60.2,176,1 834,-1,1641.8,10.8,59.5,159.5,1 834,-1,1577.6,593.9,99,233.5,1 834,-1,1722.4,453.3,76.6,213.2,1 834,-1,271.2,575.5,83.2,244.9,1 834,-1,1474.8,48.7,59.4,159.4,1 834,-1,1032.6,532.6,82.9,236.1,1 834,-1,753.1,70.7,56.3,163.6,1 834,-1,355.2,270.2,86.2,185.2,1 834,-1,475.9,127.3,59.2,179.8,1 834,-1,239.7,134,51.2,162.2,1 834,-1,293.9,162.5,67.4,197.5,1 834,-1,1421.7,39.3,50,156.8,1 834,-1,436.6,261.2,56.3,201.2,1 834,-1,953.4,556.7,71.3,237.5,1 834,-1,420.7,122.7,56.7,175.5,1 834,-1,254,1.8,53.2,120.3,1 834,-1,1064.2,4.5,63,90,0.814 834,-1,356.8,171,36.6,167.7,0.277 938,-1,1221.4,30,61.6,119.5,1 938,-1,686.6,205.9,79.9,113.3,1 938,-1,793.9,139.5,74.3,173.4,1 938,-1,1127.6,59.4,63.7,170.7,1 938,-1,444.3,220.8,68.2,186.6,1 938,-1,1485.7,1,60.4,122.5,1 938,-1,1476.7,124.9,60.4,156.3,1 938,-1,1574.1,589.1,104.2,236.9,1 938,-1,1623.8,90.6,56.5,170,1 938,-1,555.2,116.2,57.3,172.4,1 938,-1,750.1,69.7,56.9,163.9,1 938,-1,1720.7,454.9,78,212.3,1 938,-1,238.1,135.9,58,166,1 938,-1,321.5,745.4,90.5,257.5,1 938,-1,1259.1,786.2,96.9,284,1 938,-1,329.5,392.2,79.1,186.2,1 938,-1,474.8,27.3,54.2,154.5,1 938,-1,397,376.6,64.2,213.9,1 938,-1,858.4,388.5,64.7,214.4,1 938,-1,943.7,368.9,69.7,221.9,1 938,-1,1741.2,120.3,57.3,179.5,1 938,-1,1745.4,675.2,91.7,249.8,1 938,-1,358.8,225.4,60.9,182.6,1 938,-1,254.8,1,53.1,120.9,1 938,-1,306.5,162.2,65.5,196.7,1 938,-1,1420.4,3.5,46.5,117.2,1 938,-1,434.1,71.2,54.2,178.8,1 21,-1,687.3,206,78.9,113.4,1 21,-1,1487,69.8,55.3,148.1,1 21,-1,704,1.8,56.4,157,1 21,-1,493.6,151.6,95.5,189.1,1 21,-1,1361.6,567.4,104.9,245.5,1 21,-1,1207,33.9,70.5,117.3,1 21,-1,1724.8,455.6,76.7,211.8,1 21,-1,794.7,150.2,62.8,173.8,1 21,-1,380.8,385.8,85.5,240,1 21,-1,1015.2,200.6,71.2,183.1,1 21,-1,354.8,102.6,55.4,181.7,1 21,-1,102.2,547.7,85.4,250.7,1 21,-1,201.6,381.1,68.1,199.2,1 21,-1,216.1,130.6,48,161.8,1 21,-1,284.5,123.7,55,171.7,1 21,-1,1817.2,228.5,63.7,187.8,1 21,-1,1610.9,242.1,58,190,1 21,-1,457.9,60.6,52.4,170.1,1 21,-1,416.9,79.8,54.2,163.4,1 21,-1,875.9,140.5,59.4,179.4,1 21,-1,1383.6,190.4,52.5,177.8,0.999 21,-1,1,838.5,49.1,242.5,0.998 21,-1,917.9,146.2,50.4,160.8,0.994 21,-1,1427.6,236,43.4,177.8,0.145 459,-1,1221.9,31.1,62.2,118.6,1 459,-1,445.7,196.6,71.6,197.8,1 459,-1,937,1,58,152.1,1 459,-1,687.1,205.5,78.2,114.5,1 459,-1,1736,163.9,60.8,164.3,1 459,-1,1009.3,4.1,53.3,155.8,1 459,-1,360.3,106.4,53.8,181.2,1 459,-1,870.8,1,56.5,136.7,1 459,-1,1706.3,458.5,94.4,207.8,1 459,-1,269.3,217.3,48.5,176.3,1 459,-1,115.4,348.5,55.8,191.9,1 459,-1,1827.3,382.7,78.7,204.2,1 459,-1,522.4,76.3,55.1,170.1,1 459,-1,1544.2,609.1,76.1,245.9,1 459,-1,1507.2,1.2,56.9,109.6,1 459,-1,243.8,667.9,97.3,263.6,1 459,-1,803.2,151.3,46,173.9,1 459,-1,1656.6,358.7,64.2,194.8,1 459,-1,340.5,698.8,73.3,250.2,1 459,-1,284.8,124.1,55.3,173.3,1 459,-1,1444.4,547,82.8,219.3,1 459,-1,1690,55.1,63.5,178.8,1 459,-1,803.3,580.1,86.9,252.7,1 459,-1,218.3,139.5,60.7,156.9,1 459,-1,753.4,94.8,53.8,146.2,1 459,-1,889,604.4,119.7,243.9,1 459,-1,976.9,623.5,88.6,226.4,0.999 459,-1,418.5,1.1,44.4,160.3,0.999 459,-1,1027.7,922.7,84.4,158.3,0.998 459,-1,442.4,43.1,72.5,190,0.998 459,-1,713.3,95.6,51.8,160.3,0.98 459,-1,430.2,134.5,51,159.7,0.258 201,-1,1221.3,31.4,61,118.8,1 201,-1,399.4,608.3,92.1,243.8,1 201,-1,687.7,207.2,77.5,112.4,1 201,-1,1490.8,68.8,54.5,149.3,1 201,-1,211,127.3,56.7,168,1 201,-1,108.6,349.8,50,187.6,1 201,-1,705.2,1.2,55.3,158.5,1 201,-1,61,640.1,118.8,258.2,1 201,-1,521.8,133.6,63.4,166.3,1 201,-1,1721.2,457.3,77.1,209.6,1 201,-1,1357.5,568.7,105.5,244,1 201,-1,423.6,210,75.2,215.9,1 201,-1,509.5,311.7,79.4,220.2,1 201,-1,888.9,157.2,73.4,186.8,1 201,-1,797.2,151,58.6,172.9,1 201,-1,288.9,127.2,55,173,1 201,-1,355.9,108.4,54.6,176.6,1 201,-1,1154.7,142.1,61,185.9,1 201,-1,1040,139.4,51.8,158.3,1 201,-1,1208.8,143.5,56.2,169.8,1 201,-1,229.7,539.3,61.4,217.6,1 201,-1,389.9,37.9,63.4,169.9,1 201,-1,800.9,308.9,74.5,184.7,1 201,-1,753,292.8,68.8,207.7,0.999 201,-1,966.2,916.9,74.1,164.1,0.98 1029,-1,1221.4,29.7,62,119.5,1 1029,-1,686.9,206.7,79.4,113.8,1 1029,-1,1253.7,176,64,167.7,1 1029,-1,792.3,141.6,72.9,170.8,1 1029,-1,1699.3,193.1,63.9,182.6,1 1029,-1,490.4,304.2,69.5,188.2,1 1029,-1,372.3,313.9,71.1,201.9,1 1029,-1,1721,456.8,78.5,207.1,1 1029,-1,289.3,127.2,52.5,168.4,1 1029,-1,233.8,139.7,56.7,164.2,1 1029,-1,934,252.7,67.5,205,1 1029,-1,844.3,260.5,66.7,194.9,1 1029,-1,1140.3,582.2,86.2,254.8,1 1029,-1,1574.3,590,103.4,239,1 1029,-1,751,74.7,53.9,161.3,1 1029,-1,1845,235.5,62.7,193.4,1 1029,-1,539.2,120.7,62.9,175.3,1 1029,-1,293.5,311.9,66.8,206.1,1 1029,-1,1696.8,684.6,82.3,234.3,1 1029,-1,427.2,166.9,59.6,173.7,1 1029,-1,374.4,497.5,69.3,230.1,1 1029,-1,288.9,509.4,88.3,208.7,1 1029,-1,372.4,100.6,59.2,179.2,1 1029,-1,578.5,544.8,75.4,245,1 1029,-1,1471.6,207.4,67.5,160.8,1 1029,-1,475.6,162.1,69.7,198.7,0.999 1029,-1,310.4,1.3,35.6,131.3,0.999 45,-1,1213,31,72.1,117.2,1 45,-1,686.3,205.7,79.6,114.3,1 45,-1,393.6,363,85.1,236.6,1 45,-1,1487,70.4,55.1,148.3,1 45,-1,486.4,171.7,93.9,195.5,1 45,-1,704.6,1,55.7,158.2,1 45,-1,1362.1,565.5,104.1,246.8,1 45,-1,1721.9,456.7,76.8,210.6,1 45,-1,901.7,199.1,86.5,179.5,1 45,-1,1010.2,159.9,78.2,187.2,1 45,-1,353.1,105.8,55.5,178,1 45,-1,169.4,367.5,69.3,193,1 45,-1,214.1,126.9,49.7,164.1,1 45,-1,102.3,548.9,85.6,249.3,1 45,-1,795.1,148.1,62.6,176.4,1 45,-1,407.8,88.2,52.5,160.8,1 45,-1,2.7,795,67.6,235.3,1 45,-1,283.3,126.2,54.4,170.3,1 45,-1,1337.5,185.1,51.6,162.3,1 45,-1,860.9,148.7,61.2,183.3,1 45,-1,1849.7,270.5,69.7,189.8,1 45,-1,1489.4,218.4,63.1,202.2,1 45,-1,485.7,43.7,55.3,157.9,0.996 45,-1,445.2,42.2,53.1,163.3,0.994 45,-1,542,61.2,41.8,176.2,0.972 45,-1,1388.5,219,42.3,172.4,0.884 778,-1,1221,29,62.8,119.3,1 778,-1,687.8,204.4,78.7,115.1,1 778,-1,545.9,115.6,63.8,176.1,1 778,-1,782.9,134.6,58.8,174.5,1 778,-1,1723.8,452.5,75.6,213.8,1 778,-1,1574.6,589.9,101.6,235.2,1 778,-1,1490.3,16.5,59.1,149.5,1 778,-1,292.2,484.4,76.8,229.2,1 778,-1,1444.6,75.3,54.1,169,1 778,-1,449.1,208.1,55,189.1,1 778,-1,390.5,217.9,70.6,177,1 778,-1,329.1,189.7,57.5,174.1,1 778,-1,277.9,170.4,55.3,192,1 778,-1,749.6,73.7,53.8,157.3,1 778,-1,1572.3,77.5,59.8,172.3,1 778,-1,1121.1,634.8,82.9,256.1,1 778,-1,234,134.3,50.8,164.4,1 778,-1,255.4,1,51.9,118.6,1 778,-1,472.1,80.7,61.3,165.7,1 778,-1,558.4,571,78,252.3,1 778,-1,1050,648.9,77.8,252.4,1 778,-1,418.5,77.9,54.9,167.8,1 778,-1,356.7,109.9,49.7,187.4,0.882 118,-1,1221.5,30,62.8,119.1,1 118,-1,1119.3,148.6,76.8,171.5,1 118,-1,356.1,104.7,57.1,179.1,1 118,-1,393,785.4,103,278.4,1 118,-1,1488.3,68.5,55.7,150.4,1 118,-1,704.1,1,56,159,1 118,-1,107.8,350.9,50.2,187.6,1 118,-1,211.5,126.6,51.5,165.5,1 118,-1,924.5,206.9,70.4,195.8,1 118,-1,1721.4,457,76.8,210.4,1 118,-1,288.8,126.1,54.5,168.9,1 118,-1,1358.1,566.7,105.6,244.3,1 118,-1,426.6,288.9,78.4,225.9,1 118,-1,477.6,167.8,57.5,156,1 118,-1,520.6,241.8,70.8,203.3,1 118,-1,789,207.1,66,189,1 118,-1,539.3,64,49.3,168.6,1 118,-1,1358,182.4,68.1,184.3,1 118,-1,71.9,661.7,75.6,222.4,1 118,-1,1239.7,177.5,42.4,169.2,1 118,-1,445.4,1,54.2,148.5,1 118,-1,376,1.8,48.9,151.4,1 118,-1,103.5,543.9,85.5,257.8,1 118,-1,482.4,39.6,59.7,165.9,1 118,-1,836.3,227.2,56.1,174.9,1 118,-1,1119.5,929.1,79.7,151.9,0.573 690,-1,1222,30.1,61.9,119.1,1 690,-1,687.9,206.7,78.4,112.5,1 690,-1,1481.6,5.5,59.4,146.3,1 690,-1,1488.9,134.9,53.1,178.7,1 690,-1,366.3,531.6,95.8,251.7,1 690,-1,1613.4,145.1,68.3,183.7,1 690,-1,803.3,145.1,55.2,171.2,1 690,-1,563.1,111.6,51.9,177.9,1 690,-1,1709.4,457,98.7,207.7,1 690,-1,488.2,132.2,46.7,179.7,1 690,-1,422.4,145.4,62.6,164.3,1 690,-1,310.4,373.4,66.3,207.6,1 690,-1,361.1,114.5,49.1,170.4,1 690,-1,1576,589.8,95.8,235.8,1 690,-1,749.5,78.9,51.1,159,1 690,-1,1336.7,825.9,102.8,255.1,1 690,-1,1255.7,853,87.8,228,1 690,-1,247,201.4,60.2,195.7,1 690,-1,1051.5,1,61.7,99.9,1 690,-1,300.5,216.5,57.5,177.5,1 690,-1,406.1,22.1,54.7,163.1,1 690,-1,481.4,35.9,48.4,145.5,1 690,-1,224.9,132.4,51.9,165.2,1 690,-1,822.4,922.7,82.9,158.3,0.71 23,-1,687.1,206.3,79.1,113.4,1 23,-1,1487,69.5,55.2,148.4,1 23,-1,704.1,1.1,56.3,157.1,1 23,-1,1207,32.5,70.9,117.1,1 23,-1,1361.8,566.9,105.2,245.2,1 23,-1,1003.7,201.6,76.1,178.5,1 23,-1,493.8,152.8,92.3,190.2,1 23,-1,794.1,150,62.8,175.8,1 23,-1,1724.7,456.5,75.7,210,1 23,-1,102.3,547.9,85.2,251.5,1 23,-1,355.4,101.4,54.6,182.5,1 23,-1,383.1,382.7,82.3,243.2,1 23,-1,1819.6,230,64.5,192.6,1 23,-1,215.6,130.3,49.4,162.4,1 23,-1,199.6,378.4,67.3,201.6,1 23,-1,1606.3,242.5,60.2,188.3,1 23,-1,283.6,125.4,56.5,168,1 23,-1,416.1,79.5,55.7,164,1 23,-1,455.4,61.9,53.1,168.6,1 23,-1,874.7,141.2,58.4,179.9,1 23,-1,1.8,841.9,51.5,235.9,1 23,-1,915.7,149.4,51.1,162.7,0.999 23,-1,1379.7,186.8,52.8,178.5,0.999 23,-1,1425.3,233.6,44.5,178,0.05 363,-1,1222.4,31.5,61.5,118.3,1 363,-1,687.2,206.1,78.5,113.5,1 363,-1,1623,1,66.2,160.2,1 363,-1,1024.8,58.1,54.8,168.1,1 363,-1,1432.6,2.3,51.4,101.9,1 363,-1,1042.3,434.9,66.2,193.4,1 363,-1,1754.5,92.5,62,161.5,1 363,-1,208,142,59.8,159.3,1 363,-1,512.7,570.6,103.8,244.6,1 363,-1,432.3,328.1,80.6,207.4,1 363,-1,1841.2,63.8,57.7,162.6,1 363,-1,443.9,85.5,69.8,200,1 363,-1,375,512.5,85.5,241.2,1 363,-1,511.5,93.1,47.6,163,1 363,-1,110.1,352.4,51.4,186.8,1 363,-1,1719.9,456.5,78.3,213.1,1 363,-1,834,1,54.2,103.7,1 363,-1,1815.6,466.2,65.9,208,1 363,-1,795.9,149.8,60.7,173.3,1 363,-1,957.6,51.5,61.2,171.7,1 363,-1,286.8,130.1,54.7,170.9,1 363,-1,219.3,318.7,53.9,187.3,1 363,-1,362.6,111.5,54.7,174.6,1 363,-1,1572.9,625.6,83.5,249.9,1 363,-1,908.9,486,83.9,210.3,1 363,-1,843.9,475.2,85.9,227.9,0.999 363,-1,381.1,1.5,41.2,87.1,0.999 363,-1,474.1,530.1,66,231.8,0.998 363,-1,924.8,1.8,62.3,157.7,0.998 363,-1,764,97.2,41.2,143.4,0.992 363,-1,957.4,922.9,78.2,158.1,0.977 363,-1,497.9,933.2,101.2,147.8,0.277 736,-1,1221.3,29.9,62.7,119.4,1 736,-1,686.8,205.6,79.2,114.9,1 736,-1,256.7,188.7,59.5,194.9,1 736,-1,1480.9,9.2,60.5,143.7,1 736,-1,552.2,113.1,58.5,179.6,1 736,-1,296.4,424.8,76.7,223.4,1 736,-1,780.6,138,55.3,178.2,1 736,-1,1467.3,109.3,53.1,167.7,1 736,-1,475.2,169.6,50,183.9,1 736,-1,401.4,184.7,76.7,163.9,1 736,-1,1713.8,455.1,92.3,208.4,1 736,-1,428.8,554.2,85.6,248.9,1 736,-1,1575,591.6,99.3,232.6,1 736,-1,1599.3,103.4,58.7,178.8,1 736,-1,327.1,196.3,58.1,180.6,1 736,-1,1144.5,746,82.6,257,1 736,-1,1220.7,720,87.9,252.7,1 736,-1,434.2,48,56.4,166.9,1 736,-1,359.9,109.4,48.6,176.2,1 736,-1,751,85.9,49.6,148.5,1 736,-1,316.4,1,48.7,133.6,0.938 736,-1,290.4,130.6,46.2,160.1,0.874 741,-1,1221.5,30.2,62.3,118.5,1 741,-1,686.6,205.9,79.4,114.3,1 741,-1,1484.4,10.1,59.8,144.5,1 741,-1,256.1,183.4,61.9,201.1,1 741,-1,550.1,115.1,61.6,177.7,1 741,-1,780.5,137.2,56.5,174.9,1 741,-1,1465,107.2,53.1,163.4,1 741,-1,1712,457.6,93.9,205.8,1 741,-1,296.4,431.7,76.9,222.2,1 741,-1,1600.1,103.5,58,178.2,1 741,-1,474,172.4,49.6,184.1,1 741,-1,1575.8,589.7,99.7,235.3,1 741,-1,400.2,188.5,75.4,171.9,1 741,-1,332.1,199.5,55.4,174.8,1 741,-1,1127.1,732.8,85.4,255.9,1 741,-1,1206.7,710.8,85,260,1 741,-1,435.2,54.1,58.2,167.4,1 741,-1,750.4,82.6,50.7,150.9,1 741,-1,444.3,556.1,81.3,254.2,1 741,-1,357.8,111,49.8,176.8,0.999 741,-1,290.3,125.4,49.5,167.9,0.995 741,-1,239.2,152.2,48.8,162.6,0.312 741,-1,259,3.8,46.5,116.3,0.151 697,-1,1221.4,29.9,62.2,118.6,1 697,-1,687.2,206.6,79.1,113.4,1 697,-1,1481.8,6.4,58.9,143.9,1 697,-1,1606.6,140.1,70.7,182.3,1 697,-1,1480.1,135.3,52.7,177.6,1 697,-1,561.5,111.4,53.9,177.6,1 697,-1,1710.7,455.9,96.9,209.5,1 697,-1,1573.8,588.8,98.5,236.2,1 697,-1,381.8,536,76.2,249.7,1 697,-1,421,149.2,65.5,165.9,1 697,-1,301,378,71.7,214.1,1 697,-1,487.9,134.7,46.4,185.9,1 697,-1,1031.6,2.4,66.2,91.9,1 697,-1,1319.4,815,98,266,1 697,-1,802.6,142,51.6,177.5,1 697,-1,750.4,80.7,49.2,154.8,1 697,-1,409.1,21.7,56.6,159.1,1 697,-1,479.2,26.5,46.5,139.3,1 697,-1,251.7,198.4,62.5,198.4,1 697,-1,360.4,112.4,49.2,172.5,1 697,-1,304.2,212,58.3,181.6,1 697,-1,1240.5,835.7,85.2,245.3,1 697,-1,226.7,134.4,53.2,163.6,1 697,-1,828.2,929.1,81.5,151.9,0.529 772,-1,1221,29.7,62.7,119.1,1 772,-1,687.4,205.1,78.9,114.9,1 772,-1,546.6,116.7,61.5,174.5,1 772,-1,782.4,134.1,63.4,174.6,1 772,-1,1722.7,452.9,76.8,214.2,1 772,-1,1575.8,590.8,100.4,233.5,1 772,-1,294.4,476.3,78.3,226.9,1 772,-1,1450,77.2,53.7,169.7,1 772,-1,1492.9,18.1,58.5,148,1 772,-1,531.2,574.1,97.3,245.2,1 772,-1,1572.7,76.4,61.8,175,1 772,-1,452.6,207,53.4,183.8,1 772,-1,391.9,211.8,71.2,170.3,1 772,-1,750.5,72.5,51.7,161.6,1 772,-1,328.9,190.1,57.5,175.9,1 772,-1,466.4,70.7,61.2,175.7,1 772,-1,275.8,173.8,57,194.7,1 772,-1,255.4,1.3,51.8,120.8,1 772,-1,232.4,137.6,50.9,163.2,1 772,-1,1136.1,637.7,79.7,259,1 772,-1,1063.4,664.3,79.1,251.1,1 772,-1,409.8,76.3,58.3,169.3,0.999 772,-1,357.8,108.8,53.2,176,0.999 780,-1,1220.7,28.8,63,118.5,1 780,-1,687.5,204.8,78.9,113.9,1 780,-1,546.1,115.5,63.8,176.1,1 780,-1,1488.9,16.1,59.9,152.4,1 780,-1,1723.2,452.3,76.8,214.3,1 780,-1,783.3,134.7,57.3,172.4,1 780,-1,1576,589.5,99.5,234.6,1 780,-1,292.3,490.2,77.1,228.8,1 780,-1,1444.5,73.9,51.7,165.6,1 780,-1,277.5,169.6,55.9,194.8,1 780,-1,448.7,211.5,54,189.8,1 780,-1,389.4,221.4,71.7,177.2,1 780,-1,749.7,73.2,54.3,159.9,1 780,-1,330.2,189.3,55.3,175.6,1 780,-1,1572.8,78.3,58.9,168.9,1 780,-1,233.7,133.7,50.7,163.9,1 780,-1,473.8,78.3,58.8,170,1 780,-1,254.6,1.2,52.9,120.2,1 780,-1,1049.2,647.6,73.5,254.5,1 780,-1,419,77.4,56.1,170.3,1 780,-1,1114.9,626.9,82.7,256.3,1 780,-1,566.3,571.4,72.1,255.8,1 780,-1,358.2,110.8,45.9,191.5,0.643 257,-1,1221.4,30.9,61.7,117.8,1 257,-1,1621.4,10.3,59,150,1 257,-1,686.9,206.1,79.7,113.7,1 257,-1,1479.4,53.1,54,154.1,1 257,-1,211.3,126.1,57.4,167,1 257,-1,286.9,129.6,57.6,170.4,1 257,-1,357.3,105.7,52.3,181,1 257,-1,389.2,494.9,87.3,238.7,1 257,-1,797.9,153.8,60.3,173.8,1 257,-1,1720.3,458.2,78.3,210.3,1 257,-1,450.2,162.3,78.2,212,1 257,-1,1392.6,567.2,102,246.1,1 257,-1,938.3,105.6,69.8,184,1 257,-1,704.1,1,54.8,157.9,1 257,-1,1142,104.5,52.3,170,1 257,-1,108,350.5,51.5,191.5,1 257,-1,227.3,455.2,61.3,200.7,1 257,-1,1064.2,112.9,59.5,181.1,1 257,-1,864.1,357.1,77.8,193.3,1 257,-1,236,745.4,87.6,270.3,1 257,-1,892.3,107.4,47.9,160.6,1 257,-1,796,349.8,84.8,208.2,1 257,-1,141,566.5,89.9,247.6,1 257,-1,487.8,372.1,72.9,230,1 257,-1,513.4,117.2,54.9,174.9,1 257,-1,576.8,383.6,66.4,211.4,1 257,-1,369.9,3.2,55.2,161.2,1 257,-1,760.5,100.5,50.2,173.4,0.999 257,-1,934.4,911.7,77,169.3,0.994 966,-1,686,206.4,80,113.5,1 966,-1,1769.1,151.6,67.3,182.8,1 966,-1,1152.5,90.7,66.1,171.5,1 966,-1,1221.6,30.6,60.9,119.9,1 966,-1,792.5,140.7,74.6,172.7,1 966,-1,1648.3,117.7,58.1,172.9,1 966,-1,926.4,330.2,72.4,215.7,1 966,-1,1574.2,589.6,103.4,237.2,1 966,-1,328.4,795,90.3,273.8,1 966,-1,416.4,244.5,72.4,200.7,1 966,-1,442.2,72.1,55.6,179.7,1 966,-1,1471.9,150.8,66.3,163.2,1 966,-1,848.5,343.8,66.3,203.4,1 966,-1,1721.4,453.5,78.1,214.4,1 966,-1,229.7,137,55.5,164.1,1 966,-1,752,72.8,54.8,161.8,1 966,-1,488.9,231.3,65,181.3,1 966,-1,1402.9,1.7,46.8,102.5,1 966,-1,1458.6,1,63.3,104,1 966,-1,332.4,242.5,64.9,195.7,1 966,-1,310.4,423.9,87.6,202.3,1 966,-1,1216.9,721.6,90.5,267.9,1 966,-1,550.1,118.4,54.2,171.9,1 966,-1,392,415.6,65.6,213.4,1 966,-1,1742.5,677.4,94.9,248.8,1 966,-1,289.5,124.5,54.4,172.4,1 966,-1,484.2,51.9,54.3,160.4,0.999 966,-1,313.6,1,47.7,130.2,0.999 966,-1,383.1,1.6,53.5,123,0.916 966,-1,433.9,4.3,51.3,147.9,0.91 319,-1,1221.4,31.2,61.6,118.5,1 319,-1,328.1,585.1,107.2,247.6,1 319,-1,1456.5,3.2,55.7,144.4,1 319,-1,687,206,78.7,114.3,1 319,-1,108.4,350.1,52.5,191.6,1 319,-1,1710.6,52.6,55.4,156.6,1 319,-1,797.4,147.7,58.1,176.9,1 319,-1,453.3,115.6,74.2,203.9,1 319,-1,1720.9,457.8,78.6,211.9,1 319,-1,358.6,107.8,58.3,182.5,1 319,-1,237.5,374,57.7,189.3,1 319,-1,1508.6,601.9,88.9,244.7,1 319,-1,434.6,449.2,72.6,239.4,1 319,-1,995,77.6,61.2,177.3,1 319,-1,893.9,440.7,69.3,197.5,1 319,-1,930.4,49.6,60.8,170.5,1 319,-1,419.4,44.4,56.6,169.7,1 319,-1,1051.8,76.6,54,169.5,1 319,-1,213.7,130.9,56.9,168.5,1 319,-1,281.4,129.9,54.2,174.8,1 319,-1,826.3,433,79.3,206.4,1 319,-1,520.4,473.1,65.7,215.6,1 319,-1,705.5,3.1,53,153.7,1 319,-1,725.9,98.5,48.9,179.3,1 319,-1,355.1,892.9,98.1,188.1,1 319,-1,1573.3,2.2,57.1,109.8,0.999 319,-1,515,101.1,40.1,168.3,0.998 319,-1,927.5,908.2,79.2,172.8,0.994 260,-1,1221.1,31.5,61.9,118.2,1 260,-1,686.8,205.7,79.6,114.7,1 260,-1,1624.9,14.7,62.5,145.1,1 260,-1,385.4,496.8,86.7,224.3,1 260,-1,287.5,130.7,56.1,169.8,1 260,-1,1479.9,51,53.8,148.7,1 260,-1,356.5,107.7,53.2,178,1 260,-1,452.2,156.3,76.1,216.3,1 260,-1,1720.4,458.5,78.6,210.4,1 260,-1,797.9,155.6,58.8,172.1,1 260,-1,213.9,127.8,56,166.3,1 260,-1,108,350.4,51.8,191.4,1 260,-1,1396.4,564,103,250.5,1 260,-1,938,102.1,71.5,178.9,1 260,-1,242.5,753.9,86.4,267.3,1 260,-1,1059,110.2,60.8,183.1,1 260,-1,705,1.6,54,156.1,1 260,-1,1138.7,101.2,50.5,167.2,1 260,-1,867.1,362.2,78,190.7,1 260,-1,227.8,451.7,61.4,202.4,1 260,-1,884.2,110.1,49.6,157.5,1 260,-1,489.4,377.5,69.1,225.3,1 260,-1,797.7,348.5,84.5,210.6,1 260,-1,145.3,570.4,92.4,244.8,1 260,-1,372.7,4.6,56,160.5,1 260,-1,684.7,318.2,52.9,159.9,1 260,-1,514.2,118.6,54.7,173.9,1 260,-1,575.9,385,64.2,212.1,0.999 260,-1,757,104.4,54,168.4,0.999 260,-1,937.1,915.1,79.3,165.9,0.994 692,-1,1221.5,30,62,119.8,1 692,-1,687.3,206.5,78.9,112.5,1 692,-1,1481.8,6.1,59.4,146.1,1 692,-1,562.1,111.4,53.3,178,1 692,-1,803.5,144.9,53.6,171.5,1 692,-1,1611,143.9,70.5,182,1 692,-1,1710,457.1,99,207.8,1 692,-1,1485.5,136.5,53,178.4,1 692,-1,373.6,531.5,88.2,253.7,1 692,-1,1574.6,588.7,96.9,235.2,1 692,-1,422,146.3,63.6,165.7,1 692,-1,487.6,132,47.6,184.8,1 692,-1,749,78.9,51.6,158.1,1 692,-1,360.7,115.5,49.7,171.5,1 692,-1,308.3,377.2,68.4,208.5,1 692,-1,248.2,201.1,61.7,198,1 692,-1,1329.1,820.6,99.8,260.4,1 692,-1,480.5,30.3,47.9,140.5,1 692,-1,406.4,19.7,56.2,164.2,1 692,-1,301,213.7,58.4,180.8,1 692,-1,224.4,133.3,54.3,165.1,1 692,-1,1045.9,1,62.9,95,1 692,-1,1251.5,847.4,88.1,233.6,1 692,-1,825.2,923.3,78.6,157.7,0.711 795,-1,1221.2,29.3,62.6,119.1,1 795,-1,687.1,205.6,79.1,113.7,1 795,-1,783.2,130.3,52.5,181.5,1 795,-1,1723,451.8,75.9,215.2,1 795,-1,288.7,509.5,78.8,239.7,1 795,-1,547.9,115,61.7,176.9,1 795,-1,478.4,95.5,60.4,172.7,1 795,-1,1574.6,589.7,100.7,235.9,1 795,-1,1483.7,27.7,60,148.7,1 795,-1,278.6,167.7,57.9,194,1 795,-1,750.1,68,56,163.2,1 795,-1,233.1,132.9,51,167.1,1 795,-1,1441.2,64.6,48.4,160.4,1 795,-1,342,187.4,49.5,176.5,1 795,-1,391.8,234.9,65.1,178.2,1 795,-1,253.6,1.5,53.3,121.5,1 795,-1,444.1,226.8,54.8,187.7,1 795,-1,1604.9,1,52.4,126.9,1 795,-1,1019.2,618.8,80.2,249.4,1 795,-1,1082.3,600.1,94.7,259.4,1 795,-1,422.2,93,55.5,163.7,1 795,-1,602.2,578.6,78.7,242.9,1 795,-1,446.4,2.1,44.4,91.5,0.999 91,-1,1221.9,30.8,61.7,116.2,1 91,-1,704.6,1,55.9,158.1,1 91,-1,1487.6,69.5,54.6,147.7,1 91,-1,356,109.2,54.7,174.4,1 91,-1,401.3,859.3,103.5,221.7,1 91,-1,420.5,311,80.1,228.6,1 91,-1,727.8,189.7,70.5,175.2,1 91,-1,1721.6,457.3,77.4,208.6,1 91,-1,1358.7,564.7,105.8,247.3,1 91,-1,969,194.5,73.5,187.9,1 91,-1,501.2,213.3,73.3,198.6,1 91,-1,1209.6,157.9,59.3,174.8,1 91,-1,102.4,547.5,86.3,252.2,1 91,-1,295.6,126.7,53.1,170.9,1 91,-1,24.3,705.4,68,227.5,1 91,-1,210.2,130.7,50.5,164.5,1 91,-1,1296.9,200.5,47.2,168.3,1 91,-1,119.9,354.1,47.9,192,1 91,-1,437.7,11.5,53.1,160.4,1 91,-1,538.6,62.8,48.9,168.4,1 91,-1,1411.9,195.7,60.7,192.8,1 91,-1,375.9,19.1,53.1,158.6,1 91,-1,1467.6,190.3,55.9,175.6,1 91,-1,255.4,91.6,60.9,182.7,1 91,-1,869.3,206.4,56.7,167,1 91,-1,826.6,187.9,63.9,181.2,0.999 91,-1,481.8,134.6,56.3,160.1,0.999 91,-1,795.4,155.3,60.1,170.5,0.983 91,-1,485,36.5,54.3,161.9,0.968 709,-1,1221.9,30.1,61.6,118.9,1 709,-1,686.8,206.1,79.9,113.6,1 709,-1,1481.2,6.8,57.4,145.7,1 709,-1,1602.1,128.4,68,180.9,1 709,-1,1710.9,455,97,210.3,1 709,-1,559.4,110.8,56.2,177.4,1 709,-1,1574.6,587.6,99.4,236.6,1 709,-1,411.5,160.3,77,166.8,1 709,-1,295.3,393.3,74.6,215.1,1 709,-1,481.6,146.9,50.4,181.9,1 709,-1,1475,119.9,53.5,179.7,1 709,-1,1290.3,778.9,92.4,274.9,1 709,-1,360,109.7,49.8,172.7,1 709,-1,749.6,80.5,50.1,154.9,1 709,-1,800.7,139.1,47.6,172.5,1 709,-1,472.1,24.7,44.6,134.7,1 709,-1,1203.3,801.4,90.4,270.8,1 709,-1,996.2,2.6,66.1,87.4,1 709,-1,391.2,544.6,66.7,244.9,1 709,-1,259.7,197.2,56.1,195.3,1 709,-1,306.3,208.1,59.1,177.8,1 709,-1,411.6,28.8,61.1,159.3,1 709,-1,230.3,133.8,51.6,165,1 709,-1,849.1,934.2,78,146.8,0.066 300,-1,1221.6,31.9,61.8,118.5,1 300,-1,1681.9,45.5,56.7,152,1 300,-1,686.4,206.3,80.3,115.3,1 300,-1,1459.9,19.3,51.9,148.8,1 300,-1,238.3,393.5,59.3,195.8,1 300,-1,108.4,350.5,51.9,191.9,1 300,-1,936.9,62.2,64.8,175.1,1 300,-1,1720.5,459.3,78.2,210.3,1 300,-1,409.9,33.4,55.2,161.6,1 300,-1,250,577.8,108.5,255.3,1 300,-1,354.3,110.9,55,177.4,1 300,-1,704.9,1,54.4,159.4,1 300,-1,794.7,149.4,61.4,177.7,1 300,-1,453.6,129.5,75.1,204.3,1 300,-1,1007.3,86.1,60.7,184.4,1 300,-1,284.1,131.9,53.2,170,1 300,-1,1470.1,594,93.1,242.7,1 300,-1,218.4,131.7,59.6,165.5,1 300,-1,533.7,441.7,70,219.8,1 300,-1,1077.4,86.9,49.9,161.1,1 300,-1,383.6,423,83.2,226.7,1 300,-1,823.2,395.4,88.5,219.3,1 300,-1,304.8,842.1,99.8,238.9,1 300,-1,742.5,101.9,45.2,172.2,1 300,-1,888.2,414.2,72.5,198.7,1 300,-1,461.5,426,62.9,228.9,0.999 300,-1,511.9,103.2,47.9,175.3,0.999 300,-1,936.5,913.1,66.8,167.9,0.988 300,-1,832.3,116,44.7,150.8,0.123 369,-1,1221.8,31.7,61.6,117.7,1 369,-1,686.4,206.2,79.5,112.9,1 369,-1,1062.1,435,66.9,199.5,1 369,-1,443.5,82.5,68.4,196,1 369,-1,442.9,309.6,73.3,220.1,1 369,-1,1020.5,56.2,55.1,165.5,1 369,-1,1627.9,9.3,57,161.3,1 369,-1,1760.8,98.7,58,155,1 369,-1,1432.3,2.4,52.6,100.2,1 369,-1,359.3,524,86.3,233.1,1 369,-1,210.5,140.2,59.9,160.6,1 369,-1,511.7,89.8,48.2,166,1 369,-1,109.6,350.3,52.3,190.4,1 369,-1,361.8,109.8,53.6,174.5,1 369,-1,1719.5,455.6,79.5,214.3,1 369,-1,286,131.6,53.4,169.4,1 369,-1,830.8,1,55.8,111,1 369,-1,796.2,150.5,59.3,172.6,1 369,-1,1824.8,76.2,61.8,154.7,1 369,-1,953.2,43.4,63.3,175.9,1 369,-1,1809.3,458.1,63.7,207.9,1 369,-1,911.7,492.7,78.6,209.2,1 369,-1,541.6,572.1,97.5,246.5,1 369,-1,213.3,312.2,53.7,183.6,1 369,-1,1581.1,628.2,83.4,246.5,1 369,-1,466,540.9,66,231.3,1 369,-1,380.7,2.2,46.1,89.2,1 369,-1,846.2,479.4,87.9,228.1,1 369,-1,760.4,96.6,43,141.5,1 369,-1,965,920,79.4,161,0.997 369,-1,928.6,3.2,59.7,148.7,0.48 953,-1,685.8,206.2,81.1,113.2,1 953,-1,794,139.6,73.4,173.6,1 953,-1,1473.1,139.9,63.4,165.3,1 953,-1,1221.4,30.1,62.2,119,1 953,-1,1479.7,1,54.6,111.2,1 953,-1,1574.6,588.3,103.1,236.5,1 953,-1,320,769.1,96.8,273.2,1 953,-1,750.3,72.1,56.3,160.9,1 953,-1,1720.5,453.7,78.1,214.4,1 953,-1,1147.2,78.4,59.3,167.2,1 953,-1,1757.8,138.1,65.5,180.3,1 953,-1,1639.5,110.3,51.8,164.2,1 953,-1,930.9,348,70.6,216.7,1 953,-1,1413,2.3,46,112.2,1 953,-1,553,116.7,55.2,172,1 953,-1,852.5,362.8,69.1,210.2,1 953,-1,391.7,390.8,66.9,214.7,1 953,-1,1240,755.7,91.8,264.2,1 953,-1,424,232.9,69.5,190.4,1 953,-1,322.4,414.7,79.2,190.7,1 953,-1,232.7,135.5,57.5,170,1 953,-1,436.4,75.8,55.2,176.3,1 953,-1,482.2,220.1,60.1,181.7,1 953,-1,343,235.3,62.8,185.8,1 953,-1,1742.8,675.6,94.1,251.3,1 953,-1,479.4,41,54.9,157.5,1 953,-1,246,2.1,54.7,124,1 953,-1,288.8,126.4,53.4,165.5,0.998 953,-1,320.9,164.4,56,205.2,0.961 432,-1,1221.5,30.5,62.5,119.3,1 432,-1,939.3,5.2,62.7,166.1,1 432,-1,686.2,206,80.1,113.4,1 432,-1,843.5,1,55.1,136,1 432,-1,358.8,109.2,53,178.3,1 432,-1,447,227.8,81,204.4,1 432,-1,1306,517.7,69.1,206.6,1 432,-1,111.7,349.3,53.7,189.6,1 432,-1,1679.1,87,67.2,174.7,1 432,-1,1716.9,459.1,81.5,206.4,1 432,-1,1009.2,21.7,53.9,159.4,1 432,-1,281.8,619.9,93,255.9,1 432,-1,1756.5,146.8,57.6,162.7,1 432,-1,284.8,129.2,54.1,166.4,1 432,-1,754.3,562.4,87.9,248.2,1 432,-1,798.3,150.8,53.6,172.2,1 432,-1,379.6,651.4,70.2,240.1,1 432,-1,225.9,245.6,51.1,173.5,1 432,-1,534.3,72.7,56.9,166.3,1 432,-1,1568.6,613.6,89.4,247.3,1 432,-1,1849,417.3,72,191.3,1 432,-1,871.3,568.2,107.1,241.1,1 432,-1,360,1,66.7,130,1 432,-1,950.3,578.1,85.6,219.8,1 432,-1,429.7,111.1,59.2,170.4,1 432,-1,221.9,137.4,72.3,160.3,1 432,-1,713.8,89.1,60.8,172,1 432,-1,422.3,1,43.9,128.3,1 432,-1,1766.2,70.1,93.9,177.4,0.998 432,-1,724.9,2.7,48.9,107.3,0.976 432,-1,996.4,932.8,85.1,148.2,0.967 432,-1,759.2,86.5,40.7,151.4,0.917 432,-1,460.4,54.3,61.8,184.8,0.424 601,-1,1221.7,30.7,61.6,119.4,1 601,-1,687.7,205.5,78,113.9,1 601,-1,1480.5,3.6,61.2,145.5,1 601,-1,801.3,143.1,63.7,174.9,1 601,-1,366.5,273.5,63.4,196.4,1 601,-1,1711,456.8,91.9,209,1 601,-1,235,265.1,64.6,188.8,1 601,-1,1651.1,226.9,71.8,200.1,1 601,-1,1626.2,1.5,54.4,113.1,1 601,-1,563.8,110.1,49.3,180.4,1 601,-1,1574.1,588.7,97.9,235.9,1 601,-1,166.8,245,61.9,208.9,1 601,-1,287,126.9,51.3,169.5,1 601,-1,361.8,110.7,51.3,178.7,1 601,-1,484.2,99.4,47.6,159.4,1 601,-1,431.5,72.9,47.4,167.8,1 601,-1,216.4,138,55.7,158.5,1 601,-1,752.1,79.2,44.9,156.3,1 601,-1,1080.1,871.6,120,209.4,0.999 601,-1,395.8,91.2,43.6,156.7,0.931 601,-1,1876.9,282.9,44.1,180.3,0.554 601,-1,1160.6,883.8,96,197.2,0.231 165,-1,1221.6,30,61.8,118.7,1 165,-1,978,127.9,68.8,173.7,1 165,-1,211.9,125.5,55,168,1 165,-1,1489.1,68.9,55.3,149.3,1 165,-1,109,347.9,50.7,190.4,1 165,-1,1720.6,456.5,78.7,213.1,1 165,-1,356.6,103.4,55,179.6,1 165,-1,288.7,127.8,54.7,169.8,1 165,-1,686.8,207.8,79.5,111.2,1 165,-1,704.4,1,56.5,159.6,1 165,-1,433.6,39.5,60.6,164.8,1 165,-1,1359.2,568.6,103.7,243.1,1 165,-1,1134.8,156.6,48.9,160.1,1 165,-1,403.2,681,97.2,258.4,1 165,-1,419.5,241.3,81.1,220,1 165,-1,538,64,51.7,171.6,1 165,-1,101.3,547.8,86.1,252.6,1 165,-1,527.9,280.7,64.1,214.2,1 165,-1,562.7,158.2,68.1,168.7,1 165,-1,212.6,590,67.8,219,1 165,-1,799.4,274.7,62.3,178.9,1 165,-1,854,192.6,73.3,187.3,1 165,-1,750.9,259.2,66.9,200.2,1 165,-1,795.7,148.3,61.6,172.6,1 165,-1,499.6,212.1,56.8,170.9,1 165,-1,1247.7,169.8,52.1,164.8,0.999 165,-1,393.4,7.2,47.2,112,0.999 165,-1,1283.3,168.3,54.3,167.8,0.999 165,-1,1022.2,905.7,74,175.3,0.987 165,-1,603.3,273,52,187,0.346 100,-1,1221.5,30.7,62.4,118.1,1 100,-1,1173.1,154.5,83.8,171.5,1 100,-1,704.5,1,56.1,161.2,1 100,-1,395.1,831.3,98.5,249.7,1 100,-1,1487.6,68.9,55.4,149.2,1 100,-1,426.2,303.3,77,233.8,1 100,-1,110.4,352,48.2,187.7,1 100,-1,356.8,107.3,55,177.3,1 100,-1,1721.3,457,78,211,1 100,-1,1359,566.9,104.5,244.9,1 100,-1,503.9,225.8,72,195.2,1 100,-1,101.7,547.8,86.8,251.9,1 100,-1,952.8,199.6,71.7,187.6,1 100,-1,1276,193,46.1,168.7,1 100,-1,293.2,124.7,54.9,173.5,1 100,-1,210,128.9,49.2,166.7,1 100,-1,814.5,196.3,59.9,185.8,1 100,-1,711.3,188.1,55.7,167.7,1 100,-1,31.4,689.4,65.2,230.1,1 100,-1,1397.4,189.9,59,190.8,1 100,-1,538.9,66.1,47.6,166.9,1 100,-1,438.7,7.9,50.9,155.5,1 100,-1,1445.1,187.9,58.3,179.7,1 100,-1,376.9,11.1,50.6,163.2,1 100,-1,859.4,212.9,55.3,163.8,0.999 100,-1,480.5,37.4,62.8,159.4,0.999 100,-1,483.9,138.5,55.8,166.5,0.998 100,-1,256.2,90,65.2,186.8,0.998 208,-1,1221.3,30.8,61.8,119,1 208,-1,686.8,206.9,79,113.4,1 208,-1,211.3,127.2,55.7,167.2,1 208,-1,355.4,106.5,55,178.8,1 208,-1,397.1,594.1,92.3,245,1 208,-1,705.5,1.5,55.1,158.8,1 208,-1,288,125.9,55.9,172.2,1 208,-1,1207.2,144.4,50.9,165.2,1 208,-1,1492.4,70.4,53,146.6,1 208,-1,109.8,351.2,49.5,185.2,1 208,-1,1358.5,567.6,103.9,245.4,1 208,-1,81.7,649.9,114.1,252.7,1 208,-1,1721.2,456.6,76.9,211.6,1 208,-1,424.3,203.1,77.2,218,1 208,-1,506,319.6,75.4,216.9,1 208,-1,795.1,151,60.6,171.4,1 208,-1,521.5,130.7,53.4,165.6,1 208,-1,1019.5,135.1,49.2,156,1 208,-1,226.4,522.6,61.3,208.8,1 208,-1,897.7,152.7,68,189.5,1 208,-1,1144,137.5,59.4,183.9,1 208,-1,808.1,312.8,72.3,189.6,1 208,-1,379.3,37.7,59,167.2,1 208,-1,2.5,617.4,93.7,226.5,1 208,-1,861.9,108.1,54.1,173.3,0.999 208,-1,756.7,298.4,70.2,203,0.999 208,-1,556.4,258.6,55.4,186.1,0.999 208,-1,958.6,912.7,73.9,168.3,0.993 687,-1,1222,29.6,62,120.5,1 687,-1,687.6,206.8,78.8,112.8,1 687,-1,1481,6.3,60.3,146.2,1 687,-1,360.8,529.3,104.4,251.7,1 687,-1,1489.3,142.8,52.1,178.2,1 687,-1,485.5,131.4,47.5,180.9,1 687,-1,804.1,146.4,55.9,169.8,1 687,-1,1615.5,148.2,69.5,187.3,1 687,-1,311.4,364,69.4,216.2,1 687,-1,561.9,111.6,52.3,178.1,1 687,-1,1710.3,455.7,98.2,212.4,1 687,-1,420.7,141.1,63.3,164.1,1 687,-1,1063,1,63.2,98.3,1 687,-1,1574.1,588.5,97.9,238.9,1 687,-1,360.1,115.9,48.3,169.6,1 687,-1,1262.6,859.2,92.5,221.8,1 687,-1,750.1,80.1,50,158.5,1 687,-1,1351.4,830.2,93.6,250.8,1 687,-1,405.6,19.9,54.6,163.2,1 687,-1,242.3,199.5,62.3,200.3,1 687,-1,295.9,217.8,60.4,178,1 687,-1,481.9,35.2,47.5,146,1 687,-1,224.3,125.3,51.8,173.6,0.998 687,-1,823,920.6,85.2,160.4,0.883 1050,-1,1221.5,30.2,61.9,119.2,1 1050,-1,687.2,206.6,79.8,114.5,1 1050,-1,794.3,141.5,71.6,173,1 1050,-1,476.2,324.8,76.1,200,1 1050,-1,1720.2,455.3,79.8,215.8,1 1050,-1,287.9,126.5,54.2,173.4,1 1050,-1,355.9,338.5,75.6,204.2,1 1050,-1,1315.2,202.3,56.8,163.3,1 1050,-1,276.8,547.7,89.9,213.3,1 1050,-1,229.1,140.2,54.1,161.4,1 1050,-1,935,227.6,65.9,195.8,1 1050,-1,374.5,523.2,68.3,236,1 1050,-1,852.2,235.4,67.5,193.2,1 1050,-1,750.8,74.2,54.9,163.1,1 1050,-1,1113.3,544.4,84.3,241.7,1 1050,-1,1648.1,677.5,90.1,232.1,1 1050,-1,374.9,99.2,61.4,180.7,1 1050,-1,1725.7,222.1,56.5,174.9,1 1050,-1,286.5,335.9,73.8,207,1 1050,-1,308.2,1.9,39.9,129.7,1 1050,-1,1474.7,219.9,72.1,170.1,1 1050,-1,1571.9,588.6,101.6,242.4,1 1050,-1,515,172,76.3,193,1 1050,-1,473.3,168.3,57.2,179.5,1 1050,-1,584.6,535.6,62.1,255.2,1 1050,-1,433.9,67.5,62.5,175.7,0.999 1050,-1,1867.4,262.7,53.6,202.7,0.977 1050,-1,875.1,927.3,70.8,153.7,0.059 36,-1,1209.2,30.7,74.1,119.3,1 36,-1,686.5,205.6,80.2,114.5,1 36,-1,388.9,369.4,89.5,238,1 36,-1,1361.8,566.2,105.9,246.5,1 36,-1,1486,69.1,57,151,1 36,-1,704.6,1,56,157.7,1 36,-1,1722.6,456.6,75.9,210.9,1 36,-1,185,372.8,66.4,191.3,1 36,-1,214.7,126.6,48.9,165.3,1 36,-1,483.7,162.4,90.5,198.4,1 36,-1,795,149.3,61.7,173.4,1 36,-1,944.7,196.7,82.3,179.8,1 36,-1,102.9,547.8,84.3,251.2,1 36,-1,448.6,56.4,52.8,171.4,1 36,-1,1010.5,154.9,78.5,186.8,1 36,-1,284,123.3,54.2,174,1 36,-1,865.8,140.9,60.3,184.4,1 36,-1,355.9,110,55.1,172.5,1 36,-1,1840.2,250.7,69.7,193.1,1 36,-1,2.5,810.5,61.7,241.2,1 36,-1,1356.6,189.6,50.9,161.5,0.999 36,-1,400.6,75.4,44.4,164.8,0.979 36,-1,1585.9,236.4,52.9,169.5,0.972 36,-1,912.6,159.1,42,170,0.733 36,-1,1504.5,241.1,49.4,167.3,0.204 24,-1,687,206,79.2,113.6,1 24,-1,1487.2,69.1,55.4,149.3,1 24,-1,997.3,201.5,79.6,177.3,1 24,-1,704.8,2.2,55.4,156.4,1 24,-1,1362.1,567.2,104.3,244.5,1 24,-1,492.8,154.7,92.4,188.3,1 24,-1,794.3,149.9,62.6,174.2,1 24,-1,1724.2,456.1,75.5,210.8,1 24,-1,1207.1,33.8,71.5,117,1 24,-1,355,101.9,55,182.4,1 24,-1,102,547.8,85.7,251.5,1 24,-1,382.8,382.6,82.5,241.7,1 24,-1,199,376.9,67.1,203.7,1 24,-1,1821.1,232,64.5,192.8,1 24,-1,216.1,130,49.2,163.8,1 24,-1,284.3,125.1,55.8,169.7,1 24,-1,1603.9,241.8,60.9,187.8,1 24,-1,415.9,77.3,56.2,166.4,1 24,-1,874.9,140.8,56.1,180.1,1 24,-1,455.9,61.6,50.6,168.1,1 24,-1,915.9,148,51.3,165,1 24,-1,3,840.1,50.4,229.4,0.999 24,-1,1379.4,187.2,51.8,180.6,0.999 175,-1,1221.2,30.6,61.9,119,1 175,-1,108.6,350.7,49.2,187.9,1 175,-1,1489.3,69.1,54.7,148.5,1 175,-1,355.6,104.5,55.6,178.8,1 175,-1,703.8,1,56.5,160.1,1 175,-1,1358,567.7,104.9,244.2,1 175,-1,404.5,661,94.8,260.3,1 175,-1,289.2,127.2,53.7,170.6,1 175,-1,212.3,125.7,54.7,167.6,1 175,-1,947.4,122.5,66.6,174,1 175,-1,1721.3,457.4,77.4,210.9,1 175,-1,421.8,38.8,57.9,162.3,1 175,-1,687.6,207.8,77.8,111.1,1 175,-1,420.4,233.1,78.9,219.9,1 175,-1,229.7,582,66.6,211,1 175,-1,101.3,552.3,86.7,247.3,1 175,-1,527.7,284.2,61.1,214.4,1 175,-1,548.5,150.6,65,173.4,1 175,-1,3.1,608.1,79.4,233.6,1 175,-1,793.9,149.6,62.1,174.5,1 175,-1,1216.9,163.5,56.4,174.5,1 175,-1,863.6,184.6,73.7,188.1,1 175,-1,796.5,279.2,63.7,182.9,1 175,-1,1114.4,150.7,43.7,161,1 175,-1,745.5,264.3,65.6,197.8,1 175,-1,1261.5,162.9,48.7,156.6,0.999 175,-1,1005.6,912.1,71.9,168.9,0.969 175,-1,537.7,67.1,50.4,172.3,0.912 546,-1,1221.8,30.3,61.4,119.1,1 546,-1,687,205.8,79,114.4,1 546,-1,1490.8,4,58.4,142,1 546,-1,385,217.2,62.3,189.6,1 546,-1,781.6,144.1,68.5,173,1 546,-1,1665.3,286.5,90.4,205.1,1 546,-1,1716.2,456,83.6,212.7,1 546,-1,990.6,1.6,51.7,102.5,1 546,-1,875.7,1.2,53.4,109.5,1 546,-1,289.6,124,52,171.8,1 546,-1,776,598.3,92.8,253.3,1 546,-1,1785,226.5,66.7,180.3,1 546,-1,1660,2.9,52.9,157.5,1 546,-1,180,305.2,67.2,192.3,1 546,-1,1595.3,1,55.4,156.2,1 546,-1,527.6,108.5,59.9,176.5,1 546,-1,454,103.6,67.4,185.4,1 546,-1,219.6,134.5,58.2,158.6,1 546,-1,1593.3,585.4,69,238.5,1 546,-1,253.2,866.3,81.2,214.7,1 546,-1,929.5,1.5,54.9,101,1 546,-1,358.5,116,57,168.3,1 546,-1,133,273.1,56.1,215.4,0.999 546,-1,1067.2,770.8,92,246.1,0.996 546,-1,410.8,40.9,49.1,172,0.995 546,-1,755.8,85.5,48.4,155,0.983 546,-1,994.5,763.4,114.6,240.6,0.756 546,-1,1876.4,236,44.6,196.4,0.052 532,-1,1221.6,30.6,61.6,120.2,1 532,-1,1485.9,1,58.7,141.6,1 532,-1,687.1,205.5,78.6,115.3,1 532,-1,384.7,201.5,66.8,189.3,1 532,-1,288.8,124.7,54.3,172.3,1 532,-1,780.2,142.9,57.9,175.2,1 532,-1,992.2,1,55.4,111.1,1 532,-1,170.6,313.5,67.3,195.4,1 532,-1,1718.4,456.5,81.2,210.7,1 532,-1,1699.2,304.1,73.4,198.5,1 532,-1,1667.6,12.1,52.4,161.1,1 532,-1,1766.8,219.9,69.7,171,1 532,-1,464.3,117.1,62.6,186.5,1 532,-1,1604.7,2.4,56.9,168.4,1 532,-1,881.9,1.7,52.4,115.8,1 532,-1,1583.4,592.5,62.9,241.5,1 532,-1,517.3,102.2,60.4,179.3,1 532,-1,218.1,138.9,62.6,160.4,1 532,-1,263.4,831.2,82.7,249.8,1 532,-1,812,604.4,76.1,254,1 532,-1,928.7,1,57.1,110.7,1 532,-1,192.2,797.4,96.1,277.1,1 532,-1,450.2,1.8,69,169,1 532,-1,402.4,35.1,51.2,165.1,1 532,-1,960.9,735.9,123.6,258.7,1 532,-1,1793.8,661.8,63.8,212.6,0.997 532,-1,1589.1,286.6,58.5,201.1,0.922 532,-1,1875.4,224.9,45.6,212,0.625 532,-1,1050.2,760.2,87.4,236,0.075 1019,-1,1221.3,29.8,62.5,119.1,1 1019,-1,686.7,206.6,80,113.1,1 1019,-1,380.4,299,75.7,198.7,1 1019,-1,792.3,141.3,74.3,172.5,1 1019,-1,1237.8,160.5,61.2,175.1,1 1019,-1,290,128.3,52.2,167.5,1 1019,-1,929.3,263.6,66.1,202.3,1 1019,-1,298.3,297.6,63.9,204.1,1 1019,-1,295.7,496.9,83,211.9,1 1019,-1,494.3,288.9,68.3,195.3,1 1019,-1,231.6,139.6,55.5,163.2,1 1019,-1,538.4,120.3,61.8,171.3,1 1019,-1,1468.7,186.4,64.5,167.8,1 1019,-1,1721.7,457.5,78.1,205.5,1 1019,-1,1574.7,590.2,103.3,237.8,1 1019,-1,840.8,276.7,69.6,199,1 1019,-1,1700.7,178.5,54.6,172.9,1 1019,-1,381,478.3,64.2,225.1,1 1019,-1,1836.4,226.2,59.3,183.2,1 1019,-1,750.8,73.7,54.7,161.5,1 1019,-1,1150.8,597.4,89.3,253.7,1 1019,-1,1709.7,685.4,102.5,232.3,1 1019,-1,447.6,167.1,76.1,193.3,1 1019,-1,584.3,555.2,78.8,237.9,1 1019,-1,314.5,2.1,37.1,133.4,1 1019,-1,370.6,99.1,61.4,185.5,0.998 1019,-1,399.8,168.3,59,167.2,0.996 1019,-1,359.8,912.3,95.5,168.7,0.895 1019,-1,501.2,115.7,41.3,133.6,0.508 762,-1,1221.7,29.6,61.7,119.6,1 762,-1,687.2,205.5,78.7,113.7,1 762,-1,543.8,114.2,66.6,177.9,1 762,-1,781.4,135.4,65,176.7,1 762,-1,1719.4,453.1,79.7,213.2,1 762,-1,303.9,466.5,76.9,225.4,1 762,-1,1574.9,590.7,99.6,233.7,1 762,-1,1460.6,85.3,52.6,164.6,1 762,-1,270.5,180.5,55.6,198.3,1 762,-1,331.4,192.5,55.5,181.7,1 762,-1,457.8,191.9,54.8,188.5,1 762,-1,398.2,208.1,66.7,176.2,1 762,-1,1579.5,85.2,63.5,176.9,1 762,-1,1494.7,14.2,60.6,146.9,1 762,-1,457.3,62.1,57.3,170.9,1 762,-1,752.4,80.5,48.5,154.1,1 762,-1,515.9,565.1,77.5,251,1 762,-1,257.1,1.1,50.3,121.3,1 762,-1,1150.8,664.5,94.6,268.2,1 762,-1,235.5,134.9,49,162.7,1 762,-1,399.2,64.7,58.4,170.7,1 762,-1,359.5,110.6,53.7,170.1,1 762,-1,1086.9,682.5,79.4,258.2,1 230,-1,1221.9,31,61.3,118.6,1 230,-1,686,206.9,80.4,112.7,1 230,-1,381.7,548,96.6,240.3,1 230,-1,1491.7,67,53.7,149.2,1 230,-1,797,148,59.1,181.1,1 230,-1,356.4,105.9,53.6,180.4,1 230,-1,705.2,1,55.3,158.7,1 230,-1,435,186,76.3,214.7,1 230,-1,288.7,126.3,54.7,172.8,1 230,-1,1578.5,1.3,59.6,140.5,1 230,-1,109.1,350.2,50.2,190.5,1 230,-1,211.4,126.2,55.9,167.8,1 230,-1,1182.5,131.6,49.1,153.8,1 230,-1,1721,457.4,77.6,211.1,1 230,-1,1358.8,568.4,103.9,242.9,1 230,-1,1101.1,125.7,63.9,183,1 230,-1,517.1,120.9,48.1,175.7,1 230,-1,917.6,130.6,75.1,178.2,1 230,-1,507.4,343.7,70.2,218.5,1 230,-1,218.4,493.9,60.6,204.9,1 230,-1,832.9,331.4,74.7,192.9,1 230,-1,158,691.3,102.4,260.3,1 230,-1,778.1,320,73.5,208.2,1 230,-1,591.3,350.5,60.9,195.5,0.999 230,-1,105.3,631.5,90.1,254.8,0.997 230,-1,935.3,902.2,72.5,178.8,0.991 10,-1,687.4,205.9,78.6,113.6,1 10,-1,1050.9,210.4,94.1,180.4,1 10,-1,1487.2,70,55.4,147.6,1 10,-1,1361.8,567.8,105.6,243.4,1 10,-1,504.8,145.1,105.6,191.3,1 10,-1,704.4,1,56.7,157.6,1 10,-1,377,401.4,85.4,239.6,1 10,-1,1198.5,37.9,75.7,112.4,1 10,-1,796.4,148.8,60.9,175.5,1 10,-1,102.3,547.4,85.3,250.5,1 10,-1,1724.9,459.4,77.1,205,1 10,-1,1802.4,215.4,64.3,183.7,1 10,-1,356,106.4,53.7,176.9,1 10,-1,285.8,120.8,55.3,175.7,1 10,-1,212.9,385.4,67.3,202.7,1 10,-1,219.2,127,47.5,167.1,1 10,-1,415.5,89.7,56,167.4,1 10,-1,878.3,128.1,61,177.4,1 10,-1,1627.9,257.2,61.6,183.4,1 10,-1,460.2,69.9,53.6,175.2,1 10,-1,1039.1,1,45.9,79.9,1 10,-1,1439.5,241.9,52.3,172.4,0.999 10,-1,1405.9,188.6,47.5,179.9,0.99 4,-1,687.6,206.3,78.6,113.8,1 4,-1,704.4,1.1,56,156.1,1 4,-1,1487.1,69.7,55.8,147.9,1 4,-1,1361.5,567.2,106.1,245.2,1 4,-1,1084.3,211.2,75.7,184.6,1 4,-1,286.3,125.3,56.4,169.9,1 4,-1,101.9,545,85.8,255.6,1 4,-1,1731.4,455.9,76.4,214.8,1 4,-1,1794.4,205.2,66.4,185.7,1 4,-1,511.7,144.2,96.7,182.9,1 4,-1,796.3,147.8,61.3,175.2,1 4,-1,220.9,129.6,49,162.1,1 4,-1,872.9,125.8,61.1,176.5,1 4,-1,373,408.3,85.4,240.5,1 4,-1,1197.9,34.9,74.5,118.4,1 4,-1,355.5,104.9,53.5,177.9,1 4,-1,1632.5,259.8,65.2,187.2,1 4,-1,415.8,92.7,55,169.3,1 4,-1,1033.5,136.5,81.1,182.6,1 4,-1,222.1,390.9,65.1,206.2,1 4,-1,465.3,80.6,50.8,168.9,1 4,-1,1446.6,248.6,55,173.3,1 4,-1,1039.2,1,50.6,83.2,0.999 4,-1,259.7,363.8,61.3,225.5,0.978 4,-1,1414.3,196.3,50.2,168.1,0.394 4,-1,915,131.6,43.1,160.8,0.237 4,-1,1007.2,1.8,47.3,77.3,0.069 990,-1,686.5,206.4,80,112.9,1 990,-1,1221.4,31.5,61,117.6,1 990,-1,793.9,141,73.4,170.7,1 990,-1,1795.6,183.8,70.3,180.7,1 990,-1,1192.6,125.3,54.1,166.2,1 990,-1,401.5,270.8,68.8,193.4,1 990,-1,497.2,260,66.2,185.1,1 990,-1,838.3,312.6,70.6,206.7,1 990,-1,1469,166.7,67.4,168.9,1 990,-1,299.2,454.9,87.7,204.4,1 990,-1,1720.7,456.4,79.1,211,1 990,-1,1575.3,590.4,103.3,235.3,1 990,-1,229.7,134.9,55.8,165.5,1 990,-1,330.2,843.1,94.1,237.9,1 990,-1,1672.5,145.3,55,170.2,1 990,-1,290.2,124.7,53,170,1 990,-1,751.4,72.5,55.7,163.4,1 990,-1,543.9,118.9,59.1,168.3,1 990,-1,315.5,270.7,63.1,196.2,1 990,-1,919.3,301,72.8,212.2,1 990,-1,1188.2,663.5,90.1,265.9,1 990,-1,389.7,441.5,65.9,222.7,1 990,-1,1739.3,673.4,94.4,250.5,1 990,-1,501.7,74.5,52.3,155.2,1 990,-1,446.3,65,57.2,178.5,1 990,-1,314,1.7,44.8,129.6,1 990,-1,1444,1,56.6,86.6,0.999 990,-1,383.7,1,50.9,136.6,0.998 990,-1,380.8,166.4,63.7,190.8,0.998 990,-1,1382.2,4.2,43.8,84.9,0.852 677,-1,1221.2,29.5,61.9,122.1,1 677,-1,687.6,206.7,78.5,113.9,1 677,-1,1481.1,5.3,60.8,144.6,1 677,-1,1710.2,456.1,97.4,210.1,1 677,-1,483.3,129.7,46.2,172.3,1 677,-1,1095.1,1,65.4,103.3,1 677,-1,801.4,145,63.9,172.9,1 677,-1,563.7,111.3,50,177.9,1 677,-1,360.3,115.3,50.8,167.9,1 677,-1,380.5,528.8,103.3,253.8,1 677,-1,315.3,355.4,68.8,211.3,1 677,-1,1575.3,590.3,97.1,235,1 677,-1,1492.9,159.3,51.5,176,1 677,-1,1622,153,74.3,191.8,1 677,-1,416.7,139.2,71.4,162.2,1 677,-1,750.1,79.8,49.5,157,1 677,-1,405.6,7,57.3,161.3,1 677,-1,1380.8,863.7,99.8,217.3,1 677,-1,1297.9,882.6,84.4,198.4,1 677,-1,286.4,223.8,56.3,177,1 677,-1,232,212.2,63.4,195.9,1 677,-1,299.1,1,53.5,134.8,1 677,-1,350.7,9.6,54.2,150.8,0.983 677,-1,843,924.1,68.9,156.9,0.499 517,-1,1221.3,30.4,62,119.3,1 517,-1,1490.5,1,59.7,139.4,1 517,-1,687.5,206.7,78.4,114.5,1 517,-1,994.4,1,56.3,121.7,1 517,-1,161.8,326.1,65.9,189.5,1 517,-1,393.2,184.6,61.6,187.5,1 517,-1,788.9,144.1,56.2,174.6,1 517,-1,1673,22.5,54.4,165.8,1 517,-1,882.7,1.9,54.3,119.9,1 517,-1,1718.7,460.2,81.4,203.6,1 517,-1,1564,600.6,67.1,236.3,1 517,-1,1613.5,13.2,54.8,177.2,1 517,-1,459.2,135,70.7,185.9,1 517,-1,827.5,608.3,73.5,256.8,1 517,-1,1603.8,300.3,65,199.5,1 517,-1,930,2.3,57.8,117.7,1 517,-1,343.8,170.6,49.9,166.6,1 517,-1,289.4,120.9,54.2,177.2,1 517,-1,1731.2,627.1,71.2,220.1,1 517,-1,947.6,709.6,122.1,263,1 517,-1,1852.6,214.5,68.4,186.7,1 517,-1,1706.9,321.5,94.3,199.9,1 517,-1,732.2,92.5,65.2,167.4,1 517,-1,217.5,136.9,63.3,159.8,1 517,-1,516.8,95.2,57.1,179.7,1 517,-1,196.6,772.8,93.4,273.8,1 517,-1,1758.9,206.2,58.1,167.1,1 517,-1,451.6,3.3,76.2,181.4,1 517,-1,275,801,81.3,273.8,1 517,-1,397.9,26.5,47.3,157.3,0.998 517,-1,572.5,68.1,43.6,155.1,0.983 517,-1,1039.2,728.5,66.4,231.6,0.115 517,-1,1045.6,931,74,150,0.052 969,-1,686.2,206.3,79.9,112.9,1 969,-1,1221.4,30.9,61.7,119.9,1 969,-1,793.6,140.2,73.9,172.2,1 969,-1,1155.6,100.2,64.8,166.5,1 969,-1,1471.2,151,65.7,165.5,1 969,-1,1771.2,154.8,68.1,187.7,1 969,-1,1649.9,124,58.8,172.3,1 969,-1,415.8,248.6,71,192.3,1 969,-1,1574.7,589,103.7,236.1,1 969,-1,927.8,325.6,71.3,214.6,1 969,-1,1719.6,455.4,79.4,210.4,1 969,-1,491.2,235.4,65.3,183.3,1 969,-1,331,802.1,90.8,273.3,1 969,-1,751.6,72.6,56.1,162.3,1 969,-1,549.8,119.9,53.5,168.5,1 969,-1,445.3,69.5,55.5,180.9,1 969,-1,230.1,138.4,55.3,161.5,1 969,-1,309.4,430,86.3,198.6,1 969,-1,329.9,246.1,65.3,198.5,1 969,-1,847.7,339.6,64.5,210.3,1 969,-1,1454.7,1,64.3,101.9,1 969,-1,1400.1,1.6,46.9,101.8,1 969,-1,1211.8,709.4,92.5,269.6,1 969,-1,389.7,412.5,67.4,218.1,1 969,-1,1738.6,672.9,97.9,253,1 969,-1,290.3,126.4,54.2,169.9,1 969,-1,312.7,1.2,48.3,129.3,1 969,-1,485.8,53.6,53.6,158.4,0.999 969,-1,381.5,1.1,54,128.4,0.998 969,-1,327.1,161.4,65.5,159.3,0.062 292,-1,1221.5,31.7,62.1,119.9,1 292,-1,686.4,206.7,79.3,113.7,1 292,-1,1672.6,35.5,56.8,156.6,1 292,-1,1466.2,22.6,54.7,148.3,1 292,-1,352.6,108.4,55.1,180.1,1 292,-1,796.4,146,59.9,177.2,1 292,-1,938.6,72.6,64.2,175.5,1 292,-1,1719.6,458.9,79.7,209.2,1 292,-1,108.1,351.8,52.3,188.4,1 292,-1,236.2,407.6,60.5,193.1,1 292,-1,286.5,129.7,53.4,172.7,1 292,-1,454.2,138.6,75.4,200,1 292,-1,1088.2,90.8,52.3,162.5,1 292,-1,233.9,579.7,95.3,256.7,1 292,-1,704.3,1.2,54.1,156.4,1 292,-1,404.5,22.1,56,169.1,1 292,-1,1016.8,93.9,58.7,180,1 292,-1,294.4,830.5,100.6,250.5,1 292,-1,385.7,434.2,84.9,228.8,1 292,-1,1456,584.4,94.2,248,1 292,-1,816.9,388.3,91.5,219.8,1 292,-1,221.7,130.8,55.2,164.7,1 292,-1,746.7,105.7,47.8,168.8,1 292,-1,515.5,105.4,49.7,179.4,1 292,-1,541.5,430.1,67.3,215.2,1 292,-1,884.6,404.7,80.9,194.4,1 292,-1,463.2,415.9,62.9,233.2,0.999 292,-1,825.2,105.6,62.7,160.1,0.998 292,-1,940.8,921,78.8,160,0.995 555,-1,1221.1,30.1,62.9,120.8,1 555,-1,687.1,205.9,78.9,114.8,1 555,-1,1489.9,4,59,145.1,1 555,-1,535.1,111.3,61.8,175.3,1 555,-1,786.8,144.3,66.1,176.7,1 555,-1,379,221.2,64,192.4,1 555,-1,1662.6,279.6,84,199,1 555,-1,1801.4,234.4,73.2,182.8,1 555,-1,1717.5,455.7,83.3,209,1 555,-1,1588.4,3.7,55.3,145.1,1 555,-1,194.8,296.9,63.6,193.9,1 555,-1,288.5,122.4,53.8,173.6,1 555,-1,873.9,1,52.8,110.2,1 555,-1,1658.7,1,55.7,150.4,1 555,-1,755.9,593.1,93.3,260.2,1 555,-1,140,268.7,54.6,212.6,1 555,-1,987,1.7,52.5,95.8,1 555,-1,219.5,138,57.3,157.4,1 555,-1,1596,585.8,70.5,242.4,1 555,-1,245.6,882.9,83.8,198.1,1 555,-1,753.6,83.2,48,154,1 555,-1,457.7,91.3,65.8,186.7,1 555,-1,359.2,110.5,53.8,170.4,1 555,-1,420.6,142,49.1,159,1 555,-1,1012.1,779.4,124.7,258.9,0.993 555,-1,1092.8,794.9,82.7,244.8,0.975 555,-1,929.4,1.6,58.1,95.5,0.919 555,-1,1025.5,947,76.8,134,0.186 199,-1,1221.3,30.4,61.8,120.4,1 199,-1,687.5,207.1,78.1,113.2,1 199,-1,401.4,609.3,94.5,247.6,1 199,-1,211.6,127.6,55.9,167.5,1 199,-1,1490,68.4,54.9,150.5,1 199,-1,58.4,640.5,116.9,245.1,1 199,-1,108.6,347.6,50.8,190.1,1 199,-1,704.6,1,56.1,159.2,1 199,-1,524.5,135.3,62.5,162.9,1 199,-1,1719.9,457.7,79,210,1 199,-1,1357.7,567.5,104.6,245.9,1 199,-1,289.2,126.8,55,172.6,1 199,-1,355.8,105.4,54.3,180,1 199,-1,421.5,212.6,76.4,215.4,1 199,-1,796.5,151.3,59,172,1 199,-1,512.4,308.4,77.7,219,1 199,-1,883.8,158.1,75,186.4,1 199,-1,229.9,542,62.8,215.8,1 199,-1,391.3,40,63.1,169.2,1 199,-1,1047.9,139.1,49.3,158.8,1 199,-1,800.8,307.5,73,186,1 199,-1,1159,144.1,62.3,185,1 199,-1,1212.3,143,56.9,173.7,1 199,-1,751.8,292,70.1,208,1 199,-1,967.8,917.4,73.9,163.6,0.97 460,-1,1222.4,31.1,61.4,118.4,1 460,-1,448.1,195.2,69,197,1 460,-1,936.6,1,58.2,149.1,1 460,-1,686.6,205.8,79.7,114.2,1 460,-1,1008.5,2.9,54.2,156.2,1 460,-1,1735.3,163.4,58.4,165.3,1 460,-1,1704.9,459.5,94.6,207.3,1 460,-1,870.4,1,56.6,135.4,1 460,-1,360.5,107.6,52.8,179.5,1 460,-1,271,216.5,49.5,172.6,1 460,-1,242.8,669.7,98.2,265.5,1 460,-1,1507.4,1.3,57.1,110.8,1 460,-1,1827.9,380.5,77.3,203.8,1 460,-1,521.5,75.2,56.2,172.5,1 460,-1,1544.2,612,77,242.2,1 460,-1,115.1,348.2,56.2,190.4,1 460,-1,339.3,702.5,73.9,249.1,1 460,-1,803.3,150.6,46.3,172.9,1 460,-1,1656.9,358.2,63.4,192.5,1 460,-1,1451.4,548.7,78.4,220,1 460,-1,1685.2,55.8,66.3,177.8,1 460,-1,218.1,138.7,62.8,158.7,1 460,-1,804.5,580.7,85.6,251.1,1 460,-1,284.8,124.5,55.1,172.3,1 460,-1,753,94,53.7,147.8,1 460,-1,889.1,605,117.2,246.5,1 460,-1,418.3,2.1,44.8,159.3,0.999 460,-1,978.2,624.9,89.4,227,0.999 460,-1,1027.7,921.8,83.7,159.2,0.996 460,-1,442,44.3,71.7,187.6,0.996 460,-1,713.8,94.7,51.6,163,0.982 460,-1,430.4,146.3,50.7,150.1,0.26 261,-1,1221.3,31.7,62.1,117.9,1 261,-1,1626.8,16.2,62,144.8,1 261,-1,687.3,205.3,78.6,114.7,1 261,-1,385.5,495.9,86.3,224.6,1 261,-1,287.2,130.2,56.3,169,1 261,-1,1479.7,49.6,53.7,150,1 261,-1,453.4,156.8,75.5,215.5,1 261,-1,356.1,107.7,53.2,177.7,1 261,-1,797.2,154.2,59.4,172.5,1 261,-1,1721,457.8,78.2,210.7,1 261,-1,1058.1,108.2,61.1,186.1,1 261,-1,108.1,350,51.9,192.7,1 261,-1,704.3,1.2,54.9,156.8,1 261,-1,214.9,129.1,55,163.1,1 261,-1,937.9,100.9,72.2,177.6,1 261,-1,1398.8,564.3,101.7,248.1,1 261,-1,1136.5,100,52.2,166.2,1 261,-1,243.3,756.1,88.7,273,1 261,-1,881.7,110.9,49.2,155.3,1 261,-1,686.3,315.7,54.7,178.8,1 261,-1,373.3,3.9,57.8,163.7,1 261,-1,488.1,375.4,70.4,227.7,1 261,-1,228.5,449.1,61.1,201.3,1 261,-1,797.2,347.8,88.4,213.8,1 261,-1,867.6,360.8,79.9,195.3,1 261,-1,153.5,567.3,83.6,250.3,1 261,-1,513.7,118.5,55.7,174.2,1 261,-1,573.6,388.7,65.2,209,1 261,-1,758.5,102.4,49.6,170.2,0.999 261,-1,936.8,916.6,82.1,164.4,0.993 599,-1,1221.5,30.9,61.4,119.2,1 599,-1,686.9,205.7,79.5,113.4,1 599,-1,1481.2,3.6,61.5,145,1 599,-1,801.1,143.2,64.1,174.8,1 599,-1,368.2,268.5,63.3,198.6,1 599,-1,1714.7,454.6,86.3,212.7,1 599,-1,1652.8,227,72.8,203.1,1 599,-1,1630,1,53.5,115,1 599,-1,562.4,111,50.4,179.7,1 599,-1,234.1,267.2,62,184.9,1 599,-1,360,108.7,52.7,177.8,1 599,-1,164.6,246.2,62.1,207.8,1 599,-1,1574.3,589.6,97.5,234.4,1 599,-1,431.2,72.9,46.7,168.7,1 599,-1,286.9,126.1,52.4,170.7,1 599,-1,482.5,100.9,49.3,160.3,1 599,-1,216.3,138.2,55.1,157.2,1 599,-1,752.4,79.9,44.4,154.4,1 599,-1,1072.4,864.5,125.8,216.5,1 599,-1,1874.8,277.3,46.2,182.1,0.798 599,-1,393.7,96.9,35.6,145.5,0.725 599,-1,1159,881.3,89.1,199.7,0.361 599,-1,307.1,909.1,117.2,171.9,0.062 243,-1,1221.1,31,63.7,118.8,1 243,-1,686.5,207.1,79.6,111.5,1 243,-1,796.8,151.3,60,175.7,1 243,-1,1594.1,1.8,57.5,146.7,1 243,-1,1483,59.6,53.2,150.1,1 243,-1,109.5,349.8,49.9,192.7,1 243,-1,1161.9,117.9,52.8,162.3,1 243,-1,928.8,120.3,70.6,184.2,1 243,-1,1364.3,566.9,109.7,245.3,1 243,-1,288.5,128.4,55.8,171.8,1 243,-1,446.9,176.2,74.7,208.6,1 243,-1,212.3,125.1,55.6,170.5,1 243,-1,1720.2,457.3,79.1,211,1 243,-1,704.7,1,54.3,158.8,1 243,-1,390.2,522.4,86.5,238.2,1 243,-1,355.4,105.5,54.5,178.5,1 243,-1,1082.7,120.4,59.3,181.1,1 243,-1,221.8,474.3,62.4,206.1,1 243,-1,495.6,361.8,71.7,219,1 243,-1,197.9,720.2,88.1,254.7,1 243,-1,846.6,343.2,79.1,192.2,1 243,-1,516.6,116.9,51.7,183.8,1 243,-1,787.7,334.4,82.2,204.7,1 243,-1,589.2,366,63.1,198.4,1 243,-1,112.7,563.6,85.6,242.6,1 243,-1,931.4,897.4,70.9,183.6,0.996 243,-1,157.1,658,60.2,191.1,0.345 243,-1,773.3,110,46.4,163,0.155 445,-1,1221.2,30.6,62.7,118.8,1 445,-1,936.5,1,60,159.6,1 445,-1,1006.6,11.8,55.1,159.2,1 445,-1,687.2,206,78.4,113.3,1 445,-1,359,106.8,53.7,179.8,1 445,-1,450.1,215.7,73.3,197.9,1 445,-1,1367.5,536.9,79.3,207,1 445,-1,1717.8,454.4,81.2,214.9,1 445,-1,113.1,348.7,53.5,191.5,1 445,-1,286.2,125.3,54,171.3,1 445,-1,1747.3,151.6,68.6,172.3,1 445,-1,858.2,1.7,51.4,138,1 445,-1,799.7,151.8,50.9,171.3,1 445,-1,246.4,232,50.1,182.1,1 445,-1,1560.2,612.3,74.4,241.5,1 445,-1,359.6,674.8,74.9,242.1,1 445,-1,262.8,642.5,90.8,260.2,1 445,-1,880.7,585.6,118.5,243.2,1 445,-1,1672.2,366.5,69.6,194.8,1 445,-1,779.6,572.7,78,250.4,1 445,-1,1845,393.5,76,208.2,1 445,-1,528.3,71.1,54.3,168.9,1 445,-1,221.4,137.7,56.2,155.6,1 445,-1,422.8,1,44.1,137.6,1 445,-1,428.6,119.7,60.2,171,1 445,-1,729.5,1.2,48.4,94.2,0.999 445,-1,1701.3,104.2,71.6,171.5,0.999 445,-1,361.4,3.6,61.7,133,0.999 445,-1,963.4,600.7,84.3,223.2,0.999 445,-1,754.1,87.8,47.9,152.1,0.997 445,-1,711.5,89.1,58.5,173.4,0.996 445,-1,1016.3,921.4,85.7,159.6,0.984 445,-1,451.9,39.4,65.7,206.3,0.116 836,-1,1220.8,29.6,63,118.3,1 836,-1,687.4,206,78.3,113.6,1 836,-1,791.8,136.3,72.9,178.9,1 836,-1,1642.5,10.3,58.3,162,1 836,-1,559.3,114.8,59.8,177,1 836,-1,271.3,580.7,81.9,242.8,1 836,-1,1575.4,590.3,101.8,233.1,1 836,-1,1472.7,52.3,61.3,159.5,1 836,-1,1721.7,453,77.3,214.3,1 836,-1,752.8,70,57,164,1 836,-1,476.1,128.6,59.2,179.2,1 836,-1,437.9,262.6,55,205.7,1 836,-1,239.9,133.3,51.2,164.8,1 836,-1,358.5,276.1,82.5,182.1,1 836,-1,294.3,162,70.2,197.1,1 836,-1,1419.7,36.7,52.1,157,1 836,-1,949,553.2,71.1,229.4,1 836,-1,1032.8,524.3,79.5,241.7,1 836,-1,253.8,1.2,54.9,123.2,1 836,-1,418.5,124,57.7,178.6,1 836,-1,1067,3.2,60.3,93.5,0.999 276,-1,1221.4,31.7,62.6,118.1,1 276,-1,687.6,207.2,77.8,110.9,1 276,-1,391.3,16.7,58.5,157.3,1 276,-1,389.5,466.7,84.8,227.1,1 276,-1,1644.3,22.5,56.8,155.6,1 276,-1,1032.7,102.7,65,185.7,1 276,-1,289.7,129,55,171.6,1 276,-1,355.2,106.8,52.6,178.4,1 276,-1,455.7,149.5,74,204.3,1 276,-1,1471.6,37.6,54.5,148.6,1 276,-1,1719.8,456.8,79.5,212.2,1 276,-1,108,348.8,51.1,190.2,1 276,-1,704.1,1.5,54.7,157.9,1 276,-1,795.9,149.8,60.3,170.6,1 276,-1,942.8,84.1,66.7,180.5,1 276,-1,220.5,130.7,53.2,161.2,1 276,-1,1109.9,95.9,54.1,167.2,1 276,-1,191.2,574.8,93.3,250.3,1 276,-1,731.2,336.3,67.6,185.9,1 276,-1,265.8,791.7,91.3,261.8,1 276,-1,232.3,429.9,59.9,195.7,1 276,-1,809.6,370.7,88,213,1 276,-1,1425.1,575.5,96.4,246.6,1 276,-1,559.9,407.8,67.6,209.1,1 276,-1,751.5,102.6,46.9,171.2,1 276,-1,878.5,384.6,77.3,192.8,1 276,-1,857.8,111.9,42.5,156.6,1 276,-1,513.4,113.1,51.1,176.7,1 276,-1,471.8,402.1,69.5,220.8,0.999 276,-1,944.1,918.8,86.1,162.2,0.915 439,-1,1221.5,29.7,61.9,119.2,1 439,-1,937.3,3.1,62.1,162.5,1 439,-1,1008.3,17,54.7,155.5,1 439,-1,359.2,109,53.5,178.2,1 439,-1,686.8,206.4,78.4,112.6,1 439,-1,111.2,349,54.7,190.9,1 439,-1,849.9,1.5,53.7,136.5,1 439,-1,449.4,224.5,76.2,200.1,1 439,-1,1346.5,531.9,65.2,198.3,1 439,-1,1718.7,456.9,79.3,211.7,1 439,-1,233.8,241.4,53.9,176.2,1 439,-1,285.4,130.5,54.6,166.9,1 439,-1,1750.5,147.8,68.5,170.2,1 439,-1,272.1,630.9,92.2,261,1 439,-1,798.3,150.8,52.9,172.2,1 439,-1,763.1,567,83,251.7,1 439,-1,366,661.8,75.9,239.2,1 439,-1,878.1,573.2,111.5,242.8,1 439,-1,1564,613.6,80.1,244,1 439,-1,1846.4,407.3,74.6,196.3,1 439,-1,531.9,70.6,56.1,172.1,1 439,-1,432.5,116.5,56.9,169.3,1 439,-1,1691.3,91.6,72,172.3,1 439,-1,423.1,1,43.6,131.7,1 439,-1,363.1,2.1,61.1,129.3,1 439,-1,220.1,138.1,60.6,151.8,1 439,-1,725.3,1,50.3,103.4,1 439,-1,959.4,594.2,82,220.9,0.999 439,-1,711.4,85.1,61.3,182,0.999 439,-1,1682.5,377,72.7,198.3,0.999 439,-1,756.7,84.6,44.9,159,0.991 439,-1,1004.6,925.3,86.3,155.7,0.981 926,-1,1221.4,30.2,61.7,118.9,1 926,-1,686.5,206.2,79.5,113,1 926,-1,793.2,141.1,74.6,171,1 926,-1,1277.8,828.4,97.2,252.6,1 926,-1,453.6,209.8,69.6,191.9,1 926,-1,1574.1,588.7,104.4,236.1,1 926,-1,556.8,116.8,58.6,173,1 926,-1,1126.5,47.4,55.1,163.3,1 926,-1,1618,77.8,52.9,166,1 926,-1,1476.3,116.6,60.4,161.5,1 926,-1,1488.7,1,62,126,1 926,-1,750.2,72.8,56.5,160.5,1 926,-1,1720.9,452.5,78.8,214.3,1 926,-1,301.4,162,69.3,199.9,1 926,-1,1428.3,1.3,48.4,127.7,1 926,-1,945.4,393.3,82.2,223.9,1 926,-1,312,722.2,85.6,257.1,1 926,-1,239.8,131.4,55,167.9,1 926,-1,471.4,20.8,54.2,156.2,1 926,-1,403.3,366.1,61.7,208.8,1 926,-1,863.2,410,64.3,215.8,1 926,-1,328.8,374.6,79.1,191.6,1 926,-1,1732,108.1,53.2,175.2,1 926,-1,1749.2,678,92.1,243.8,1 926,-1,253.9,1.2,55,121,1 926,-1,370.1,208.3,60.2,183.9,1 926,-1,425.7,66.8,62.7,179,1 926,-1,313.9,2.2,47.3,127.5,0.999 764,-1,1221.7,29.3,62,119.1,1 764,-1,687.4,205.6,78.5,114,1 764,-1,544.2,114.6,65.9,176.5,1 764,-1,782.6,135.2,63.1,176,1 764,-1,1720.8,452.2,79.1,214,1 764,-1,1575,589.5,99.5,234.8,1 764,-1,302.3,470,77.3,226.6,1 764,-1,1456.8,82.6,53.6,168.5,1 764,-1,272,178.6,56,195.8,1 764,-1,455.9,193.1,54.4,189.4,1 764,-1,329.8,193.7,56.3,178.8,1 764,-1,398.9,209.3,66.5,176.9,1 764,-1,1577.2,83.4,64.8,178.3,1 764,-1,1494.1,17.9,59.8,145.9,1 764,-1,459.2,64.2,58.2,170.4,1 764,-1,752.2,78.8,50,155.5,1 764,-1,256.6,1.4,50.9,122.1,1 764,-1,1081,678.7,81.4,257.4,1 764,-1,517.9,565.6,81.8,252.9,1 764,-1,235.3,135.7,49.2,163.6,1 764,-1,1146,659.7,95.6,264.9,1 764,-1,403.5,67.3,56.3,166.3,1 764,-1,359.9,110.9,52.1,170.8,0.999 934,-1,1221.3,29.7,61.9,119.4,1 934,-1,686.4,206,80.1,113.5,1 934,-1,793.2,140.2,76,173.5,1 934,-1,447.5,216.1,69.6,190.9,1 934,-1,1485.9,1,60.4,123.3,1 934,-1,555.9,116.3,57.9,172.6,1 934,-1,1129,53.5,59,167.8,1 934,-1,1478,121.1,59.7,160.8,1 934,-1,1575.6,591.7,102.5,236.3,1 934,-1,1620.5,83.1,57.2,168.4,1 934,-1,1721.1,453.2,78.3,215.2,1 934,-1,1423.5,3.1,45.2,123.5,1 934,-1,238.2,134,57.4,167.8,1 934,-1,750.2,72.4,56.9,161.9,1 934,-1,1265.8,799.1,99.7,278.3,1 934,-1,473.9,23.5,55.6,151.5,1 934,-1,946.2,377.2,74.4,218.6,1 934,-1,317.6,733.9,93.5,266.5,1 934,-1,329.6,390.8,79.6,187.7,1 934,-1,860.2,395.2,64,210.7,1 934,-1,1736.4,113.6,56.9,176.1,1 934,-1,1747.6,676.2,91.5,247,1 934,-1,302.8,161.2,67.5,199.8,1 934,-1,399.8,372,63.3,208.7,1 934,-1,363.2,218.3,62.3,184.8,1 934,-1,429.8,68.7,58.6,180.1,1 934,-1,254.7,1,53.1,120.2,1 934,-1,315.4,4.9,40.8,120.7,0.11 568,-1,1221.3,30.2,61.7,119.5,1 568,-1,687.2,205.8,79.5,115,1 568,-1,1481.9,4.1,59.6,146.2,1 568,-1,379.1,234.5,65.7,196,1 568,-1,1825.4,251.5,70.9,175.4,1 568,-1,1664.9,265.7,68.8,201,1 568,-1,791.3,147,70.1,173.2,1 568,-1,549.5,119.4,51.9,165.8,1 568,-1,1714.8,453.6,85.6,212.8,1 568,-1,1651.7,1,56.7,142.5,1 568,-1,872.6,1,52,105.5,1 568,-1,217.6,136.7,57.5,165.6,1 568,-1,1574.6,2.8,54.9,134.9,1 568,-1,288.1,122.5,52.6,171.7,1 568,-1,204.8,286.3,63.6,192.2,1 568,-1,1590.1,591.5,78.2,234.4,1 568,-1,755,79.6,44.7,155.4,1 568,-1,441.8,135.1,53.2,157.4,1 568,-1,146.6,257.2,59.7,212.6,1 568,-1,466.7,80.5,64.6,175.4,1 568,-1,1018.4,802.7,131.2,274.6,1 568,-1,359.1,110.2,53.3,177.5,1 568,-1,727,586.2,88.9,250.1,1 568,-1,249,912.4,82,168.6,0.998 568,-1,420.6,50.5,46.5,176.3,0.997 568,-1,1108.4,822.2,88.3,234.4,0.487 568,-1,983,1.8,52,80.9,0.433 568,-1,1014,930.8,76.8,150.2,0.135 130,-1,1221.4,30.5,62.4,118,1 130,-1,356.3,103.9,56.1,180.9,1 130,-1,1488.1,68.8,55.7,149.9,1 130,-1,398.2,761.8,93.4,267,1 130,-1,703.9,1,56.2,158.4,1 130,-1,287.9,127.2,55.4,168.4,1 130,-1,108,349.5,50.2,187.1,1 130,-1,1722.4,455.7,75.9,211.6,1 130,-1,424.5,276.6,75,222.8,1 130,-1,687.8,206.1,77.9,114.2,1 130,-1,1358.8,566.8,104.4,245.3,1 130,-1,900.1,210.9,73.8,193,1 130,-1,538.1,65.6,50.5,165.6,1 130,-1,1092,138.7,56.5,180.4,1 130,-1,1211.3,174.9,44.8,163.9,1 130,-1,218.8,127.7,50.6,164,1 130,-1,1333.5,181.4,54.8,181.8,1 130,-1,525.8,248.6,68.5,207,1 130,-1,477.4,171.3,57.3,173,1 130,-1,115.7,649.6,60.3,213,1 130,-1,378.9,1,46.9,142,1 130,-1,479.1,44.2,55.1,159.8,1 130,-1,779,223.9,63.5,188.2,1 130,-1,447.7,1,51.3,144,0.999 130,-1,825.9,235.3,52,173.1,0.999 130,-1,1080.5,924.8,85.7,156.2,0.938 130,-1,578.4,255.5,46.1,171,0.502 1016,-1,1221.9,30,61.2,116.9,1 1016,-1,686.4,206.5,80.1,113,1 1016,-1,793.2,141,74.5,171.4,1 1016,-1,383,297.6,75.7,193.8,1 1016,-1,1232.5,159,60.4,168.3,1 1016,-1,496,287.7,65.6,186.4,1 1016,-1,289.6,126.4,53.3,171.2,1 1016,-1,842.4,279.5,67.8,195.4,1 1016,-1,300.3,297.8,63.4,200.7,1 1016,-1,537.9,121.2,62.6,171.2,1 1016,-1,231.9,141,54.3,161.9,1 1016,-1,926.7,268.7,68.5,204.4,1 1016,-1,1574.3,589.8,103.7,236.6,1 1016,-1,1831.1,219.3,60.1,188.5,1 1016,-1,1468.6,186.1,65,163.7,1 1016,-1,293.4,492.2,88.8,209.7,1 1016,-1,750.8,72.6,54.7,163.2,1 1016,-1,1721.1,456.7,78.2,208.1,1 1016,-1,1156.8,609.6,87.8,250.1,1 1016,-1,1695.4,178.5,55.1,169.2,1 1016,-1,1719.5,683.1,100.6,234,1 1016,-1,380.6,475.5,64.3,224.7,1 1016,-1,438.8,166.3,71.7,194.2,1 1016,-1,314.8,1.9,37.6,131.7,1 1016,-1,585.3,553.6,84,241.9,1 1016,-1,394.7,167.2,52.5,170.9,0.997 1016,-1,357.2,903.4,96.6,177.6,0.996 1016,-1,502.9,116,51.2,135.3,0.934 1016,-1,433.9,79.1,63.7,173.1,0.109 1016,-1,385.5,1.8,59.2,161.6,0.077 706,-1,1221.2,30,62.4,118.3,1 706,-1,687.2,206.2,79.3,113.9,1 706,-1,1481.9,5.9,57.9,147.8,1 706,-1,561.6,109.7,54,179.1,1 706,-1,411.3,156.9,78,165.1,1 706,-1,1711.5,455.9,95.4,209.2,1 706,-1,1574,588,98.7,235.2,1 706,-1,1602.6,135.5,67.2,183.8,1 706,-1,295,385.8,75.2,219,1 706,-1,1475.2,128.2,51.2,174.2,1 706,-1,483.4,144.1,49.2,179.8,1 706,-1,473.2,23.9,44.4,138.1,1 706,-1,749.6,79.9,50.7,155.4,1 706,-1,801.1,139.1,47.7,175,1 706,-1,387.4,545.1,68.5,244,1 706,-1,1213.4,816.8,92.1,257.7,1 706,-1,1004.3,1,66.4,89.7,1 706,-1,359.6,108.7,50.3,173.7,1 706,-1,1302.4,785,86.8,276.8,1 706,-1,257.7,197.3,58.6,196,1 706,-1,410.6,28.8,59.7,162.2,1 706,-1,306.4,208.6,58.1,179.8,1 706,-1,228.9,133.2,51.7,165.1,0.999 706,-1,847.8,934.5,72.5,146.5,0.285 588,-1,1222,31.4,60.9,119,1 588,-1,687.3,206.1,78.7,113.5,1 588,-1,1481.6,4.7,60.1,144.2,1 588,-1,800.5,145.9,65.2,172.2,1 588,-1,1652.2,242.5,78.2,200.4,1 588,-1,1642,1,55.3,122.3,1 588,-1,560.9,113,49.7,176.7,1 588,-1,223.1,277.2,64.5,187,1 588,-1,374,258.3,64.6,197.4,1 588,-1,358.1,113,53.3,173.8,1 588,-1,287.7,126.9,52.3,168.9,1 588,-1,214.6,133,54,165.3,1 588,-1,1720.2,455.6,81.6,211.9,1 588,-1,1575.3,588.3,93.4,235.9,1 588,-1,160.6,252.9,60.4,206,1 588,-1,754.4,81.2,42.7,153.3,1 588,-1,469.6,111.6,50.2,163.4,1 588,-1,873,3,50.2,97.7,1 588,-1,428.4,67,45.6,172.3,1 588,-1,1854.8,266.7,66.2,179,1 588,-1,1060.3,844.1,123.7,236.9,1 588,-1,1147.8,850,91.2,231,0.575 341,-1,1221.5,30.8,62.3,119.7,1 341,-1,687.5,205.8,77.9,114.2,1 341,-1,1446.7,1,57.5,125.7,1 341,-1,1730.4,70.3,55.5,161.8,1 341,-1,1597.7,1,55.3,131.9,1 341,-1,446.6,104.2,72.8,196.2,1 341,-1,421.4,577.6,106.3,251.5,1 341,-1,1829.4,497.9,68.8,203.9,1 341,-1,287,130.9,53.7,173.1,1 341,-1,1720.1,457,79.5,214,1 341,-1,108.2,349.9,52.2,189.4,1 341,-1,974,405.1,65.4,191.9,1 341,-1,797.1,155.3,57.7,169.3,1 341,-1,364.3,104.9,57.4,181.5,1 341,-1,974.2,63.5,64.8,176.9,1 341,-1,520.1,100.8,40.6,167.6,1 341,-1,1545.2,615.7,84.7,243.5,1 341,-1,211,140.5,55.6,162.4,1 341,-1,1036.6,69.3,53.2,163.9,1 341,-1,928,21.9,61.5,164.6,1 341,-1,843,450.2,83.4,224.2,1 341,-1,231.4,341.5,56.9,185,1 341,-1,902.4,460.2,64.8,207.1,1 341,-1,426.2,359.9,84.3,215.4,1 341,-1,502.1,497.8,67.5,219.1,0.999 341,-1,714.7,96.8,57.2,168.7,0.999 341,-1,772.8,96.7,40.1,157,0.998 341,-1,944.8,919.9,74.9,161.1,0.97 341,-1,421.9,54.2,53.7,161.6,0.72 341,-1,405.3,455.8,81.9,294.1,0.073 629,-1,686.8,206,79.4,113.7,1 629,-1,1221.5,29.8,62.7,118.8,1 629,-1,1480,5.8,61.1,143.5,1 629,-1,800.8,144.6,65.7,171.9,1 629,-1,343.2,296.4,68.5,203.7,1 629,-1,1712.4,453.6,92.6,210.9,1 629,-1,1573.9,588.3,98.4,236.4,1 629,-1,358.4,111.8,52.3,172.9,1 629,-1,548,111.7,61.3,175.5,1 629,-1,513.3,540.5,107,241.8,1 629,-1,1624.7,198.8,75.1,197.1,1 629,-1,286.6,123.8,53.4,169.7,1 629,-1,188.1,233.3,70.5,203.5,1 629,-1,501.4,78.3,47.4,151.1,1 629,-1,754,79.9,45.1,154,1 629,-1,252,248.2,61.2,185.4,1 629,-1,414.5,105.2,53.4,156,1 629,-1,352.2,1.1,54.7,124.4,1 629,-1,419.8,1,59.3,126.6,1 629,-1,235,133.5,48,160.7,0.999 629,-1,449.6,84.5,49.9,173.2,0.999 629,-1,1584.7,1,57.1,91.2,0.993 629,-1,1110.1,922.5,106.9,158.5,0.98 629,-1,1192.9,935.6,82.6,145.4,0.075 543,-1,1221.5,30.6,62.6,119.8,1 543,-1,687,206,78.8,114.2,1 543,-1,1489.4,3,58.5,142.5,1 543,-1,781.5,145.9,65.9,171.2,1 543,-1,387.2,209.5,61.8,192.6,1 543,-1,1676.2,287.3,79.3,205.6,1 543,-1,991.3,1.2,52.3,105.4,1 543,-1,877.6,1,52.2,111.3,1 543,-1,1716.7,457.6,83,210,1 543,-1,1659.9,2.4,54.1,160.3,1 543,-1,289.7,124.4,52.4,171.5,1 543,-1,177.1,307.4,66.3,192.4,1 543,-1,1780.7,227.1,68,177.7,1 543,-1,525,106.6,60.6,176.7,1 543,-1,786.7,597.3,85.4,257.6,1 543,-1,454.4,105.7,70.5,185.2,1 543,-1,1597.5,1,53.8,155.2,1 543,-1,1590.8,583.9,69.9,240.5,1 543,-1,218.3,135.4,58.9,157.7,1 543,-1,928.9,1,55.7,103.5,1 543,-1,359.7,112.7,53,171.6,1 543,-1,258.1,852.5,79.9,228.5,0.999 543,-1,409,42.7,47.9,168,0.999 543,-1,204.9,813.9,93.2,267.1,0.998 543,-1,130.9,272.4,52.9,215.3,0.998 543,-1,1064.1,769.3,90.3,248,0.988 543,-1,756.6,84.7,45.1,154.9,0.984 543,-1,986.4,760.5,115.1,253.2,0.947 739,-1,1221.4,30.3,62.5,118.4,1 739,-1,686.6,205.7,79.2,114.3,1 739,-1,1482,8.5,60.5,145,1 739,-1,256.1,187,59.2,197.7,1 739,-1,550.7,114.9,60.3,175.9,1 739,-1,1465.3,108,52.7,166.7,1 739,-1,781.6,137.5,54.1,177,1 739,-1,296.3,427.7,77.4,223.7,1 739,-1,476.3,170.9,48.6,185.9,1 739,-1,1575.3,590.1,99.9,234.2,1 739,-1,1600.3,104.2,57.9,178,1 739,-1,1712.7,457.7,95.3,206.7,1 739,-1,400.6,189.5,75.4,164.1,1 739,-1,330.7,198.6,57.8,177.1,1 739,-1,437.2,559.8,84.7,244.8,1 739,-1,1131.8,735.5,88.8,261.6,1 739,-1,750.1,81.5,50.8,153,1 739,-1,433.9,53.1,58.9,165.6,1 739,-1,1213.3,713.7,82.8,262.6,1 739,-1,358.8,111.5,49.9,173.7,1 739,-1,291.1,127.8,47.6,163.7,0.991 739,-1,239.8,147.9,48.3,160.7,0.684 371,-1,1221.9,31.3,61.2,117.6,1 371,-1,685.9,206.7,80.4,112.8,1 371,-1,1630,12.8,58.2,159.3,1 371,-1,1067,438.4,67.8,199.6,1 371,-1,443.3,311.1,71.5,216.6,1 371,-1,354.9,528.3,86.5,235.4,1 371,-1,443.6,80.1,69,196,1 371,-1,109.5,351,52.3,189.6,1 371,-1,360.4,112,54.3,174.1,1 371,-1,1430.9,1,54,99.7,1 371,-1,286.7,131.1,53.2,169.3,1 371,-1,510.6,89.3,48.9,166.6,1 371,-1,1762.1,94.9,57.6,162.6,1 371,-1,544.7,570.5,107.1,249.4,1 371,-1,1019.4,53.5,55,166.6,1 371,-1,211.3,141.1,59.6,159.1,1 371,-1,952.6,41.5,63.8,176.4,1 371,-1,795.8,151.1,59.8,172.8,1 371,-1,1720.4,455.4,78.2,214.5,1 371,-1,1582.5,628.9,84.1,245.4,1 371,-1,832.9,1,55.6,110.8,1 371,-1,380.6,2.2,46.3,90.8,1 371,-1,1807.9,453.2,62.4,210,1 371,-1,213.6,309.2,52.4,181.1,1 371,-1,463.1,542,65.8,234.3,1 371,-1,910.8,496.4,75.8,206.5,1 371,-1,1819.4,70.2,62.9,162.1,1 371,-1,759.1,95,45.2,143.2,1 371,-1,846.8,481.7,87.4,230,1 371,-1,966.7,918.8,82.6,162.2,0.997 371,-1,927.1,3.2,57.4,145.5,0.265 275,-1,1221.1,31,62.7,118.7,1 275,-1,687,207,78.8,110.8,1 275,-1,389.6,16.9,59.8,155.2,1 275,-1,1642.3,21.8,57.8,155.7,1 275,-1,1033.8,102.6,65,184.3,1 275,-1,289.8,128.5,54.4,171.2,1 275,-1,354.9,106.6,53.3,178.7,1 275,-1,107.9,348.5,51.1,190.7,1 275,-1,454.7,150.2,75.3,204.3,1 275,-1,1720.7,457.2,78.2,211.7,1 275,-1,941.1,85.4,69,182.5,1 275,-1,704.2,1.3,54.8,157.4,1 275,-1,1110.4,96.1,56.6,167.8,1 275,-1,796.1,150.1,60.8,169.2,1 275,-1,189.3,574.6,92.6,250.5,1 275,-1,220.7,130.5,53.5,161.6,1 275,-1,389.5,463.2,84.7,232.9,1 275,-1,1472.3,37.7,54.7,150,1 275,-1,730.3,336.8,68.4,181.4,1 275,-1,232.5,431.3,60.9,200.2,1 275,-1,265.5,795.2,89.3,258.8,1 275,-1,808.1,368.4,88.4,214.9,1 275,-1,1423,575.9,98.3,244.1,1 275,-1,878.5,388.2,77.5,188.1,1 275,-1,562,406,65.3,212,1 275,-1,471.4,399.8,69.7,221.9,1 275,-1,752.4,104.1,46.3,170.6,1 275,-1,859.4,108.4,44.2,157.4,1 275,-1,514.5,112.6,50.9,177.7,1 275,-1,943.9,919.9,85.8,161.1,0.935 182,-1,1221.5,30.7,62.8,118.2,1 182,-1,410.8,38.5,60.2,165.9,1 182,-1,1489.5,68.3,54.4,149.1,1 182,-1,211.7,126.1,55.7,169.5,1 182,-1,109.7,348.9,48.9,189.5,1 182,-1,356.3,105.1,55.2,179.5,1 182,-1,704.7,1,55.6,158.8,1 182,-1,1720.2,456.8,78.8,212.9,1 182,-1,412.1,648.4,91.4,250.2,1 182,-1,687.8,207.8,77.7,112.2,1 182,-1,1358.6,567.4,104.6,244.4,1 182,-1,1093.5,147.3,48.2,158.4,1 182,-1,528.5,299.1,60,202.1,1 182,-1,1.2,617.8,114.3,246.3,1 182,-1,289.6,128.9,54.6,167.9,1 182,-1,420,226.2,78.2,220.1,1 182,-1,925.6,123.9,75.2,170.9,1 182,-1,540.7,140.9,65.8,173.8,1 182,-1,235.2,567,62.5,213.2,1 182,-1,869.5,174.4,73.7,191.5,1 182,-1,793.8,151.5,63.8,173.4,1 182,-1,1202,153.9,60.2,184.1,1 182,-1,97.8,548.2,88.4,252.1,1 182,-1,798.4,292.2,70.6,181.1,1 182,-1,744.9,274.6,73.2,201.9,1 182,-1,1249.7,155.4,47.8,168.9,0.998 182,-1,992,915.4,70.2,165.6,0.985 640,-1,687.2,206.2,79.7,113.6,1 640,-1,1220.8,32.1,62.2,116.8,1 640,-1,1481.5,4.9,60.5,144.7,1 640,-1,801.5,145.3,63.5,172.1,1 640,-1,544.9,113.4,65.5,173.5,1 640,-1,1708.3,454.8,100.3,214.2,1 640,-1,359.1,109.3,51.7,175.6,1 640,-1,491.1,537.7,95.3,245.9,1 640,-1,340.2,313.8,67.9,207.5,1 640,-1,1574.1,588.3,96.9,237.5,1 640,-1,264.3,241.8,57.6,187.5,1 640,-1,1622.2,193.9,67.9,187.7,1 640,-1,206.8,227.5,62.6,203.1,1 640,-1,751.9,81.9,45,155.5,1 640,-1,417,119.2,57.8,152.1,1 640,-1,415.8,1.9,60.7,143.4,1 640,-1,287.6,127.5,50.5,169.9,1 640,-1,461,95.5,50.5,176,0.999 640,-1,353.6,1,55,130.7,0.995 640,-1,491.2,60,44.4,161.6,0.991 640,-1,237.5,134.1,41.5,161.6,0.9 640,-1,1498.2,959.7,83.3,121.3,0.487 294,-1,1222.2,31.9,60.1,118.9,1 294,-1,1674.9,40.1,57.3,154.6,1 294,-1,686.3,206.6,79.7,113.7,1 294,-1,1464.9,21.2,54.6,148.7,1 294,-1,237.7,579.8,99.9,256,1 294,-1,1719.8,457.6,79.3,211.3,1 294,-1,235.8,403.5,61,191.8,1 294,-1,796.1,146.4,60.7,177.1,1 294,-1,354.5,108.4,54.8,179.4,1 294,-1,938.6,69,64.1,175.7,1 294,-1,285.1,128,53.7,173.5,1 294,-1,704.9,1.2,53.9,155.7,1 294,-1,453.6,135.9,75.8,200.6,1 294,-1,1013,92.8,58.4,181.6,1 294,-1,404.7,23.2,56.7,169.2,1 294,-1,1084.3,90,53.5,162.9,1 294,-1,219.3,129.6,56.3,165.9,1 294,-1,108.4,351.5,52,188.6,1 294,-1,383.7,432,85.5,229.5,1 294,-1,298.7,834.4,96.4,246.6,1 294,-1,817,386.2,91.7,223.1,1 294,-1,1458.9,587.1,93.6,248.2,1 294,-1,539.9,431.6,66.6,219,1 294,-1,515.7,105.6,48.2,177,1 294,-1,744.9,102.3,47.3,174,1 294,-1,885.7,406.3,79.2,193.1,1 294,-1,462.5,418.3,64.4,231.6,1 294,-1,940.4,917.3,73.8,163.7,0.99 294,-1,828.1,106.6,56,155.3,0.988 875,-1,1221.6,29.5,62.1,118.9,1 875,-1,687.3,206.3,78.6,112.9,1 875,-1,478.5,1,48.8,127.6,1 875,-1,794.1,138.4,77.2,176.6,1 875,-1,1086.4,2.8,60.5,144.1,1 875,-1,1478.6,83.4,60.4,156.4,1 875,-1,280.7,638.5,85.5,257.9,1 875,-1,1575.6,589.5,103.4,235.8,1 875,-1,336.4,314.7,79.7,180.3,1 875,-1,559.5,117.9,58.7,176.1,1 875,-1,899.3,481.8,70.9,233,1 875,-1,300.5,162.6,70.3,192.8,1 875,-1,1722.2,454.6,78.1,212.1,1 875,-1,478.7,166.3,61.5,183.5,1 875,-1,1692.7,46.6,53.1,167.7,1 875,-1,1576.8,26.6,55,152.1,1 875,-1,753.3,72.1,54.7,162.9,1 875,-1,1419.6,8.8,51.1,154.9,1 875,-1,253.4,1.3,54.6,121.1,1 875,-1,988.2,466.8,68.7,234,1 875,-1,409.3,161.3,58.9,176.7,1 875,-1,239.5,133.8,51.4,164.3,1 875,-1,429.9,306.7,56.1,201.8,1 875,-1,1770,698,88.1,218.5,0.385 982,-1,1221.7,29.7,62.9,120.5,1 982,-1,686.7,206.6,79.7,112.9,1 982,-1,793.3,141,73,170.9,1 982,-1,408.1,268.7,70.3,188.3,1 982,-1,1179.9,117.2,57.6,163.3,1 982,-1,493.5,248,68,187.9,1 982,-1,335,830.4,94.4,250.6,1 982,-1,840.8,321.3,70.7,201.1,1 982,-1,1574.7,590.3,103.9,235.1,1 982,-1,1469.4,165.2,67.6,165.5,1 982,-1,1720.8,452.7,78,215.7,1 982,-1,1196,680,87,263.5,1 982,-1,320,259.3,62.6,197.6,1 982,-1,751.7,73.2,55.7,162,1 982,-1,1787.6,173.3,69.4,178.4,1 982,-1,1665.4,141.7,55,166.6,1 982,-1,923.8,311.4,67,207.5,1 982,-1,230.4,137.9,54.8,164.5,1 982,-1,306.2,446.3,83.9,205.6,1 982,-1,547.9,119.4,53.1,167.9,1 982,-1,289.9,125.4,53.5,174.8,1 982,-1,393.3,435.9,64,213.1,1 982,-1,313.8,1,48.2,130.2,1 982,-1,1739.2,674.5,95.4,249.3,1 982,-1,445.6,60.5,56.1,184.6,1 982,-1,1451.9,1,57.2,95.4,1 982,-1,381.6,1,54.6,132.5,1 982,-1,364.2,166.9,66,195.1,1 982,-1,1389.1,1.9,47,94.3,0.999 982,-1,491.8,63.1,52.8,159.8,0.999 1009,-1,1220.8,30,62.3,117.9,1 1009,-1,686.2,206.5,80.4,112.8,1 1009,-1,497.5,281.4,68.4,190.1,1 1009,-1,792.6,140.2,75.2,173.1,1 1009,-1,289.4,127.5,53.4,168.9,1 1009,-1,1721,454.4,80.4,216.1,1 1009,-1,1221.9,143.3,61,174.7,1 1009,-1,392.1,288.6,71.2,195.3,1 1009,-1,1471.3,184.7,65.1,162.5,1 1009,-1,1575.9,590.3,101.8,235.9,1 1009,-1,1822.2,205,61,185.8,1 1009,-1,929,276.9,67.3,209.6,1 1009,-1,232.2,139.7,53.2,163.3,1 1009,-1,1688.3,167.5,58.5,175,1 1009,-1,844.5,287.7,66,200.8,1 1009,-1,540.3,120.5,61.1,171.3,1 1009,-1,751.5,73.5,54.1,161.7,1 1009,-1,380.3,466.3,68,229.3,1 1009,-1,1740.9,678.4,92.7,245.7,1 1009,-1,298.5,481.4,88.2,201.3,1 1009,-1,1158.6,624.8,95.6,262,1 1009,-1,306.8,287.2,66.1,205.2,1 1009,-1,591.5,551.2,98.2,246.6,1 1009,-1,313.8,2.6,42.4,127.7,1 1009,-1,508.1,89,53.5,158.9,1 1009,-1,348.3,885.5,95.6,195.5,1 1009,-1,429.9,167.9,59.5,187.4,1 1009,-1,380,175,52.9,164.2,0.999 1009,-1,434.7,66.7,63.9,170.4,0.997 1009,-1,384.8,1,55.4,160.3,0.971 681,-1,1221.5,29.6,62.2,122.2,1 681,-1,686.6,206.9,80.6,113.4,1 681,-1,1480.6,4.2,60.8,147.1,1 681,-1,1709.7,457.7,97.6,207.3,1 681,-1,563.9,111.8,50,177,1 681,-1,365.5,529.8,110.7,252,1 681,-1,485.9,132.4,46.1,174.2,1 681,-1,803.9,144.6,59.5,175.7,1 681,-1,1490.1,156.6,52.4,174.6,1 681,-1,314,356.8,69.2,215.4,1 681,-1,1619.8,153.3,72.1,186.3,1 681,-1,416.2,141.7,70.1,160.5,1 681,-1,1575,589.1,96.9,236.4,1 681,-1,360.6,114.6,50,169.1,1 681,-1,1078.6,1,78.4,102.8,1 681,-1,750,80,49.7,156.9,1 681,-1,1279,872.1,92,208.9,1 681,-1,402.9,9.6,59.2,163.9,1 681,-1,235.2,210.1,64.2,193.9,1 681,-1,1368.4,858,96.5,223,1 681,-1,291.8,222.8,58.4,172.2,1 681,-1,480.7,39.1,46.6,143.2,0.995 681,-1,837.8,925.1,71.4,155.9,0.956 681,-1,299,1,57.8,138.3,0.267 708,-1,1221.6,30.1,61.8,118.6,1 708,-1,686.4,206.6,80.5,113.2,1 708,-1,1481.6,6.3,57.3,146.3,1 708,-1,1603.2,131.3,67.6,180.9,1 708,-1,410.9,159.6,78.2,166.7,1 708,-1,560.9,111.1,55.4,178.2,1 708,-1,1574.5,588.8,98.3,235.3,1 708,-1,295.1,390.9,74.2,215.8,1 708,-1,1710.2,456.1,97.5,207.9,1 708,-1,1475.3,123,52.1,178.7,1 708,-1,482.2,146.6,49.6,180.8,1 708,-1,472.9,25.1,46.3,135.2,1 708,-1,801.6,138.7,47.1,174.8,1 708,-1,1290.9,781.4,95.3,272.3,1 708,-1,750.1,81.6,49.3,154,1 708,-1,999.5,2.5,64.8,89.3,1 708,-1,258.2,196.1,58,197.6,1 708,-1,359.8,109.8,50.8,172.3,1 708,-1,1206,804.1,91.8,271.3,1 708,-1,390.5,542.8,66.1,246.6,1 708,-1,306,208.8,58.8,177.9,1 708,-1,410.5,27.6,60,160.9,1 708,-1,229.9,134,51.1,165.4,0.999 708,-1,849.4,933.7,77,147.3,0.069 291,-1,1221.2,31.3,62.4,120.8,1 291,-1,686.8,206.6,78.4,113.7,1 291,-1,1671.8,33.6,56.7,157,1 291,-1,1720.9,458,77.8,210.8,1 291,-1,797.1,147.4,59.9,175.3,1 291,-1,938.5,73.8,63.9,177.7,1 291,-1,352.9,110,54.9,178.2,1 291,-1,1466.4,25,55.1,146.2,1 291,-1,286.6,129.5,53.7,174.3,1 291,-1,1089,92,53.4,162.4,1 291,-1,236,409.2,60,196.6,1 291,-1,107.9,353.5,52.2,186.4,1 291,-1,455.5,139.4,74.1,200.8,1 291,-1,231.9,582.9,90.4,249.4,1 291,-1,404,21.6,56,166.1,1 291,-1,704.6,1.2,53.7,155.5,1 291,-1,385.1,440.2,84,222,1 291,-1,1017.8,94.6,58.9,179.8,1 291,-1,221.5,128.6,54.5,166,1 291,-1,816.8,387.9,92,217.6,1 291,-1,292.9,825.9,99.2,255.1,1 291,-1,1454.5,585.3,94.4,246.7,1 291,-1,515.6,105.6,50,178.8,1 291,-1,747.5,105.4,46.5,168,1 291,-1,542.3,430.1,67.4,212,1 291,-1,463.7,416.3,63.7,231.9,1 291,-1,884.7,404.9,82.3,194,1 291,-1,825.8,105.3,62.9,162.2,0.999 291,-1,938.7,920,80.7,161,0.984 291,-1,793.2,353.2,67.2,198.1,0.323 378,-1,1222.2,31.3,61.1,119.8,1 378,-1,686.2,206.4,79.4,113.9,1 378,-1,1090,450.5,67.5,202,1 378,-1,1633.3,15.9,64.9,167,1 378,-1,358.7,103.4,55.6,182.7,1 378,-1,450.2,301.8,71.3,213.7,1 378,-1,827.2,1,55.9,112.8,1 378,-1,108.9,350.1,52.1,189.6,1 378,-1,284,128.5,55,169.8,1 378,-1,343.8,533.1,85.8,246,1 378,-1,953.4,38,61.5,172.7,1 378,-1,454,551.5,70.7,233,1 378,-1,445.1,75.7,69,195.9,1 378,-1,1719.8,456.7,77.3,213,1 378,-1,794.6,149.7,61.5,174.1,1 378,-1,1798.1,449.9,67.3,204,1 378,-1,577.4,558.4,95.6,258.2,1 378,-1,507.3,84.5,52,169.5,1 378,-1,217.6,140,59.1,158.9,1 378,-1,1017.1,51.9,54.4,162.4,1 378,-1,208.7,304.5,55.2,182.7,1 378,-1,1596.4,633.8,80.5,245,1 378,-1,1434.5,2.4,54.1,92.9,1 378,-1,851.4,493.2,87.2,234.6,1 378,-1,383.9,1.1,46.8,90.9,1 378,-1,756.2,100.1,49.9,138.1,0.999 378,-1,1771.2,101.7,56.3,158.8,0.999 378,-1,908,505.4,77.4,206,0.999 378,-1,972.8,913.2,85.9,167.8,0.999 378,-1,1797,71.6,74.4,167.7,0.996 56,-1,1221.6,29.4,61.6,117.4,1 56,-1,685.9,205.8,80.8,114.3,1 56,-1,1487.5,69.9,55,151.4,1 56,-1,1362.5,566.8,104.2,244.9,1 56,-1,401.5,349.7,82.4,230.3,1 56,-1,486.7,181.3,88.2,197.2,1 56,-1,704.5,1,55.6,158.7,1 56,-1,1723,456.3,75.7,210.4,1 56,-1,212.5,129.8,49.3,165.1,1 56,-1,793.6,146.5,63.3,182.4,1 56,-1,1002.8,176.9,74.4,178.9,1 56,-1,355.1,111.1,55.2,174.9,1 56,-1,102.6,546.1,84.9,253.7,1 56,-1,8,774.3,67.5,230.6,1 56,-1,856.9,193.9,73.5,178.8,1 56,-1,154.8,361.7,63.2,191.4,1 56,-1,439.4,102.5,56.5,158.2,1 56,-1,284.2,126,54.5,170.1,1 56,-1,1311,176.5,58.6,168.8,1 56,-1,1370.1,207.4,43.1,171.7,1 56,-1,388.2,44.8,53.5,168.5,1 56,-1,540.2,63,44.4,169.1,1 56,-1,1475.3,216.9,59.9,192.7,0.999 56,-1,485.5,42.9,56.2,165,0.998 56,-1,1867.5,277.1,53.5,204.6,0.987 56,-1,906.6,188.1,41.1,161.6,0.298 576,-1,1221,30.1,62.3,120,1 576,-1,687.2,205.7,78.9,113.9,1 576,-1,1481.4,5.3,59.6,144.8,1 576,-1,377,240,68.6,198.8,1 576,-1,797.4,148.5,66,168,1 576,-1,1650.1,1,55.4,135.6,1 576,-1,552.9,113.8,52,171.8,1 576,-1,1715.9,453.2,84.6,213.7,1 576,-1,1836.2,255.4,69.3,181.1,1 576,-1,288,122,51.9,172.7,1 576,-1,219,134.5,51.7,160.7,1 576,-1,454.5,118.2,50.5,166,1 576,-1,1654.8,250.3,73,202.9,1 576,-1,1580.1,588.9,89,236.7,1 576,-1,754.5,78.2,43.7,156.7,1 576,-1,210.5,277.1,64.2,194.8,1 576,-1,872.2,1,52.9,104.4,1 576,-1,714.5,579.6,83.3,251.8,1 576,-1,151.8,255,61,210.3,1 576,-1,358,109.6,54.8,175.6,1 576,-1,1039.7,818.4,127.9,262.6,1 576,-1,423.3,61.5,46.1,164.7,0.998 576,-1,1010.1,933.3,65.5,147.7,0.786 576,-1,250.9,925.7,83.9,155.3,0.479 576,-1,1119.8,832.3,88,248.7,0.166 576,-1,296.6,870.4,95.9,210.6,0.097 123,-1,1220.7,30.5,62.6,118.9,1 123,-1,1104.7,143.8,78,173.3,1 123,-1,356.3,105,56.8,180.5,1 123,-1,1488,68.3,56.1,150.9,1 123,-1,704.5,1,56,158.5,1 123,-1,398.4,778.9,99.7,279.4,1 123,-1,109.3,352.9,49,184.4,1 123,-1,1721.3,456.8,77.3,210.7,1 123,-1,425.2,283.9,78.4,226.6,1 123,-1,213.6,125.4,52.4,169.6,1 123,-1,288.8,129.2,54,166.3,1 123,-1,1359.2,567.3,104.2,243.4,1 123,-1,918.7,209.8,68.4,191.3,1 123,-1,1226.2,178.9,45,164.6,1 123,-1,524.1,244.7,73.3,202.2,1 123,-1,539.2,65.8,49.8,169.9,1 123,-1,1345.6,180.4,64.9,183.8,1 123,-1,478.2,167.7,57.2,159.9,1 123,-1,377.5,1.9,47.6,145.9,1 123,-1,785.7,210.5,63.6,188.4,1 123,-1,447.2,1,53.4,145.5,1 123,-1,832.6,228.4,55.1,178.1,1 123,-1,480,40.1,60.9,165,1 123,-1,92.7,654.7,64.8,220.9,1 123,-1,103.7,548.4,84.1,235.6,1 123,-1,1102.1,927.9,84.5,153.1,0.251 385,-1,1222.2,30.8,61.1,118.7,1 385,-1,686.1,206.6,80,112.4,1 385,-1,1635.8,24.7,75.4,173.8,1 385,-1,1107.9,457.3,72.9,206.5,1 385,-1,358,105.6,55.4,180.7,1 385,-1,372.7,1,60,102.1,1 385,-1,447.1,289.5,78.4,209.8,1 385,-1,108.1,349.6,53.6,191,1 385,-1,1774.1,103,64.6,161.3,1 385,-1,828.5,1.1,53.9,114.1,1 385,-1,331.6,541.6,89.4,244.3,1 385,-1,950.5,27.1,64.3,178.9,1 385,-1,1599.5,634.1,81.9,245.6,1 385,-1,281.9,127.5,55.7,168.2,1 385,-1,446.2,568.7,70.1,234.6,1 385,-1,796.2,150.1,58.7,173.2,1 385,-1,207.9,295.9,55.3,182.4,1 385,-1,219.5,139.2,58.5,158.7,1 385,-1,1015,45.8,54,165.8,1 385,-1,1718,455.7,78.4,212.8,1 385,-1,1436.6,1.6,51.9,85.6,1 385,-1,450.1,71.3,72.5,197.5,1 385,-1,849.1,497.6,87.9,229.2,1 385,-1,756,105.5,49.2,136.1,0.999 385,-1,914.8,515.9,76.2,207.3,0.999 385,-1,1784.4,435.6,69.7,207,0.999 385,-1,504.2,78.5,50.9,172.1,0.998 385,-1,977.9,906.4,87.2,174.6,0.993 385,-1,619.2,563.8,86.2,236,0.294 914,-1,1221.4,30.6,61.7,118.7,1 914,-1,686.3,206.4,79.9,112.8,1 914,-1,793.2,139.9,76.3,173.4,1 914,-1,1112,34,63.4,163.3,1 914,-1,466.4,203,70,188,1 914,-1,1432.1,1.4,48.8,138,1 914,-1,1574.3,589.6,104.5,236.4,1 914,-1,556.8,116,58.5,173.9,1 914,-1,1723.1,453,76.7,214.3,1 914,-1,1298.5,861.4,97,219.6,1 914,-1,328.9,363.6,83.1,195.7,1 914,-1,869.4,427.6,63.2,222.7,1 914,-1,306.5,697.6,88.3,267.1,1 914,-1,1476.5,106.7,63.2,156.2,1 914,-1,751.9,75.3,55.6,157.9,1 914,-1,1604.6,66.1,52,160.9,1 914,-1,413.7,347.3,58.6,209,1 914,-1,301.9,163.1,69.5,198.8,1 914,-1,961.8,408.3,66.2,224.2,1 914,-1,241.2,133.3,56.3,165.4,1 914,-1,1747.4,680.9,95.6,239.5,1 914,-1,376.7,198.4,58,177.6,1 914,-1,421.7,66,60.4,175.6,1 914,-1,1719.6,92.2,55.4,173.4,1 914,-1,469.3,16.5,50.9,148.6,1 914,-1,253.2,2,55.1,119.9,1 914,-1,1499.1,1.6,58.2,134.5,1 914,-1,313.3,1,47.1,132.8,1 742,-1,1221.1,29.8,63,119.2,1 742,-1,686.2,205.8,80,114.4,1 742,-1,1485.2,10.3,59.5,144.2,1 742,-1,255.6,183.6,61.5,201.1,1 742,-1,550.9,114.7,59.8,176.8,1 742,-1,780.2,138,56.6,173.8,1 742,-1,1465.2,105.7,53.5,161.4,1 742,-1,296.3,433.9,76.4,222.5,1 742,-1,1600,102.7,57.6,177.5,1 742,-1,1713.4,457.7,94,208,1 742,-1,1575.1,590,100.2,235.4,1 742,-1,401.3,191.7,73.4,170.2,1 742,-1,472,175.3,49.7,184.8,1 742,-1,331.9,200.9,55.7,173,1 742,-1,1126.2,733.3,82.6,251.6,1 742,-1,437.6,53.1,57.8,168.3,1 742,-1,750.6,83.3,50.1,150.7,1 742,-1,447.9,557.1,82.8,253.2,1 742,-1,1205.7,711.4,82.3,254.1,1 742,-1,359.2,111.4,49.8,177.6,0.999 742,-1,290.2,126.9,49.8,167.2,0.996 742,-1,257.9,2.3,47.5,118.3,0.463 742,-1,238.5,151.5,49,158.8,0.449 742,-1,391.1,54.4,49.1,169.6,0.288 757,-1,1221.3,29.5,62,119.6,1 757,-1,686.7,205.6,79.3,114,1 757,-1,546.2,116.1,65.2,176.5,1 757,-1,1715.4,453.8,85.8,211.7,1 757,-1,781,135.2,65.3,177.4,1 757,-1,304.5,456.4,76.6,223.9,1 757,-1,1574.2,589.2,101.4,234.3,1 757,-1,264.5,183.3,58.7,199.4,1 757,-1,1463.2,91.9,52.2,168.2,1 757,-1,460.9,188.8,52.5,190.3,1 757,-1,496.8,564.8,79.2,250.3,1 757,-1,331,195.5,56.1,175.2,1 757,-1,1585.4,88.7,63.2,178,1 757,-1,402.5,203.3,64.4,171.9,1 757,-1,1495.6,16.9,58.9,143,1 757,-1,258,1,50,122.1,1 757,-1,1161,670.2,93.5,263.3,1 757,-1,452.6,65.6,56.7,169.2,1 757,-1,751.6,81.6,49.3,152.5,1 757,-1,398.3,63.5,56.7,173.1,1 757,-1,1098.7,696.1,79.2,256.2,1 757,-1,236.4,137.7,51.1,154.7,0.999 757,-1,359.8,108,50.4,171.6,0.999 757,-1,293.1,141.1,41.6,159.5,0.072 264,-1,1221.2,30.8,62.3,118.7,1 264,-1,687.7,206.2,78,112,1 264,-1,287.4,129.1,57.4,171.2,1 264,-1,1629.3,19.1,62.9,147.9,1 264,-1,453.7,155.2,74.9,214.6,1 264,-1,796.9,154.5,59.1,170.6,1 264,-1,381.3,485.9,89.8,235.8,1 264,-1,356.2,107.4,52.6,177.2,1 264,-1,1721.1,457.6,77.7,211.2,1 264,-1,1479.3,48.5,52.1,148.4,1 264,-1,109,350.2,49.9,190.7,1 264,-1,937.8,93.7,70,184.8,1 264,-1,705,1,54.7,156.3,1 264,-1,1053.9,108,59.5,180.9,1 264,-1,1128.8,99.2,55.6,166.7,1 264,-1,1403.7,564.6,100.3,248.8,1 264,-1,216.3,128.5,54.3,164.3,1 264,-1,694.2,318.7,60.4,186.5,1 264,-1,376.6,8.3,56.8,159.7,1 264,-1,230.3,444.6,61.1,195,1 264,-1,245.1,760.2,92,272.2,1 264,-1,161.7,567.9,83.8,241.5,1 264,-1,875.4,109.8,48,154.5,1 264,-1,870.2,369.3,78.7,192,1 264,-1,801,350.9,86.1,213.7,1 264,-1,484.1,381.5,73,224.2,1 264,-1,513.1,118.4,56.8,174.7,1 264,-1,757.1,102,47.7,170.4,0.999 264,-1,569.3,394.1,64.9,210,0.999 264,-1,939.1,918.1,82.6,162.9,0.984 502,-1,1221.7,30,62.1,118.9,1 502,-1,686,205.8,80.6,114.8,1 502,-1,999.1,1,53.9,129,1 502,-1,1496.1,2.2,58.1,132.8,1 502,-1,467,149.5,65.1,192.2,1 502,-1,791.1,142.4,61.2,177.7,1 502,-1,1828.5,184.8,81.6,193.3,1 502,-1,1682,34,56.1,169.1,1 502,-1,1665.8,603.3,68.9,215.9,1 502,-1,144,331.6,67.5,192.5,1 502,-1,931.7,1,55.9,127.1,1 502,-1,1735,196.1,68.5,166.7,1 502,-1,879.4,1,53,125.5,1 502,-1,404.3,168.8,61.1,184.5,1 502,-1,925.9,684.4,123.2,250.1,1 502,-1,1726,458.1,75,209.3,1 502,-1,821.9,609.5,77.9,254,1 502,-1,319.7,188.3,49.1,164.8,1 502,-1,1549.5,598.6,80.1,238.9,1 502,-1,296.9,776.6,74.4,256.9,1 502,-1,209.7,748.7,94,258.8,1 502,-1,218.1,134.3,64,165.1,1 502,-1,1620.3,25.7,58.5,175.9,1 502,-1,1622.5,315.4,62.4,190.8,1 502,-1,1738.8,336.9,76.5,208.8,1 502,-1,715.2,92.4,62.2,167.6,1 502,-1,450.2,11.1,75.3,183.6,1 502,-1,359.8,110.9,55.8,180,1 502,-1,288.1,123.6,52.2,168.3,0.999 502,-1,510.6,92.9,59.2,177.9,0.999 502,-1,402.7,18,46.4,158.7,0.999 502,-1,1020.5,697.5,81.3,234.5,0.996 502,-1,1024.4,931.9,82.1,149.1,0.054 295,-1,1221.8,32,60.9,118.7,1 295,-1,686.1,206.3,80,114,1 295,-1,1675.7,41.3,57.4,155.8,1 295,-1,1464.9,20.8,54,148.5,1 295,-1,241.4,578.2,99.2,258.9,1 295,-1,237.3,402.6,60.4,189.8,1 295,-1,937.6,66.6,63.5,176.9,1 295,-1,1719.7,459.2,79.3,208.6,1 295,-1,796,147.5,59.6,175.4,1 295,-1,353.8,108.2,54.8,179.8,1 295,-1,1011.8,91.4,58.4,181.7,1 295,-1,704.7,1.2,54,155.4,1 295,-1,406.3,24.2,55.9,167.4,1 295,-1,453,135,74.6,199.5,1 295,-1,108.9,351.6,51.9,189.1,1 295,-1,284.2,127.8,54.3,173.8,1 295,-1,1083,89.5,53.2,163.3,1 295,-1,219.2,129.6,58.2,167.5,1 295,-1,383.2,430.3,84.8,229.5,1 295,-1,815.9,384.9,93.1,223.4,1 295,-1,300.8,836.2,94.7,244.8,1 295,-1,538,434.1,66.4,218,1 295,-1,1462,587.9,94,248,1 295,-1,514.9,105.5,48.1,174.8,1 295,-1,886.2,404.9,77.6,196.8,1 295,-1,462.1,420.2,65.7,231.1,1 295,-1,745.1,101.7,47.1,172.4,1 295,-1,829,108.5,53.4,151.4,0.991 295,-1,938.2,916,74.8,165,0.987 886,-1,1220.8,29.7,62.2,119.6,1 886,-1,1481.6,88.5,59,156.4,1 886,-1,686.8,206.2,79.8,113.2,1 886,-1,1095.7,1.3,58.7,159.9,1 886,-1,794.5,138.7,74.3,173.4,1 886,-1,332.2,335.1,81.1,182.1,1 886,-1,1576.3,593.2,102.4,236.5,1 886,-1,478,170.7,62.9,185.6,1 886,-1,302.1,160.5,69.3,198.3,1 886,-1,1722.2,453.3,77.6,214.5,1 886,-1,1702.4,56.5,53.7,170.4,1 886,-1,557.9,117.6,58.9,174.5,1 886,-1,425.5,318.2,57.5,202.2,1 886,-1,753.1,71.6,54.4,163.7,1 886,-1,290.4,652.1,85.1,252.7,1 886,-1,974.9,448.8,72.2,226.1,1 886,-1,890.4,466.2,70.4,223.9,1 886,-1,1423.8,4.2,52.3,153.3,1 886,-1,472.7,1,47.5,138.2,1 886,-1,254.3,1.6,53.4,120.9,1 886,-1,1582.1,33.9,55.2,154,1 886,-1,239.4,133.3,53.1,166.9,1 886,-1,405.8,170.1,56.5,181.5,1 886,-1,1752,682.7,90.2,233.9,1 886,-1,1494.9,1,60.9,145,1 886,-1,1356.1,938.7,98.1,142.3,0.548 886,-1,315.4,2,42.4,123.7,0.454 227,-1,1221.5,30.9,60.7,118.1,1 227,-1,685.7,206.7,80.7,113.2,1 227,-1,795.7,150.4,60.5,174.7,1 227,-1,1492.2,67.3,53.5,148.9,1 227,-1,1188.8,129.5,45.4,157.7,1 227,-1,387.4,552.4,94.2,243.2,1 227,-1,433.8,188.9,75.1,211.6,1 227,-1,356.2,105.5,54.2,180.7,1 227,-1,705.2,1,55.5,158.7,1 227,-1,109.6,350.7,48.6,189.5,1 227,-1,288.2,127.3,55.6,172,1 227,-1,1721.6,456.4,77.6,213.2,1 227,-1,1358.2,567.8,104.2,244.7,1 227,-1,212.2,125.8,55.4,167.8,1 227,-1,1576.1,1,57.4,140.7,1 227,-1,148.4,685,105,257.8,1 227,-1,518.2,121.4,47.8,176.1,1 227,-1,1107.4,126.4,62.5,185.4,1 227,-1,908.2,134.6,73.9,180.4,1 227,-1,507.2,341.3,71.5,215.4,1 227,-1,217.3,497.3,59.4,204.6,1 227,-1,769.4,316.4,75.1,206.1,1 227,-1,830.9,328.2,72.8,189.2,1 227,-1,89.5,627.7,91.8,250.3,1 227,-1,593,346.4,61.4,199.4,0.999 227,-1,937,904.6,72.8,176.4,0.994 227,-1,973,125.8,42.2,155.2,0.989 389,-1,1222.4,31.1,60.9,117.7,1 389,-1,686.3,206.2,79.3,113.3,1 389,-1,366.8,1.1,64.8,102.9,1 389,-1,358,107.2,55.5,177.8,1 389,-1,1636.5,28.1,74.5,173.8,1 389,-1,445.4,286.8,82.8,210.7,1 389,-1,1773.1,105.6,70,165.6,1 389,-1,1120.3,464.8,73,202.7,1 389,-1,828,1,55.8,118.3,1 389,-1,439.7,571.1,72.6,235.4,1 389,-1,108.6,350.4,53.1,190.8,1 389,-1,324.6,548.3,95.3,252.5,1 389,-1,948.9,24.7,64.6,177.7,1 389,-1,455.1,72.3,69.7,195,1 389,-1,282.7,128.1,54.8,165.8,1 389,-1,795.2,150.4,59.8,172.9,1 389,-1,219.2,141.5,59.6,156.1,1 389,-1,1596.8,628.2,84.3,251.2,1 389,-1,208.7,290.5,53.6,183.2,1 389,-1,1013.6,41.9,54.3,164.7,1 389,-1,1718.8,454.1,80.4,215.2,1 389,-1,916.4,518.7,78.1,214.6,1 389,-1,850,503.4,83.5,226.8,1 389,-1,1775.5,430.3,71.9,210.8,0.999 389,-1,978.1,905.8,89.1,175.2,0.994 389,-1,1436.3,4.3,53.5,79.9,0.992 389,-1,756.4,107.9,49.1,135.9,0.981 389,-1,515.2,87.2,37.9,161.2,0.514 389,-1,706.4,1.9,54.6,148.8,0.191 11,-1,687.4,206,78.7,113.5,1 11,-1,1046.4,210.6,94.6,179.5,1 11,-1,504,143.3,105,196.2,1 11,-1,1486.9,70.2,55.3,148.1,1 11,-1,1361.2,567.8,105.7,244.2,1 11,-1,704.4,1.1,56.7,158.2,1 11,-1,795.3,148.9,62.2,174.5,1 11,-1,377.7,399.7,84.7,237.6,1 11,-1,102.5,547.1,84,250.9,1 11,-1,1724.8,459.2,76.1,204.4,1 11,-1,1803.5,219.7,65,178.9,1 11,-1,1201,37.2,74.3,115.6,1 11,-1,355.9,105.2,53.6,177.6,1 11,-1,210.2,386.4,67,198.2,1 11,-1,285.8,120.6,55.9,176.2,1 11,-1,218.7,127.1,47.1,167.4,1 11,-1,415.6,89.3,56.1,168.2,1 11,-1,1626.2,255.2,60.4,182.2,1 11,-1,461.8,71.9,51.2,172,1 11,-1,881.6,129.5,58.1,177.5,1 11,-1,1040.2,1,44.8,79.3,1 11,-1,1438.3,241.4,51.1,170.5,0.999 11,-1,1403.7,189.4,50.3,176.7,0.999 11,-1,251.1,365.6,48,197.2,0.069 883,-1,1220.9,29.7,62.3,119.3,1 883,-1,1089.3,1.1,63.4,158.5,1 883,-1,686.7,206.1,79.5,113.3,1 883,-1,1481.3,87.3,58.3,154.7,1 883,-1,795.2,138.8,73.5,175.4,1 883,-1,1574.8,589.9,103.4,237.1,1 883,-1,474,1,49.1,136.8,1 883,-1,301.3,161.2,70.7,196.8,1 883,-1,1722,454.3,77.5,212.9,1 883,-1,335.2,330,79.6,184.5,1 883,-1,288.3,648.3,85.4,250.7,1 883,-1,558.4,116.6,58.7,176.6,1 883,-1,478.4,170.3,61.5,184.6,1 883,-1,752.5,71.5,55.7,163.8,1 883,-1,1698.2,59.8,53.3,165,1 883,-1,978.4,453.6,69.6,230.3,1 883,-1,893,474.4,69.6,219.9,1 883,-1,1422,4,52.2,156.1,1 883,-1,427.2,311.7,55.4,200.4,1 883,-1,254,1.1,53.7,121.4,1 883,-1,1578.8,33.2,57.7,153,1 883,-1,1494.4,1.5,58.9,150,1 883,-1,240.1,132.1,51.9,167.3,1 883,-1,405.7,170,56.8,179,1 883,-1,1752.9,682.7,91.2,233.3,1 63,-1,1221.4,29.8,61,116.9,1 63,-1,686.2,205.9,80.4,114.2,1 63,-1,1487.1,70.2,55.3,150.9,1 63,-1,1361.4,566.3,105.3,245.7,1 63,-1,404.2,338.8,83.8,236.7,1 63,-1,704.7,1,55.6,158,1 63,-1,1722,456.9,76.8,209.6,1 63,-1,355.6,109.1,55,175.7,1 63,-1,487.8,188.1,81.2,196.5,1 63,-1,102.9,546.4,84.9,253.1,1 63,-1,997.9,184.7,71.3,173.8,1 63,-1,827.8,195.9,78.4,182.5,1 63,-1,211.5,129.5,49.8,165,1 63,-1,1292.3,180.3,61.7,164.1,1 63,-1,1462.2,205.3,65.2,197.7,1 63,-1,287.1,127.3,54.2,168,1 63,-1,148,357.6,55.6,196.1,1 63,-1,10.6,753.8,70.2,236.1,1 63,-1,1360.2,211,41.6,167.2,1 63,-1,384.7,37.5,53.1,162.9,1 63,-1,892.5,184.3,53.5,164.6,1 63,-1,541.5,63.1,44.3,165.7,1 63,-1,457.8,113.4,50.5,146.1,1 63,-1,483.1,38.7,58.4,170.7,0.999 63,-1,438.7,32.7,52.8,154,0.997 63,-1,795.5,143.7,62.4,184.3,0.996 63,-1,256.3,93.7,46.1,176.1,0.911 63,-1,1871.3,282.2,49.7,201.9,0.085 487,-1,1221.5,31,61.8,117.4,1 487,-1,686,205.7,80.5,112.9,1 487,-1,998.6,1,56.4,143,1 487,-1,1499.5,1,58.3,122.3,1 487,-1,302.1,195.6,50.9,171.6,1 487,-1,931,1,56.9,135.2,1 487,-1,1686.7,459.1,111.4,209.4,1 487,-1,1801.1,167.9,70,181.8,1 487,-1,875.9,1,53.2,130.5,1 487,-1,459.7,162.2,63.5,194,1 487,-1,801.6,598.1,91.8,258.8,1 487,-1,1729.5,178.6,70.5,174.2,1 487,-1,1539.7,599.7,84,239.7,1 487,-1,135.1,338.3,62.2,190.3,1 487,-1,802.4,143.2,51.5,177.3,1 487,-1,411.4,155.6,58.4,176.7,1 487,-1,307.2,749,77.3,254.6,1 487,-1,214.4,715.7,97.3,261.4,1 487,-1,359,108.6,54,178.3,1 487,-1,1697.7,46.4,52.6,166.6,1 487,-1,217.6,137.2,64,159.5,1 487,-1,917.9,651.3,113.5,253.2,1 487,-1,1773.1,346.6,76.5,220.8,1 487,-1,447.5,21.6,75.2,178.4,1 487,-1,504.7,89.2,62.5,172.7,1 487,-1,1631.1,327.3,63.3,191.4,1 487,-1,1640.2,36.3,59.1,175.9,1 487,-1,712.4,92.9,59.2,168.4,1 487,-1,410.6,7.1,46.5,158.5,0.999 487,-1,1004.4,673.9,75.1,227.3,0.991 487,-1,753.8,99,49.4,141.9,0.991 487,-1,1596.2,579.5,67,175.6,0.818 487,-1,1017.6,937.2,84.7,143.8,0.129 487,-1,289,137.5,47.4,145.9,0.089 603,-1,1221.7,30.9,61.3,119.5,1 603,-1,687.6,205.4,78.4,114.8,1 603,-1,1480.6,3.6,61.2,145.8,1 603,-1,800.4,143.6,65.2,175.3,1 603,-1,365.7,275.6,64.1,197,1 603,-1,1709.3,457,94.7,210,1 603,-1,1622.5,2.7,55,108.6,1 603,-1,237.4,265.3,63.7,187.4,1 603,-1,1649.6,227.1,70.5,199.5,1 603,-1,1573.6,588.8,98.3,235.6,1 603,-1,168.3,242.6,61.4,210.2,1 603,-1,287.2,126.1,51.9,172.8,1 603,-1,562.7,110.5,49.2,180.3,1 603,-1,432.7,71.4,49.3,172.2,1 603,-1,217.6,137.2,54.6,159.6,1 603,-1,487.1,97.1,46.2,161.6,1 603,-1,362.4,113.5,49.9,174.6,1 603,-1,752,79.7,45.1,155.1,1 603,-1,1080.3,878,122,203,1 603,-1,394.6,92.7,46.9,157.3,0.944 652,-1,686.9,206.6,79.7,113.4,1 652,-1,1480.5,3.5,60.2,146.1,1 652,-1,547.3,112.5,62.8,174.7,1 652,-1,800.1,145.4,66.3,173.2,1 652,-1,451.6,536.7,89,243.6,1 652,-1,1221.4,30.6,62.7,121.3,1 652,-1,1710.1,455.5,98.2,212.9,1 652,-1,359.7,111.5,50.2,173.1,1 652,-1,333.9,327.9,69.4,206.2,1 652,-1,1576.6,587.6,95.1,238.7,1 652,-1,1615.7,175.3,69.5,186.1,1 652,-1,216.5,220.3,57.8,202.1,1 652,-1,268.4,235.5,60.5,183.9,1 652,-1,410.6,1,58.6,153.1,1 652,-1,751.6,82.5,45.1,151.6,1 652,-1,469.9,101.5,47.1,177.3,1 652,-1,423.7,118.2,57.5,160.6,1 652,-1,288.3,126.6,51.4,170.2,0.999 652,-1,1174.1,1,67.1,120,0.999 652,-1,1454.1,922.6,86.2,158.4,0.967 652,-1,1373.3,938.1,89.1,142.9,0.084 652,-1,360.1,6.4,41.7,135.5,0.075 885,-1,1220.9,30.2,62.2,119.5,1 885,-1,1481.7,88.8,58.4,155.6,1 885,-1,1092.9,2.1,60.2,159.3,1 885,-1,686.7,206.5,79.7,112.9,1 885,-1,794.9,138.9,72.9,175.5,1 885,-1,333.5,332.7,80.3,184.5,1 885,-1,1575.3,591.4,102.9,233.4,1 885,-1,1700.1,59.6,53.6,167.6,1 885,-1,478.3,173.2,61.8,183.7,1 885,-1,300.5,160.2,70.8,198.3,1 885,-1,1722.4,454.2,76.7,213.5,1 885,-1,558.7,115.9,58.7,175.9,1 885,-1,473.6,1,48,138.4,1 885,-1,426.2,314.9,56.8,204,1 885,-1,975.4,449.5,72.3,228.5,1 885,-1,753.6,72.4,54.9,162.5,1 885,-1,289.8,649.8,86.4,253,1 885,-1,891.9,468.8,70.3,222.4,1 885,-1,1423.1,4.6,52.9,155.3,1 885,-1,1581.7,33.5,54.4,150.8,1 885,-1,254.2,1.6,53,120.4,1 885,-1,239.8,131.9,53.3,169,1 885,-1,1494.7,1,60.6,149.2,1 885,-1,406.3,172.3,55.7,176.8,1 885,-1,1752.4,683.6,91.4,232.3,1 885,-1,1355.8,939.2,99.7,141.8,0.484 449,-1,1221.8,30.5,61.9,118.6,1 449,-1,937.3,1,59.2,157.3,1 449,-1,447.7,211.2,72.5,198.7,1 449,-1,686.8,206.3,79,114.1,1 449,-1,358.6,107.8,53.9,178.1,1 449,-1,1006.9,11.6,54,157.9,1 449,-1,1716.8,454.5,83.2,212.3,1 449,-1,1378.1,548.6,96.3,200.1,1 449,-1,112.2,352.2,53.9,187.1,1 449,-1,1555.3,612,75.9,243.9,1 449,-1,287.5,127.5,53.5,168.6,1 449,-1,252.3,223.9,50.7,184.6,1 449,-1,862.7,3.3,53.3,137.6,1 449,-1,1668.7,360.2,68.6,196,1 449,-1,800.5,152.4,48.7,169,1 449,-1,1747.5,156.7,59.5,165.3,1 449,-1,884,591.8,118.9,248.3,1 449,-1,1838.9,391.3,82.1,206.6,1 449,-1,350.9,683.3,74.4,241.6,1 449,-1,526.5,74.2,53.8,171,1 449,-1,254.1,649.9,93.2,255.7,1 449,-1,427,123.8,59.9,164.6,1 449,-1,788.6,574.1,81.2,250,1 449,-1,221.9,139.5,56.6,156.2,1 449,-1,730.7,1.3,49.9,94,1 449,-1,423.1,1,43.4,136,1 449,-1,757.4,90.2,46.3,150.2,0.999 449,-1,359.5,4.2,63.3,131.4,0.999 449,-1,1705.1,107.7,67.3,177.2,0.998 449,-1,1509.6,1,55.4,102.9,0.997 449,-1,1021.1,919.8,84.7,161.2,0.993 449,-1,709.5,88,56.9,174.7,0.99 449,-1,964.2,605.8,84.5,218.7,0.987 449,-1,454,38,60.7,198.1,0.297 812,-1,1221.6,29.8,62.5,118.6,1 812,-1,686.6,205.5,79.1,114.4,1 812,-1,1620.5,3,60.4,144,1 812,-1,554,117.1,63.9,175.3,1 812,-1,1723.2,453.3,75.5,214.3,1 812,-1,1575.2,589.9,101,234.3,1 812,-1,788.9,130.7,54.6,182.9,1 812,-1,277.3,531.3,78.1,245.3,1 812,-1,279.5,165.5,62.7,197.6,1 812,-1,441.3,238.5,54.8,195.5,1 812,-1,475.9,107.3,63,178.1,1 812,-1,1472.4,33.8,62.5,156.6,1 812,-1,379.4,255.7,71.8,175.3,1 812,-1,751.3,72.9,58.2,160.8,1 812,-1,234.4,136.1,51,164.8,1 812,-1,347.6,180.6,52.5,171.3,1 812,-1,990.7,591.1,71.8,246.7,1 812,-1,1065.7,567,72.3,254.3,1 812,-1,1433.5,53.5,49.4,156.3,1 812,-1,426.3,107.6,60,169.8,0.998 902,-1,1221.6,30.2,60.8,118.9,1 902,-1,687.2,206.1,78.8,113,1 902,-1,478.3,192.3,63.6,182.6,1 902,-1,298,676.5,96.1,257.9,1 902,-1,794.2,140.7,75.7,172.5,1 902,-1,1430.6,1,50,145.8,1 902,-1,1485.8,103.6,56.9,147.5,1 902,-1,1576,593.8,102.5,233.7,1 902,-1,1722.7,453.5,76.3,214.5,1 902,-1,558.9,114.9,57.9,174.5,1 902,-1,1596.9,50.5,52.8,162.7,1 902,-1,302.2,162.3,68.3,195.2,1 902,-1,1712.4,82,54.7,167.1,1 902,-1,333.1,350.6,81.4,186.3,1 902,-1,390.7,190.2,58.1,176.2,1 902,-1,1109.3,21.6,56.5,157.8,1 902,-1,753.2,74.3,55.1,159.1,1 902,-1,971.3,420.8,70.6,228.3,1 902,-1,875.9,441.7,67.6,217.7,1 902,-1,469.7,3.6,50.3,149,1 902,-1,417.9,334.1,58.7,207.1,1 902,-1,254.3,1.1,52.8,118,1 902,-1,242.6,133.6,57.3,168.6,1 902,-1,1747.1,680.6,94.2,240.4,1 902,-1,1502.3,2.4,57.4,142.2,1 902,-1,313.5,1.6,46.8,129.4,1 902,-1,1322.4,889.4,96.2,191.6,1 902,-1,419.5,60.6,52,178.7,1 730,-1,1221.3,30.1,62,119.1,1 730,-1,686.7,205.5,79.5,114.9,1 730,-1,1479,7.3,59.9,144.9,1 730,-1,1470.2,110.3,52.2,169.5,1 730,-1,259.7,188.6,55.7,201,1 730,-1,552.2,113,58.7,178.5,1 730,-1,411.3,187.9,66.9,161.6,1 730,-1,1710.8,457.7,96.7,205.7,1 730,-1,1573.9,589.5,99.7,233.6,1 730,-1,476.7,166.8,50.7,182.9,1 730,-1,299.3,421.8,74.5,224.1,1 730,-1,784.3,136.3,54.2,177.4,1 730,-1,409.6,552.8,94.8,249,1 730,-1,320.4,197.8,62.3,180.6,1 730,-1,1226,736.3,100.4,268.6,1 730,-1,1597.4,107.7,58.7,181.3,1 730,-1,426.6,40.9,59.9,170,1 730,-1,750.6,82.8,50.3,151.4,1 730,-1,362.1,111.4,47.3,173.5,1 730,-1,1159.6,753,80.8,260.5,1 730,-1,320.1,1,49.6,132.1,0.999 730,-1,236.9,139.5,53.3,165.4,0.996 730,-1,465.5,7.5,43.8,134.2,0.35 52,-1,1221,29.4,62.6,117.2,1 52,-1,686.2,206.4,79.6,113.2,1 52,-1,398.8,352,84.5,235.5,1 52,-1,1487.5,70.4,54.8,147.9,1 52,-1,489.9,178.6,88.3,196.9,1 52,-1,1361.7,566.6,104.5,244.7,1 52,-1,704.7,1,55.2,157.1,1 52,-1,355.2,110.7,55.3,172.6,1 52,-1,1722.5,456.4,76,211.6,1 52,-1,161.4,362.7,64.3,194,1 52,-1,213.6,126.4,49.6,167.2,1 52,-1,881.9,191.7,61,185,1 52,-1,1006.8,169.8,74.2,184,1 52,-1,102.1,546.4,86.1,254.1,1 52,-1,284.1,125.7,53.5,172.1,1 52,-1,793.5,147.4,63.2,178.1,1 52,-1,5.4,781.8,69.8,239.2,1 52,-1,428.5,100.2,56,155.6,1 52,-1,1318.9,177.3,56.5,168.1,1 52,-1,485.8,47,55.6,154.8,1 52,-1,540.8,65.2,44.5,167.5,0.999 52,-1,1857.8,272.7,63.2,193.4,0.999 52,-1,1480.3,215.4,61.3,199.5,0.999 52,-1,1374.9,216.9,41.5,165.2,0.999 52,-1,394.3,64.3,45.9,148.2,0.817 661,-1,1221.2,29.5,61.8,119.7,1 661,-1,686.8,205.9,80,113.8,1 661,-1,1481.5,4.1,60.8,144.7,1 661,-1,1711.3,456.2,95.7,208.2,1 661,-1,801.3,144,64.2,172.5,1 661,-1,359.5,114,50.7,169.2,1 661,-1,551.6,110,59.8,178.3,1 661,-1,324.2,331.9,69.3,211.3,1 661,-1,1140.9,1.8,72.8,113.5,1 661,-1,1575.7,588.7,96.4,233.9,1 661,-1,440.6,529.2,76,247.2,1 661,-1,408.1,1,57.5,153.5,1 661,-1,1614.7,169.9,77.7,184.1,1 661,-1,224.6,208.6,55.7,206.8,1 661,-1,476.5,111.6,47.4,177,1 661,-1,751.2,78.7,46.6,155.9,1 661,-1,424.9,124.1,59.9,160,1 661,-1,275.9,230.1,57.6,182.3,1 661,-1,1420.5,904.9,102.6,176.1,1 661,-1,286.8,122.6,54,172.2,0.999 661,-1,354.6,1.3,51.6,143.4,0.999 661,-1,1349.6,923.6,81.7,157.4,0.989 661,-1,1502.1,170.5,47,168.5,0.053 1043,-1,1221.8,29.9,61.5,119.5,1 1043,-1,687.3,206.9,79.5,114.3,1 1043,-1,793.6,140.5,71.4,175.2,1 1043,-1,1123.2,563.3,85.7,247.1,1 1043,-1,288.7,126.6,52.7,171.4,1 1043,-1,476.9,322.6,77.9,196.8,1 1043,-1,275.1,536,96.2,200.6,1 1043,-1,230.2,138.5,55.9,164.6,1 1043,-1,1720.3,455.4,80.3,215.5,1 1043,-1,363,325.9,72.3,199.6,1 1043,-1,1654,683.1,95.8,230.4,1 1043,-1,1295.2,194.9,62.6,165.2,1 1043,-1,937.9,235.8,64.4,204.6,1 1043,-1,751.6,74.8,54,162.3,1 1043,-1,373.9,514.2,68.8,236.5,1 1043,-1,851.3,243.6,64.6,192.1,1 1043,-1,1470.2,213.7,74.3,168.1,1 1043,-1,292,323.3,71.3,211.2,1 1043,-1,373.6,102.6,57.2,176.4,1 1043,-1,1718.1,214.3,59.1,175.9,1 1043,-1,307.9,3,37.9,127.2,1 1043,-1,1574.3,589.6,101.3,240.7,1 1043,-1,582.5,536.4,64.9,254.3,1 1043,-1,1860.2,251.9,60.8,199.1,1 1043,-1,502.3,167.9,76.1,199.3,1 1043,-1,461.5,170.7,54.5,170.2,0.999 1043,-1,433,64.8,62.7,177,0.998 623,-1,687,206,79.7,113.2,1 623,-1,1481.4,5.9,60.6,143.4,1 623,-1,1221.5,29.3,61.8,118.9,1 623,-1,1621.9,207.4,82,197,1 623,-1,350.3,295.3,67,201.4,1 623,-1,800.8,144.6,65.4,171.8,1 623,-1,1711.8,456.1,90.9,208.8,1 623,-1,1574.3,589.2,96.7,235.3,1 623,-1,553,112.3,56.6,174.3,1 623,-1,358.6,114.5,52.5,172.4,1 623,-1,288.7,127.6,51.5,167.9,1 623,-1,177.7,236,74.4,206.7,1 623,-1,498,83.1,46,157.5,1 623,-1,248.4,247.5,61.5,190.2,1 623,-1,351.9,1,54.2,122.6,1 623,-1,556.2,546.3,78.7,239,1 623,-1,1594.2,1,52.9,94.2,1 623,-1,753.6,82.3,43.9,150.5,1 623,-1,231.6,134.8,50.5,162.3,1 623,-1,409.9,102.8,50.8,158.5,0.999 623,-1,446.4,83.5,48,169.3,0.998 623,-1,1113.3,919,98.2,162,0.997 623,-1,1204.7,943.7,64.5,137.3,0.059 802,-1,1221.1,29.1,62.9,119.4,1 802,-1,686.7,205.9,79.8,113.7,1 802,-1,286.1,527.1,76.5,237.9,1 802,-1,1573.5,589.3,102.2,235.4,1 802,-1,1723.3,451.3,75.1,216.4,1 802,-1,784.3,130.8,49.9,180.8,1 802,-1,1612.6,1,57.3,133.5,1 802,-1,548.8,114.7,62.6,175.7,1 802,-1,278.4,165.5,60.3,198.2,1 802,-1,479.2,96.7,61.7,175.2,1 802,-1,1479,29.2,61.2,152.2,1 802,-1,231.9,134.7,52.2,167,1 802,-1,750.5,70.4,56.5,164.4,1 802,-1,387.4,241.6,70.6,175.7,1 802,-1,1075.3,588.1,85.9,245.2,1 802,-1,254.6,1.3,53.2,122.7,1 802,-1,439.7,231.5,58.8,198.6,1 802,-1,346.4,180.6,50.1,177.2,1 802,-1,422,96.6,57.8,168.3,1 802,-1,1009.6,612.2,74.7,247.9,1 802,-1,1440.9,57,48.7,156.4,1 802,-1,443.3,1,41.9,85.9,1 802,-1,614.1,581.3,87.2,234.4,0.961 408,-1,1221.4,29.6,62.5,119.9,1 408,-1,686.5,205.4,79.2,115.3,1 408,-1,1649.8,55.9,66.8,169.7,1 408,-1,459.1,265.3,75.8,205.5,1 408,-1,357.7,105.1,54.4,179.3,1 408,-1,1770.2,123.4,64.4,171.2,1 408,-1,110.4,346.3,53.1,193.8,1 408,-1,1719.7,454.1,80.7,211.9,1 408,-1,413.5,605.7,74.8,236.4,1 408,-1,551.5,68,58,171.6,1 408,-1,1199.6,491.5,62.3,200.6,1 408,-1,945.6,17,62.9,171.3,1 408,-1,361.8,1,64.6,114.9,1 408,-1,285.6,128.7,54.8,167,1 408,-1,221.1,141.5,65,157,1 408,-1,793.9,150.9,61,173.5,1 408,-1,1586.2,615.2,100.9,249.7,1 408,-1,831.1,1,56.4,130.3,1 408,-1,1004.9,31.4,56.5,161.5,1 408,-1,466.2,69.9,65.5,188.7,1 408,-1,302.7,580.5,81.6,254.8,1 408,-1,204.8,269.7,55.2,182,1 408,-1,425.2,92,50.9,172.5,1 408,-1,857.2,527.9,99.3,238.3,1 408,-1,695.8,560.8,86.3,238.6,1 408,-1,718.1,1,51.2,135.1,1 408,-1,930,545.3,80.7,221.3,1 408,-1,710.7,90.3,62.2,167.7,1 408,-1,426.8,1.3,44,111.9,0.995 408,-1,1873.6,64.5,47.4,183.4,0.986 408,-1,978.5,920.3,84.1,160.7,0.88 377,-1,1221.9,31.5,60.9,119.7,1 377,-1,686.3,206.7,79.6,113.2,1 377,-1,1085.4,450.4,68.4,201.8,1 377,-1,1633.4,15.5,63.9,166.3,1 377,-1,359,105.6,55.1,180.4,1 377,-1,447.9,304.1,72.9,214.7,1 377,-1,284.7,129.3,54.4,168.1,1 377,-1,454.7,549.4,71.4,233.1,1 377,-1,109.3,350.9,51.7,189.4,1 377,-1,344.2,533.6,88.2,243.1,1 377,-1,828.4,1,56.1,112.6,1 377,-1,795.6,149.9,60.7,173.2,1 377,-1,1718.5,455.6,79,213.6,1 377,-1,954.6,41,62.2,173.2,1 377,-1,444.9,75.8,69.7,196.8,1 377,-1,507.8,85.8,51.6,169,1 377,-1,1800.2,450.4,65.8,204.5,1 377,-1,218.2,139.4,58.6,159.3,1 377,-1,572.4,561.2,95.7,259.8,1 377,-1,1017.5,50.9,54.4,165,1 377,-1,1593.8,632.4,80.7,244.2,1 377,-1,209.8,305.3,53.5,181.8,1 377,-1,1434.6,2.8,52.4,93.3,1 377,-1,850.8,492.4,85.5,233.8,1 377,-1,756.7,98.4,48.5,142.6,1 377,-1,1768.7,101.2,55.1,157.7,1 377,-1,383.8,1.1,46.9,91.3,0.999 377,-1,1802,69.6,70.4,170,0.999 377,-1,909.7,504.4,78.1,209.1,0.999 377,-1,971.5,913.2,87,167.8,0.998 796,-1,1221.4,29.4,61.7,119.6,1 796,-1,687,205.8,79.6,113.5,1 796,-1,288.4,512.2,79.2,239.1,1 796,-1,1723.1,452.4,75.9,214.3,1 796,-1,783.3,130.6,50.7,181.3,1 796,-1,1575,590,100.9,235.3,1 796,-1,548.9,114.3,61.6,179.5,1 796,-1,478.6,96.6,61.8,174.7,1 796,-1,1484.5,28,58.9,148.5,1 796,-1,278.5,166.7,58.3,196.1,1 796,-1,750.2,69.9,56,161.2,1 796,-1,1441,63.4,49.7,158.9,1 796,-1,232.3,133.1,52.1,169.3,1 796,-1,1607.1,1,52.6,126.3,1 796,-1,254,1.3,53.2,120.8,1 796,-1,392.2,237.6,65.1,179,1 796,-1,342.6,186.6,49.3,177.5,1 796,-1,442.9,225.3,54.8,190.1,1 796,-1,1081.4,598.2,95.1,261.7,1 796,-1,1017.9,618,79,249.8,1 796,-1,422.5,93,56.1,163.9,1 796,-1,447.1,1,44.3,89.8,1 796,-1,605.2,577.7,77.8,240.2,0.999 298,-1,1221.2,31.8,61,117.5,1 298,-1,1679.2,44,57.9,153.9,1 298,-1,686.8,206.8,79.5,114.2,1 298,-1,936.7,63.5,64.7,176.5,1 298,-1,1462,21.2,52.2,147.7,1 298,-1,248.3,581.3,99.4,250.7,1 298,-1,238.1,395.3,60.3,195.9,1 298,-1,1720,458.3,78.9,211,1 298,-1,354.2,110.7,54.8,177.6,1 298,-1,408.3,27.5,55.7,166.7,1 298,-1,453.2,131.1,75.3,203.6,1 298,-1,704.4,1,54.4,158.6,1 298,-1,796.1,148.8,59.7,180.4,1 298,-1,108.6,351.1,51.5,189.6,1 298,-1,1010.4,88.6,59.8,181.5,1 298,-1,283.3,131.4,53.4,170.2,1 298,-1,1079.2,87.5,51,163.9,1 298,-1,382.6,428.4,84.1,224,1 298,-1,218.3,131.4,59.6,166.3,1 298,-1,534.4,438.9,69.3,217.9,1 298,-1,1467.9,591.6,92,243.7,1 298,-1,886.9,410.4,74.5,200.4,1 298,-1,740.7,101.6,49.3,172.5,1 298,-1,301.4,842.2,100.1,238.8,1 298,-1,816.8,390.6,92.5,221.2,1 298,-1,462.3,423.1,62.5,229.1,0.999 298,-1,512.5,105,48.3,175.3,0.999 298,-1,938.6,913.3,69.5,167.7,0.977 298,-1,832,111,45.9,152.5,0.429 906,-1,1221.5,29.8,61.3,119.3,1 906,-1,687.2,206.1,79.1,112.8,1 906,-1,474,191.3,70,189.5,1 906,-1,793.6,140.1,75.8,172.8,1 906,-1,1431.9,1,49.6,146.2,1 906,-1,304.1,685.4,93.9,261.6,1 906,-1,1482.6,104.1,59.6,151.7,1 906,-1,1574.5,590.2,104,235.6,1 906,-1,1110.3,27.9,60.8,159.2,1 906,-1,1713.7,84.1,55.9,172.3,1 906,-1,1721.9,453.1,77.2,214.4,1 906,-1,558.2,115.4,57.9,172.8,1 906,-1,385.7,191.1,57.4,178.7,1 906,-1,326.7,351.3,87.5,188.7,1 906,-1,301.7,162.3,70.1,199.1,1 906,-1,751.9,74.4,55.9,158.9,1 906,-1,416.1,345.6,59.5,202.9,1 906,-1,1597,56.4,54.2,163.2,1 906,-1,873,434.6,66.3,224.2,1 906,-1,469.5,5.6,50.2,150.6,1 906,-1,1312,881.8,98.4,199.2,1 906,-1,971.2,416,65,227,1 906,-1,1745.3,680.5,95.5,238.7,1 906,-1,242.2,134.2,56.9,166.6,1 906,-1,1503,2.4,57,139.3,1 906,-1,253.7,1.2,54,119.1,1 906,-1,312.6,1,48.4,131.3,1 906,-1,422.1,62.5,51.5,177.8,1 678,-1,1221.4,29.7,61.5,121.8,1 678,-1,687.5,206.6,78.6,113.6,1 678,-1,1480.9,4.5,60.9,145.3,1 678,-1,1088.8,1,68.7,102.4,1 678,-1,801,145.3,63.5,172.7,1 678,-1,1491.8,157.8,52.2,175.7,1 678,-1,563.8,111.6,49.6,178.8,1 678,-1,484.2,131.4,45.2,170.7,1 678,-1,360.4,115.4,49.9,167.6,1 678,-1,314.9,356.2,68.4,212.3,1 678,-1,1711,456.2,97.7,212,1 678,-1,375,526,106.1,253.8,1 678,-1,1574.9,589.3,96.8,234.6,1 678,-1,1621,152.8,74.1,193,1 678,-1,416.2,139.1,72,160.9,1 678,-1,749.6,78.8,50.3,158.3,1 678,-1,1374.8,862.9,102,218.1,1 678,-1,1291,879.8,90.6,201.2,1 678,-1,405,7.2,57.4,163.1,1 678,-1,286.9,222.7,58.5,179.7,1 678,-1,234.1,212.2,62.5,194.5,1 678,-1,299.2,1,54.7,135.8,1 678,-1,349.6,12,54.6,151.1,0.972 678,-1,842,924.3,70.2,156.7,0.638 619,-1,1221.9,29.2,62.2,119.5,1 619,-1,687.2,206.2,78.8,113.5,1 619,-1,1480.8,4.4,60.1,143.7,1 619,-1,1627.5,208.6,77.2,194,1 619,-1,801.8,144.5,66.2,172,1 619,-1,1710.8,457.4,93.2,208.3,1 619,-1,355.7,293.4,65.8,199.5,1 619,-1,358.5,114.7,53.4,174,1 619,-1,1575,589,95.7,236.6,1 619,-1,555.5,113.2,54.4,175.4,1 619,-1,288.8,128.3,51.2,168.2,1 619,-1,174,239.2,72.4,203.3,1 619,-1,243.1,251.7,63.6,188.2,1 619,-1,571.7,543.2,78,241.9,1 619,-1,753.8,81,44.1,152.5,1 619,-1,495.9,88.8,47.6,159.2,1 619,-1,226.4,135.9,53.5,162.2,1 619,-1,354.2,1,52.6,118.8,1 619,-1,1603.6,1.1,51.6,94.9,1 619,-1,443.1,81.7,47.3,168.7,0.999 619,-1,404.8,96.5,52.6,162.8,0.998 619,-1,1109.4,909.3,108.1,171.7,0.997 619,-1,1192,921,85.8,160,0.155 240,-1,1220.5,30.5,63.4,119.2,1 240,-1,686.2,206.7,79.6,113.1,1 240,-1,1484.6,60.7,54,154.8,1 240,-1,795.9,152.7,60.2,173.9,1 240,-1,1590.2,1.9,57.2,140.3,1 240,-1,1087.1,121,61.1,184.7,1 240,-1,211.6,126.7,55.5,168,1 240,-1,382.6,528,91.3,236.3,1 240,-1,108.9,348.5,51,191.7,1 240,-1,1167.1,122.7,52,163.2,1 240,-1,288.4,126.9,56.1,172.3,1 240,-1,704.4,1,55.3,158.5,1 240,-1,185.3,711.3,91.4,255.9,1 240,-1,445.4,176.2,74.7,209.7,1 240,-1,355.6,104.4,54.7,181.4,1 240,-1,926,120.2,72.3,186.9,1 240,-1,1720.5,455.7,78.7,213.7,1 240,-1,1362.6,566.6,108.5,244.8,1 240,-1,498.4,356.1,72.1,220,1 240,-1,222.3,478.1,59.9,205,1 240,-1,517.2,118.2,51.2,181.1,1 240,-1,843.6,337.6,82.2,198.7,1 240,-1,785.7,332.6,81.7,206,1 240,-1,590.3,364.6,62.2,200,1 240,-1,108.8,564.6,87.1,238.7,0.997 240,-1,932.7,895.9,72,185.1,0.987 240,-1,149.1,666.2,65.6,208.1,0.25 410,-1,1221.7,29.7,62.1,119.2,1 410,-1,685.9,205.1,80.2,115.6,1 410,-1,459.7,262.7,75.6,203.4,1 410,-1,358.6,105.8,53.9,180.2,1 410,-1,1653,55.8,68.2,170.1,1 410,-1,1770.6,125,61.9,169.1,1 410,-1,551.5,68.7,58.1,171.2,1 410,-1,109.7,347.4,52.8,191.9,1 410,-1,1719.9,453.8,79.1,209.9,1 410,-1,411.8,611.4,74.4,235.9,1 410,-1,946.4,16.7,61.7,171.3,1 410,-1,285.6,129.6,54.8,166.3,1 410,-1,1583.2,615.1,105.6,248.5,1 410,-1,831,1,56.9,130.6,1 410,-1,1209.9,494.5,60.9,205.4,1 410,-1,1004.7,31.2,56.3,162.6,1 410,-1,301.5,583.8,82.1,253.5,1 410,-1,204.8,268.7,55.5,183.4,1 410,-1,219.2,141.4,67.1,157.2,1 410,-1,795.1,150.7,59.3,172.3,1 410,-1,360.8,1,64.4,114.9,1 410,-1,464.3,69.1,66.1,193.2,1 410,-1,425.5,90.6,51.9,174.5,1 410,-1,698.2,559,92.8,239.1,1 410,-1,858.6,532.2,100.4,237.9,1 410,-1,1860,66.3,61,181.6,1 410,-1,718.2,1,51.2,135.9,1 410,-1,930.3,548,81.4,223.5,1 410,-1,711.5,91,63.7,169.3,0.999 410,-1,426.7,1.6,41.7,111.2,0.972 410,-1,979.7,920.3,82.6,160.7,0.666 720,-1,1221.6,30,62,118.7,1 720,-1,686.6,205.9,80.1,113.1,1 720,-1,1480.2,8.4,58.9,143.7,1 720,-1,551.4,114.1,59.9,176.2,1 720,-1,1600.2,121.5,60.9,178.6,1 720,-1,1574.5,590.8,99,231.4,1 720,-1,1710.2,457.4,98.2,205.7,1 720,-1,1475,114.1,52,178.5,1 720,-1,390.1,549,97.1,244.3,1 720,-1,479.5,161.6,50.5,180,1 720,-1,300.3,404.7,73.8,219.2,1 720,-1,413,173.1,68.2,162.6,1 720,-1,261.3,192.8,56.9,197.4,1 720,-1,749.9,82.9,49.1,151.8,1 720,-1,312.7,202.4,63.9,178.1,1 720,-1,1258.1,750.9,90.1,269.8,1 720,-1,1179.3,778.8,85.5,266.2,1 720,-1,416.3,37.9,62.4,166.9,1 720,-1,789.3,136.8,49.4,180.5,1 720,-1,361,111.7,47.5,168.1,1 720,-1,466.7,17.5,48,138.5,1 720,-1,236.6,131.6,49.4,172.1,0.998 720,-1,961.6,2.4,65,74.8,0.276 139,-1,1221.7,30.7,62.2,118.3,1 139,-1,1049,137,83.2,176.4,1 139,-1,389.9,746.4,99.9,266.4,1 139,-1,356.8,103.4,55.7,182.5,1 139,-1,1488,69,55.7,149.6,1 139,-1,704.1,1,56.5,158.2,1 139,-1,1721.7,457.3,78,210,1 139,-1,287.5,125.4,54.8,170,1 139,-1,685.8,206.7,81.8,115.6,1 139,-1,1358.8,567.5,104.9,244,1 139,-1,1192,168.7,52.3,164.6,1 139,-1,537.5,64.7,51,164.2,1 139,-1,878.6,209.6,82.4,193.5,1 139,-1,423.4,267.1,74.6,227,1 139,-1,109.3,351.8,48.4,184,1 139,-1,477.4,180.8,62,171.9,1 139,-1,219.9,128.2,51,161.2,1 139,-1,381.5,1.1,48,133.9,1 139,-1,1317,180.8,52.6,177.8,1 139,-1,531.5,263.6,56.4,204.1,1 139,-1,811.9,244.3,57,174.1,1 139,-1,474.4,46.3,52.7,160.2,1 139,-1,146.1,636,81.6,210.3,1 139,-1,578,246.8,58.1,195,1 139,-1,771.3,232.8,59.5,182.7,0.999 139,-1,98.3,544.9,85.3,251.2,0.999 139,-1,1068.6,927,79.7,154,0.961 905,-1,1221.5,29.7,61.4,120,1 905,-1,687,206.1,79.1,113.9,1 905,-1,474.2,189.9,68.5,189.3,1 905,-1,794,140.6,75.6,172.8,1 905,-1,1432,1,49.5,146.5,1 905,-1,302.7,683.5,95.2,259.4,1 905,-1,1713.8,84,55.6,169.8,1 905,-1,1483.7,106.4,58.3,149.7,1 905,-1,1574,590.4,104.6,235.1,1 905,-1,1722.5,453.6,75.9,214.3,1 905,-1,1109.6,24.7,60.8,161.9,1 905,-1,558,115.7,58.7,174.2,1 905,-1,386.2,190.7,57.4,176.1,1 905,-1,1596.8,55.1,53.8,163.7,1 905,-1,302.6,161.8,69.3,199.5,1 905,-1,327.9,351,85.8,186.1,1 905,-1,752.7,73.7,55.7,159.4,1 905,-1,470.8,4.7,49.4,150.1,1 905,-1,874.4,435.6,67.3,225.1,1 905,-1,1745.3,680,95.4,239.7,1 905,-1,417.2,341.3,57.6,206.8,1 905,-1,970.3,416.1,67.2,226.5,1 905,-1,1503.4,2.7,56.8,138.9,1 905,-1,1314.3,883.1,97,197.9,1 905,-1,243.7,134.3,56,167.5,1 905,-1,312.5,1.2,47.3,130.6,1 905,-1,254.1,1.3,53.9,119.1,1 905,-1,422.2,62.3,50.7,180.8,1 268,-1,1221.5,30.9,62.1,119,1 268,-1,687.8,206.2,77.6,112.3,1 268,-1,379.1,483.5,90.2,230.6,1 268,-1,289.4,128.1,56.7,172.1,1 268,-1,378.1,8.7,60.8,160.4,1 268,-1,1478.3,47.5,51.6,146.3,1 268,-1,1633.4,20.6,62.1,146.6,1 268,-1,454.2,156.7,75.3,210.9,1 268,-1,1121.7,98.8,55.9,168.8,1 268,-1,356.5,104.6,51.8,181.3,1 268,-1,938.9,91.2,69.7,183.3,1 268,-1,796.5,151.1,59.8,172.2,1 268,-1,1721.5,457.1,77.1,212.2,1 268,-1,108.4,351,50.6,189.3,1 268,-1,705.1,1,53.9,156.5,1 268,-1,233.2,435.9,60,199.5,1 268,-1,217.5,125.1,55.8,168,1 268,-1,1411.6,568,95.9,244.4,1 268,-1,1047.7,105,60.3,184.5,1 268,-1,702.2,328.5,69.1,195,1 268,-1,252.5,762.1,90.3,279.6,1 268,-1,870.9,373.2,77.8,199.4,1 268,-1,804.4,358.6,87.7,219.5,1 268,-1,173.1,568.6,86.4,254.5,1 268,-1,479.5,387.6,73.2,223.4,1 268,-1,514,117.1,54.1,173.4,1 268,-1,869.9,105.2,44.3,159.4,1 268,-1,567.9,398.9,64.7,214.4,1 268,-1,755.2,101.3,48.3,172.2,0.999 268,-1,937.8,915.3,84.6,165.7,0.894 559,-1,1221.3,30.4,62.1,120.1,1 559,-1,687,206.2,79.1,114.3,1 559,-1,1487.4,3.5,59.1,146.4,1 559,-1,1583.5,4.9,54.7,139.1,1 559,-1,538.6,115,59.4,173.2,1 559,-1,788.9,146.2,65.3,175.2,1 559,-1,377,224.4,64.9,193.6,1 559,-1,1664.4,272.8,78.6,200.3,1 559,-1,1658.3,1.5,53.8,147.1,1 559,-1,1720.3,454.4,81.6,212,1 559,-1,872.2,1,53.6,109.6,1 559,-1,195.7,293.7,67,191.7,1 559,-1,1812.1,234.3,69.8,184.9,1 559,-1,289,119.7,52.1,175.5,1 559,-1,985.5,2.4,51.6,93.8,1 559,-1,749.7,593.3,87.3,254.3,1 559,-1,218.6,135.1,57.5,162.7,1 559,-1,141.4,264.4,53.3,211,1 559,-1,424.7,145,51.4,152.4,1 559,-1,1596.4,588.5,72.7,241,1 559,-1,753.9,79,47.6,156.6,1 559,-1,461.9,87.7,65.6,184.2,1 559,-1,358.6,107.8,53.9,171.9,1 559,-1,243.4,897.3,82.1,183.7,1 559,-1,1016.9,784.2,119.6,253.2,0.999 559,-1,415.4,42.8,50.1,185.8,0.998 559,-1,1095.6,797.8,90.3,248.1,0.984 559,-1,929.7,2.7,53.2,92.7,0.771 559,-1,1028,947.3,71.9,133.7,0.145 480,-1,1221.9,30.7,62.5,117.7,1 480,-1,686.6,206.1,79.6,114.3,1 480,-1,1000.5,1,57.1,146,1 480,-1,932.6,1,56.8,141,1 480,-1,294.6,196.8,51.7,175.1,1 480,-1,1680.6,457.3,121.8,211.7,1 480,-1,1502.7,1,58.3,121.2,1 480,-1,1788,147.1,79.1,187.5,1 480,-1,876.2,1,53.8,132.9,1 480,-1,452.4,169.8,73,193.8,1 480,-1,1785.5,357.8,84.1,217,1 480,-1,360.9,111.2,55.1,174.2,1 480,-1,804.7,591.2,89.6,259,1 480,-1,128.9,341.8,58.3,188.5,1 480,-1,1537.9,594.1,78.3,247.6,1 480,-1,219.7,137.2,61.7,160.2,1 480,-1,221.1,706,92.8,264.2,1 480,-1,803.2,143.6,47.8,178.5,1 480,-1,1728.8,174.3,63.8,169.1,1 480,-1,316.2,738.1,73.2,258.3,1 480,-1,912,637.9,119.4,254.1,1 480,-1,1634.7,334.4,63.3,202,1 480,-1,1703.8,52.1,50.2,166.4,1 480,-1,446.4,26.4,73.8,185,1 480,-1,509,85.8,62.3,173,1 480,-1,1650.9,41.6,56.6,174.4,1 480,-1,411.7,7.6,45.2,155.2,0.999 480,-1,713.5,92.5,55.6,163.7,0.999 480,-1,753,97.5,53.4,141.8,0.998 480,-1,420,152.6,55.7,181.6,0.994 480,-1,991.5,664.6,77.2,216.8,0.713 480,-1,1019.9,930.1,81.7,150.9,0.453 196,-1,1221.8,31.1,61.3,118.8,1 196,-1,687.5,207.1,78.2,111.6,1 196,-1,48.1,635.6,115.3,248.5,1 196,-1,211.1,127.4,56.4,166.6,1 196,-1,108.3,347.6,50.3,189.8,1 196,-1,704.3,1,56,159.5,1 196,-1,1490.2,68.3,54.3,150.3,1 196,-1,405.7,615.5,91.9,249.7,1 196,-1,526.8,136.3,62.2,163.7,1 196,-1,289.2,126.6,55.1,172,1 196,-1,1720.8,457,77.8,211,1 196,-1,355.6,104.4,55.3,181,1 196,-1,1358,566.3,104.2,247.1,1 196,-1,420.9,214.6,76.7,219.9,1 196,-1,517.3,307.4,73.5,212.7,1 196,-1,880.6,162.2,76.5,188.1,1 196,-1,1055.4,140.8,49,157.9,1 196,-1,394.5,40.1,62.5,167,1 196,-1,801.1,301.6,71,187.2,1 196,-1,795.8,151.7,59.8,171.2,1 196,-1,1164,146.3,65,183.4,1 196,-1,1223,142.5,50.8,172.3,1 196,-1,231.6,544.1,61.7,212.8,1 196,-1,750.6,285.5,70.8,205.4,1 196,-1,463.4,4.3,50.2,91.7,0.997 196,-1,972.4,915.3,72.9,165.7,0.963 923,-1,1221.2,30.1,62.3,118.8,1 923,-1,686.1,206.2,80.3,113.4,1 923,-1,793.8,140.5,74.7,172.2,1 923,-1,1122.9,43.3,58,165.6,1 923,-1,1283.2,832,96.9,249,1 923,-1,1476,111.3,62.5,163.6,1 923,-1,1575.4,589.5,102.9,235.9,1 923,-1,1722.7,456.6,77.8,207.3,1 923,-1,1614.5,74.9,51.9,164.5,1 923,-1,329.5,372.9,79.7,189.5,1 923,-1,556.7,116.6,57,171.4,1 923,-1,457,203.5,69.3,195.6,1 923,-1,1428.9,2.4,48,129.7,1 923,-1,750.3,73.9,56.2,160.4,1 923,-1,300.5,161.3,70.9,201.8,1 923,-1,1490.1,1,61.7,125.7,1 923,-1,949.5,390.3,76.9,230.1,1 923,-1,864.7,411.1,65.1,215.2,1 923,-1,405.6,363.7,60.9,207.2,1 923,-1,239.8,132.2,54.3,165.4,1 923,-1,308.6,713.6,86.7,259.1,1 923,-1,1747.6,678.3,94.7,244.5,1 923,-1,1727.8,104,54.8,172.6,1 923,-1,470.9,19.3,52.2,151.4,1 923,-1,372.2,206.2,58.9,184.1,1 923,-1,254.6,1.7,53.4,121.2,1 923,-1,426.5,69.6,63.7,171.6,1 923,-1,313,1.5,48,132.6,1 161,-1,1221.8,30.6,62.2,118.5,1 161,-1,984.1,130.7,81.3,171.4,1 161,-1,1488.5,68.1,55.5,150.7,1 161,-1,433.9,38.5,64.2,166.6,1 161,-1,212.8,124.6,54.4,169.5,1 161,-1,109.3,348.9,50.7,190.3,1 161,-1,288.4,125.8,55,172.5,1 161,-1,356.5,104.1,54.2,178.9,1 161,-1,704.1,1,56.3,158.4,1 161,-1,686.9,207.2,78.6,112.5,1 161,-1,1721.7,456.9,77.5,212.2,1 161,-1,1359.3,567.6,104.5,244.4,1 161,-1,419.3,244.7,81.4,223.5,1 161,-1,408.1,694.6,91.4,259.6,1 161,-1,538.5,64.2,50.1,167.6,1 161,-1,101.4,547.2,85.5,252.9,1 161,-1,207.8,603.6,63.2,215.5,1 161,-1,1141.9,157.6,49.8,165.2,1 161,-1,388.6,3.7,48.3,116.9,1 161,-1,528.5,274.8,65.4,213.7,1 161,-1,801.3,271.9,63.7,178.2,1 161,-1,752.2,253.9,68.5,198,1 161,-1,497.1,207.9,57.7,168.1,1 161,-1,1254.2,170.8,60.1,170.2,1 161,-1,795.7,147.8,61.9,173.7,1 161,-1,596.7,266.5,58.3,195.9,1 161,-1,851.8,198.1,73.3,185.4,1 161,-1,1028.6,906.1,72.8,174.9,0.987 161,-1,566.4,150,64.8,193.9,0.542 161,-1,1292.7,172.4,56.7,172.5,0.152 641,-1,687,206.3,79.8,114,1 641,-1,1221,32.6,62.6,116.7,1 641,-1,1481.8,4.5,60.2,145.4,1 641,-1,491.7,536,87.3,243.3,1 641,-1,546.1,113.2,63.8,173.9,1 641,-1,801.9,145.6,63.8,172.6,1 641,-1,359.2,109.9,51.6,175.5,1 641,-1,1709.3,455.3,98.4,213,1 641,-1,339.4,315.2,68,207.5,1 641,-1,1574,588.6,97.3,235.8,1 641,-1,1622.1,192.4,67.3,189.8,1 641,-1,265,241.7,56.7,185.5,1 641,-1,207.7,227.1,62.2,201.7,1 641,-1,751.8,80.5,45,156.9,1 641,-1,415.2,1.7,61,147.4,1 641,-1,420,117.5,55,155.2,1 641,-1,287.3,127.8,50.7,168.4,1 641,-1,461.7,95.3,50.4,177.3,1 641,-1,354.2,1,52.8,132.6,0.997 641,-1,490.4,64.1,43,158.3,0.974 641,-1,237.8,135.1,43.3,162.5,0.512 641,-1,1493.2,956.6,87.3,124.4,0.169 225,-1,1221.5,30.4,61.4,119.3,1 225,-1,794.7,148,63.2,177.4,1 225,-1,685.9,206.7,80.1,114.2,1 225,-1,391.5,558,95.9,241.9,1 225,-1,1492.8,67.9,52.9,149.4,1 225,-1,1192.9,128.9,44.9,162.8,1 225,-1,431.8,188.9,74.7,216.2,1 225,-1,108.7,347.5,50.4,191,1 225,-1,211.9,126.1,55.2,169,1 225,-1,705.5,1,55.3,160.2,1 225,-1,356.5,105.4,53.8,181.1,1 225,-1,288,126.2,55.7,173.4,1 225,-1,1721.1,456,77.8,213.7,1 225,-1,141.6,679.4,103.9,261.7,1 225,-1,1357.8,567.9,104.1,244,1 225,-1,1109.8,127.8,63.7,185.9,1 225,-1,1573.5,1,55.5,141.3,1 225,-1,517.7,122.9,48.4,174.9,1 225,-1,903.1,136.2,78.6,184.6,1 225,-1,508.2,339.6,71.5,217.6,1 225,-1,216.9,499.9,60.5,203.9,1 225,-1,769.9,315.2,75.3,202,1 225,-1,829,324.6,73.2,190.9,1 225,-1,979.5,123.6,39.4,152.2,1 225,-1,75.4,628,99.5,241.8,0.999 225,-1,594.5,346.4,60.1,198.2,0.998 225,-1,938.6,907,71.7,174,0.994 863,-1,1221.3,29.9,62,118.8,1 863,-1,687.2,206.3,79.6,113.4,1 863,-1,484.7,1.1,50.8,119.6,1 863,-1,273.7,619.8,85.5,243.3,1 863,-1,795.8,139.3,76.6,175,1 863,-1,1474,71.7,60.7,152.2,1 863,-1,1082.7,1,57.2,126.4,1 863,-1,342.4,304.4,77.9,182.3,1 863,-1,1682.9,38.2,53.1,164.9,1 863,-1,1575,591.1,103.1,233.3,1 863,-1,1721.4,453.4,78.3,213,1 863,-1,476.1,151.6,60,183.8,1 863,-1,752.7,70.5,55.2,164.2,1 863,-1,991.8,489.8,90.2,239.3,1 863,-1,558.4,116.6,59.5,174.1,1 863,-1,254.5,1.2,53.9,120.4,1 863,-1,298.9,159.4,72.1,198.6,1 863,-1,431.1,295.9,56.4,196,1 863,-1,1414.2,20.2,51.3,151.9,1 863,-1,240.5,132.4,52.6,165.3,1 863,-1,1576.1,19.3,48.7,139.5,1 863,-1,416.1,152.9,60.3,176.7,1 863,-1,913.8,506.3,71.4,234.6,1 239,-1,1221.1,30.6,63.1,119.7,1 239,-1,685.8,207,80.4,112.9,1 239,-1,795.8,152.1,59.9,173.8,1 239,-1,1485.8,62.6,53.8,153.3,1 239,-1,1088.6,121,61.1,185.9,1 239,-1,211.6,125.8,55.2,170.2,1 239,-1,705,1,55.2,160,1 239,-1,380.1,532.3,92,233.2,1 239,-1,108.8,348,51.1,192,1 239,-1,288.1,128,55.4,171.4,1 239,-1,444.9,176.2,74.2,213.9,1 239,-1,356.2,105.7,54,179.7,1 239,-1,1361.1,567.4,107.9,243.4,1 239,-1,1721.3,456.9,78.3,211.7,1 239,-1,1169.4,124,50.9,161.7,1 239,-1,1588.4,2.3,57.5,140.3,1 239,-1,925.9,121.9,70.8,186.2,1 239,-1,180.3,704.7,93.2,256.7,1 239,-1,222.6,479.3,58.4,204.4,1 239,-1,497.7,354,74.1,219.3,1 239,-1,516.7,119.5,51.3,178.9,1 239,-1,841.9,340.2,80.2,194.7,1 239,-1,784.1,330.2,80.3,208.7,1 239,-1,590,363.8,63.1,201.4,1 239,-1,931.8,898.2,72.8,182.8,0.991 239,-1,116.8,552.1,86.9,290,0.98 265,-1,1221.3,31.1,62.2,118.7,1 265,-1,287.8,129.6,57.7,170.5,1 265,-1,688.2,206.5,77,111.6,1 265,-1,453.6,155.8,74.9,214,1 265,-1,381.5,485.3,90.2,235.6,1 265,-1,1630.4,19.7,63.7,147.4,1 265,-1,356.4,105.9,52.4,178.6,1 265,-1,1721.4,457.7,77,211.2,1 265,-1,797,154,59,172.3,1 265,-1,1479.6,48.3,51.3,146.1,1 265,-1,1126.7,99.4,55.2,167.3,1 265,-1,705.2,1,54.2,157,1 265,-1,108.8,350.4,49.8,189.2,1 265,-1,937.4,93.4,69.9,183.9,1 265,-1,1051.7,107.5,60.8,181.8,1 265,-1,376.4,8.7,58.3,158.3,1 265,-1,217.5,128.6,54.2,165.1,1 265,-1,1406.1,565.2,97.7,248.1,1 265,-1,231.5,443.6,60.6,194.5,1 265,-1,695,320.8,61.8,184.3,1 265,-1,248.7,763.4,89.9,272.9,1 265,-1,869.7,371,78.1,194.3,1 265,-1,163.1,567.6,86.1,247.2,1 265,-1,802.9,353.8,85.8,214.2,1 265,-1,512.5,118.4,56.2,174.4,1 265,-1,481.9,383,74.5,222.7,1 265,-1,875.9,110.6,44.1,151,1 265,-1,755.7,102.5,47.6,169.5,0.999 265,-1,569.8,394.2,63.9,210.8,0.999 265,-1,939.9,918.3,82.1,162.7,0.956 313,-1,1221.4,31.4,62.1,118.6,1 313,-1,686.9,207.4,79,112.7,1 313,-1,1457.4,8.2,54.5,144.9,1 313,-1,416,37.9,60.6,171.9,1 313,-1,1719.9,459.7,78.3,208.6,1 313,-1,358.1,109.7,56.4,179.9,1 313,-1,1698.8,48.1,58.3,161.8,1 313,-1,1494.2,598.6,94.3,244.1,1 313,-1,933.6,50.4,62.4,173,1 313,-1,108.3,350.5,52.3,191.1,1 313,-1,236.5,376.2,57.3,191.8,1 313,-1,451.3,124.1,76.3,200.2,1 313,-1,312.8,582,97.4,247.9,1 313,-1,796.1,151.2,58.8,173.8,1 313,-1,1000.9,77.7,62.7,180.9,1 313,-1,278.5,130.2,55.7,172.5,1 313,-1,888.4,432.3,73.8,196.9,1 313,-1,216.8,130.6,55.9,165.9,1 313,-1,704.9,3.2,53.9,156,1 313,-1,526.4,459.1,68.8,223.6,1 313,-1,1056,79,56.1,166.5,1 313,-1,828.3,421.4,80.6,209.8,1 313,-1,734,100.4,45.8,168.4,1 313,-1,442.4,438.3,71.4,237,0.999 313,-1,333.2,878.1,102.4,202.9,0.999 313,-1,511.4,102.2,43.9,171.4,0.998 313,-1,394.1,404.6,81.4,228.4,0.995 313,-1,926.5,908.8,80.5,172.2,0.992 214,-1,1220.7,30.2,62,119.7,1 214,-1,686.8,207.1,79,113.2,1 214,-1,356.7,106,52.1,179.3,1 214,-1,705.2,1.3,55.6,159.2,1 214,-1,211.8,126.1,56.1,166.5,1 214,-1,1493,69.4,52.9,149.2,1 214,-1,109.2,349.5,50.2,187.3,1 214,-1,1356.8,567.7,103.7,245,1 214,-1,404.2,580.6,84.4,247.2,1 214,-1,288.7,128.3,54.4,170.4,1 214,-1,1721.8,456.8,76.5,212.2,1 214,-1,1132,134.1,62.1,188.4,1 214,-1,900.5,143.6,71.8,186.4,1 214,-1,106.9,667,101.9,247.7,1 214,-1,794.8,152.7,59.9,167.7,1 214,-1,1203.8,137.8,45.7,163.5,1 214,-1,505.4,325.5,73.6,215.7,1 214,-1,1005.8,132.2,49.1,158.2,1 214,-1,427.4,199.9,75,216.5,1 214,-1,223.7,518.4,59.8,207.2,1 214,-1,521.5,125.1,49.2,175.6,1 214,-1,845.2,110.3,58.7,171,1 214,-1,812.6,321.4,75.3,189.3,1 214,-1,20.7,609.5,107.9,242.2,1 214,-1,566,265.4,57.9,178,1 214,-1,758.1,304.1,75.4,207.3,0.999 214,-1,947.5,910.4,73.2,170.6,0.979 214,-1,103,557.3,64.7,186,0.06 674,-1,1222.2,29,60.8,120.1,1 674,-1,687.1,206.4,79.7,113.6,1 674,-1,1481.6,6.5,59.9,142.5,1 674,-1,563.8,110.7,50.2,177.3,1 674,-1,315.2,353.5,69.4,210.9,1 674,-1,481.6,124.4,47.9,173.5,1 674,-1,391.3,528.2,94.1,251.9,1 674,-1,801.3,144.2,64.1,174.6,1 674,-1,360.6,116.3,48.9,164.4,1 674,-1,1710.4,455.7,98.6,209.6,1 674,-1,1573.8,589.1,98.9,234.8,1 674,-1,1493.3,161.2,53.4,174.4,1 674,-1,1623.1,155.1,75.9,189,1 674,-1,415.7,134.4,74,163.4,1 674,-1,1108.5,1.1,60.3,104.2,1 674,-1,750.8,79.6,48.6,156.5,1 674,-1,406.4,5.8,56.3,155.9,1 674,-1,229.1,211.1,63.8,198.1,1 674,-1,1392.2,866.1,96.9,214.9,1 674,-1,1305,894.1,89.7,186.9,1 674,-1,283.7,222.3,54.9,181.1,1 674,-1,353.8,6.1,53.1,151.7,0.999 674,-1,296.7,1,53.6,135.2,0.997 674,-1,290.1,119.4,48.6,172.5,0.174 719,-1,1221.7,30.5,61.5,118.3,1 719,-1,687,205.9,79.2,113.8,1 719,-1,1479.8,7.7,58.6,144.8,1 719,-1,551.8,114.1,60.8,177.1,1 719,-1,1712.8,457.5,94.1,206,1 719,-1,1475.1,115.2,52.6,181.2,1 719,-1,1599,120.8,63.3,181.4,1 719,-1,479.9,161,50.6,181.4,1 719,-1,390.1,547.8,95.7,244.6,1 719,-1,1574.3,589.7,99.9,235.4,1 719,-1,299.1,402.4,75.2,219.2,1 719,-1,412.2,171.7,70,163.4,1 719,-1,261,192.4,55.2,197.9,1 719,-1,749.9,82.3,49.4,153.7,1 719,-1,360.8,109.7,48.7,172.7,1 719,-1,415.7,36.1,61.6,165.7,1 719,-1,311.8,204.7,63.9,177.8,1 719,-1,1263.2,755.4,90.5,264.1,1 719,-1,1183.9,779.8,83,268.5,1 719,-1,791.3,137.5,48.2,178.6,1 719,-1,466.8,16.4,48,141,1 719,-1,236.1,133.4,49.3,169.7,0.999 719,-1,961.7,1,76.6,79.4,0.169 209,-1,1221.9,30.5,61.5,119.9,1 209,-1,686.9,207.2,78.3,113.1,1 209,-1,211.5,127.4,55.6,165.8,1 209,-1,355.7,107.1,54.4,179.5,1 209,-1,397.6,589.8,90.6,247.4,1 209,-1,705,1.2,55.3,160,1 209,-1,1492.3,70.2,53.3,146.9,1 209,-1,288.2,125.9,56,172.8,1 209,-1,1721.8,456.2,77.1,212,1 209,-1,109.9,350.4,49.4,185.4,1 209,-1,1357.6,567.4,104.4,245.4,1 209,-1,87.3,655.6,109.9,251,1 209,-1,424.4,204.5,77.2,213.5,1 209,-1,1205.7,141.7,50.9,164.6,1 209,-1,506.3,320.5,74.8,215.9,1 209,-1,795.1,150.9,61.1,171.5,1 209,-1,226.7,521.6,60.9,209.6,1 209,-1,521.7,129.5,51.8,167.9,1 209,-1,897.7,150.4,68.1,192,1 209,-1,1142,138.2,60.5,181.3,1 209,-1,1019.5,133.1,46.1,156.8,1 209,-1,807.6,312.6,75.2,191.8,1 209,-1,1.4,614.1,102.1,232.4,1 209,-1,559.9,262.5,54.5,182,0.999 209,-1,755.4,300.5,72.3,202.1,0.999 209,-1,858.7,108.3,55.9,172.2,0.999 209,-1,377.2,37.2,58.2,167.2,0.999 209,-1,954.6,914.5,75.5,166.5,0.993 691,-1,1221.4,29.3,62.4,120,1 691,-1,687,206.7,79.4,112.8,1 691,-1,1481.5,5.5,59.2,147,1 691,-1,1486.9,135.9,54.1,179,1 691,-1,1612.2,144.7,69.3,182.8,1 691,-1,563.2,112.1,51.4,177.8,1 691,-1,803.7,145.7,53.8,170.2,1 691,-1,370.6,531.8,92,251,1 691,-1,1711.2,454.9,97.6,213.2,1 691,-1,1575.8,589.5,96.2,235.3,1 691,-1,421.7,144.9,63.7,166.7,1 691,-1,749.7,79.4,50.2,158.1,1 691,-1,361,113.9,49.7,172.6,1 691,-1,487.5,132.1,46.6,181.6,1 691,-1,309.1,376.9,67.4,206.1,1 691,-1,248.6,201.2,59.4,197.9,1 691,-1,1332,821.4,101.9,259.6,1 691,-1,1254.7,851.4,86.5,229.6,1 691,-1,224,134.4,53.3,162.1,1 691,-1,300.4,214.7,59.2,180.4,1 691,-1,480.2,32,48.1,144.1,1 691,-1,406.2,21.1,55.8,161.4,1 691,-1,1049.5,1,61.5,99.5,1 691,-1,820.8,924.4,83.1,156.6,0.498 929,-1,1221.8,29.7,61.3,119.9,1 929,-1,686.4,206,79.9,113.7,1 929,-1,794.3,140.5,74,171.9,1 929,-1,453.1,213.8,68.5,188.2,1 929,-1,1127.6,48.2,58.3,168.8,1 929,-1,1487,1,62.4,125.3,1 929,-1,1475.6,119.8,61.7,159.6,1 929,-1,1272.9,817.1,98,263.9,1 929,-1,1574.3,588.6,104.6,235.3,1 929,-1,749.8,69.7,57,163.1,1 929,-1,557.1,115.1,58.6,173.8,1 929,-1,944.5,389.7,81.4,222.5,1 929,-1,1719.2,454.2,80.5,213,1 929,-1,1427.4,2.3,47.6,125,1 929,-1,314.5,728.6,84.2,258,1 929,-1,1619.7,77.9,54.5,165.5,1 929,-1,301,161.7,68.6,199.1,1 929,-1,253,1,55.2,120.4,1 929,-1,402.4,370.1,62.1,206.8,1 929,-1,330.3,375.1,77.7,198,1 929,-1,863.1,406.2,63.6,215,1 929,-1,473.1,24.1,53.9,152.9,1 929,-1,239.6,131.9,54.7,167.8,1 929,-1,1733.8,112.7,53.4,173.9,1 929,-1,1750.1,680.9,88.8,246,1 929,-1,367.5,213.4,63.5,181.7,1 929,-1,426.5,65.7,62.7,181,1 929,-1,313.7,2.1,47.1,126.4,0.996 727,-1,1221.5,29.9,62.6,118.6,1 727,-1,686.9,206,79.6,114.3,1 727,-1,1470.6,111.1,54,171,1 727,-1,551.5,111.4,59.4,178.3,1 727,-1,1479.8,7.8,58.7,143.6,1 727,-1,260.8,186.1,56.3,204.2,1 727,-1,413.9,180.1,66.1,166.3,1 727,-1,477.4,162.4,52.2,186.8,1 727,-1,1712.3,454.8,96.9,210.7,1 727,-1,1574,590.5,99,234,1 727,-1,300.7,417.6,72.5,220.4,1 727,-1,317.6,199.3,63.2,181.3,1 727,-1,1597.7,112.6,59.4,181.9,1 727,-1,402.2,552,96.3,249.1,1 727,-1,786.2,138.5,51.3,177,1 727,-1,1237.5,741.7,98.9,271.1,1 727,-1,359.3,107.2,48.9,180.4,1 727,-1,749.8,80.8,50.5,154.4,1 727,-1,1165.1,762.6,80.6,255,1 727,-1,424.5,41.8,57.2,167.1,0.999 727,-1,320.2,1,51,133.7,0.999 727,-1,465.3,8.6,46.6,142.6,0.999 727,-1,236.6,136.6,54.2,170,0.997 727,-1,260.7,5.1,45.5,117.9,0.067 493,-1,1221.3,30.6,62.3,118.6,1 493,-1,686.1,205.8,79.8,114.6,1 493,-1,998.6,1,55.1,135,1 493,-1,1498.5,1,57.4,126.6,1 493,-1,1733.9,185.2,67.6,174,1 493,-1,1815.3,172.7,74.3,185.6,1 493,-1,803.2,604.4,92.5,256.6,1 493,-1,1700.4,459.6,98.8,207.6,1 493,-1,875,1,53.5,128.4,1 493,-1,464.3,150.7,65.4,200.7,1 493,-1,931.1,1,56,131.1,1 493,-1,800.3,144.2,54.2,174.4,1 493,-1,138.9,337.3,67.3,189,1 493,-1,307.4,189.8,49.8,167.9,1 493,-1,408,162.5,61.2,183.9,1 493,-1,1691.7,41.8,54.4,167.3,1 493,-1,1538.6,600.3,90.8,239.2,1 493,-1,301.2,760.9,79,259.6,1 493,-1,920.8,660.3,112.8,251.1,1 493,-1,214.7,731.3,99.7,271,1 493,-1,217.6,136.1,63.4,164.2,1 493,-1,1631.8,29.1,58.6,175.4,1 493,-1,713.9,94,60.3,163.7,1 493,-1,1621.6,588.7,76.1,217,1 493,-1,450.6,18.5,72.3,176.5,1 493,-1,1628.7,324.6,61.3,197,1 493,-1,1760.9,343.5,76.3,215,1 493,-1,360.6,107.5,54.8,179.5,1 493,-1,406.9,9.1,47.5,164.8,1 493,-1,503.8,93.1,63.3,170,1 493,-1,1009.9,677.5,80.2,236.9,0.997 493,-1,288.4,129.3,50.8,170.8,0.995 493,-1,753.8,97.9,43.5,141.3,0.406 590,-1,1221.8,31.3,60.8,119.3,1 590,-1,687.2,206,79.3,113.9,1 590,-1,1481,4.6,60.8,144.3,1 590,-1,800.4,144.1,65.8,173.7,1 590,-1,1640.8,1,55.6,121,1 590,-1,359.5,111,53.1,173.7,1 590,-1,371,257.8,66.2,197.4,1 590,-1,560.5,113.2,50.3,174.2,1 590,-1,1651.3,238.4,78.9,205,1 590,-1,225,275.4,63.3,185.7,1 590,-1,288.7,125.6,52,170.2,1 590,-1,1719.6,455.6,82.3,212.2,1 590,-1,1574.6,589.2,94.6,234.5,1 590,-1,471.7,110.4,49.8,163.7,1 590,-1,163.6,251.7,59,206.9,1 590,-1,754,81.9,43.4,152.9,1 590,-1,214.3,134.3,54.9,164.3,1 590,-1,428.4,63.6,45.7,176.3,1 590,-1,872.1,1.8,50.8,99.2,1 590,-1,1065.1,847.8,122.3,233.2,1 590,-1,1857.2,270.6,63.8,171.4,1 590,-1,298.1,895.7,103.5,185.3,0.681 590,-1,1157.4,856.1,87.4,224.9,0.412 760,-1,1221.8,29.7,61.6,119.5,1 760,-1,686.7,205.9,79.6,113.5,1 760,-1,544.8,115.7,65.9,177.3,1 760,-1,1717,453.8,82,212.8,1 760,-1,782.2,134.6,63.6,177.5,1 760,-1,303.9,463.1,77.9,226.5,1 760,-1,1575.2,590.2,100.5,234.5,1 760,-1,1462.5,87,52.8,164.5,1 760,-1,1582.8,88.7,62.5,176.7,1 760,-1,267.2,180.8,57.8,200.3,1 760,-1,329.7,192.4,56.6,180.3,1 760,-1,459.5,189.3,54.4,188.2,1 760,-1,1496,15,59.9,149.5,1 760,-1,402.5,205.8,62.5,173.9,1 760,-1,509.6,564.4,75.9,252.6,1 760,-1,257.3,1.1,50.1,122.6,1 760,-1,752.5,82.8,48.6,152.4,1 760,-1,455.7,64.1,56.8,171.2,1 760,-1,1156.9,666.5,92.8,270.7,1 760,-1,1092.5,687.9,79,251.2,1 760,-1,235.9,135.5,49.2,159.4,1 760,-1,399.5,65.1,56.2,167,1 760,-1,358.9,109.7,52.5,168,1 32,-1,686.8,206.4,79.4,112.6,1 32,-1,1206.3,29.6,73.4,121.6,1 32,-1,387.2,373.3,90,238.4,1 32,-1,704.3,1,56.2,157.8,1 32,-1,1486.9,69.7,55.2,150,1 32,-1,1361.2,566.8,105.7,244.4,1 32,-1,1723.8,455.9,75.5,211.6,1 32,-1,188.9,369.2,68.4,198.4,1 32,-1,794.9,149.6,62.2,173.9,1 32,-1,215.2,127.9,47.1,163,1 32,-1,488.9,164.8,85.4,190.9,1 32,-1,102,547.1,86.1,253,1 32,-1,968.3,199.1,77.6,180.3,1 32,-1,283.6,123.7,55,171.8,1 32,-1,356.2,105.8,52.8,178.6,1 32,-1,1833.6,248,68,190.8,1 32,-1,869.1,141.7,57.3,182,1 32,-1,1363.6,187.8,49.4,165.9,1 32,-1,1.7,818.1,60.4,236.7,1 32,-1,410.1,84.8,53.4,156.5,1 32,-1,454.7,58.8,46.1,163.5,1 32,-1,917.6,154.7,48,160.4,1 32,-1,1590.7,233.7,55.9,177.5,0.999 32,-1,1009.6,155.9,79,183.9,0.997 16,-1,687.7,206.4,78,113.3,1 16,-1,498,150.1,104.6,191.1,1 16,-1,1203.6,33.5,72.7,119.7,1 16,-1,1486.5,69.7,56,148.5,1 16,-1,1361.6,567,105.3,244.8,1 16,-1,704.4,1.5,56.9,157.5,1 16,-1,794.7,149.9,61.6,174.8,1 16,-1,1724.9,457.1,75.4,209.1,1 16,-1,380.1,391.3,85.7,236.9,1 16,-1,102.1,547.2,85.3,251.5,1 16,-1,355.3,104.9,54.7,178.4,1 16,-1,217.6,125.7,48.1,166.8,1 16,-1,417.2,86.3,55.2,166.4,1 16,-1,1807.7,225,65.9,186.4,1 16,-1,1618.6,249.3,60.8,179.6,1 16,-1,878.4,132.9,61.3,182.3,1 16,-1,1034.1,207.1,75.2,175.5,1 16,-1,284.9,124.3,53.8,171.6,1 16,-1,207.4,382.3,65.1,194.5,1 16,-1,461.6,67.1,48.4,173.9,1 16,-1,1432.5,240.4,49.1,168.9,0.999 16,-1,1393.4,188,52.9,178.3,0.999 16,-1,246.5,367.4,53.5,197.7,0.723 16,-1,1,845,42.7,236,0.491 949,-1,686.3,206.1,80.2,113.5,1 949,-1,1221.4,30.2,62.4,118.5,1 949,-1,794.4,139.4,72.4,174.5,1 949,-1,1473.9,133.6,63.6,170.2,1 949,-1,1484.4,1,56.4,112.8,1 949,-1,322.5,762.5,97.3,275.2,1 949,-1,749.9,69.7,56.9,164,1 949,-1,1245.6,763.2,91.6,270.3,1 949,-1,1574.4,587.5,104.5,237.7,1 949,-1,1141.3,68.3,59.4,173,1 949,-1,934.1,357,69,215.5,1 949,-1,1721,454.5,77.6,212.4,1 949,-1,1636,100.7,53.3,171,1 949,-1,553.6,117.7,53.9,168.5,1 949,-1,394.8,385.3,65.3,214.7,1 949,-1,322.9,405,80,200.3,1 949,-1,1415.9,1,47.9,117.2,1 949,-1,858.9,369.7,63.9,212.1,1 949,-1,346.4,232.6,62.6,182.5,1 949,-1,430.4,231.6,68,188.4,1 949,-1,235.2,133.6,58.5,172.2,1 949,-1,436.5,76.6,55.4,174.2,1 949,-1,1744.1,674.1,93.3,251.2,1 949,-1,478.7,37.7,54.7,152.9,1 949,-1,250.2,1.8,53.5,119.6,1 949,-1,479.9,218.5,61,182.7,1 949,-1,1756.3,133,61.5,178.3,1 949,-1,312.1,172.3,61.3,177.6,0.997 949,-1,288.3,129.3,53,163.6,0.851 749,-1,1221.5,30.4,62.2,118.5,1 749,-1,686.7,206.1,79,113.5,1 749,-1,1464.2,96.5,54.8,167.2,1 749,-1,259.4,182.4,59.3,202.6,1 749,-1,548.9,115.8,62.4,175.1,1 749,-1,779.8,136.2,59.9,176.3,1 749,-1,1576.4,588.7,98.8,234.4,1 749,-1,1716.2,456.7,87.1,207.8,1 749,-1,459.5,560.8,99.4,252.8,1 749,-1,301.7,446.4,72.1,222.3,1 749,-1,1492.7,15.4,58.5,141.3,1 749,-1,1595.4,93.7,59.7,181.9,1 749,-1,331.6,199.2,57.1,174.3,1 749,-1,465.9,186.8,53.6,185.2,1 749,-1,443.4,56.5,57.1,169.8,1 749,-1,399.7,197.7,68.9,175.6,1 749,-1,1112.2,712.7,80,261.4,1 749,-1,749.8,82.3,50.4,151.1,1 749,-1,1181.9,692.5,87.4,258,1 749,-1,258.3,1,48.7,121.1,1 749,-1,361,112.6,46.8,166,0.999 749,-1,391,48.4,53.7,182.1,0.991 749,-1,291.2,131.1,44.6,160.4,0.97 749,-1,238.3,144.5,50.2,161.8,0.969 299,-1,1221.7,32,60.7,117.8,1 299,-1,1680.5,45.4,57.3,152.4,1 299,-1,686.7,206.9,79.8,114.4,1 299,-1,936.9,62.5,64.3,176.7,1 299,-1,238,394.1,60,195.8,1 299,-1,353.8,107.9,55,180.7,1 299,-1,1720,459.8,78.6,209.3,1 299,-1,1461.2,20,52.3,147.5,1 299,-1,109.2,351.3,50.6,190.6,1 299,-1,248.1,578.7,104.4,255.5,1 299,-1,409,31.2,55.5,163.4,1 299,-1,452.8,129.9,76.4,204.6,1 299,-1,705,1,54.4,158.9,1 299,-1,795,148.7,61.6,180.8,1 299,-1,1008.8,87.5,60.7,183.9,1 299,-1,283.7,131.1,53.3,171.3,1 299,-1,218.4,130.4,59.7,167.4,1 299,-1,533.6,442.3,70,217.1,1 299,-1,1078.2,86.7,51.3,164,1 299,-1,1469.4,593.9,91.6,240.3,1 299,-1,382.9,425.2,84.1,227,1 299,-1,741.3,102.8,47,171.2,1 299,-1,820.4,395,91,217.5,1 299,-1,887.5,412.8,74.1,201.1,1 299,-1,302.2,843.4,100.7,237.6,1 299,-1,512,104.6,48.2,175.2,0.999 299,-1,461.4,423.8,63.3,230.5,0.999 299,-1,937.9,912.9,68.2,168.1,0.937 299,-1,832.2,110.8,46.9,150,0.585 814,-1,1221.3,29.7,62.7,119.2,1 814,-1,687.6,205.4,78.1,114.6,1 814,-1,788.8,134.3,58.4,176.2,1 814,-1,1622.9,1.3,58.7,146.6,1 814,-1,554.9,116.9,63.7,173.6,1 814,-1,1723.6,453.3,74.7,214.1,1 814,-1,1577.7,594,97.5,232.6,1 814,-1,276,538.7,77.4,241.7,1 814,-1,440.9,238.4,54.5,197,1 814,-1,280,165.6,63.3,198.4,1 814,-1,474.2,108.7,63.4,178.2,1 814,-1,1471.8,33.6,64.1,157.7,1 814,-1,379,259.7,71.7,177.3,1 814,-1,234.5,135.4,51,164.7,1 814,-1,751,73.1,57.8,159.3,1 814,-1,988.4,586.6,70.1,246.7,1 814,-1,347.1,179.6,52.1,172.1,1 814,-1,1431.1,53.4,50.9,157.1,1 814,-1,1062.1,563.9,72.6,248.9,1 814,-1,425.8,108.2,60.5,167.1,0.998 309,-1,1220.8,30.9,61.9,118.8,1 309,-1,686.4,207,79.2,113.2,1 309,-1,1457.2,11.3,54.7,146.2,1 309,-1,415.6,35.5,59,164,1 309,-1,1718.8,457.3,81.4,212.4,1 309,-1,1693.3,46.6,58.6,159.6,1 309,-1,303.4,581,84,247.5,1 309,-1,108.6,353.1,52.1,186.5,1 309,-1,357.7,112,55.4,174.6,1 309,-1,934.3,54,63.3,171.9,1 309,-1,795.5,146.9,59.3,177.4,1 309,-1,235.1,384.6,59.2,190.2,1 309,-1,453.8,123.8,73.1,204.2,1 309,-1,1486.6,597.5,89.8,242.6,1 309,-1,1001.2,80.7,62,183.3,1 309,-1,530.5,454.2,66.8,213.6,1 309,-1,705.5,1,52.8,158.9,1 309,-1,216.9,130.3,55.1,165.5,1 309,-1,278.8,131,56,172.4,1 309,-1,889,426.4,70.4,194.8,1 309,-1,1060.6,80.3,54.7,167.6,1 309,-1,326.9,868.9,90.2,212.1,1 309,-1,734.7,98.5,45.6,169.2,1 309,-1,827.9,417.1,81.3,212.1,1 309,-1,445.7,436.8,69.5,235.3,0.999 309,-1,392.8,404.6,82.4,234.7,0.999 309,-1,511.4,103.8,44.2,171.7,0.997 309,-1,367.7,788.6,98.1,276.9,0.996 309,-1,928.8,910.5,78,170.5,0.995 924,-1,1221.3,30.9,62.2,117.9,1 924,-1,686.2,206.3,80.3,113.1,1 924,-1,794.1,140.5,75,172.2,1 924,-1,1280.1,831.2,97.6,249.8,1 924,-1,1125.1,44.6,56.3,163.6,1 924,-1,1574.2,588.5,103.9,237,1 924,-1,1475.7,112.6,62.1,162.7,1 924,-1,457.8,201.9,68.8,198,1 924,-1,1721.6,453.4,77.4,212.6,1 924,-1,557,116.4,58,172.5,1 924,-1,1616.3,76.1,52,164.6,1 924,-1,750.9,73.4,56.3,160.1,1 924,-1,1428.5,2.1,48.2,128.4,1 924,-1,300.1,161.5,71.7,201.6,1 924,-1,1489.8,1.1,60.9,124.6,1 924,-1,405,366.2,61.1,207.8,1 924,-1,329.7,373.6,78.2,188.3,1 924,-1,946.9,392,81.9,228.8,1 924,-1,308.6,716,88.3,259.1,1 924,-1,239.8,131.6,54.3,165.9,1 924,-1,864,411,65.1,217.3,1 924,-1,471.3,20.5,52.9,152.8,1 924,-1,1729.1,103.3,55.1,175.7,1 924,-1,1748.8,678.3,93.8,243.9,1 924,-1,371.8,206,58.8,186.5,1 924,-1,255.3,1.8,53.1,120.8,1 924,-1,424.3,67.2,65.1,175.2,1 924,-1,313.5,1.6,47,130.3,1 575,-1,1221.5,30,61.7,119.5,1 575,-1,687,205.6,79.1,114.3,1 575,-1,1481.4,4.5,59.7,145,1 575,-1,377.4,238.3,68.1,198.4,1 575,-1,796.8,149.4,66.3,167.2,1 575,-1,1650.4,1,56.4,135.4,1 575,-1,1715.9,453.5,85.3,213,1 575,-1,551.9,114.1,51.9,171.8,1 575,-1,1833.8,255.8,71.1,181.4,1 575,-1,219.6,133.9,51.6,160.9,1 575,-1,1656,254.1,72.1,203,1 575,-1,452.5,123.1,50.4,163.4,1 575,-1,288.4,121.3,51.9,173.9,1 575,-1,754.2,79,43.9,155.6,1 575,-1,873.6,1,51.7,104.6,1 575,-1,209.8,279.2,63.4,193.5,1 575,-1,1580.2,588.7,88,235.5,1 575,-1,151.9,255.5,61.9,211.5,1 575,-1,1036.1,815.5,133.9,265.5,1 575,-1,358.5,107.6,54.8,177.2,1 575,-1,717.2,580.2,83,255,1 575,-1,423.5,62.3,45.8,164.8,0.998 575,-1,251.3,926.2,82,154.8,0.83 575,-1,1005.6,939.1,75,141.9,0.786 575,-1,1122.4,834.7,89.7,237.2,0.055 30,-1,686.9,206.1,79.4,113.2,1 30,-1,1205.5,29.9,73,120.3,1 30,-1,386.1,374.6,87.3,240.2,1 30,-1,1361.1,566.3,105.2,246,1 30,-1,1486.4,69.3,56,149.3,1 30,-1,703.9,1.8,56.2,157.1,1 30,-1,1724.2,456.2,75.9,212.1,1 30,-1,794.6,149.3,63,175.2,1 30,-1,215,128.7,48.2,163.8,1 30,-1,492.7,165.6,85.3,189.6,1 30,-1,976.9,198.7,76.9,178.5,1 30,-1,193.4,373.7,66.2,195.8,1 30,-1,102.2,546.4,85.9,254.4,1 30,-1,1831.7,245.1,63.4,187.5,1 30,-1,355.7,105.4,54.2,182.2,1 30,-1,284,123.7,54.6,173.2,1 30,-1,871.4,139.6,57.5,184.2,1 30,-1,411.2,83.3,52.5,158.4,1 30,-1,1368.9,190.3,46,168.2,1 30,-1,1,824.1,58.7,233.9,1 30,-1,455.6,58.7,47.8,162.4,1 30,-1,1594.9,236.9,55.2,184,1 30,-1,915.8,153.9,50.8,163.1,0.999 30,-1,1013.7,155,74.3,182.9,0.932 854,-1,1221.1,29.8,62.6,118.5,1 854,-1,687,206.1,79.2,114.1,1 854,-1,796.7,140.1,76.5,175,1 854,-1,488.7,1,49.6,114.8,1 854,-1,1669.4,31.1,52.6,160.5,1 854,-1,559.1,116,59.9,175.1,1 854,-1,1574.9,591.2,103,233.9,1 854,-1,1720.8,454.3,79,210.9,1 854,-1,1073.3,1,60.8,119.1,1 854,-1,343.4,299.3,77.6,176.2,1 854,-1,1471.8,61.5,59.6,159,1 854,-1,268.5,608,82.4,242.1,1 854,-1,1412.1,28.2,52.5,153.2,1 854,-1,297.8,160.5,72.4,197,1 854,-1,753.4,71.4,54.2,162.6,1 854,-1,434.9,282.6,54.3,201,1 854,-1,253.2,1,56,122.2,1 854,-1,238.9,131.5,54.7,166.4,1 854,-1,924.8,517.5,70.7,230.2,1 854,-1,472.8,139.9,61.9,189.8,1 854,-1,1003.7,494.6,79.6,240.6,1 854,-1,416.2,142.6,59.9,171.7,1 1002,-1,1221.4,30,61.5,119.1,1 1002,-1,685.9,206.4,80.8,112.3,1 1002,-1,794.3,139.5,73.6,173.6,1 1002,-1,504.3,269.7,64.1,188.5,1 1002,-1,1203.9,139.5,65.1,175.8,1 1002,-1,1474.8,184.5,62.9,157.5,1 1002,-1,1677.3,165.2,59.6,173,1 1002,-1,231.5,136.7,54.7,167.7,1 1002,-1,393.8,288.1,72.9,196,1 1002,-1,290.2,126.3,51.1,168.8,1 1002,-1,1809.6,199.8,68.3,187.1,1 1002,-1,1575.4,590.4,103.6,234.5,1 1002,-1,1721.9,453.6,76.6,216.5,1 1002,-1,309.3,280.3,65.2,195,1 1002,-1,926.7,282.9,68.6,210.3,1 1002,-1,751.1,73.4,55.3,160.9,1 1002,-1,540.6,120.8,60.8,169,1 1002,-1,301.3,472.1,84.5,208.2,1 1002,-1,842.1,294.3,65.5,205.9,1 1002,-1,1173.5,632.5,87.6,262.4,1 1002,-1,341.9,875.1,88.9,205.9,1 1002,-1,1741.9,674.4,91.3,249.3,1 1002,-1,381.9,458.9,68.7,221.7,1 1002,-1,314.2,1.3,43.5,129.7,1 1002,-1,438.1,65.7,62.1,173.5,1 1002,-1,597.5,550.5,107.1,247.9,1 1002,-1,508.7,87,51.1,150.8,0.999 1002,-1,395.9,169.9,73.4,183.7,0.999 1002,-1,381.7,1,55.1,148.7,0.072 253,-1,1220.4,30.8,62.7,118.7,1 253,-1,1610,6.3,63.4,150.7,1 253,-1,686.3,206.8,80,113.4,1 253,-1,287.5,128.3,56.3,171.2,1 253,-1,211.4,126.9,56.6,167.2,1 253,-1,1480.5,56.9,53.8,150.3,1 253,-1,393,508.8,85.7,238.5,1 253,-1,356.6,106.9,52.8,179.6,1 253,-1,797.9,153.6,59.2,175.2,1 253,-1,1720.3,457.4,78.8,211.7,1 253,-1,108.2,349.7,51.1,191.1,1 253,-1,225.2,458,60.6,202.6,1 253,-1,1148.4,111.2,51.3,164.6,1 253,-1,1382.8,566.5,105.3,243.5,1 253,-1,449.3,169.7,78,209.7,1 253,-1,704.1,1,54.8,157.3,1 253,-1,936.2,109.7,70.8,181.6,1 253,-1,223.3,736.5,90.7,262.1,1 253,-1,1070.6,114.9,56.9,178.6,1 253,-1,130.7,576.3,85.4,229.6,1 253,-1,858.1,355.8,77.9,195.5,1 253,-1,487.4,369.2,74.7,229,1 253,-1,792,350.6,83.1,206.3,1 253,-1,513.6,117.3,55.1,177.9,1 253,-1,579.7,379.9,65.9,210.9,1 253,-1,898.8,110.3,48.2,154.5,1 253,-1,762.7,98.7,51.2,173.6,1 253,-1,930.8,906.4,76.4,174.6,0.99 253,-1,362.7,1,59.2,170.2,0.916 912,-1,1222.1,29.9,61.1,118.9,1 912,-1,687.3,206.2,78.7,113.3,1 912,-1,469.2,203.5,67.9,188.7,1 912,-1,794.2,140.3,75.5,172.5,1 912,-1,1431.7,1,49.3,139.9,1 912,-1,1110.7,34.3,63.6,162.9,1 912,-1,558.6,115.7,57.1,172.6,1 912,-1,1575.3,590.6,103.4,234.2,1 912,-1,1301.1,869.6,96.2,211.4,1 912,-1,1721.9,452.2,77,215.3,1 912,-1,307.4,696.3,89.8,267.7,1 912,-1,1478,106.8,61.9,155.2,1 912,-1,413.7,347,58.9,208.7,1 912,-1,328.5,359.6,83.6,194.7,1 912,-1,871.7,430.1,62.9,219.1,1 912,-1,752.4,73.9,55.3,160.1,1 912,-1,1718.2,90.5,55.7,173.6,1 912,-1,301.4,163,70.2,200.3,1 912,-1,1601.8,64.3,52.6,161.9,1 912,-1,378.2,195.2,58.6,178,1 912,-1,241.2,133.8,56.8,165.3,1 912,-1,1746.3,680.1,96.6,242.1,1 912,-1,470.1,13.2,49.9,148.9,1 912,-1,422.2,66,58.1,174.2,1 912,-1,965,412.1,64.5,225.7,1 912,-1,1501.7,2.6,58.5,134.7,1 912,-1,253.9,1.4,53.9,118.8,1 912,-1,312.7,1,48.3,133.6,1 732,-1,1221.6,29.7,62,119.3,1 732,-1,686.8,205.7,79.1,114.6,1 732,-1,1479.6,5.6,59.9,148.4,1 732,-1,257.8,185.5,58,203.7,1 732,-1,1470.9,111.2,51.5,166.7,1 732,-1,406.1,187.6,73.5,162,1 732,-1,551.7,111.9,58.9,181.3,1 732,-1,297.8,423.2,76.1,223.3,1 732,-1,1226.8,731.9,94.3,271.5,1 732,-1,415.9,553.3,92.4,250.3,1 732,-1,1711.3,455.4,96.9,208.6,1 732,-1,1574.9,589.6,98.5,234.8,1 732,-1,783.8,137.3,55,177.7,1 732,-1,476.8,167.5,49.2,182.9,1 732,-1,1597.9,104.7,58.8,181.6,1 732,-1,322.1,197,61.5,181.6,1 732,-1,750.4,83.5,50.6,151.5,1 732,-1,360.6,108.7,48.3,174.9,1 732,-1,429.3,41.8,59.6,171.4,1 732,-1,1152.5,750.8,82.2,261.7,1 732,-1,318.4,1,50.5,131.6,0.999 732,-1,239,142.6,54.3,173.3,0.96 968,-1,686.1,206.4,80.1,113.1,1 968,-1,793.1,140.6,73.8,172.3,1 968,-1,1221.9,31.4,61,119.6,1 968,-1,1153.9,96.6,66.6,168.5,1 968,-1,1649.9,122.7,58.2,171.6,1 968,-1,1770.4,156.5,67.7,185.1,1 968,-1,1472.6,151.6,64.8,165.4,1 968,-1,927.3,326.6,71.6,216.6,1 968,-1,415.3,247.5,72.7,196.7,1 968,-1,1574.8,589,103.1,236.3,1 968,-1,490.8,233.1,65,183.6,1 968,-1,751.3,71.2,56.2,164.1,1 968,-1,1720.6,453.6,78.7,213.1,1 968,-1,329.8,798.4,91.4,275.3,1 968,-1,307.7,429.1,87.3,199.6,1 968,-1,443,70.9,57.3,178.9,1 968,-1,229.9,137.6,55.9,162.8,1 968,-1,550,119,53.6,169.3,1 968,-1,1213.9,722.2,92.1,259.7,1 968,-1,331.1,244.8,64.4,196.2,1 968,-1,847.6,342.3,65.1,206.8,1 968,-1,1401.2,1.8,46.8,101.5,1 968,-1,1455.5,1,63.8,103,1 968,-1,390.4,414.3,67.4,214.8,1 968,-1,1740.2,673.5,95.7,252.2,1 968,-1,313.4,1,48.1,130.1,1 968,-1,289.2,126,54.8,169.8,1 968,-1,484.5,52.8,54.5,159,0.999 968,-1,382.1,1.1,53.4,127.8,0.997 968,-1,326.5,162.5,63.1,155.1,0.052 561,-1,1221.3,30.2,62.2,120.1,1 561,-1,687.2,206.2,79,114.1,1 561,-1,1485.2,3.3,59.8,147,1 561,-1,1663.5,270.5,77.8,203.6,1 561,-1,789.4,145.3,65.1,176.4,1 561,-1,1581.7,3.7,55.5,140,1 561,-1,376.5,226.4,64.9,193.2,1 561,-1,540.1,115.7,59.5,173.1,1 561,-1,1720.5,453.9,81.2,212,1 561,-1,1816.6,235.6,70.4,186.1,1 561,-1,872.6,1,53.8,108.6,1 561,-1,198.2,291.5,66.4,190.3,1 561,-1,1658.3,2,52,144.4,1 561,-1,142,260.5,55,211.1,1 561,-1,218.9,135.1,57.5,163.5,1 561,-1,984,3.7,53,93.5,1 561,-1,289,121.8,52.4,171.8,1 561,-1,754.6,78.8,47.2,155.7,1 561,-1,1598,588.5,69.8,237.8,1 561,-1,745.7,590,80.8,252.4,1 561,-1,428.9,140.9,51.5,156.2,1 561,-1,358.5,108.2,52.2,171.6,1 561,-1,463,90,64.4,175.3,1 561,-1,245.1,903.1,78.8,177.9,1 561,-1,417.3,49.2,49.7,174.6,0.999 561,-1,1018.1,783.4,118.2,268.4,0.999 561,-1,1099.6,804,90.5,235.8,0.993 561,-1,1025.2,950.3,69.2,130.7,0.638 541,-1,1221.4,30.6,62.2,120,1 541,-1,687.3,206.2,78.3,113.7,1 541,-1,1488.5,2.9,58.1,141.9,1 541,-1,780.1,144.8,65,174.5,1 541,-1,387,206.2,63.5,193.7,1 541,-1,1717.5,457.4,82,208.5,1 541,-1,1681.7,290.2,75.1,202.7,1 541,-1,878.5,1.5,53,111.9,1 541,-1,289.9,125.8,52.9,171.5,1 541,-1,991.7,1.4,53.2,106,1 541,-1,1661,2.7,53.5,159.8,1 541,-1,176.2,307.1,65.5,193.2,1 541,-1,1776.7,227.4,69.3,178.8,1 541,-1,791.7,598.5,83.2,257.6,1 541,-1,456,107,69,185.5,1 541,-1,1599,1,54.3,158,1 541,-1,523.5,104.7,60.7,177.5,1 541,-1,216.5,135.3,61.8,162.4,1 541,-1,1590,583.4,67.4,242.7,1 541,-1,927.1,1,56.4,106.1,1 541,-1,197.8,808.1,99.8,272.9,1 541,-1,360,111.8,52.2,171,0.999 541,-1,261.8,846.5,77.1,234.5,0.999 541,-1,407.7,47.3,48.8,156.6,0.999 541,-1,130.8,275.1,51.6,210.7,0.988 541,-1,1061.7,765.2,88.2,248.9,0.984 541,-1,980,754.8,131.5,248.7,0.974 541,-1,756.2,84,46.1,153.1,0.95 541,-1,452.2,6.4,63.4,160.9,0.104 1038,-1,1222.3,30.2,61,118.6,1 1038,-1,686.8,206.9,79.8,114.5,1 1038,-1,794,141.4,70.8,172.7,1 1038,-1,483.9,313.7,75.2,198.4,1 1038,-1,1719.4,455.5,80.4,215.3,1 1038,-1,1280.3,186.2,64.5,165.1,1 1038,-1,288.8,127,52.4,170.3,1 1038,-1,232.5,138.1,55.2,165.7,1 1038,-1,1129,563.2,91.1,254.2,1 1038,-1,937.3,238.7,66.7,205.3,1 1038,-1,364.8,326.5,73.6,190.7,1 1038,-1,751.5,74.9,53.5,162,1 1038,-1,849.3,251.4,64.2,198.2,1 1038,-1,282.2,529.8,93.6,210.7,1 1038,-1,1710,204.5,61,179.8,1 1038,-1,293.6,317.1,68.9,206.8,1 1038,-1,374.9,505.2,66.2,234.1,1 1038,-1,1574,588.3,104.1,242.4,1 1038,-1,1469.2,210.6,72.9,166.8,1 1038,-1,1671.1,675.8,82.8,237.6,1 1038,-1,444.1,172.9,65,165.4,1 1038,-1,372.1,105.2,57.7,176.2,1 1038,-1,1854.4,240.2,65.2,200.2,1 1038,-1,580.7,538.2,69.5,253.4,1 1038,-1,308.1,2.6,36.4,127.4,1 1038,-1,496.2,169.5,70.6,189.6,0.999 1038,-1,538.1,117.2,60.7,179.3,0.998 1038,-1,431.1,68.5,63.4,207.5,0.924 659,-1,1220.7,28.6,62.9,121.1,1 659,-1,687.4,206.2,79.3,113.8,1 659,-1,1481.2,4.7,60.6,144.3,1 659,-1,1148.4,2.9,71.4,114.7,1 659,-1,550.3,111.4,61,176,1 659,-1,1710.9,455.7,97.2,209.4,1 659,-1,801.7,145.1,64.6,172.8,1 659,-1,359.2,114.6,50.1,168.8,1 659,-1,326.4,332.1,70.7,209.3,1 659,-1,1612.6,170.8,78.1,185.3,1 659,-1,1575.5,588.7,96.6,236,1 659,-1,444.1,529,79.3,250.2,1 659,-1,409,1.5,57.2,153.9,1 659,-1,751.3,80.5,46.5,154.8,1 659,-1,425.6,122.4,59.1,161,1 659,-1,474.9,108.9,47.1,177.1,1 659,-1,222.6,215.6,58.1,202.9,1 659,-1,273.7,232.2,58.1,181.4,1 659,-1,1428,907.4,93.7,173.6,1 659,-1,352.7,1,53.6,143.9,1 659,-1,287.3,123.4,53.1,174.4,0.999 659,-1,1354.6,927.4,83.6,153.6,0.977 945,-1,1221.1,30.2,62.7,119.8,1 945,-1,686.5,206.2,79.9,113.4,1 945,-1,1485,1,59.1,115.5,1 945,-1,793.1,140.7,75.4,172.9,1 945,-1,1476.4,129.7,60.2,164.1,1 945,-1,1574.8,588.4,104.4,238.2,1 945,-1,323.6,756.2,95.4,270.4,1 945,-1,1134.5,68.5,62.6,169.5,1 945,-1,749.8,71.4,57.1,161.8,1 945,-1,1629.8,93.4,56.9,168.8,1 945,-1,350.7,227.3,60.8,180.6,1 945,-1,553.4,116.7,57.6,172.3,1 945,-1,1719.8,453.7,79.4,213,1 945,-1,437.2,227.5,66.2,194,1 945,-1,236.4,132.2,58.8,172.6,1 945,-1,938.2,362,67.7,220.2,1 945,-1,1417.5,1,46.7,118.7,1 945,-1,1249.4,775.3,94.7,286.2,1 945,-1,325.5,397.7,82,199,1 945,-1,858.4,378.9,64.3,216.2,1 945,-1,396,384.5,63.7,217.2,1 945,-1,253.4,1,53.5,119.6,1 945,-1,1748.9,133.7,59.6,173.6,1 945,-1,477.7,38.1,52.8,150.4,1 945,-1,1744.7,675.2,92.2,250.7,1 945,-1,435.3,77.2,55,176,1 945,-1,309.4,164.2,62.7,193.3,1 945,-1,477.5,215,63.2,184.3,0.999 801,-1,1221,29.4,62.5,119.4,1 801,-1,687.2,205.6,79,113.9,1 801,-1,287,525,77.1,238.1,1 801,-1,1723.9,451.9,74.9,215.2,1 801,-1,783.6,131.8,51.1,179.9,1 801,-1,548.9,113.3,62.9,177.6,1 801,-1,1574.2,589.9,101.4,235.4,1 801,-1,1612.7,1,56.2,129.6,1 801,-1,479.2,93.6,62.3,177.4,1 801,-1,278.2,166.6,60.1,195.4,1 801,-1,1479.9,29.6,60.7,151.2,1 801,-1,232.1,134.5,52.1,167.5,1 801,-1,387.8,242.6,70.4,175.3,1 801,-1,750.4,71,56.2,161.6,1 801,-1,254.6,1.3,53.1,122.2,1 801,-1,440.6,231.6,57.6,195.5,1 801,-1,1077.5,586.5,88.3,252.3,1 801,-1,346.9,181.1,49.2,178.3,1 801,-1,422.6,95.8,56.6,168.1,1 801,-1,1009.9,614.1,77.2,247.6,1 801,-1,1441.8,57.3,48.9,157.6,1 801,-1,444.4,1,41.8,87.1,0.999 801,-1,611.4,580.1,88.2,234.2,0.962 391,-1,1222.4,31.1,61.1,118.6,1 391,-1,686.3,206.3,79.6,113.3,1 391,-1,1637,28.1,73.2,175.1,1 391,-1,359.1,106.5,54.9,178.7,1 391,-1,366.5,1.7,63.4,101.5,1 391,-1,1125.6,469.6,78.3,201.5,1 391,-1,1773.5,109.1,68.3,165.4,1 391,-1,828.3,1,55,120.3,1 391,-1,446.8,284.5,82.6,210.8,1 391,-1,438.3,573.8,72.5,234,1 391,-1,323.4,554.8,95.4,249.7,1 391,-1,108.8,349,53,191.7,1 391,-1,794.7,151.8,59.7,171.5,1 391,-1,457.8,72.1,68.6,193.8,1 391,-1,219.5,142.7,59.9,155.4,1 391,-1,948.9,25.4,64.4,175.7,1 391,-1,282.2,126.9,55.5,167,1 391,-1,207.6,287.5,53.6,186,1 391,-1,1595,627.8,86.6,250.8,1 391,-1,1012.7,40.4,55.5,162.5,1 391,-1,918.2,522.3,81.3,215.6,1 391,-1,1719.7,454.4,77.8,215.2,1 391,-1,849.3,506.8,87.6,231.3,1 391,-1,1774.3,430,71.8,212.2,0.999 391,-1,978.7,905,90.5,176,0.993 391,-1,708.9,1,54.6,147.8,0.99 391,-1,537,74.2,45.7,161.5,0.905 391,-1,759.2,106.4,45.5,135.4,0.84 391,-1,434.9,81.1,46.1,169,0.539 391,-1,712.9,86.5,52.1,178.3,0.219 391,-1,924.3,9.3,50,118.2,0.123 403,-1,1222.2,30.9,61.3,118.3,1 403,-1,686,206,80.1,115,1 403,-1,1644.1,49.4,65.4,170.4,1 403,-1,357.6,105.2,55.6,180,1 403,-1,457.7,268.7,75.3,206.1,1 403,-1,1771.9,118.3,65.6,167.5,1 403,-1,361.8,1,66.3,109,1 403,-1,945.6,21.1,62.4,169.9,1 403,-1,827.9,1,56.5,127.9,1 403,-1,305.9,574.1,85.4,242,1 403,-1,218.6,141.4,64.4,156.9,1 403,-1,549.1,67.5,60.6,172.7,1 403,-1,108.8,347.6,52.3,193.2,1 403,-1,1718.2,460.5,80.6,205.7,1 403,-1,795.9,151.9,58.9,171.7,1 403,-1,1179.6,483,63.2,205,1 403,-1,284.2,129.9,55.3,164.4,1 403,-1,1006.1,36.5,56.7,160.5,1 403,-1,425.4,597.4,67.3,237.4,1 403,-1,205.1,272,52.6,184.4,1 403,-1,1588.7,618.2,98.6,252.5,1 403,-1,424.8,89.6,53.7,173.7,1 403,-1,853.5,522.3,99.7,236.4,1 403,-1,925.7,539.9,80.9,213.2,1 403,-1,467.4,70.6,64.9,190.2,1 403,-1,710.3,91.4,64.9,170.5,1 403,-1,717.8,1,51.6,134.5,1 403,-1,979.4,916.3,85,164.7,0.988 403,-1,430.4,4.2,28.7,100.4,0.303 403,-1,681.6,589.9,77.1,211.6,0.277 911,-1,1221.9,30.2,61.5,118.6,1 911,-1,686.2,206.1,80.5,113.1,1 911,-1,794,140.5,75.7,171.3,1 911,-1,471.9,203.3,66.3,185.2,1 911,-1,1431.7,1,49.5,140.5,1 911,-1,1111.3,33.9,63,160.6,1 911,-1,1576,590.3,103.5,235.5,1 911,-1,556.9,115.3,58.4,173.9,1 911,-1,308.9,695.9,90.2,265.4,1 911,-1,1303,874.6,96.6,206.4,1 911,-1,1720.9,453.8,78.3,213.4,1 911,-1,1478.8,107.5,61.5,153.9,1 911,-1,871,431,65.7,222.3,1 911,-1,414.2,347.5,59,206.4,1 911,-1,1600.1,63.6,53,163.1,1 911,-1,329.4,357.7,83.2,191.6,1 911,-1,1717.3,91.1,56.2,172.6,1 911,-1,752.1,73.6,55.2,160.2,1 911,-1,379.3,194.3,58.9,179.4,1 911,-1,301.7,162.9,69.9,200.3,1 911,-1,469.7,11.9,50.4,150.4,1 911,-1,241.4,133.7,56.7,165.4,1 911,-1,1746.4,680.9,96.7,239.3,1 911,-1,966,414.1,65.3,224.6,1 911,-1,421.9,66.5,56.5,173.3,1 911,-1,1502.8,3.5,57.3,131.5,1 911,-1,253.8,1.7,54.6,119.2,1 911,-1,313,1.3,46.6,132.5,1 614,-1,1221.3,31.2,62.2,119.3,1 614,-1,687,206.1,78.8,113.4,1 614,-1,1480.2,4.8,60.6,145.3,1 614,-1,801.2,143.3,67.6,172.1,1 614,-1,1635.3,210.6,71.3,194.3,1 614,-1,360,283.9,67.2,203,1 614,-1,1711.4,457.3,91.6,210,1 614,-1,356.3,113.1,54.3,174.9,1 614,-1,1574.9,589.3,96.8,233.7,1 614,-1,172.8,241.2,66.1,199.9,1 614,-1,579.5,551.3,88.8,234.8,1 614,-1,244.2,258.1,61.4,185.1,1 614,-1,1607.2,1,53.7,103,1 614,-1,287.9,127.2,51,168.9,1 614,-1,558.2,107.6,53.4,180.7,1 614,-1,224,136.7,54,159.4,1 614,-1,491.8,90.1,51.7,158.2,1 614,-1,754.3,83,42.5,152.7,1 614,-1,442.8,81.2,48.7,163.6,1 614,-1,1101.2,894,117.2,187,1 614,-1,398.1,91.5,52.9,162.4,0.997 614,-1,354.5,5.9,51.2,111.2,0.141 610,-1,1221.3,30.5,62.2,119.5,1 610,-1,687.2,205.7,78.6,113.9,1 610,-1,1481.2,3.5,60.1,145.1,1 610,-1,801.5,146.7,65.5,167.9,1 610,-1,361.1,279.5,69.5,198.3,1 610,-1,1611.6,2.1,54.8,103.8,1 610,-1,1709.1,456.2,93.8,210.7,1 610,-1,1640.1,220.4,70.2,196,1 610,-1,172.1,242.5,60.9,199.2,1 610,-1,1573.8,589.7,97.5,234.6,1 610,-1,587.6,555.3,104.4,229,1 610,-1,242.4,262.7,60.8,181,1 610,-1,559.6,109.1,51.6,179.3,1 610,-1,491.7,89.4,46.5,158.5,1 610,-1,358,109.3,51.8,178.9,1 610,-1,220.6,136.5,56.2,162.7,1 610,-1,288.4,126.2,51,172.2,1 610,-1,439.5,79.9,47.2,162.4,1 610,-1,1094.8,886.7,120.6,194.3,1 610,-1,753.9,82.6,42.8,152.4,1 610,-1,395.7,89.2,52.9,161.4,0.988 1004,-1,1221.3,30.4,61.6,118,1 1004,-1,686.1,206.3,79.9,113.1,1 1004,-1,1206.5,140.6,66,177.9,1 1004,-1,501.5,273.7,67.5,192.3,1 1004,-1,794.5,140,74.1,172.8,1 1004,-1,396,285.4,70.4,191.8,1 1004,-1,290.2,125.5,51.6,168.2,1 1004,-1,1474.4,183.9,63.5,156.8,1 1004,-1,1810.5,204.1,68.1,180.4,1 1004,-1,231.4,136.2,55.5,168.4,1 1004,-1,1575.3,590.4,103.2,236.3,1 1004,-1,1721.3,452.4,79.5,218.9,1 1004,-1,311.1,281.9,64.5,196.7,1 1004,-1,927.2,280.9,68.4,210,1 1004,-1,1679.5,166,60.1,172.7,1 1004,-1,299.3,474.5,88.4,205.4,1 1004,-1,541.4,120.6,60.2,172.3,1 1004,-1,842.4,293.1,65.5,205.2,1 1004,-1,751,74.3,54.5,160.6,1 1004,-1,1740.4,674.2,91.7,250.4,1 1004,-1,1170.5,630.4,87.9,260.7,1 1004,-1,380.8,460.6,68.8,222.4,1 1004,-1,594.9,550.7,105.2,247.2,1 1004,-1,343.8,879.6,89.3,201.4,1 1004,-1,313.9,1.9,42.7,129.1,1 1004,-1,437.5,65.9,62.5,172.4,0.999 1004,-1,507.2,85.9,52.2,153.1,0.999 1004,-1,408.9,166.3,67.5,196.9,0.998 1004,-1,378.8,167,46.8,188.6,0.809 1004,-1,382.5,1,53.8,149.1,0.245 979,-1,686.5,206.4,79.8,113.1,1 979,-1,1221.9,30.9,61.6,119.3,1 979,-1,794.2,140.9,73.1,169.9,1 979,-1,1469,156.6,69.2,169.4,1 979,-1,409.3,262.6,70.3,192.2,1 979,-1,1176.3,111,58,168.3,1 979,-1,493.4,248.5,67.2,187.6,1 979,-1,334.4,818.7,94.8,262.3,1 979,-1,1783.8,163,69.2,186.2,1 979,-1,1575.7,590.1,102,236.1,1 979,-1,1660.6,132.5,56.6,171.1,1 979,-1,229.9,137.9,55.4,163,1 979,-1,323.1,256,62.9,197.3,1 979,-1,844.8,329.7,66.4,199.6,1 979,-1,752,72.2,55.3,163.5,1 979,-1,1719.6,453.3,79.7,214.1,1 979,-1,305.1,439.3,86.5,206.2,1 979,-1,1452.5,1,58.8,100.3,1 979,-1,926.3,316.6,65.9,212.8,1 979,-1,548,119.7,52.4,167.8,1 979,-1,1200.8,693.8,85.4,273.6,1 979,-1,392.3,430.7,65.6,218.4,1 979,-1,1738.3,674,97.3,251.7,1 979,-1,314,1.3,47,128.6,1 979,-1,290,125.8,52,175,1 979,-1,448.7,61.5,53.7,186,1 979,-1,380.7,1,54.6,133.9,1 979,-1,1390.5,1.5,46.9,97.1,1 979,-1,355.5,168.7,68.3,181.5,0.999 979,-1,489.6,61.2,52.2,159.1,0.998 745,-1,1221.7,29.7,62.2,119,1 745,-1,686.5,205.9,79.8,114,1 745,-1,1464.3,100.4,54.5,163,1 745,-1,255.9,181.3,61.8,205.2,1 745,-1,779.5,136.4,58.3,176.2,1 745,-1,552.3,116.9,59.1,174.7,1 745,-1,1488.4,16.5,59.1,139.4,1 745,-1,1575.8,589.6,99.8,234.3,1 745,-1,468,179.1,53.2,188.6,1 745,-1,1714.4,455.9,91.2,209.3,1 745,-1,299.3,441.2,74.6,222.1,1 745,-1,331.9,201,56.8,172.4,1 745,-1,1598.9,99.1,57.5,181.2,1 745,-1,454.4,558.9,92.4,251.6,1 745,-1,404.1,196.2,68.1,172,1 745,-1,440.2,54.1,58,168.3,1 745,-1,1193.4,700.7,87.2,267,1 745,-1,1118.9,719.5,81.8,259.3,1 745,-1,750.1,84.2,50,147.8,1 745,-1,360,112.6,50.8,172.5,0.999 745,-1,258.6,1.6,47.9,121.7,0.998 745,-1,290.6,125.9,48.3,166.5,0.996 745,-1,392.4,53.9,50.9,166.8,0.831 745,-1,237.9,147.3,49.2,157.6,0.531 33,-1,686.6,205.9,80.1,113.4,1 33,-1,1207,29.6,73.1,121.4,1 33,-1,387.5,373,89.9,237.2,1 33,-1,1486.6,69.6,55.8,150.2,1 33,-1,1362.4,567.2,104.3,244.5,1 33,-1,704.4,1.5,55.8,157.7,1 33,-1,1723.2,456.1,75.5,211.8,1 33,-1,188.4,370.4,67.9,200.6,1 33,-1,214.9,127.4,48.1,164.1,1 33,-1,487.6,164.3,86.9,191,1 33,-1,794.9,150,62.3,174.1,1 33,-1,963.2,199.2,75.3,180.6,1 33,-1,102.4,548.3,84.8,251.2,1 33,-1,1834.1,250,68.1,191.9,1 33,-1,284,124,54.2,171.6,1 33,-1,356.2,107.6,53.4,177.4,1 33,-1,868.1,142.3,57.2,181.5,1 33,-1,1360.4,185.7,50.1,167.7,1 33,-1,1.7,814.6,61.2,241.5,1 33,-1,918.1,156.7,47.9,161.4,1 33,-1,1012.7,156.4,76.4,182.7,1 33,-1,411.2,83,51.6,157.4,1 33,-1,453.4,58.8,45.6,167.8,0.999 33,-1,1589.1,234.6,56.4,172.3,0.999 170,-1,1221.1,31.2,61.5,116.2,1 170,-1,109.1,350.9,48.8,187.9,1 170,-1,1489.7,70.1,54.6,147.2,1 170,-1,401.9,672.6,95.7,260.8,1 170,-1,212.2,126.7,54.4,167.1,1 170,-1,356.4,104,55.3,179.3,1 170,-1,704.3,1,55.9,159.7,1 170,-1,1720.4,457,78.8,212.1,1 170,-1,970.9,124.3,53.8,173,1 170,-1,1358.8,568,104.5,243.6,1 170,-1,687.5,207.9,77.7,111.2,1 170,-1,288.5,126.4,54.2,169.1,1 170,-1,1123.5,153.2,47.8,161.4,1 170,-1,431.3,41.1,57.1,162.1,1 170,-1,100.6,548.6,87.8,252.3,1 170,-1,421.6,237.1,77.6,223,1 170,-1,528.7,282.2,62,216.8,1 170,-1,554.5,154.5,66.8,175.5,1 170,-1,223.9,589.3,68.6,213.1,1 170,-1,1224.8,165,60.5,172.8,1 170,-1,795.5,148.2,61.5,173.8,1 170,-1,536.9,65.3,53.2,175,1 170,-1,854.9,192.9,77.3,184.8,1 170,-1,747.2,263,66.9,198.8,1 170,-1,797.7,274.8,61.7,177.2,1 170,-1,503.3,215.4,58.3,173.5,0.999 170,-1,1271.4,164.6,49.2,165.9,0.996 170,-1,1015.7,908,73.9,173,0.982 781,-1,1221.7,29.4,62,118.1,1 781,-1,687.3,204.7,79.2,114.7,1 781,-1,546.9,114.1,62.5,177.5,1 781,-1,1723.6,452.7,76,213.2,1 781,-1,1487.2,17.9,59.7,149.8,1 781,-1,783.5,133,55.7,174,1 781,-1,1575.6,590.1,99.2,234.8,1 781,-1,291.9,492.6,77.4,229.3,1 781,-1,1444.6,73.4,51.2,164.8,1 781,-1,276.7,169.3,57.5,197.3,1 781,-1,390.6,223.4,71.8,177.4,1 781,-1,472.4,77.3,61.1,177.4,1 781,-1,449.2,213.9,53.6,189.3,1 781,-1,749.5,72.6,54.2,158.2,1 781,-1,331.5,188.8,55.3,175.6,1 781,-1,234.2,132.1,50.5,166.8,1 781,-1,1573.1,77.1,58.6,170.4,1 781,-1,254.8,1.1,52.5,120.1,1 781,-1,570.2,572.6,69.2,257.5,1 781,-1,421.3,77.7,55.5,171.4,1 781,-1,1112.4,630.1,80.1,246.6,1 781,-1,1047.6,646.3,75.3,253.9,1 781,-1,359.2,111.5,44.6,192.8,0.109 788,-1,1221.1,29.2,62.6,119.9,1 788,-1,687,205,79.5,114.3,1 788,-1,1723.4,452.5,75.7,214.8,1 788,-1,548.2,113.6,61.1,176.8,1 788,-1,1575.2,589.5,100.3,234.8,1 788,-1,1486.3,27,59.3,147.6,1 788,-1,291.6,502.8,80,231.3,1 788,-1,476.7,85.8,60.6,178.1,1 788,-1,782.6,130,53.3,179.6,1 788,-1,276.9,166.8,58.1,199.6,1 788,-1,1442.2,66,50.3,164.5,1 788,-1,749.4,70.8,55,162,1 788,-1,233.5,132.9,50.2,166.7,1 788,-1,337,189.1,50.5,175,1 788,-1,389.5,226,69.6,179.1,1 788,-1,446.1,222.6,53.9,189,1 788,-1,1099.2,607.8,81.1,257.2,1 788,-1,586.6,582.6,70.9,240,1 788,-1,254.4,1.3,52.3,121.2,1 788,-1,1035.8,635.9,75.6,247.3,1 788,-1,423.3,88.4,56.9,164.4,1 788,-1,450.9,5.3,45.5,93.4,0.065 41,-1,685.9,206.2,80.5,113.7,1 41,-1,1209.2,31.7,75.3,117.7,1 41,-1,1486.6,69.6,56.1,150,1 41,-1,391.1,366.3,86.2,238.5,1 41,-1,1362.3,566.9,104.5,245.9,1 41,-1,704.6,1,55.6,157.6,1 41,-1,915.2,194.3,92.6,184.8,1 41,-1,483.3,166.7,94.9,197.7,1 41,-1,1722.4,457.4,76.8,209.4,1 41,-1,214.3,128.8,49,162.9,1 41,-1,1009.3,158.4,80.4,186.6,1 41,-1,102,548.8,85.8,250.5,1 41,-1,176.2,370,67.7,190.9,1 41,-1,795.4,148.4,61.9,175.9,1 41,-1,354.4,107.7,54,174.3,1 41,-1,284.4,126,53.6,168.9,1 41,-1,863.6,146.9,57.8,184.6,1 41,-1,445.8,49.2,52.8,168.5,1 41,-1,2.1,802.7,65,236.7,1 41,-1,1843.6,255.9,74.4,197,1 41,-1,1344.4,189.4,55.6,170.8,0.999 41,-1,393.2,80.1,55.2,165.7,0.999 41,-1,1498.1,221.2,52.4,190.4,0.99 41,-1,490.9,42.9,46.6,150.1,0.592 41,-1,543.4,58.8,38.9,192.5,0.054 654,-1,687.3,206.4,78.9,113.6,1 654,-1,1480.4,3.4,60.8,146.1,1 654,-1,547.8,111.3,62.8,174.7,1 654,-1,1711.3,456,95.6,210.5,1 654,-1,1221.4,29,63,122.2,1 654,-1,801,144.5,65.6,173,1 654,-1,359.6,111.3,50.8,172.1,1 654,-1,332.7,330.3,68.2,205.9,1 654,-1,1613.9,171.2,72.6,187.5,1 654,-1,1577.4,589.4,94.5,235.6,1 654,-1,449.4,535.3,86.5,244.8,1 654,-1,1169.5,1.4,67.5,121.3,1 654,-1,751.4,80.4,46.6,155.7,1 654,-1,269.2,235.5,61.5,181.8,1 654,-1,409.1,1,60.2,156.5,1 654,-1,472.4,105.2,47.1,174.9,1 654,-1,423.5,120,57.3,159.4,1 654,-1,218.1,218.9,56.3,204.4,1 654,-1,288.5,125.7,51.2,168.2,0.999 654,-1,1449.5,914.5,83.4,166.5,0.971 654,-1,353.9,1,52.3,145.1,0.927 654,-1,1365.5,936.1,87.7,144.9,0.281 247,-1,1221.3,30.8,62.3,117.5,1 247,-1,686.5,207.1,79,113,1 247,-1,1596.8,8.2,64.7,142.2,1 247,-1,796.3,152.3,60.9,173.9,1 247,-1,392.3,516.1,86.9,242.2,1 247,-1,107.8,348.9,52.2,192.2,1 247,-1,211.7,126.4,56.1,168.9,1 247,-1,1481,57.3,54.8,153.3,1 247,-1,1155.5,113.3,53.7,166,1 247,-1,223.4,470.5,58.5,200.4,1 247,-1,288,128.3,55.5,171.5,1 247,-1,1720.2,456.7,79,211.7,1 247,-1,448.8,174.9,75.3,210.7,1 247,-1,1373.6,566.4,102.2,247,1 247,-1,207.5,731.9,90.6,254.2,1 247,-1,704.5,1,54.4,157,1 247,-1,933.8,114.3,72,178.2,1 247,-1,355.8,106.5,53.8,177.9,1 247,-1,1077.8,116.8,58.6,181.1,1 247,-1,492.5,358.7,72.9,228.7,1 247,-1,515.8,117.5,54.8,182.3,1 247,-1,851.5,347.7,78.8,198,1 247,-1,121.4,564.4,84.6,245.7,1 247,-1,585.1,371.9,65.5,205.2,1 247,-1,788,336.3,85.8,212,1 247,-1,767.9,101.5,52.2,164.8,0.999 247,-1,930.3,900.9,71.7,180.1,0.997 187,-1,1221.8,30.2,61.9,119.2,1 187,-1,211.5,126,56,169.9,1 187,-1,1490.4,68.3,54,149.9,1 187,-1,21.8,623.9,107.7,240.9,1 187,-1,686.5,207.6,80.3,111.5,1 187,-1,416.8,640.6,91.7,256.8,1 187,-1,109.2,348.3,50.4,190.3,1 187,-1,704.4,1,55.7,159.7,1 187,-1,1358.7,567.7,104.6,245.4,1 187,-1,356.7,108.1,54.3,175.4,1 187,-1,869.5,173.6,87.4,192.6,1 187,-1,1720.6,457.8,77.7,211.1,1 187,-1,289.6,129,54.3,168.4,1 187,-1,402.1,38.8,65,165.1,1 187,-1,420.3,222.3,76.5,218.9,1 187,-1,234.5,562.2,61.7,209.4,1 187,-1,527.9,305.4,61,207.4,1 187,-1,1186.1,148.6,62.5,184.3,1 187,-1,539.4,141.3,60.2,162.9,1 187,-1,794.8,150.5,62.6,175.9,1 187,-1,796.8,294.2,70.6,185,1 187,-1,1241.4,148.7,46.3,164.1,1 187,-1,1081.6,144.6,48.9,161.2,1 187,-1,745.1,278.5,71.6,201.6,1 187,-1,98.6,550.3,85.3,245.2,0.999 187,-1,983.7,919.2,74.9,161.8,0.99 187,-1,916.4,118.6,61.5,173.2,0.575 187,-1,454.5,5.1,54.4,85.9,0.176 761,-1,1221.7,29.5,61.7,119.3,1 761,-1,687,205.5,78.9,114.1,1 761,-1,544.4,114.4,66.8,177,1 761,-1,781.2,135.4,65.9,176.5,1 761,-1,1718,453.4,81.4,212.8,1 761,-1,304.3,464.5,76.4,225.6,1 761,-1,1575.2,589.2,100.3,235,1 761,-1,1462.2,86.4,51.9,164.6,1 761,-1,268.7,182,56.4,197.4,1 761,-1,330,192.8,55.3,180.6,1 761,-1,458.7,190,54.5,188.4,1 761,-1,512.9,566.2,75.8,250.5,1 761,-1,401.2,206.4,64.2,175.5,1 761,-1,1154.8,667.6,93.9,265.8,1 761,-1,1581.5,85.9,62.8,177.8,1 761,-1,1494.7,15.4,60.8,147.1,1 761,-1,456.5,63,57.4,170.5,1 761,-1,752.2,81.6,48.8,152.8,1 761,-1,257.3,1.2,50,122.2,1 761,-1,235.5,136,48.9,161,1 761,-1,1089.5,684.6,78.8,257.8,1 761,-1,358.9,110.2,53.2,170.1,1 761,-1,400.2,64.8,57.1,170.1,1 649,-1,687.2,206.4,79.2,113.3,1 649,-1,1481.4,5.5,60,144.5,1 649,-1,545.9,112.2,64.9,174.4,1 649,-1,1709.9,453.8,99.7,215.5,1 649,-1,1221.9,31.7,62.5,118.9,1 649,-1,360,110.9,50.6,173.8,1 649,-1,802.3,145.3,64.8,172,1 649,-1,1573.5,589.2,98.1,236,1 649,-1,460.6,536,86.2,244.1,1 649,-1,336.1,323.9,68.5,206.4,1 649,-1,411.3,1,59.3,150.3,1 649,-1,1616.4,180.9,68.2,187.3,1 649,-1,216,223.6,57.2,197.1,1 649,-1,751.3,80,45.4,156,1 649,-1,268.2,238.9,58.9,180.9,1 649,-1,424.3,116.3,55.6,159.4,1 649,-1,467.9,104.1,47.4,172.7,1 649,-1,288.4,125.8,50.8,172,1 649,-1,1183.1,9.5,63.4,112.2,0.941 649,-1,1469,937.8,78.4,143.2,0.748 649,-1,1386.6,952.2,84.2,128.8,0.142 649,-1,358.4,4.4,46.8,140.6,0.08 524,-1,1221.5,30.5,62.4,119.9,1 524,-1,1486.1,1,59.6,141,1 524,-1,686.8,206.4,79.2,113.8,1 524,-1,1720,460.9,79.2,207.4,1 524,-1,994.7,1.4,54,118.9,1 524,-1,1670.9,17,52.7,163.4,1 524,-1,164.6,322.8,66.1,194.4,1 524,-1,288.6,123.8,54.1,172.5,1 524,-1,392.5,190.5,58.1,189.6,1 524,-1,1706.1,304.2,82.3,216.3,1 524,-1,928.3,1.9,57.3,115.2,1 524,-1,465.1,122,65.5,186.1,1 524,-1,785.7,143.2,55.8,177.3,1 524,-1,1608.8,5.8,56.7,169.9,1 524,-1,883.5,2.2,53.1,114.7,1 524,-1,822.7,604.9,72.9,259.1,1 524,-1,1572.8,594.5,63.7,245.7,1 524,-1,216.3,135.5,64.6,162.8,1 524,-1,356.5,158,51.5,171.8,1 524,-1,514.9,99,59.6,182,1 524,-1,1761.9,645.7,71.1,209.5,1 524,-1,269,815.6,81.7,265.4,1 524,-1,450.3,2.3,74.3,169.3,1 524,-1,193.2,791.3,93.9,264.7,1 524,-1,955,722.9,120.8,252.2,1 524,-1,1763.9,209.6,64.4,174.6,1 524,-1,1598.1,290.1,60.7,193.4,1 524,-1,745.8,85.5,61.3,169.9,0.999 524,-1,400.5,31.2,46.1,164,0.999 524,-1,1866,217.6,55,198.4,0.989 524,-1,1038,740.8,79.9,237.8,0.175 524,-1,1046.8,938.2,71,142.8,0.075 841,-1,1221,29.2,62.6,120,1 841,-1,687.6,206,79,114.2,1 841,-1,792.6,137,76.7,179.2,1 841,-1,1647.9,15.6,58.7,160.8,1 841,-1,557.1,115.9,60.4,175.6,1 841,-1,1721.3,453.7,77.9,212.5,1 841,-1,266.5,584.3,83.6,247.4,1 841,-1,1471.4,62,59.1,151.8,1 841,-1,1574.6,590.3,102.3,234.8,1 841,-1,751.7,71.6,56.5,162.4,1 841,-1,355.5,280.2,79.5,179.8,1 841,-1,296.5,161.1,69.8,195.8,1 841,-1,1070.5,1.3,55.3,103.4,1 841,-1,240.9,131.1,51.3,166.9,1 841,-1,1416.9,30.5,54,159.4,1 841,-1,475.7,137.1,58.8,179.8,1 841,-1,253.9,1.2,54.9,121.1,1 841,-1,437.2,270.5,55.4,202.5,1 841,-1,941.9,538,70.8,241.8,1 841,-1,415.6,130.8,59.9,177.7,1 841,-1,1026.5,516.7,74.4,243.8,1 463,-1,1221.9,31.1,61.8,118.6,1 463,-1,686.7,205.9,79.5,113.5,1 463,-1,935.9,1,58.2,148.9,1 463,-1,1007.4,1.9,54,157.7,1 463,-1,449.8,188.1,67.9,202.9,1 463,-1,1728.7,167.5,62.7,163.1,1 463,-1,241.5,675.4,98.4,265.7,1 463,-1,873.6,1,55.6,132.5,1 463,-1,272.4,209.7,52.6,175.8,1 463,-1,359.3,110,53.7,177,1 463,-1,1817.7,373.4,80.1,212,1 463,-1,1649.5,352.7,66,200.2,1 463,-1,1705,458.4,94.4,207.9,1 463,-1,1507.7,2.2,57.2,110.6,1 463,-1,1543.4,609.1,75,244.3,1 463,-1,803.8,148.5,47.8,174.1,1 463,-1,519.8,78.1,58,172.7,1 463,-1,116.1,348.6,55,187,1 463,-1,1676.2,53,68.4,176.1,1 463,-1,217.2,136.5,62.9,161.1,1 463,-1,337,707.3,72.7,254.5,1 463,-1,808.5,581.5,89.3,250.8,1 463,-1,899.7,616.9,105.8,245.4,1 463,-1,752.9,94.1,52.6,146.2,1 463,-1,1465.7,562.2,83.7,200.6,1 463,-1,980.1,632.5,90.1,217.8,0.999 463,-1,445.4,43.9,69.9,181.5,0.999 463,-1,416.8,2.1,43.1,154,0.999 463,-1,285.1,125.3,52.3,173.3,0.998 463,-1,711.6,92.2,54.4,167.6,0.998 463,-1,1025.9,921.2,86.2,159.8,0.991 645,-1,687.3,206.5,79.3,113,1 645,-1,1481.4,4.5,60.2,145.5,1 645,-1,1221.1,29.7,62.4,120.8,1 645,-1,1710.8,455.5,96.4,209.9,1 645,-1,546.6,112.2,63.7,175,1 645,-1,359.2,111.7,52.4,173.2,1 645,-1,801.3,144.9,65.2,172.8,1 645,-1,338.3,319.5,68.5,203.4,1 645,-1,1574.8,590.4,97.2,236.3,1 645,-1,413.4,1,58.4,146,1 645,-1,1620.2,187.4,66.2,191.3,1 645,-1,267.5,239.8,57.2,183.9,1 645,-1,211.5,225.3,59.7,201,1 645,-1,478.3,540.1,83.9,242.4,1 645,-1,751.6,78.8,45.3,157.9,1 645,-1,422.6,117.7,53.9,158.7,1 645,-1,466.2,100.3,49.1,176.2,1 645,-1,287.9,126.2,50.8,171,1 645,-1,1487.3,948,73.2,133,0.541 645,-1,357.9,3.2,48.6,127.1,0.168 645,-1,239.2,148.5,41.2,178.7,0.061 213,-1,1221,31,61.4,119.4,1 213,-1,687.1,207,78.7,113.1,1 213,-1,356.1,106.1,51.6,178.9,1 213,-1,211.7,127,55.9,164.7,1 213,-1,705,1,55.5,159.6,1 213,-1,109.1,349.3,50.1,187.5,1 213,-1,288.3,128,55.3,170.8,1 213,-1,101.1,661.9,104.6,251.5,1 213,-1,1492.8,70.4,53,147.3,1 213,-1,402.3,583,83.6,245.8,1 213,-1,1355.6,567,106.1,245.1,1 213,-1,1720.5,457.5,78.3,210.3,1 213,-1,1203.1,141.2,48.1,162.8,1 213,-1,1133.1,136.2,61.6,187.2,1 213,-1,900.4,144.6,70.6,187.7,1 213,-1,1009.8,134.1,49.5,155.6,1 213,-1,426.7,201.7,74.1,214.8,1 213,-1,504.1,324.7,75.7,215.2,1 213,-1,796.7,152.4,59,170.1,1 213,-1,223.7,518.5,61.3,207.9,1 213,-1,522.7,125.8,49.2,174.3,1 213,-1,18.2,609.7,107.5,243.5,1 213,-1,809.1,318.3,75.2,193.5,1 213,-1,564.5,266.8,58.7,181.9,1 213,-1,848.7,110.1,54.4,169.5,1 213,-1,757.2,300.6,75.1,209.6,0.999 213,-1,949.2,911.6,74.6,169.4,0.984 213,-1,375.2,42.8,50.5,172.6,0.29 207,-1,1221.7,30.4,61.6,120.3,1 207,-1,687.1,206.4,78.8,114.2,1 207,-1,211.5,126.6,55.6,168.6,1 207,-1,1207.6,143.3,52,169.5,1 207,-1,397,597.6,90.1,245,1 207,-1,705.3,1.1,55.3,159.8,1 207,-1,1721.1,455.8,77.8,212.2,1 207,-1,77.3,647.6,114,251.9,1 207,-1,355,107.2,55.4,178.3,1 207,-1,1491.6,70,53.4,147.6,1 207,-1,110.4,351.1,49.2,184.5,1 207,-1,288.1,124.8,55.6,173.2,1 207,-1,1358.5,568.2,103.4,244,1 207,-1,424.1,204,77.4,218.1,1 207,-1,507.3,318.8,75.5,217.5,1 207,-1,796.4,150.6,58.5,171.5,1 207,-1,521.2,132.5,54.4,162.7,1 207,-1,1144.4,138,59.8,186.7,1 207,-1,896.6,153.4,68.8,188.1,1 207,-1,227.5,525,60.7,208.1,1 207,-1,807.3,313,71.8,187,1 207,-1,1024.7,135.2,46.3,153.7,1 207,-1,1,615.1,85.1,215.9,1 207,-1,381,38.6,59.2,168.5,1 207,-1,755,296.7,71.8,205.2,1 207,-1,863.3,107.8,53.7,175.4,0.998 207,-1,961.8,914,71.7,167,0.996 207,-1,558,252.5,51.3,189.6,0.982 816,-1,1221.3,29.3,62.5,119.3,1 816,-1,687.7,205.5,77.8,114.6,1 816,-1,788.7,136.3,62.2,175.7,1 816,-1,1625.6,1,55.6,148.7,1 816,-1,556.8,117.9,61.9,173.3,1 816,-1,1723.3,452.7,75.3,215.1,1 816,-1,1575.6,589.5,100.8,233.7,1 816,-1,275.6,545.6,78.8,241.9,1 816,-1,439.7,239.2,54.6,199.8,1 816,-1,281.8,165.2,63.4,196.6,1 816,-1,473.3,109.7,62.9,176.2,1 816,-1,376.3,260,73,178.4,1 816,-1,1471.7,35.3,63.5,158.2,1 816,-1,751.6,71.9,57.3,160.9,1 816,-1,234.7,137.4,50.7,162.5,1 816,-1,1429.9,49.3,51.2,159.1,1 816,-1,982.4,586.5,76.3,243.7,1 816,-1,1058.7,560.7,70.7,246.1,1 816,-1,348.2,179.5,51.3,168.4,1 816,-1,426,109.2,58.3,166.5,0.998 79,-1,1221.6,30.2,60.9,119.3,1 79,-1,1238.5,171.7,73.4,158,1 79,-1,703.9,1,56.6,159.4,1 79,-1,1487,68.7,55.8,149.7,1 79,-1,413,326.9,83.1,232.6,1 79,-1,356.5,105.6,55.2,178.9,1 79,-1,1360.8,566.9,105.1,243.5,1 79,-1,491.7,203.9,78.2,195.4,1 79,-1,1722.5,455.7,76.1,211.5,1 79,-1,981,188.3,71.8,184.5,1 79,-1,686.7,205.8,80.9,116.1,1 79,-1,102.9,546.6,85,253.5,1 79,-1,12.8,725.6,69.8,234.5,1 79,-1,771,184.9,60.6,186,1 79,-1,291.8,125.5,52,169.2,1 79,-1,1327.5,204.5,41.7,167.1,1 79,-1,1425.6,200.9,73.3,192.1,1 79,-1,212.3,132.1,51,163.2,1 79,-1,131.8,353.3,48.1,197.4,1 79,-1,538.7,62.1,48.7,173.5,1 79,-1,839.1,173.7,57.9,185.7,1 79,-1,881.7,195.3,55.1,166.9,1 79,-1,433.1,23,54.8,162.1,1 79,-1,389,892.6,95.2,188.4,1 79,-1,474.7,121.9,59.3,160.7,0.999 79,-1,380,27.3,55.2,160.5,0.999 79,-1,1490.4,200.6,52.7,185.2,0.999 79,-1,252.8,96,59.8,178.8,0.998 685,-1,1221.9,29.8,62.2,120.9,1 685,-1,687.2,207.2,79.5,112.8,1 685,-1,360.9,530,111.2,251.3,1 685,-1,1481,5.5,60.4,147.2,1 685,-1,1489.1,150.8,52.8,174.4,1 685,-1,1708.6,456.8,100.1,209.3,1 685,-1,486,131.8,46.9,176.6,1 685,-1,1067.7,1.2,68.4,95.4,1 685,-1,804.8,146.4,56.5,171.2,1 685,-1,563.5,112.4,50.1,177.8,1 685,-1,311.8,360.8,69.7,216.4,1 685,-1,360.6,116.3,48.8,168.5,1 685,-1,1617.4,149.4,71.3,189.7,1 685,-1,1573.9,589.4,97.6,235.3,1 685,-1,418.1,139.9,66.1,164.3,1 685,-1,750.6,80,48.6,158.1,1 685,-1,1266.8,864.2,92.7,216.8,1 685,-1,1359.6,840.3,92.9,240.7,1 685,-1,404.4,14.6,56.4,161.4,1 685,-1,240.3,204.1,62.6,200.3,1 685,-1,295.4,220.1,57.8,177.7,1 685,-1,483.7,36.6,45.3,145.2,1 685,-1,223.6,127,50.6,166.2,0.994 685,-1,828.3,921.2,80.6,159.8,0.916 1036,-1,1222,30.4,61.5,118.1,1 1036,-1,686.7,206.9,79.7,113.8,1 1036,-1,793.3,141.4,72,172.7,1 1036,-1,1273.5,184.2,64.2,164.2,1 1036,-1,1720,455.9,80.6,213.1,1 1036,-1,288.6,127.6,52.9,169,1 1036,-1,484.6,312.1,76.3,195.3,1 1036,-1,848,255.3,63.7,196.5,1 1036,-1,936.7,241.5,66.3,203.2,1 1036,-1,233.5,139.7,56.4,163.8,1 1036,-1,1131.8,571.6,89.3,242.4,1 1036,-1,751.3,76,53.5,160.4,1 1036,-1,286.4,526.7,90.3,210.8,1 1036,-1,363.5,321.2,75,197.6,1 1036,-1,1706.6,202.2,63.2,181.1,1 1036,-1,1575,589.1,101.7,239.5,1 1036,-1,375.8,503.8,65,233.1,1 1036,-1,295.5,315.8,67.7,207.6,1 1036,-1,1679.1,679,81.1,236.3,1 1036,-1,1469.5,207.3,70.7,165.6,1 1036,-1,1851.7,240.7,64.8,197.7,1 1036,-1,440.2,172.5,62.8,166.4,1 1036,-1,581.5,543.5,68.5,248.9,1 1036,-1,371.8,102.5,59.4,177.7,1 1036,-1,308.2,2.5,35.9,127.3,1 1036,-1,492,165.2,68.6,195.5,1 1036,-1,539.8,118.6,58.7,172.6,0.998 598,-1,1221.4,31,62.6,119.4,1 598,-1,686.9,205.9,79.7,113.9,1 598,-1,1481,3.6,61.6,145.2,1 598,-1,801.4,144.5,63.4,173.8,1 598,-1,368.3,266,63.8,200.1,1 598,-1,1630.1,1.3,54.2,114.2,1 598,-1,561.7,110.9,51.3,178.3,1 598,-1,1573.2,589.4,96.9,233.5,1 598,-1,233.1,266.9,62.3,186,1 598,-1,1654.3,228,72.1,203,1 598,-1,1714.4,455.5,86.9,210.2,1 598,-1,429.5,69.3,48.8,173.2,1 598,-1,358.6,109.5,53.8,179.9,1 598,-1,165.4,246.3,60.8,207,1 598,-1,286.8,127.3,52.3,170.7,1 598,-1,482.1,100.5,49.1,160.3,1 598,-1,216.4,138.2,54.7,158.9,1 598,-1,752.8,79.2,44,154.5,1 598,-1,1073.6,861.8,123.5,219.2,1 598,-1,1872.7,275.7,48.3,181.8,0.929 598,-1,1159.3,876.6,91.8,204.4,0.848 598,-1,394.6,96.6,34.1,140.9,0.124 598,-1,307.4,909.4,113.7,171.6,0.106 453,-1,1221.5,30.6,62.1,118.9,1 453,-1,937.1,1,58,156.5,1 453,-1,445.9,210.6,72.4,195.7,1 453,-1,687.1,205.9,78.5,113.7,1 453,-1,111.8,349.8,57.2,189.7,1 453,-1,358.7,106.8,54.4,180.5,1 453,-1,1007.6,11.5,54,154.3,1 453,-1,1711.1,455.4,89.2,211.1,1 453,-1,1405.1,548.9,90.9,206.3,1 453,-1,1743.8,154.3,59.3,171.3,1 453,-1,1551,611.5,76.9,244.5,1 453,-1,287.5,127,54,169.6,1 453,-1,523.7,75.2,55.4,171.6,1 453,-1,865.2,2.3,54.8,137.8,1 453,-1,346.4,683.4,73,247.1,1 453,-1,1834.5,389.4,84,208.9,1 453,-1,257.4,224,53.2,176.4,1 453,-1,800.5,152,48.4,169.4,1 453,-1,1663.2,358.4,66,197.8,1 453,-1,887.4,598.1,115.8,245.8,1 453,-1,248.4,653.9,97.5,258.7,1 453,-1,793.8,577.8,86.1,247.4,1 453,-1,753.2,90.8,53.3,154.3,1 453,-1,219.9,137.6,58.3,160.8,1 453,-1,420.2,1,45.1,144,1 453,-1,427.1,131.9,54.9,157.8,0.999 453,-1,1508.4,1,56.6,105.4,0.999 453,-1,974,613.6,82.8,228.6,0.999 453,-1,1024.1,921.1,84.2,159.9,0.998 453,-1,714.3,91.1,51.1,172,0.992 453,-1,359.6,6.5,62,134.7,0.992 453,-1,444.7,33.7,72.6,206.4,0.971 195,-1,1222.1,30.8,60.8,119,1 195,-1,45.5,633.2,117.4,251.2,1 195,-1,211.3,127.9,56.1,165.6,1 195,-1,686.8,207.1,79.1,111.9,1 195,-1,405.9,617.1,91.6,250.1,1 195,-1,108.5,346.8,50.6,191.5,1 195,-1,1488.9,68.6,55.2,149.2,1 195,-1,705,1,55.5,159.8,1 195,-1,288.5,126.5,55.6,171.5,1 195,-1,528.4,138.5,60.8,160.1,1 195,-1,356.3,105.1,54.7,178.4,1 195,-1,1720.4,455.8,78.3,212.9,1 195,-1,1358.2,566,104.8,247.4,1 195,-1,1058.3,143.3,50.6,158.2,1 195,-1,1166.2,147.6,64.5,182.1,1 195,-1,518.3,305.9,71.8,211.5,1 195,-1,421.2,215.7,76.1,219.6,1 195,-1,879.8,166,78.1,186.2,1 195,-1,396.5,40.7,62,165.1,1 195,-1,794.5,150.7,62.3,173.1,1 195,-1,800.4,300.3,71.6,187.8,1 195,-1,229.8,543.7,63.2,214.5,1 195,-1,1226.5,145.8,49.4,171.3,1 195,-1,752.5,283.1,67.6,205.5,1 195,-1,461,2.2,51.6,94.4,0.999 195,-1,973.2,917.4,73.8,163.6,0.98 908,-1,1222.1,29.8,61,118.8,1 908,-1,686.8,206.1,79.4,113.8,1 908,-1,473,193.8,68.4,190.6,1 908,-1,794.5,140.2,74.1,171.7,1 908,-1,1431.9,1,49.3,144,1 908,-1,308.5,690.6,89.4,263.2,1 908,-1,1110,29.8,63,162,1 908,-1,1575.3,591,103.3,232.9,1 908,-1,1722.5,453.6,76.4,214,1 908,-1,1715.4,85.4,54.1,175.3,1 908,-1,1482.7,104.6,59.8,153.1,1 908,-1,381.8,191.6,58.2,178.5,1 908,-1,557.6,116.4,57.8,173.1,1 908,-1,1597,62.4,53.8,159.8,1 908,-1,752.6,73.9,55.2,159.9,1 908,-1,872.8,434.8,66.2,223.1,1 908,-1,301.9,162.8,69.4,198.9,1 908,-1,327.8,352.9,85.9,189.6,1 908,-1,470.1,8.4,49.7,150.1,1 908,-1,415.8,346.7,58.1,204.3,1 908,-1,1744.8,680,97.2,240.5,1 908,-1,1309.2,878.9,94.9,202.1,1 908,-1,242.1,134.8,57.2,165.1,1 908,-1,312,1.8,48.6,130,1 908,-1,967.8,414.9,66,227.4,1 908,-1,1502.6,3.3,56.8,135.7,1 908,-1,253.9,1.1,54.5,119,1 908,-1,422.6,65.3,52.7,173.5,1 86,-1,1221.7,30.1,61.6,116.9,1 86,-1,417.5,318.2,84,231.4,1 86,-1,704.2,1,56.1,159,1 86,-1,497.9,209.2,75.4,200.2,1 86,-1,1722.4,456.4,76.8,210.6,1 86,-1,1487.6,69.4,54.7,147.5,1 86,-1,356.1,106.7,54.8,177.4,1 86,-1,974.2,193,73.6,187.5,1 86,-1,394.3,869.7,103.4,211.3,1 86,-1,1358.8,566.1,105.5,244.2,1 86,-1,102.3,547.4,85.7,252.1,1 86,-1,1221.7,160.2,64.7,172.1,1 86,-1,295.2,127.3,51.2,169.4,1 86,-1,745.1,185.4,62.9,183.4,1 86,-1,18.4,719.7,69.7,225,1 86,-1,1314.2,196.4,46.3,175.6,1 86,-1,210.6,131.2,50.2,162.9,1 86,-1,1419,196.5,63.6,193.1,1 86,-1,127,353.7,43.3,191.2,1 86,-1,538.7,64,48.6,169.4,1 86,-1,1479.4,194.7,52.4,175.1,1 86,-1,435.9,17.8,53.4,159.9,1 86,-1,690.9,205.9,65.4,118.6,1 86,-1,376.6,23,55.4,162.9,1 86,-1,255.1,95,59.6,181.4,1 86,-1,834.9,173.6,55.6,191.4,0.999 86,-1,481.2,123.3,54.3,166.2,0.999 86,-1,875.1,198.7,54.6,170.9,0.999 728,-1,1221.3,29.8,62.6,118.9,1 728,-1,687,205.7,79.3,114.3,1 728,-1,1711.2,456.5,96,207.7,1 728,-1,1479.7,8.4,58.6,142.5,1 728,-1,1470.6,113.3,52.3,168.2,1 728,-1,552.4,112.8,58.6,177.2,1 728,-1,261.2,188.1,54.7,202.4,1 728,-1,476.8,162.9,52.5,187.7,1 728,-1,412.7,183.6,65.7,164.4,1 728,-1,1574.5,590.1,99.2,234,1 728,-1,318.3,198.1,63.5,181.6,1 728,-1,299.6,419.5,73.4,221.7,1 728,-1,1597,110.3,59.6,183.1,1 728,-1,405.6,551.6,95.8,250.3,1 728,-1,785.4,138.3,52.7,177.3,1 728,-1,750,82.1,50.2,152.6,1 728,-1,361.1,108.1,46.8,179,1 728,-1,1235.7,743.7,92.2,264.8,1 728,-1,1164.2,761.1,80,257.5,1 728,-1,425.2,40.8,58,166.4,1 728,-1,320.1,1,51.2,132.4,0.999 728,-1,236.4,136.7,53.4,168,0.998 728,-1,466.4,4.5,45.3,144.4,0.998 27,-1,686.5,205.7,80.1,113.7,1 27,-1,1207.2,30.7,72.6,118.8,1 27,-1,1486.9,69.3,55.8,150,1 27,-1,703.6,1.4,56.6,158,1 27,-1,1362.5,566.7,105.3,245.6,1 27,-1,1723.5,456.1,76.4,211.6,1 27,-1,492,159.7,89.8,190,1 27,-1,795,150.3,61.7,173.3,1 27,-1,987.3,199.7,79,178.9,1 27,-1,102.1,547.1,85.5,252.9,1 27,-1,384.1,378.6,83.5,241.1,1 27,-1,195.2,374.9,69.5,201.2,1 27,-1,354.4,103.4,53.9,180.7,1 27,-1,216.1,128.8,48.4,163.6,1 27,-1,1826,238.1,64.3,189.1,1 27,-1,284.1,124,55,171.3,1 27,-1,415.1,80.4,53.7,160.2,1 27,-1,1601,239.2,58.4,188.9,1 27,-1,455.7,60.3,48.8,166.5,1 27,-1,873.5,139.6,54.5,181,1 27,-1,2.3,829.3,54.6,238.6,1 27,-1,915.8,151.4,50.7,163.3,0.999 27,-1,1374.7,185.5,47.7,172.3,0.997 328,-1,1221.6,31.4,62.1,118.4,1 328,-1,686.2,207.2,80.2,112.2,1 328,-1,1451.5,1.1,56,135.9,1 328,-1,1717.9,61.3,62.4,159.9,1 328,-1,452.1,115.5,72.3,195.4,1 328,-1,108.1,350.6,52.7,189.1,1 328,-1,377.4,575.6,86.7,255.4,1 328,-1,1719.7,457.9,78.7,212.7,1 328,-1,795,149.4,61.3,172.7,1 328,-1,987,66.1,61.6,178.6,1 328,-1,282,133.1,54.6,171.8,1 328,-1,927.5,31.7,63.6,174.6,1 328,-1,1580.2,3.1,65.1,118.1,1 328,-1,363,107.5,58.3,180.1,1 328,-1,238.2,358.2,58.2,190.2,1 328,-1,835.2,440.5,81.4,212.3,1 328,-1,212.9,137.2,55.4,163.2,1 328,-1,897.4,444.5,72,198.4,1 328,-1,725,87.5,49.8,182.2,1 328,-1,1522.4,603.7,87.3,246.2,1 328,-1,421.6,46.8,55.9,168.3,1 328,-1,1044.4,77.6,51.5,161,1 328,-1,1832.8,510.4,72.5,209.7,1 328,-1,513.1,483.4,68,223.3,1 328,-1,519.1,103.2,37.9,163,0.999 328,-1,419.5,462.5,81.7,238.2,0.999 328,-1,934.7,910.4,70.2,170.6,0.969 328,-1,373.2,915.9,88.9,165.1,0.477 328,-1,931.3,390.5,67.3,191.5,0.322 285,-1,1221.7,32.1,62.2,118.9,1 285,-1,686.9,207.5,78.6,111.7,1 285,-1,1468.7,29.7,54.9,150.7,1 285,-1,353.3,108.7,53.6,177.1,1 285,-1,1021.5,97.8,61.2,183.3,1 285,-1,1097.7,93.5,51.9,163.9,1 285,-1,456.8,143.5,71.3,204.9,1 285,-1,287.8,129.5,55.6,174,1 285,-1,1720.2,458.5,78.5,209.8,1 285,-1,940.3,80.5,63.5,176.5,1 285,-1,216.1,585.4,88.4,247.8,1 285,-1,399.9,22.1,55.4,164.2,1 285,-1,390,449.1,83.9,231.2,1 285,-1,704.2,1,54.8,157.8,1 285,-1,108,352,51.2,189.7,1 285,-1,1660,30.7,56.8,154.7,1 285,-1,797.8,148.7,59.6,175,1 285,-1,1444.4,585.6,95.4,240.9,1 285,-1,222.4,131.3,53.3,162.2,1 285,-1,286.5,812.7,91.5,268.1,1 285,-1,234.2,414,59.4,196.2,1 285,-1,514.5,108.6,52.6,175.8,1 285,-1,749.6,106.8,47.4,163.5,1 285,-1,549.9,425.2,68,212.1,1 285,-1,885,401.2,76.8,195.2,1 285,-1,812.1,378.9,88.4,221,1 285,-1,838.1,110.3,53.4,159.6,1 285,-1,465.8,407.8,64.7,224.4,1 285,-1,771.7,350.8,63,180.3,0.999 285,-1,944.9,920.2,82.5,160.8,0.879 525,-1,1221.5,30.5,61.5,119.7,1 525,-1,1485.9,1,59.6,142,1 525,-1,687,206.7,78.6,113.3,1 525,-1,1718.8,459.2,80.4,209,1 525,-1,994.4,1.6,54.1,116.8,1 525,-1,1670.2,15.8,52.6,163.5,1 525,-1,288.2,122.2,54.2,175.3,1 525,-1,164.4,320.9,66.9,195.4,1 525,-1,391.8,191.3,58.8,189.8,1 525,-1,785.1,144.5,55,175.9,1 525,-1,927.7,2.1,57.7,112.8,1 525,-1,821.8,604.1,74,258.7,1 525,-1,465.6,123,65.1,185,1 525,-1,1706,303.1,81.6,216.1,1 525,-1,883.9,1.8,52.8,114.3,1 525,-1,1765.7,647.4,70.4,214.5,1 525,-1,1608.7,4.5,56.9,170.1,1 525,-1,217.2,134.5,62.8,162,1 525,-1,449.8,2.2,74,168.4,1 525,-1,515.7,100.6,59.4,181.1,1 525,-1,1575.2,594.2,62.3,244.3,1 525,-1,193.7,791.5,94.4,266.5,1 525,-1,956.2,724.1,119.6,250.6,1 525,-1,269,817.8,80.8,263.2,1 525,-1,1765.5,209.6,62.8,172.5,1 525,-1,1596.6,288.7,62.1,197,1 525,-1,746.2,84.4,60.7,174.5,0.999 525,-1,359.8,156.4,49.8,173.9,0.999 525,-1,400.7,32.5,46.4,163.5,0.999 525,-1,1867.3,217.8,53.7,198.4,0.978 525,-1,1047.3,939.9,69,141.1,0.102 525,-1,1038.3,740.6,82.6,239.9,0.085 946,-1,1221.6,30.1,61.8,118.9,1 946,-1,686.3,206.7,80.3,112.8,1 946,-1,1484.6,1,58.1,114.8,1 946,-1,794.5,139.5,74,174.5,1 946,-1,1475.8,131.9,60.6,163.5,1 946,-1,323.5,757.2,94,274.2,1 946,-1,1136.8,68.2,61.9,168.6,1 946,-1,1574.5,588,104,238.7,1 946,-1,749.8,70.1,57.1,163.2,1 946,-1,1721,454,78.1,212.8,1 946,-1,349.5,227.5,60.2,182.2,1 946,-1,1248,771.9,94.9,284,1 946,-1,1416.7,1,47.9,118.9,1 946,-1,936.6,361.5,67.2,218.4,1 946,-1,1632.1,95.3,56.5,168.3,1 946,-1,554.4,116.5,54.4,170.6,1 946,-1,435.4,228.9,66.1,188.8,1 946,-1,235.7,130.5,60,175.7,1 946,-1,857.1,377.9,65.3,211.5,1 946,-1,394.6,383.9,65.9,219.5,1 946,-1,326.1,400.6,79.7,197.3,1 946,-1,252.6,1,53.5,119.6,1 946,-1,1742.7,674.5,92.4,248.5,1 946,-1,435.9,76.4,56.7,178.6,1 946,-1,478,37.8,53.5,149.6,1 946,-1,1751.5,133.1,59.1,176.6,1 946,-1,310.4,165.3,61.7,192.7,1 946,-1,476.9,215.7,63.4,184.3,0.999 686,-1,1221.8,29.8,62.1,120.7,1 686,-1,687,207,79.7,112.8,1 686,-1,360.4,529.9,108.7,250.8,1 686,-1,1481.1,6.4,60.4,146.2,1 686,-1,1488.6,148.2,52.6,175.1,1 686,-1,485.6,130.8,47.5,180.1,1 686,-1,803.9,147.9,55.8,168.2,1 686,-1,563.1,111.1,51.6,178.2,1 686,-1,1710.3,454.6,98.6,213.1,1 686,-1,1066.2,1.1,64.5,96.6,1 686,-1,1616,148.3,71.2,190.3,1 686,-1,312,362.6,68.8,216.1,1 686,-1,418.7,140.2,65.8,165.6,1 686,-1,360.2,115.6,48.7,169.9,1 686,-1,1574.3,589.2,97.8,237,1 686,-1,749.9,79.5,49.9,159.2,1 686,-1,1263.4,861.5,95.1,219.5,1 686,-1,1356.2,836,93.5,245,1 686,-1,242.1,202.7,62,200.5,1 686,-1,405.1,18.6,55.2,160.3,1 686,-1,295.9,218.9,58.6,177.5,1 686,-1,482.6,35.1,46.1,143.8,1 686,-1,223.7,129,49.7,165,0.998 686,-1,825.9,921,82.6,160,0.898 204,-1,1221.8,30.9,61.2,119.8,1 204,-1,687.1,207.3,77.8,112.8,1 204,-1,211.2,127.1,56.2,167.5,1 204,-1,397.2,603.5,91.5,246.1,1 204,-1,66,642.7,116.7,254,1 204,-1,1491.2,69.8,54.2,148.9,1 204,-1,704.9,1,55.6,159,1 204,-1,1720.6,456.7,78.6,210.9,1 204,-1,109.2,350.1,49.5,187,1 204,-1,1358.5,568.3,104.2,244.6,1 204,-1,288.7,125.9,55.4,172.3,1 204,-1,1208.9,145.9,53.6,165.8,1 204,-1,424.1,206.9,77.4,215.8,1 204,-1,522,132,58.2,165.1,1 204,-1,798,150.3,59.3,174.8,1 204,-1,1032.7,138.3,50.3,158.5,1 204,-1,355.2,107.6,55.3,178.1,1 204,-1,509.5,317.6,77.7,218.4,1 204,-1,893.2,154.6,72.3,187.8,1 204,-1,1148.6,141.3,60.4,183,1 204,-1,386.3,42.1,62.5,165.4,1 204,-1,804.4,312,72.2,186,1 204,-1,228.6,534,60,213.4,1 204,-1,754.9,296.2,68.7,204.8,1 204,-1,1,607.4,68.6,226.9,0.999 204,-1,965.6,914.3,71.6,166.7,0.977 421,-1,1221.8,30.4,62.4,118.4,1 421,-1,686.6,205,79,116.1,1 421,-1,1665.7,70.7,71.7,177.1,1 421,-1,359,109.7,54.1,175.3,1 421,-1,943.7,12.2,61.5,167.1,1 421,-1,1239.3,507.8,90.6,201.3,1 421,-1,1720.3,455.5,78.6,211.5,1 421,-1,453.7,245.8,79.9,202.5,1 421,-1,546.6,69.5,56.2,168.8,1 421,-1,110.8,349.1,51.7,189.1,1 421,-1,286.1,129.4,54.6,165.9,1 421,-1,1008,26.3,53.6,161.3,1 421,-1,837.5,1,51.2,133.5,1 421,-1,1580.6,616.9,96.3,240.4,1 421,-1,1766.5,135.9,54.2,164.5,1 421,-1,393.3,626.9,73.7,240.2,1 421,-1,284.4,602.2,98.6,248.7,1 421,-1,862.4,545.1,106.5,242.3,1 421,-1,798.2,148.9,54.8,175.6,1 421,-1,214.9,256.6,52.7,183.6,1 421,-1,220.8,141.2,72.3,160,1 421,-1,726.5,560.1,78.7,241,1 421,-1,358.8,1,67.4,121,1 421,-1,427.1,108.1,52.3,164.5,1 421,-1,717.6,1,50.9,123.9,1 421,-1,941.3,562.5,79.9,220.8,1 421,-1,1812.3,71.9,79.5,182.2,1 421,-1,424,1.4,45.3,124,1 421,-1,459.7,60.4,65.2,196.5,0.999 421,-1,713.9,89.3,61.6,175.3,0.999 421,-1,750.3,89,44.7,159.8,0.505 421,-1,984.8,929.5,81.4,151.5,0.079 843,-1,1221,29.3,62.5,119.6,1 843,-1,687.8,206.3,78.5,113.1,1 843,-1,794.4,138.2,76.5,176.6,1 843,-1,557.4,117.2,60.6,176.3,1 843,-1,1721.6,453.7,78.4,211.9,1 843,-1,1573.5,590.6,103.7,234,1 843,-1,1650.1,16.9,58,160.6,1 843,-1,266.4,586.7,82.6,244.5,1 843,-1,1068.9,1,56.4,105.6,1 843,-1,1469.2,60.7,60.8,153.7,1 843,-1,752.6,70.3,56,163.3,1 843,-1,296.9,161.8,69.7,194.8,1 843,-1,241,130.3,51.2,169,1 843,-1,1415.3,30.1,53.2,157.4,1 843,-1,436.9,267.3,55,206.6,1 843,-1,1024.4,518.8,75.2,236.7,1 843,-1,353.6,283.5,81.6,177.8,1 843,-1,939.1,536.7,71.8,240.9,1 843,-1,414.4,134.7,61.2,172.1,1 843,-1,474.4,136.6,59.5,180.5,1 843,-1,253.8,1.1,54.5,122,1 839,-1,1221,29.2,62.6,120,1 839,-1,687.8,206.1,78,113.2,1 839,-1,793.1,138.1,74.8,177.3,1 839,-1,557.2,116.5,60.7,174.7,1 839,-1,266.8,582.1,85,249.2,1 839,-1,1645.5,13.4,57.6,161.1,1 839,-1,1721,452.5,78.1,215.1,1 839,-1,1574.8,591.1,102.3,232.8,1 839,-1,752.6,70.6,56.2,164,1 839,-1,1470.6,56.9,61.1,154.1,1 839,-1,475.5,132.5,59.8,181.6,1 839,-1,354.1,277.3,83.4,180.1,1 839,-1,437,267.2,56.1,203.6,1 839,-1,1418.4,32.4,54,159.6,1 839,-1,239.6,129.1,51.9,171.2,1 839,-1,296.6,161.6,68.5,195.6,1 839,-1,1069.5,1.9,56.2,100.7,1 839,-1,944.1,543.5,70.1,234.6,1 839,-1,254.1,1.5,55,120.3,1 839,-1,1033.6,524.1,70.2,237.4,1 839,-1,416.4,128.5,59.2,178,1 707,-1,1221.4,29.8,61.8,118.6,1 707,-1,686.7,206.3,80.1,113.9,1 707,-1,1482,5.7,57.3,147.6,1 707,-1,561.1,110,54.8,178.4,1 707,-1,1602.8,132,66.1,185,1 707,-1,411.8,158.1,77.7,166.7,1 707,-1,1710.6,456.5,95.6,207.3,1 707,-1,295.1,388.3,74.3,217.2,1 707,-1,482.5,147.3,49.4,178.7,1 707,-1,1574.5,588.3,99,236,1 707,-1,1475,125.3,52.2,175.5,1 707,-1,801.3,139.5,48.1,173.9,1 707,-1,1298,782,89.1,278.6,1 707,-1,750,81.3,49.4,153.7,1 707,-1,473.4,24.8,45.5,135.2,1 707,-1,1211.6,811.1,89.6,266.5,1 707,-1,1001.1,1.8,67.4,89.7,1 707,-1,389.5,544.8,65.5,245.1,1 707,-1,258.9,196.3,57.7,196.8,1 707,-1,359.2,108,50.6,173.9,1 707,-1,306.6,210,58.4,176.4,1 707,-1,410.8,27.9,59.5,160.6,1 707,-1,229.1,134.9,52.4,164.5,0.999 707,-1,848.2,933.3,76.8,147.7,0.101 511,-1,1221.7,30.1,61.5,119.1,1 511,-1,1494.6,1,59.9,133.7,1 511,-1,686.4,207.1,80.2,113.9,1 511,-1,997.7,1,54.7,124.5,1 511,-1,398,182.2,63.7,186,1 511,-1,154.7,328.2,66.4,189.9,1 511,-1,1691,623,89.1,215.6,1 511,-1,335.5,171,51.5,170.5,1 511,-1,1675.6,24.7,54.9,170.7,1 511,-1,931.8,1,55.7,120.4,1 511,-1,458.9,137.3,74.1,191.4,1 511,-1,883.2,1.5,51.4,123.4,1 511,-1,789.9,141.1,57.3,178.2,1 511,-1,1718.8,460.8,81.9,206.6,1 511,-1,1611.7,301.6,63.1,198.2,1 511,-1,1615,15,55.4,176.4,1 511,-1,1713.6,329.2,95.2,194.4,1 511,-1,826.6,608.6,73.8,256.7,1 511,-1,1558.7,599.4,72.2,237.7,1 511,-1,937.4,693.3,123.8,257.8,1 511,-1,217.1,134.7,62.8,161.6,1 511,-1,286,797,77.8,257.9,1 511,-1,1842.4,193.6,75.7,200.2,1 511,-1,289,120,52.8,176.8,1 511,-1,202.3,768.1,92.3,272,1 511,-1,515.1,93.6,56.3,172.8,1 511,-1,725,97.2,67.6,161.4,1 511,-1,450.8,5.9,72.6,181.2,1 511,-1,1749,200.9,58.8,174.8,0.999 511,-1,397.5,23.1,48.5,162.3,0.997 511,-1,1034.8,719.4,74.5,246.6,0.35 511,-1,1042.6,936.2,75.5,144.8,0.21 511,-1,362.9,110.2,44.9,183.5,0.127 927,-1,1221.8,30.4,62,118.5,1 927,-1,686.2,206.2,79.9,113.1,1 927,-1,794.1,141.9,73.3,169.5,1 927,-1,1126.9,48.1,56.2,165,1 927,-1,453.4,211.5,69.2,190,1 927,-1,1487.1,1,63.3,126.3,1 927,-1,1573.9,587.5,103.8,235.2,1 927,-1,1475.5,117.6,60.9,161.5,1 927,-1,1719.9,452.9,80,214.2,1 927,-1,1276,822.8,96.7,258.2,1 927,-1,750.4,72.2,56.5,161.1,1 927,-1,557.5,115.8,58.1,172.4,1 927,-1,1618.6,79,53.3,163.6,1 927,-1,1428.1,2.3,47.7,125.6,1 927,-1,300.9,161.7,70,199.8,1 927,-1,945.1,392.4,82,223.7,1 927,-1,312.7,723.6,84.7,257.6,1 927,-1,472.5,23.2,53.1,153.7,1 927,-1,328.8,375.7,79.5,193.2,1 927,-1,863.7,410.4,64.2,213.4,1 927,-1,1731.9,109.5,53.3,174.2,1 927,-1,403.5,367.9,61.3,206.8,1 927,-1,240.1,132.8,54.5,166.9,1 927,-1,253.7,1,54.9,120.8,1 927,-1,1748,678,92.5,243.1,1 927,-1,369.6,209.7,60.6,184.9,1 927,-1,425.7,67,63.4,179.7,1 927,-1,313,2,48.1,127.9,0.999 930,-1,1221.7,30.4,61.3,119.2,1 930,-1,686.1,206.2,80.2,112.8,1 930,-1,794.7,139.9,74.5,172.8,1 930,-1,451.7,213,69.3,189.4,1 930,-1,1486.9,1,61.5,124.6,1 930,-1,1127.1,49.6,58.9,168.9,1 930,-1,1476.4,117.4,61.2,162.3,1 930,-1,1576,591.7,102,236.9,1 930,-1,1271.9,813.8,97,267.2,1 930,-1,557.1,116.4,57.9,172,1 930,-1,1720.1,454.2,79.2,213.8,1 930,-1,749.4,70.2,57.1,162.1,1 930,-1,944,386.8,82,223.7,1 930,-1,1426.7,2.5,46.7,125.1,1 930,-1,1619.9,77.8,56,167,1 930,-1,863,404.5,63.3,213.8,1 930,-1,301,160.6,69.5,200.4,1 930,-1,401.3,370.4,63.3,208.4,1 930,-1,315.4,729.7,84.4,259.6,1 930,-1,472.3,23.6,55.2,154.3,1 930,-1,253.8,1,54.6,120.2,1 930,-1,329.4,376.1,77.6,201.9,1 930,-1,239.3,132.9,55.1,167.8,1 930,-1,1750.5,681.3,89.4,245.6,1 930,-1,366.7,213.3,63.8,184.5,1 930,-1,1734.6,114.8,52.4,173.7,1 930,-1,428.1,66.3,60.8,180.1,1 930,-1,314.9,2.4,44.4,125.8,0.954 411,-1,1221.7,30.2,62,119.2,1 411,-1,685.7,205.8,80.2,114.6,1 411,-1,358.7,105.4,54.1,179.6,1 411,-1,458.8,258.9,76.5,203.7,1 411,-1,1653.3,57.2,71.2,171.8,1 411,-1,551.1,69.9,58.1,170.4,1 411,-1,109.5,348.3,53.1,190.6,1 411,-1,1719.6,454.4,79.4,210.3,1 411,-1,285.8,129.6,55,166.5,1 411,-1,407.4,610.6,77.4,241.3,1 411,-1,1770.7,121.9,60.7,171.4,1 411,-1,947.9,17.4,60.6,170.7,1 411,-1,831.1,1.1,56.7,130.3,1 411,-1,794.7,151.2,59.5,172.2,1 411,-1,298.7,584.9,83.9,254.2,1 411,-1,220.2,141.5,65.8,155.6,1 411,-1,1004.7,31,56.1,162.7,1 411,-1,1581.8,614.7,105.6,247.1,1 411,-1,205.2,267.4,55.7,185,1 411,-1,360,1,65.3,112.4,1 411,-1,1217.2,490.3,59.9,210,1 411,-1,426.3,90.9,51.9,174.6,1 411,-1,462.7,69.6,67.8,190.6,1 411,-1,857.2,533.5,104.4,241.9,1 411,-1,701.8,558,91.4,238.8,1 411,-1,1855.5,68.2,65.5,178.6,1 411,-1,718.3,1,51.2,135.6,1 411,-1,930.1,549.2,83.6,222.1,1 411,-1,712.3,92.4,62.8,167.2,0.999 411,-1,425.4,1.7,43,112.6,0.989 411,-1,979.5,921.5,83.7,159.5,0.724 59,-1,1221.7,29.9,61.4,116.7,1 59,-1,686.5,206.8,79.3,113.5,1 59,-1,1487.1,69.6,55.2,153.5,1 59,-1,488.2,185.9,82.3,192.9,1 59,-1,402.4,346.4,82.5,233.2,1 59,-1,1361.6,566.5,104.8,243.9,1 59,-1,704.6,1,55.5,157.5,1 59,-1,355.4,112.7,54.6,172.9,1 59,-1,1722.7,456.9,75.9,209.8,1 59,-1,1002.8,180.4,71.2,179.2,1 59,-1,212.2,129,49.5,164.5,1 59,-1,103.2,546.9,84.1,252.5,1 59,-1,10.4,761.5,67.9,234.2,1 59,-1,447.6,110.3,52.4,150.4,1 59,-1,285.3,126.3,54.2,169.8,1 59,-1,795.4,144.7,63.9,184.8,1 59,-1,1365.7,212.6,42.4,166.5,1 59,-1,151.3,360,57.5,191.4,1 59,-1,840.8,198.5,85.8,174.6,1 59,-1,1305,177.3,58.2,167.9,1 59,-1,385.3,40.4,54.1,170.6,1 59,-1,1470.5,212.9,60.8,194.6,1 59,-1,540.7,63.7,44.1,164.6,1 59,-1,484.4,41.9,58.4,163.1,1 59,-1,1871.4,285.7,49.6,198.8,0.979 59,-1,893.1,188.7,53.1,167,0.797 59,-1,439.2,47.9,49.8,146.4,0.332 333,-1,1220.9,31.5,63.2,118.7,1 333,-1,389.9,577.6,97.9,252.9,1 333,-1,686.6,206.8,78.6,112.4,1 333,-1,1586.9,1,60,128.1,1 333,-1,449.9,111.6,72.6,190.5,1 333,-1,1448.4,1.4,55.7,130.7,1 333,-1,108.2,350.6,52.9,190.9,1 333,-1,1722.8,69,58.8,154.2,1 333,-1,1721,459,77.6,210.7,1 333,-1,795.7,149,61.8,173.6,1 333,-1,283.5,132.9,55.1,172.6,1 333,-1,984.7,65.7,60.4,178.3,1 333,-1,235.3,354.3,58.2,190.1,1 333,-1,362.9,104.8,57.6,180,1 333,-1,1829.5,502.4,70.8,210,1 333,-1,927.3,27.1,65,175.9,1 333,-1,213.8,141.5,53.6,158.8,1 333,-1,1533.7,608.3,84.8,243.9,1 333,-1,897.8,446.3,69.7,207.7,1 333,-1,520.9,99.3,40.4,168,1 333,-1,1041.6,74.3,51.3,161.8,1 333,-1,721,95.4,52.2,170.1,1 333,-1,507.5,491.1,69.9,224.8,1 333,-1,840.1,439.1,81.7,218,1 333,-1,945.3,398.2,69,194.2,1 333,-1,420.1,48.4,58.1,168.8,0.999 333,-1,779.4,95.3,41.6,157.6,0.996 333,-1,939.4,913.8,69.1,167.2,0.96 333,-1,375.8,924.9,98.5,156.1,0.44 333,-1,433.9,870.6,79.6,210.4,0.223 75,-1,1221.6,30.6,61.3,118.1,1 75,-1,1251.9,173.3,66.9,164.8,1 75,-1,1486.9,69.6,55.6,149.4,1 75,-1,686.6,206.9,79.2,114.8,1 75,-1,410.7,329.8,83.7,230.5,1 75,-1,704.9,1,56,159.9,1 75,-1,356.5,105.8,55.5,180,1 75,-1,1361.4,565.8,104.6,246.5,1 75,-1,1720.9,456.2,78.3,211.1,1 75,-1,491.5,200.5,78.3,194.2,1 75,-1,986.2,185,70.2,187.6,1 75,-1,1432.3,200.5,75.6,195.8,1 75,-1,10.5,731.9,71,232.5,1 75,-1,134.5,354.8,52.5,189.2,1 75,-1,103,546.3,85.3,254.7,1 75,-1,289.2,128.3,53.6,167.3,1 75,-1,776.7,192.3,74.4,179.2,1 75,-1,211.9,131.9,50.8,163.9,1 75,-1,1334.8,203.6,43.2,165.8,1 75,-1,537.6,64.7,48.8,168.1,1 75,-1,434.2,26,52.1,160.6,1 75,-1,839.6,168.4,59.2,187.2,1 75,-1,381.9,29.8,52.2,164.8,1 75,-1,886.2,190.1,56.6,168.7,1 75,-1,472,117.8,60.5,162.9,0.999 75,-1,389.3,901.5,98.7,179.5,0.998 75,-1,255.3,95.7,56.8,173.4,0.997 855,-1,1221.1,29.9,62.6,118.5,1 855,-1,686.7,206.1,79.9,113.2,1 855,-1,487.8,1,50.3,116.2,1 855,-1,796,140.3,76.4,174.3,1 855,-1,1671.1,31.5,52.5,160.5,1 855,-1,1721.7,453.6,77.5,212.4,1 855,-1,341.9,299,79.6,177.1,1 855,-1,1575.5,590.2,103.4,235.2,1 855,-1,559.1,115.9,59.5,175.8,1 855,-1,1073.3,1,61,119.2,1 855,-1,1471.4,62.2,60.3,159.4,1 855,-1,268.7,607.1,82.3,245.3,1 855,-1,1411.5,27,53.1,153.9,1 855,-1,753.1,70.9,54.9,162.7,1 855,-1,238.1,132.8,54.6,167.9,1 855,-1,253.9,1,55.2,121.7,1 855,-1,433.6,283.1,54.8,200.9,1 855,-1,298,161.2,71.8,195.3,1 855,-1,922.5,514.5,72.4,233.5,1 855,-1,473,143.5,61.2,189.2,1 855,-1,1000.1,494.1,82.8,239.2,1 855,-1,415.8,143.3,60.5,172.3,1 621,-1,1221.7,30.1,62.2,118.7,1 621,-1,686.9,206.1,80.1,113.3,1 621,-1,1480.9,5.2,60.5,143.5,1 621,-1,1624.2,209.8,79.3,193,1 621,-1,353,294,67.4,201.6,1 621,-1,801.3,146,65.9,170,1 621,-1,1710.8,456.7,92.9,209.7,1 621,-1,1573.9,589,97.3,236.4,1 621,-1,358,115.9,52.2,171.3,1 621,-1,556.5,111.3,53.8,176.4,1 621,-1,288.6,127.4,51.4,168.2,1 621,-1,352.6,1,53.9,120.8,1 621,-1,246.2,250.1,61.6,189.9,1 621,-1,174.7,238,75.4,203.8,1 621,-1,497.2,88,47.2,158.3,1 621,-1,754.4,82.1,42.2,152.6,1 621,-1,566.5,541.9,73.1,240.5,1 621,-1,1598.1,1.4,52.5,94.5,1 621,-1,229.3,134,51.7,162.8,1 621,-1,405.8,99.8,52.1,161.7,0.999 621,-1,445.4,82.4,47.6,166.8,0.999 621,-1,1113.3,914.6,101.5,166.4,0.995 272,-1,1222.3,31.7,60.9,118.5,1 272,-1,385.6,11.3,61,159.9,1 272,-1,687.5,206.5,78.3,111.8,1 272,-1,1638,21.1,60.2,152.7,1 272,-1,289.9,129.6,55.3,170.6,1 272,-1,455.8,153.7,74.2,209.4,1 272,-1,1114.1,97.2,58.3,169.2,1 272,-1,942.1,89.2,69.1,181.7,1 272,-1,1720.7,457.2,77.9,212,1 272,-1,219.4,129.5,54.6,164.1,1 272,-1,796.1,149.8,62.3,175.3,1 272,-1,381.9,468.8,89.9,232.7,1 272,-1,354.5,105.5,53.4,180.1,1 272,-1,107.9,349.9,50.9,189.8,1 272,-1,704,1.3,54.6,158.2,1 272,-1,186.7,573,87.8,254.1,1 272,-1,1041.6,102,62.2,185.4,1 272,-1,1472.9,41.2,55.3,153.3,1 272,-1,719.9,334.9,68.1,194.5,1 272,-1,232.8,433.3,61.5,199.4,1 272,-1,1416.8,568.1,101.6,250.7,1 272,-1,259.7,775.9,87.9,269.4,1 272,-1,805.7,365.7,90.3,217.2,1 272,-1,875.5,378.7,77.9,195.4,1 272,-1,753.8,102.9,47.1,172,1 272,-1,565.3,403.9,64.1,215.5,1 272,-1,513.1,115.7,53,174.6,1 272,-1,473.7,395,73.8,224.5,1 272,-1,864.4,108.8,43.4,155.3,1 272,-1,944.4,918,82.6,163,0.93 660,-1,1220.5,28.6,62.8,121.1,1 660,-1,687,206.2,79.8,113.1,1 660,-1,1481.6,5.2,60.6,143.4,1 660,-1,1710.8,456.4,96.1,208.5,1 660,-1,802.5,144.4,63.5,172.2,1 660,-1,550.9,111.2,60.5,177.5,1 660,-1,1145.8,2.8,71.8,112.2,1 660,-1,359.3,114.7,50.8,168.9,1 660,-1,325.6,332.5,69.8,209.5,1 660,-1,1575.6,588.2,96.6,234.3,1 660,-1,440.9,529.6,78.9,245.6,1 660,-1,1612.9,170.8,78.4,184.2,1 660,-1,408.4,1,57.7,155.2,1 660,-1,475,110.2,48,175.9,1 660,-1,223.1,214.1,56.7,202.8,1 660,-1,751.2,80.9,46.3,154.3,1 660,-1,426.2,124.8,59.9,159.1,1 660,-1,275.1,231.5,58,181.9,1 660,-1,1424.5,906.1,97.4,174.9,1 660,-1,354.5,1.3,52.2,142.9,0.999 660,-1,287.6,123.2,53,173.7,0.999 660,-1,1352.7,926.1,81.2,154.9,0.989 660,-1,1503.1,169,46.1,169.5,0.176 113,-1,1220.8,30,63.5,119.8,1 113,-1,355.7,105.4,56.9,178.1,1 113,-1,210.2,129.1,51.5,163.7,1 113,-1,391.7,798.7,98.2,277.5,1 113,-1,704.2,1,55.6,159.8,1 113,-1,1487.1,68.5,56.4,151.2,1 113,-1,108,350.3,50.2,187.4,1 113,-1,934.1,206.8,68.9,191.4,1 113,-1,1721.1,457.1,78,210.6,1 113,-1,290.3,124.2,56.3,171.5,1 113,-1,1145.1,151.2,57.1,169.9,1 113,-1,1358,566.6,106.1,244.9,1 113,-1,1249.9,184.1,46.7,168.2,1 113,-1,425.5,290.3,80.9,226.9,1 113,-1,514.5,235.4,71.6,203.2,1 113,-1,1370,181.4,63,193.9,1 113,-1,538.5,65,49.2,167.2,1 113,-1,480.5,153.4,55.2,164.7,1 113,-1,53.8,674,82.4,223,1 113,-1,103.3,544.9,83.3,257.3,1 113,-1,840,220.6,57,174.4,1 113,-1,441.4,1,54.4,154.3,1 113,-1,795.9,204.2,60.4,190.5,1 113,-1,481.4,40.4,60.2,158,0.999 113,-1,376.9,2.9,46.5,157.9,0.998 113,-1,1130.5,928.8,82.2,152.2,0.274 1033,-1,1221.6,30.1,61.7,118.7,1 1033,-1,687.1,206.8,79.1,113.2,1 1033,-1,792.7,141.3,72.8,172.6,1 1033,-1,487.9,307.9,73.6,194.1,1 1033,-1,1719.3,455.6,82.3,211.6,1 1033,-1,288.9,128.6,53,168.3,1 1033,-1,1701.6,200.6,64.3,180.9,1 1033,-1,234.1,139.9,56.9,165.5,1 1033,-1,847.2,256.8,63.9,196.4,1 1033,-1,366.6,321.3,74,198.5,1 1033,-1,936.2,247.1,67.3,200.3,1 1033,-1,1265.8,180.3,65,169.5,1 1033,-1,1574.1,590.2,103.6,239.4,1 1033,-1,294,316.1,67.6,203,1 1033,-1,751.1,76.4,53.8,160.6,1 1033,-1,1138,574.2,84.1,248.4,1 1033,-1,1687.1,684,77.1,234.4,1 1033,-1,288.8,519.9,87.3,211.7,1 1033,-1,371.4,104.7,59.1,178.7,1 1033,-1,374.7,504.1,64.8,228.3,1 1033,-1,1848.3,242.1,63.7,194.5,1 1033,-1,1469.5,207.5,68.6,160,1 1033,-1,580.7,541.8,71,249.2,1 1033,-1,308.4,2.3,37,129.5,1 1033,-1,435.8,172.6,61.9,165.3,1 1033,-1,539.1,120.8,61.3,170.9,1 1033,-1,485.8,165.2,65.7,190.5,1 278,-1,1221.3,31.5,62,118.2,1 278,-1,686.5,207.1,78.6,112.5,1 278,-1,1471.6,35.6,54.5,149.4,1 278,-1,1647.4,22.8,57.2,156.3,1 278,-1,390.9,465.7,83.8,225.4,1 278,-1,394.9,17,57.7,164,1 278,-1,288.9,128.5,55.2,172.7,1 278,-1,1031.5,100.1,62.5,186.9,1 278,-1,355.3,108.6,53.4,177.5,1 278,-1,454.3,146.6,75.9,206.4,1 278,-1,1720.3,457.1,79.1,211.6,1 278,-1,108.2,351.2,51.4,188.4,1 278,-1,941.3,83.8,67.5,179,1 278,-1,795.4,149.1,60.6,174.1,1 278,-1,704.3,1.2,54.6,158.7,1 278,-1,1108.3,96.9,52,164,1 278,-1,222.5,132,52.7,161.1,1 278,-1,198.1,576.4,90.5,251.7,1 278,-1,740.2,332.7,68,187.5,1 278,-1,269.4,795.4,89.6,263,1 278,-1,809.5,371.9,86.6,212,1 278,-1,232.8,424.3,59,201.6,1 278,-1,881.1,387,76.6,194.5,1 278,-1,559.2,412.4,64.6,213.1,1 278,-1,752.2,105.2,46,168.6,1 278,-1,515.6,111.4,51.3,177.3,1 278,-1,1427.9,577.7,98.2,246.5,1 278,-1,853,111.1,43.9,158.5,1 278,-1,470,398.8,69.3,223.3,1 278,-1,944.7,920.5,85.8,160.5,0.761 481,-1,1221.8,30.9,62.1,117.9,1 481,-1,686.8,206.4,79.2,113.6,1 481,-1,999.8,1,57.2,145.6,1 481,-1,931.8,1,57,140.5,1 481,-1,1791.6,149,73.6,187.5,1 481,-1,1502.2,1,58.8,121,1 481,-1,294.3,197.3,52.1,172.9,1 481,-1,1686.1,458.4,114.8,209.7,1 481,-1,803.8,589.6,89.3,256.8,1 481,-1,453.1,169.4,71.4,193.7,1 481,-1,876.4,1,53.7,132.7,1 481,-1,131.1,341,57.9,189.5,1 481,-1,1783.9,359.7,82,213.8,1 481,-1,315,737.2,74.4,262.3,1 481,-1,361.6,109.3,54.9,176.1,1 481,-1,1728.6,174.9,63.6,168.6,1 481,-1,803.3,142.4,47.7,179,1 481,-1,220.2,137.9,60.7,160.1,1 481,-1,1634.3,332.6,62.9,199.4,1 481,-1,219.9,706.8,94.3,265.7,1 481,-1,913.8,641.4,119.3,253.6,1 481,-1,1704,51.2,49.2,165.5,1 481,-1,1536.1,595.9,79.6,246.2,1 481,-1,447.5,25.5,72.7,185.3,1 481,-1,1649.2,41.8,56.5,175,1 481,-1,507.8,87.1,62,173.1,1 481,-1,411.3,5.7,47.1,157,0.999 481,-1,713.4,93.2,56.3,164.4,0.999 481,-1,417.2,154.2,58.6,179.4,0.999 481,-1,752.3,98.6,53.9,141.2,0.999 481,-1,988.9,660.8,79.9,224.3,0.502 481,-1,1019.7,930.8,79.4,150.2,0.243 711,-1,1221.5,30.3,62.3,118.7,1 711,-1,687,206.3,79.5,113.3,1 711,-1,1481.1,6.7,57.2,145,1 711,-1,1601,125.1,68.9,184.1,1 711,-1,556.4,111,58.2,178,1 711,-1,481.3,151.3,50.2,179.3,1 711,-1,1573.2,587.9,101.8,237.4,1 711,-1,1474.9,119.5,53.3,180,1 711,-1,1197.7,797,92.7,265.8,1 711,-1,1712.1,455.4,95.8,208.6,1 711,-1,411.2,165.1,76.5,166.5,1 711,-1,294.7,396.6,76.7,218.9,1 711,-1,360.1,110.4,50.7,174,1 711,-1,260.3,194.8,56.2,198,1 711,-1,749.7,80.3,49.7,156.1,1 711,-1,391.3,546.2,72.5,240.1,1 711,-1,1287.3,772.9,89.6,279.3,1 711,-1,800.2,138.6,47.3,172.2,1 711,-1,471.3,21.9,45.3,145.5,1 711,-1,412.2,30.5,61.8,162,1 711,-1,307,207.6,59,176.2,1 711,-1,231.6,133.7,50.9,167,1 711,-1,981.9,2.6,80.1,84.7,0.998 58,-1,1221.8,29.7,61,116.1,1 58,-1,686.2,206.8,80.2,113.2,1 58,-1,1487.3,69.5,55.2,153.7,1 58,-1,487.9,182.2,85.1,196.4,1 58,-1,401.7,346.4,82.3,233.2,1 58,-1,1361.9,566.2,104.3,245.5,1 58,-1,705.2,1,55.1,158.4,1 58,-1,1721.4,456.5,77.4,210.4,1 58,-1,1002.7,178.8,72.2,178.1,1 58,-1,445.4,108.6,54.7,152.9,1 58,-1,355.9,114.2,53.7,171.9,1 58,-1,102.7,546.4,84.5,253.3,1 58,-1,212.6,129.4,49.5,164.8,1 58,-1,794.9,145.7,63.4,185.9,1 58,-1,10.4,766.3,67.1,231.2,1 58,-1,284.7,126.3,54.2,169.5,1 58,-1,153,361.2,59.3,192,1 58,-1,1307.9,177.6,59.8,167.8,1 58,-1,847.2,195.8,79.6,176.3,1 58,-1,385.1,41.5,55.4,169.5,1 58,-1,1367.6,210.6,41.6,171.4,1 58,-1,540.7,62.5,44,166.7,1 58,-1,1472.6,215.3,60.2,192.9,1 58,-1,484.4,43.1,57.6,161.5,0.999 58,-1,1869.7,282.2,51.3,201.9,0.988 58,-1,895,187.2,50.1,173.5,0.746 58,-1,241.9,93.7,47.6,178.5,0.157 682,-1,1221.6,29.4,61.7,121.6,1 682,-1,687,207,79.8,113.3,1 682,-1,1480.9,4.3,60.6,146.8,1 682,-1,366.5,532.4,109.3,249.7,1 682,-1,1488.6,155,53.3,175.7,1 682,-1,485.3,131.8,46.1,174.7,1 682,-1,1709.9,456.1,98.1,210.8,1 682,-1,563.3,112.7,50,177.1,1 682,-1,804.2,145.4,58.8,173.9,1 682,-1,314.3,357.4,69.5,213.3,1 682,-1,1619.1,152.7,72.2,187.7,1 682,-1,1574.4,589.7,97.2,233.3,1 682,-1,417.4,141.2,67.7,161.8,1 682,-1,360.7,115.5,49.5,168.8,1 682,-1,750,80.1,49.8,156.9,1 682,-1,1277.4,870.4,91.2,210.6,1 682,-1,1072.8,1,80.9,102.2,1 682,-1,403.1,12.3,58.7,161.8,1 682,-1,237.1,206.6,64.2,198.6,1 682,-1,1364.7,855.1,97.1,225.9,1 682,-1,291.7,220.8,59.4,176.4,1 682,-1,480.1,38.9,48.2,141.4,0.999 682,-1,835.1,924.6,73.5,156.4,0.938 682,-1,294.3,1,62.6,134.8,0.186 682,-1,225.6,137.9,48,167.3,0.103 222,-1,1221.4,31,60.8,120.1,1 222,-1,686,206.7,79.5,113.7,1 222,-1,401,570.2,83.9,246,1 222,-1,108.7,347.2,51.5,190.7,1 222,-1,1194.9,131.9,46.6,166.4,1 222,-1,1491.6,68.4,54.4,148.9,1 222,-1,705.6,1,55.1,160.2,1 222,-1,356.7,105.8,53.5,180.4,1 222,-1,289.2,128.8,54.7,171.9,1 222,-1,212.3,127.5,54.8,165.7,1 222,-1,1117.9,130.1,58.6,182.1,1 222,-1,429.6,190.3,74.6,214.9,1 222,-1,1720.8,456.8,78.1,212.2,1 222,-1,902.8,139,76.8,185.7,1 222,-1,1356.6,566.7,105.2,245.6,1 222,-1,131.4,672,103.8,255.7,1 222,-1,795,150.1,61.6,169.3,1 222,-1,519.2,123.7,46.7,176,1 222,-1,506.8,335.2,72.8,220.4,1 222,-1,216.1,505.1,61.2,200.9,1 222,-1,824.1,325,75.9,190.4,1 222,-1,62.3,625.1,108.9,243,1 222,-1,987.7,126.3,39,154.1,1 222,-1,765.5,312.9,76.1,204,1 222,-1,940.1,908.4,71.8,172.6,0.993 222,-1,595.7,344.5,60.8,201.1,0.949 222,-1,1571.4,2.9,52,137.6,0.948 413,-1,1221.8,30.2,61.7,118.4,1 413,-1,685.9,205.7,80.3,114.5,1 413,-1,455,250.8,80.1,207.4,1 413,-1,358.4,108,54.3,176.7,1 413,-1,551.7,71.2,56.2,165.7,1 413,-1,1720.9,452.3,77.3,213.6,1 413,-1,1656.3,61.3,70.8,169.5,1 413,-1,1771.1,125.5,59.1,168.3,1 413,-1,404.2,615.2,76.3,242,1 413,-1,296.2,592.5,83.3,246.7,1 413,-1,286.9,130.2,55,165,1 413,-1,358.2,1,67.9,112.1,1 413,-1,946.9,17.3,59.9,169.8,1 413,-1,110.4,349.8,51.9,189.5,1 413,-1,831.5,1.5,54.1,131.3,1 413,-1,1005.5,30.6,55.4,162.1,1 413,-1,796.3,150.5,57.7,172.3,1 413,-1,219.8,143,67.5,155.1,1 413,-1,1583.2,615.2,102.3,241.8,1 413,-1,206,265.3,55.4,185.6,1 413,-1,1223.9,492,63,207.9,1 413,-1,858.9,538.8,103.9,241.7,1 413,-1,460.5,68.5,70.6,196.1,1 413,-1,426.2,93.2,53.4,173.1,1 413,-1,707.9,558.4,88.8,244.1,1 413,-1,1847.5,70.2,73.5,179.8,1 413,-1,711.5,88.1,64.7,174.8,1 413,-1,717.7,1,51.5,130.1,1 413,-1,933,554.6,81.9,216.1,0.999 413,-1,426,1,40.7,112.4,0.984 413,-1,980.7,923.1,81.2,157.9,0.741 718,-1,1221.5,29.9,61.9,118.4,1 718,-1,686.8,206,79.5,113.4,1 718,-1,1479.9,7.9,58.3,145.2,1 718,-1,553.3,113.1,59.2,177.5,1 718,-1,1474.5,115,52.4,182.7,1 718,-1,1711.7,456.6,95.2,207.1,1 718,-1,1598.8,120.4,64.2,183.7,1 718,-1,1575.2,590.2,98.8,234.8,1 718,-1,299.3,402.6,75.2,216.7,1 718,-1,479,160.5,52.5,181.8,1 718,-1,413.2,170,67.5,163.4,1 718,-1,391.2,548.3,92.2,243.2,1 718,-1,261.3,192.5,56.5,198.6,1 718,-1,1265.6,757.9,90.9,267.7,1 718,-1,415.4,34.7,60.8,164.8,1 718,-1,360.2,113.7,49.6,168.6,1 718,-1,750.1,82,49.2,153.3,1 718,-1,792.8,136.1,47.8,178.3,1 718,-1,1183.8,780.9,84.3,266.4,1 718,-1,468.3,18.3,46.5,138.3,1 718,-1,312,206.2,62.2,175.7,1 718,-1,235.4,133.7,49.8,167.9,0.999 718,-1,966.5,1,73.8,78.8,0.096 980,-1,686.6,206.5,79.5,112.5,1 980,-1,1221.5,30.1,62.4,120.1,1 980,-1,794.5,140.5,71,171.5,1 980,-1,1177.5,113.7,57.7,165.3,1 980,-1,493.7,249.4,67.1,186.6,1 980,-1,334.1,822.3,95.5,258.7,1 980,-1,410.1,265.4,69.2,190.9,1 980,-1,1786.5,165.1,68.4,182.6,1 980,-1,1574.3,590.7,103.9,234.7,1 980,-1,1662.7,133.9,56.1,170.6,1 980,-1,1469.3,159.5,70.1,167.7,1 980,-1,230.6,137.9,54.8,163,1 980,-1,842.5,326.3,69.2,201.3,1 980,-1,322.1,256.9,63.1,198,1 980,-1,1719.3,452.2,79.8,216,1 980,-1,751.6,72.3,56.3,163.5,1 980,-1,304.6,440.1,87,209.3,1 980,-1,547,119.5,54.3,168.8,1 980,-1,925.1,313.7,66.7,213.3,1 980,-1,1452.1,1,57.9,98.2,1 980,-1,393.7,432.8,64,216.2,1 980,-1,290.3,126.2,53.2,175.7,1 980,-1,1198.3,687.3,87.3,270.5,1 980,-1,447.1,60.2,54.5,186,1 980,-1,1739.3,673.5,96,250.6,1 980,-1,313.6,1.4,47.4,128.8,1 980,-1,362.1,168.7,65.5,183.4,1 980,-1,381,1,54.9,132.4,0.999 980,-1,1389.8,1.7,46.9,95.9,0.999 980,-1,491,61.9,51.7,157.9,0.998 150,-1,1221.5,31.4,62.2,118.1,1 150,-1,1488.2,68.2,55.4,149.2,1 150,-1,704.4,1,56.2,157.8,1 150,-1,356.5,102.1,55.5,180.5,1 150,-1,1722.3,456,76.4,211.7,1 150,-1,1027.7,133.2,58.5,176.2,1 150,-1,420.8,255,76.8,222.3,1 150,-1,109.2,352.7,49,183.9,1 150,-1,1163.7,163.5,52.6,162.9,1 150,-1,288.3,121.8,54.7,175.1,1 150,-1,1358.4,565.7,105.8,246.7,1 150,-1,216.7,126,54.5,165.3,1 150,-1,539,65.7,50.6,163.1,1 150,-1,403.2,714.9,93.9,262.7,1 150,-1,686.6,205.8,81.7,114.8,1 150,-1,1282.7,176,64.6,179.3,1 150,-1,809.7,258.3,62.6,180.3,1 150,-1,100.7,541.3,88.3,261.6,1 150,-1,530.9,270.7,59.7,203.1,1 150,-1,591.2,259.2,58.3,194,1 150,-1,863.3,203.3,69.9,195.5,1 150,-1,382.4,1.1,47.7,126.3,1 150,-1,487,197.9,59.6,166.8,1 150,-1,758,245.9,69.1,191.2,1 150,-1,460.5,36.3,50,162.7,1 150,-1,178.5,614,72.5,215.9,1 150,-1,1049.8,916.9,69.6,164.1,0.991 249,-1,1220.7,30.9,62.8,117.9,1 249,-1,686.8,207.1,78.6,113.6,1 249,-1,1598.9,8.7,67.1,144.9,1 249,-1,796.5,153.3,59.8,172.4,1 249,-1,393,514,89.3,248.7,1 249,-1,1375,568.2,102.9,241.5,1 249,-1,212.1,127.5,55.3,164.5,1 249,-1,1480.8,57.5,54.3,152.2,1 249,-1,223.9,465.9,59,199.4,1 249,-1,1152.9,112,52.6,167.4,1 249,-1,1720.5,456.1,78,212.5,1 249,-1,288,129.5,54.5,168.7,1 249,-1,355.3,104.8,55.5,181.4,1 249,-1,108,350.5,51.1,190.4,1 249,-1,449.9,173,75.9,210.4,1 249,-1,704.2,1,54.4,157.3,1 249,-1,1075.1,116.4,59.1,183.1,1 249,-1,934.3,109.8,71.8,182.9,1 249,-1,215.7,734.3,89.2,253.1,1 249,-1,490.5,361.6,73.5,228.5,1 249,-1,515.9,117.2,54.1,183.5,1 249,-1,855.3,352,79.3,196.9,1 249,-1,123.6,568.1,81.4,241.8,1 249,-1,585.1,376.6,63.4,204.2,1 249,-1,789.7,340.6,83.2,209.5,1 249,-1,765.8,99.7,53,169,0.999 249,-1,928.8,904,75.7,177,0.997 249,-1,908,118.1,44.7,141,0.278 87,-1,1222,30.4,60.9,116.6,1 87,-1,418.3,316.9,82.4,231.4,1 87,-1,704.1,1,56.3,158,1 87,-1,1487.2,69.5,54.8,147.5,1 87,-1,355.4,106.2,56.6,178.7,1 87,-1,394.1,868.3,104,212.7,1 87,-1,1721.6,456.8,77.3,209.9,1 87,-1,499.5,209.5,74.4,199.9,1 87,-1,1220.4,160.4,62.6,169.4,1 87,-1,973.3,193.9,72.8,187.7,1 87,-1,1359.2,566.1,105,244.8,1 87,-1,102.4,547.5,85.7,252,1 87,-1,294.8,127.5,51.5,168.6,1 87,-1,742,186.6,64.5,182.3,1 87,-1,210.8,130.8,50.3,163.3,1 87,-1,124.9,352.2,45.8,192,1 87,-1,1416.5,196.5,66,192.3,1 87,-1,20.4,715.1,69,227.5,1 87,-1,1311.2,200,44.3,170.8,1 87,-1,1476.9,193.1,53,176.8,1 87,-1,539,63.3,48.6,172.1,1 87,-1,437.6,15.9,52.8,159.3,1 87,-1,873.6,200.6,55.8,169.7,1 87,-1,377.9,21.1,53.9,162.4,1 87,-1,480.5,127.3,56.9,168.8,0.999 87,-1,255,93.6,60.4,181,0.999 87,-1,834.7,177.2,56.8,187.1,0.999 87,-1,691.9,206.1,62.3,120.3,0.999 87,-1,798.6,160.9,47.1,153.3,0.397 87,-1,485.7,34,50.4,175,0.083 128,-1,1221.5,29.7,62.3,119.4,1 128,-1,356.1,103.5,56.8,181.4,1 128,-1,1487.7,69.8,56,147.9,1 128,-1,704.1,1,56.5,158.5,1 128,-1,108.4,350.4,49.3,187.1,1 128,-1,399,763.7,96.2,273.4,1 128,-1,1097.8,139.9,59,174.4,1 128,-1,287.9,126.9,54.6,168.9,1 128,-1,1358.3,566.7,105.1,244.4,1 128,-1,425.4,278.5,74.3,220.3,1 128,-1,1722.2,457.5,75.8,209.7,1 128,-1,905,211,71.9,190.8,1 128,-1,1337.8,181.6,56.5,180.4,1 128,-1,688.5,203.5,76.5,115.5,1 128,-1,539.2,66,50.6,166.8,1 128,-1,1214.7,177.8,45.9,163.8,1 128,-1,218.5,128.5,50.8,165.4,1 128,-1,524.4,246.8,71.1,204.9,1 128,-1,779.9,221.4,66.1,191.7,1 128,-1,477.3,167.1,57.8,174.2,1 128,-1,378.9,2.2,46.1,142.6,1 128,-1,478.8,43.8,56.4,161.5,1 128,-1,448,1,51.7,144.7,1 128,-1,112.6,648,60.1,224.8,1 128,-1,826.9,234.8,54.5,170.8,0.999 128,-1,1088.4,926,83.2,155,0.925 332,-1,1220.8,31.2,63.9,118.8,1 332,-1,686.5,206.9,79,112.2,1 332,-1,389.9,576.5,90.9,255.4,1 332,-1,1721.8,66.6,59.8,155.4,1 332,-1,449.4,112.3,74.2,191.6,1 332,-1,1585,1.3,61.4,127.1,1 332,-1,1448.7,1.5,55.7,131.8,1 332,-1,109,350.5,51.7,190.2,1 332,-1,1720.1,458.5,79,211.2,1 332,-1,361.5,104.5,58.6,182.4,1 332,-1,282.7,132.5,55.3,172.6,1 332,-1,984.2,64.7,61.7,181.3,1 332,-1,235.7,354.6,59,190.3,1 332,-1,927.7,27.1,64.9,176.6,1 332,-1,796.8,151.9,58.4,171.2,1 332,-1,1830.6,503.1,69.7,210.7,1 332,-1,897.5,445.7,70.8,205.4,1 332,-1,213.8,141.9,53.4,158.1,1 332,-1,720.8,94.3,52.9,173.5,1 332,-1,1533.4,606.6,83.9,246,1 332,-1,1042.4,75.9,52.1,160.9,1 332,-1,508.8,489,69.5,228.6,1 332,-1,838.3,438.5,83,217.4,1 332,-1,521.1,100.6,39.5,167.2,1 332,-1,419.4,48.6,57.6,167.1,1 332,-1,939.4,397.6,72.6,191.8,0.999 332,-1,780.9,94.6,40.7,161,0.989 332,-1,938.8,913.1,67.6,167.9,0.966 332,-1,410.5,467.7,86.1,229.1,0.638 332,-1,375.5,919.4,88.8,161.6,0.117 433,-1,1221.8,30.7,62.1,118.2,1 433,-1,938.8,6.5,62.9,165.3,1 433,-1,685.9,205.8,80.8,112.9,1 433,-1,1313.2,519.1,67.4,207.7,1 433,-1,359,108.4,52.5,179,1 433,-1,447.6,227.2,79.5,202.2,1 433,-1,844.8,1,54.2,135.6,1 433,-1,1009.6,21.3,53.7,160.4,1 433,-1,1681.1,87.5,66.3,174.2,1 433,-1,111.7,351,53.6,187.8,1 433,-1,1715.5,459.1,83.5,207.2,1 433,-1,281.5,620.8,90.5,254.8,1 433,-1,285.8,130,52.9,165.8,1 433,-1,755.6,562.4,87.2,248.9,1 433,-1,1755.9,145.7,58.6,164.4,1 433,-1,798,150.9,53.5,173.8,1 433,-1,226.4,245,52.3,173.7,1 433,-1,379.2,651.1,70.2,244,1 433,-1,1567.9,614.7,88.9,244.5,1 433,-1,535.6,73.3,56.6,165.6,1 433,-1,361.2,1,65.3,130,1 433,-1,871.2,568.9,107.5,241.3,1 433,-1,1848.2,418.8,72.8,188.3,1 433,-1,430.5,109.8,58.6,172.1,1 433,-1,952.9,581.1,84.6,218.7,1 433,-1,222.3,137.6,69.7,157.7,1 433,-1,713.5,87.6,60,174.4,1 433,-1,422.2,1,44.8,127.9,1 433,-1,1766.3,69,89.8,177.2,0.997 433,-1,760.1,85.2,41.1,152.8,0.976 433,-1,725.9,2.6,48.1,111.1,0.974 433,-1,997.3,930.6,83.8,150.4,0.959 433,-1,469.5,54.9,52.3,175.7,0.448 573,-1,1221.1,30.2,62.5,119.5,1 573,-1,686.9,205.8,79.5,114.3,1 573,-1,1481,4.9,59.5,144.4,1 573,-1,793.2,146.2,69.6,171.6,1 573,-1,378.1,237.3,67.8,195.6,1 573,-1,1650.4,1,56.8,136.2,1 573,-1,1715,454.6,86.2,212,1 573,-1,1830.9,254.2,70.5,180.3,1 573,-1,550.9,115.6,51.4,170.5,1 573,-1,1658,258.2,70.8,202.4,1 573,-1,218.2,134.7,54.4,163.2,1 573,-1,288.3,120.5,52.5,175.8,1 573,-1,872.6,1,52.1,104.5,1 573,-1,754.7,79.8,43.2,154.9,1 573,-1,448.9,128.5,51.1,162.2,1 573,-1,1582.9,590.4,85.2,231.3,1 573,-1,208.8,281.9,63.2,192.3,1 573,-1,148.6,256.5,62.4,213.7,1 573,-1,1029.2,812.3,137.4,268.7,1 573,-1,720,583.7,84.1,253.4,1 573,-1,360.3,108.4,52.2,174.7,1 573,-1,422.6,58.1,46.6,169.1,0.999 573,-1,465.2,75,61,173.4,0.999 573,-1,250.5,921.2,81.5,159.8,0.988 573,-1,1005.9,941.8,76.8,139.2,0.688 472,-1,1221.8,30.4,62.6,118,1 472,-1,686.8,206.1,78.9,112.8,1 472,-1,1003.5,1,55.8,152.8,1 472,-1,934.5,1,57.8,145.8,1 472,-1,283.8,208.1,54.3,173.9,1 472,-1,453.3,185.5,71.2,194.1,1 472,-1,1791.5,363.1,90.9,213.1,1 472,-1,1506.3,1,58.6,115.7,1 472,-1,1698.9,458.5,100.1,209.9,1 472,-1,359.6,112.1,53.5,174.5,1 472,-1,1539,600.5,76.6,243.8,1 472,-1,877.5,1,51.4,132.5,1 472,-1,804.6,143.4,48.3,175.6,1 472,-1,1642.4,341.8,63.9,197.6,1 472,-1,121,342.4,58.6,190.8,1 472,-1,809.1,587.1,99.5,260.5,1 472,-1,328.7,720.4,74.8,249.9,1 472,-1,234.6,689.3,92.1,269.9,1 472,-1,1725.3,169.1,63.9,167.3,1 472,-1,217.6,137.1,64.5,159.9,1 472,-1,515,82.9,59.4,172,1 472,-1,902.6,626.9,117.3,241.9,1 472,-1,445.2,32.9,73.6,182.8,1 472,-1,1663.2,47.5,58.4,175,1 472,-1,1764.1,144.5,86.8,181.8,1 472,-1,712.6,93.6,54.8,163.4,0.999 472,-1,752.6,97.8,55.7,140.2,0.999 472,-1,1714.2,57.7,51.7,170.7,0.998 472,-1,414.4,5.3,46.3,150.8,0.997 472,-1,988.7,649.7,79.2,226.8,0.995 472,-1,1025.2,922.8,84.6,158.2,0.948 472,-1,428.4,142.4,49,172.3,0.939 218,-1,1220.8,30.5,62.4,120.1,1 218,-1,687,206.2,78.7,114.6,1 218,-1,403.1,576.2,89,252.2,1 218,-1,108.5,347.2,50.8,189.5,1 218,-1,212.7,126.6,54.7,167.1,1 218,-1,705.1,1.5,55.5,159.3,1 218,-1,1492,68.7,53.9,149.3,1 218,-1,357.4,104.9,52.9,180.7,1 218,-1,117.3,667.7,105.6,255.8,1 218,-1,1125.5,129.4,59,188.7,1 218,-1,902.2,142.6,74.7,181.4,1 218,-1,793.2,152.3,62.8,169.4,1 218,-1,427.6,195.8,74.6,216,1 218,-1,288,126.4,55.6,173.4,1 218,-1,1356.9,566.7,103.1,244.9,1 218,-1,1721.3,457.4,77.9,210.3,1 218,-1,1199.8,134.5,42.9,167.1,1 218,-1,518.8,122.4,50.9,178.8,1 218,-1,507.8,330.6,73,221.7,1 218,-1,998.8,128.7,42.3,158.8,1 218,-1,219.8,512.5,60.4,204.3,1 218,-1,818,321.6,74.8,193.6,1 218,-1,761.5,311,78.3,206.9,0.999 218,-1,38.8,615.3,111.2,252.3,0.999 218,-1,829.4,111.1,67,168.2,0.998 218,-1,943.5,910.6,71.4,170.4,0.992 218,-1,597.6,339,60,202,0.595 202,-1,1221.4,31.2,61.5,118.4,1 202,-1,399.6,605.9,90.7,246.3,1 202,-1,687,207.1,78.5,112.6,1 202,-1,210.7,127.5,56.8,166.9,1 202,-1,1490.4,69.1,54.7,149.7,1 202,-1,108.8,349.2,49.5,188.6,1 202,-1,704.8,1.2,55.3,159,1 202,-1,521.6,132.8,62.6,166.3,1 202,-1,1721.3,456.8,77.6,211.1,1 202,-1,1359.1,569.7,103.1,242.9,1 202,-1,288.7,126.6,55.2,172.8,1 202,-1,511.3,313.9,76.7,218.4,1 202,-1,65.5,641.4,116.8,256.1,1 202,-1,423.4,209.4,76.4,215.6,1 202,-1,797,150.3,59.6,177,1 202,-1,1034.7,136.9,54.2,160.7,1 202,-1,1208.9,144.3,55,169.6,1 202,-1,355.8,108.2,54.3,177.6,1 202,-1,889.9,156.4,73,186.6,1 202,-1,1153.1,142,59.8,184.3,1 202,-1,388.9,39.9,62.4,167.5,1 202,-1,803.7,310.3,71.6,185.2,1 202,-1,229.3,538.4,61.3,217.5,1 202,-1,753.1,293.8,69,206.6,1 202,-1,966,914.6,73.6,166.4,0.965 646,-1,687.3,206.3,79.2,113.5,1 646,-1,1481.6,4.2,60,145.7,1 646,-1,1221.3,31.7,62.5,119.9,1 646,-1,547.3,112.5,63.1,175,1 646,-1,801.7,145.1,65.5,172.3,1 646,-1,1709,454.7,99,214.1,1 646,-1,359.1,110.9,52.2,173.9,1 646,-1,338.2,319.8,69.1,204.9,1 646,-1,1574.6,589.2,97.3,236.6,1 646,-1,472.8,538,84.2,244.1,1 646,-1,212.6,224.2,59.9,202.6,1 646,-1,412.8,1,58.9,146.6,1 646,-1,1619.1,186.6,67.1,189.6,1 646,-1,423,116.1,55.5,161.3,1 646,-1,267.4,239.7,57.8,182.8,1 646,-1,751.6,85.2,44.2,150.5,1 646,-1,467.3,102.4,49.2,175.4,1 646,-1,287.5,127.8,51.6,167.6,1 646,-1,1490.8,948.7,64.8,132.3,0.977 99,-1,1222,30.4,61.8,117.7,1 99,-1,704.5,1,56,161.3,1 99,-1,1174.4,154.3,84.8,173.4,1 99,-1,396,834.9,98.2,246.1,1 99,-1,1487.7,69.6,55.1,148.8,1 99,-1,356.6,106.9,55.3,178,1 99,-1,425.7,304.5,76.3,232.8,1 99,-1,110.2,351.3,49.6,190.4,1 99,-1,1721.8,456.1,77.1,212.1,1 99,-1,1358.8,566.3,104.9,246,1 99,-1,951.9,199.2,74.9,189.7,1 99,-1,101.7,546.9,87,253.2,1 99,-1,504.1,224,70.8,197.6,1 99,-1,293.2,125.4,54.4,172.3,1 99,-1,1276.1,195.5,48.2,168.2,1 99,-1,210.4,129.1,49.2,166.5,1 99,-1,31.1,691.6,64.1,229.6,1 99,-1,714.5,188.5,53.8,163.8,1 99,-1,1445.7,188.6,57.8,180.4,1 99,-1,816.5,193.7,59.3,186.2,1 99,-1,438.6,7.4,51,158.4,1 99,-1,539,65.7,46.8,167.6,1 99,-1,376.5,11.1,50.6,162.2,1 99,-1,1400.4,190.8,57.6,192.6,1 99,-1,859.9,212.1,55,164.6,1 99,-1,484.1,137,56.8,163.9,0.999 99,-1,255.1,91.5,64,182.3,0.999 99,-1,480.5,36.7,63.5,159.6,0.998 127,-1,1222,30.2,61.8,118.7,1 127,-1,356.3,104.4,56.4,179.8,1 127,-1,1488,69,55.9,150,1 127,-1,703.8,1,56.6,158.8,1 127,-1,108.8,350,49.1,188.5,1 127,-1,424.3,279.3,76.7,220.9,1 127,-1,288.4,126.4,54.4,170.2,1 127,-1,1099.1,141.4,62.1,172.1,1 127,-1,400,769.4,98.5,271.1,1 127,-1,1359,566.8,104.4,244,1 127,-1,1721.8,456.4,76.1,211.2,1 127,-1,907.5,209.7,71.5,191.7,1 127,-1,1217.4,177.4,45.5,166.2,1 127,-1,217.4,127.5,50.5,166.7,1 127,-1,689.9,204.1,74.8,114.8,1 127,-1,539.8,65.3,49.5,166.4,1 127,-1,779.9,215,65.5,197.4,1 127,-1,524.8,247.4,70.2,202.6,1 127,-1,1337.4,181.9,57.7,183.3,1 127,-1,478.4,165.5,57.7,177.9,1 127,-1,447.6,1,52.7,145,1 127,-1,376.5,1,48.6,147.1,1 127,-1,478.5,43.4,57.1,162.9,1 127,-1,107.3,653.3,62.2,220.6,0.999 127,-1,829.7,232.6,53.7,173.5,0.999 127,-1,1091.1,929,82.9,152,0.865 12,-1,687.2,205.7,78.9,114.3,1 12,-1,1044,206.2,92.3,184.5,1 12,-1,504.5,146.4,103.2,192,1 12,-1,1361.4,567.8,106.1,244.5,1 12,-1,1486.8,70.1,55.9,148.2,1 12,-1,704.4,1.1,56.3,157.6,1 12,-1,378.2,398.5,84.1,234.6,1 12,-1,794.7,148.8,62.4,175.4,1 12,-1,1725.2,457.7,75.7,208.7,1 12,-1,102,547.2,85.5,250.6,1 12,-1,1201.4,36,74,117.6,1 12,-1,1804,220.4,65.3,178.2,1 12,-1,355.7,106.4,54,176.6,1 12,-1,218.5,126.2,47.2,166.6,1 12,-1,210.3,385.1,65.9,197.7,1 12,-1,285.8,121.9,54.5,175,1 12,-1,1623.7,255.3,61.3,180.4,1 12,-1,416,90.2,55,165.3,1 12,-1,461.4,69.4,52.2,174.5,1 12,-1,880.5,131,57.8,176.1,1 12,-1,1039.5,1,46.7,77.6,0.999 12,-1,1437.6,243.2,51.1,166.9,0.999 12,-1,1402.7,190.5,48.6,169.5,0.999 12,-1,250,365.8,49.2,196.6,0.195 1021,-1,1221.2,29.9,61.9,118.6,1 1021,-1,686.7,206.5,79.3,113.2,1 1021,-1,378.5,301,74.4,201.3,1 1021,-1,791.9,142.3,74,169.5,1 1021,-1,929.3,259.6,69.8,203.9,1 1021,-1,1243.3,163.2,59.5,174.5,1 1021,-1,289.1,128.6,52.9,168.3,1 1021,-1,841.3,275.6,68.6,197.6,1 1021,-1,296.6,298.9,65.6,207.8,1 1021,-1,290.4,501.2,86.8,203.9,1 1021,-1,1701.8,180.4,55.2,175.2,1 1021,-1,1721.7,457.8,78.1,203.6,1 1021,-1,492.7,293.9,69.6,191.3,1 1021,-1,1468.2,188.5,65.1,168.6,1 1021,-1,380.4,482.8,63.1,222.1,1 1021,-1,1575.9,589,102.4,238.9,1 1021,-1,538,120.7,61.6,171.6,1 1021,-1,232,140.7,54.8,161,1 1021,-1,751.3,74.7,54.1,160.8,1 1021,-1,1147.7,593.2,90.8,257.9,1 1021,-1,1835.9,226.8,63,188.8,1 1021,-1,1706.6,687.1,99.6,231.7,1 1021,-1,581.7,551.2,82.2,240.9,1 1021,-1,449.6,167.5,80.9,195.8,1 1021,-1,313.5,2,36.9,128.7,0.999 1021,-1,371.7,103.1,60.6,177.2,0.999 1021,-1,408.2,172.6,58.5,168.3,0.999 1021,-1,358.8,915,95.4,166,0.621 1021,-1,503.9,129,40.7,119.7,0.091 383,-1,1222.2,31.1,61,118.8,1 383,-1,686,206.5,80,113.1,1 383,-1,1636.6,22.9,72.2,170.4,1 383,-1,357.8,103.1,56.6,183.6,1 383,-1,448.9,294.4,74.4,205.1,1 383,-1,1102.2,455.9,69.7,199.9,1 383,-1,828,1,54,113.6,1 383,-1,334.7,539.2,87.7,245.8,1 383,-1,952.9,32.5,62.8,173.8,1 383,-1,1599.3,633.8,80,246.5,1 383,-1,109.2,351,52.9,189.1,1 383,-1,795.1,150.7,60.2,171.5,1 383,-1,282.6,126.8,55.2,170.1,1 383,-1,376,1,57.8,99.6,1 383,-1,1015.1,48.3,54.9,166,1 383,-1,449.3,564.1,70.6,236,1 383,-1,1775.1,103.3,61.4,157.4,1 383,-1,219.2,136.8,57.6,159.7,1 383,-1,1718.1,455.1,78.2,215.2,1 383,-1,209.3,299.4,53.7,184.6,1 383,-1,450.1,73.8,70.1,195.2,1 383,-1,1436,1,52.5,89.6,1 383,-1,507,81,51.6,168.6,1 383,-1,849.3,499.3,90.7,228,1 383,-1,1788.9,440.1,67.8,206.6,1 383,-1,755.6,104.9,50.9,134.3,0.999 383,-1,911.4,513.5,75.4,206.4,0.999 383,-1,609.2,562.5,88.4,238.3,0.998 383,-1,976.6,908.8,88.4,172.2,0.996 776,-1,1220.8,29.4,62.9,119,1 776,-1,687.6,205.2,78.9,114.3,1 776,-1,546.6,115.6,61.3,177.1,1 776,-1,784.1,133.6,58,175.1,1 776,-1,1723.2,452.2,76.4,215,1 776,-1,1575.3,589.2,100.9,234.4,1 776,-1,1491.1,16.8,59.3,149.7,1 776,-1,292.5,480.5,77.7,228.8,1 776,-1,1444.8,76.7,54.6,170.1,1 776,-1,277.5,173,56.2,193.1,1 776,-1,451.1,206.5,54.1,188.2,1 776,-1,389.8,215.3,73,176,1 776,-1,233,135.1,51.9,164.7,1 776,-1,1572.8,75.8,60.3,174.5,1 776,-1,750.3,74.9,52.5,156.8,1 776,-1,329.1,188.2,55.6,176.6,1 776,-1,469,80.7,61.2,169.1,1 776,-1,1125.4,637,83,250,1 776,-1,550,568.8,82.8,254.8,1 776,-1,255.5,1.2,51.7,118.6,1 776,-1,1053.2,656.6,77.9,245.7,1 776,-1,414.5,78.5,57.4,166.8,1 776,-1,355.3,108,52.5,182.6,0.992 402,-1,1222.6,30.9,61.3,118,1 402,-1,686.3,206.1,79.9,114.8,1 402,-1,1643.7,47.8,64.3,170.2,1 402,-1,362.4,1,66.8,108.4,1 402,-1,457.1,268.1,76.4,207.8,1 402,-1,357.6,105.1,55.7,179.8,1 402,-1,945.6,21.6,63.2,170.5,1 402,-1,1771.8,115.8,65.2,168.5,1 402,-1,1175.1,480.2,65.5,203.6,1 402,-1,828.3,1.2,55.9,125.8,1 402,-1,218.9,140.8,63.9,157.7,1 402,-1,108.5,347.5,53,193,1 402,-1,1718.8,458.6,81.1,208.1,1 402,-1,548.7,67.6,60.6,173.2,1 402,-1,795.9,152.4,59.4,171.8,1 402,-1,306.8,568.8,87.5,246.8,1 402,-1,284.8,130.7,54.6,166,1 402,-1,1006,38,56.6,160.5,1 402,-1,204.3,274.7,53.2,181.7,1 402,-1,426,596.7,68.1,235.9,1 402,-1,1590.1,619.8,97.5,252.1,1 402,-1,426.3,90.7,52.6,173.2,1 402,-1,466.9,71.4,65.9,186.5,1 402,-1,853.7,520.4,99.6,238.3,1 402,-1,924.8,536.7,81.3,214.2,1 402,-1,716.9,1,52,136.1,1 402,-1,709.5,87.6,65.3,177.3,0.999 402,-1,979,912.4,87,168.6,0.987 402,-1,429.3,5.7,24,91.7,0.324 959,-1,686.4,206.1,80.1,112.3,1 959,-1,1221.2,30.6,62.4,119.3,1 959,-1,792.6,141.2,74.3,171.6,1 959,-1,1471,143.1,65.2,158.7,1 959,-1,1764.4,150.3,66.8,175,1 959,-1,1154.5,83.8,56.4,169.7,1 959,-1,1645.9,109,53.6,169.1,1 959,-1,750.4,70.4,56.4,162.7,1 959,-1,927,343.5,74.4,218.4,1 959,-1,1226,738.4,95.1,274.5,1 959,-1,1575.6,589.2,102.3,235.8,1 959,-1,1719.8,454.3,79.1,213,1 959,-1,420.6,238.7,69.5,194.5,1 959,-1,322.3,780.5,95.3,267.9,1 959,-1,1471.5,1,58.4,108.4,1 959,-1,850.3,358.1,68.5,210.7,1 959,-1,391.3,404.6,67.9,217,1 959,-1,1406.2,1.3,47.9,105.9,1 959,-1,549.8,118.7,54.7,171.5,1 959,-1,485.4,229.3,63.4,181,1 959,-1,335.7,241,65.2,190.7,1 959,-1,230.1,135.5,55.8,168,1 959,-1,439.1,74.5,55.1,177.8,1 959,-1,318.1,413.1,81.7,198.6,1 959,-1,1742.4,677,93.9,249.2,1 959,-1,288.7,124.7,53,174.1,1 959,-1,482.6,50.8,53.9,158.1,1 959,-1,242.5,1.9,53.7,118,0.999 959,-1,313.4,1,47.5,132.8,0.987 246,-1,1221.3,31.3,63.2,116.7,1 246,-1,686.4,207.4,79.4,111.8,1 246,-1,392.8,518.8,85.7,239,1 246,-1,796.6,152.7,60.6,171.4,1 246,-1,1596.6,7.3,62.9,143,1 246,-1,211.5,125.3,56.8,170.7,1 246,-1,1481.8,57.3,54.3,153.1,1 246,-1,108.1,349.5,51.7,191,1 246,-1,1157.3,114,52.8,164.2,1 246,-1,222.8,471.7,59.9,204.5,1 246,-1,287.8,127.9,56,172.8,1 246,-1,448,174.9,76.1,209.8,1 246,-1,1721.1,456.4,77.7,213,1 246,-1,1371.4,566.3,103.8,246.8,1 246,-1,934.5,115.7,68.9,178.9,1 246,-1,704.6,1,54.6,157.1,1 246,-1,356.1,104.9,53.2,178.4,1 246,-1,1079,117.3,58.9,182.2,1 246,-1,207.5,731.6,86.8,253.6,1 246,-1,493,357.9,72.2,227.8,1 246,-1,850.1,346.2,79.5,199.2,1 246,-1,516.1,117.7,53.7,180.8,1 246,-1,118.9,561.2,83.1,247.7,1 246,-1,786.9,336.6,84.7,208.8,1 246,-1,586.1,371.3,65,202.4,1 246,-1,769.4,102.1,51.7,164.2,0.998 246,-1,930.6,900,72.6,181,0.996 789,-1,1221.3,29.4,62.3,118.9,1 789,-1,687.2,205.3,79.7,113.7,1 789,-1,1723.8,452.8,75.6,214.9,1 789,-1,548.6,114.4,59.9,177.9,1 789,-1,477.1,87.3,60.9,177,1 789,-1,1575,590.9,100.3,233.8,1 789,-1,291.8,503.1,79.5,231.4,1 789,-1,1485.6,26.5,59.9,148.4,1 789,-1,277.3,168.4,57.5,197.2,1 789,-1,784,129.5,51.1,179.6,1 789,-1,1441.9,66.5,49.6,163,1 789,-1,233.3,133.1,50.6,165.8,1 789,-1,749.4,71.4,55.1,160.2,1 789,-1,338.2,188,49.6,176.3,1 789,-1,388.6,227.3,70.8,178.5,1 789,-1,446.5,223.9,54.2,188.9,1 789,-1,1094.8,606.4,87,257.2,1 789,-1,589.3,581.2,70.9,242.3,1 789,-1,253.4,1.3,52.7,122,1 789,-1,423,90.4,56.2,160.3,1 789,-1,1033.2,636.1,79.2,242.2,0.999 443,-1,1221.3,30.6,62.9,118.3,1 443,-1,936.5,1,60.2,159,1 443,-1,1006.8,12.8,55.8,158.9,1 443,-1,687.5,205.8,77.4,113.4,1 443,-1,359.6,107.8,53,179,1 443,-1,450.4,220,74.4,197.1,1 443,-1,112.1,349.6,53.1,190,1 443,-1,1717.3,455,81.7,213.8,1 443,-1,1361.5,532.7,68.8,206,1 443,-1,285.8,126.5,54.7,172.3,1 443,-1,855.7,1,52.2,140.6,1 443,-1,799.7,151.9,51.7,168.6,1 443,-1,775.2,570.1,73.8,254.1,1 443,-1,1752.4,153.9,63.7,168.5,1 443,-1,881.3,579.4,118,246.1,1 443,-1,360.6,669.7,76.5,242.4,1 443,-1,241,236.4,51.9,179.8,1 443,-1,266,642,89.8,259.8,1 443,-1,1563.2,614.4,73.2,236.4,1 443,-1,1698.3,100.2,69.4,173.5,1 443,-1,1841.7,398.6,79.3,208.4,1 443,-1,1673,369.3,72,197.9,1 443,-1,219.9,136.9,57.9,154,1 443,-1,423,1,43.1,136.5,1 443,-1,428,119.9,60.9,172,1 443,-1,530,68.9,53.4,172.7,1 443,-1,362.8,2.7,60.9,132.1,0.999 443,-1,711.4,87.9,60.6,175.6,0.999 443,-1,728.8,1.5,48.6,94.3,0.998 443,-1,966,600.1,78.6,219.8,0.998 443,-1,756.7,87.6,48,149.6,0.995 443,-1,1010.5,922.2,88.3,158.8,0.972 92,-1,1222.2,31.4,61.8,115.7,1 92,-1,705,1,55.4,158.8,1 92,-1,1487.7,69.8,54.6,147.1,1 92,-1,725,188.1,69.5,173.1,1 92,-1,356.4,109.6,54.2,174.1,1 92,-1,1721.5,456.8,77.6,209.6,1 92,-1,968,195.9,72.6,187.4,1 92,-1,402.1,856.4,101.6,224.6,1 92,-1,421.1,308.9,79.8,230.5,1 92,-1,1204.2,157.2,62.4,173.4,1 92,-1,1358.7,565.3,104.6,246,1 92,-1,102.2,547.1,86.2,253.5,1 92,-1,210.2,130.5,50.5,165.1,1 92,-1,501.2,214.3,73.7,197.9,1 92,-1,294.8,126.5,54.5,170.6,1 92,-1,25.2,704.4,67.1,226.9,1 92,-1,1298.1,202.5,43.7,162.2,1 92,-1,119.4,351.2,47.5,195.5,1 92,-1,538.2,63.6,49,165.6,1 92,-1,375.1,18.7,53.7,160.4,1 92,-1,439,12.9,51.5,157.5,1 92,-1,1463.4,191.1,57.4,173.7,1 92,-1,827.7,191.5,61,182.1,1 92,-1,1412.1,195.7,58.3,192.9,1 92,-1,256.1,90.9,60.1,183.4,0.999 92,-1,867.9,205.6,56.1,169.3,0.999 92,-1,481.9,134.7,56.6,158.6,0.999 92,-1,796.5,156.8,58.5,166.2,0.961 92,-1,483.7,36.4,56.1,163.1,0.96 101,-1,1221.9,30.4,62.4,117.5,1 101,-1,1170.2,152.7,86.4,174,1 101,-1,704.8,1,55.5,159.9,1 101,-1,393,827.6,99.3,253.4,1 101,-1,1487.4,68.7,55.5,149.2,1 101,-1,109.5,350.7,50.2,189.8,1 101,-1,357.3,107.9,54.8,176.5,1 101,-1,425.9,303.4,77.8,232.8,1 101,-1,1722,456.6,76.3,211.5,1 101,-1,1358.9,566.3,104.2,246.2,1 101,-1,505.2,227.7,72.7,193.7,1 101,-1,951.3,200.2,72,186.3,1 101,-1,102.1,549.1,86.6,249.9,1 101,-1,291.8,125.2,55.4,172.6,1 101,-1,210.1,129.3,49.4,165.8,1 101,-1,811.8,194.7,60.8,189.1,1 101,-1,1273.5,196.8,44,167.3,1 101,-1,707.6,187.1,57.2,168.2,1 101,-1,1395,189.6,59.7,188.7,1 101,-1,32.3,690,66,227,1 101,-1,538.9,65.6,47.9,167,1 101,-1,375.9,8.3,51.2,165.4,1 101,-1,856.9,213,56.5,168.1,1 101,-1,439.9,6.3,50.7,153.6,1 101,-1,1441.8,188.7,60.5,178.2,1 101,-1,481.1,39.2,61.9,158.9,0.999 101,-1,483.6,140.4,54,166,0.999 101,-1,257.1,89.3,65.8,186.7,0.997 508,-1,1221.7,30.2,62.6,119.1,1 508,-1,686.1,206.3,81.2,114.9,1 508,-1,1495.3,1,59.1,135.1,1 508,-1,997.8,1,54.9,128.2,1 508,-1,151.8,331,66.2,190.5,1 508,-1,400.7,179.5,61.5,184.3,1 508,-1,1677.9,26.5,55.6,168.3,1 508,-1,1681.8,617.6,87.5,210.2,1 508,-1,932.5,1,55.6,121.3,1 508,-1,882.7,1.2,51.3,123.7,1 508,-1,331.2,176.2,50.6,167.7,1 508,-1,460.3,138.3,71.4,193.3,1 508,-1,789,142.8,60.8,178.5,1 508,-1,1555.3,598.1,73.9,239.6,1 508,-1,1723.6,330,88.3,199.4,1 508,-1,934.3,689.3,116.3,253,1 508,-1,1617.3,17.1,55.6,177.7,1 508,-1,1615.8,304.6,63.3,193,1 508,-1,1722.2,458.3,78.3,208.8,1 508,-1,825.8,609.2,74.6,251.8,1 508,-1,1838.7,188.7,79,198.8,1 508,-1,216.4,134.5,64.2,161.8,1 508,-1,204.8,754.4,94.6,281.5,1 508,-1,288.9,122.3,54.2,173,1 508,-1,289.9,789,77.6,261,1 508,-1,513.6,92.2,58.1,179.8,1 508,-1,1742.4,195.8,63.5,179.4,1 508,-1,723.3,95.6,68.3,165.2,1 508,-1,449.6,6.4,73.9,181,0.999 508,-1,360.2,103.6,53.3,191.7,0.998 508,-1,399.2,20.6,46.8,162.8,0.993 508,-1,1029,710.5,73.6,247.5,0.425 508,-1,1034.2,931.4,80,149.6,0.054 889,-1,1221.6,29.7,61.9,119.3,1 889,-1,687.1,206,79.1,114.1,1 889,-1,1100.3,4.1,56.1,159.3,1 889,-1,1482.2,91.1,59,156.1,1 889,-1,793.1,138.8,77.2,174,1 889,-1,478.7,177.4,62.6,183.8,1 889,-1,1703.4,58.7,54.5,170.5,1 889,-1,332.1,335.8,81.3,182.1,1 889,-1,1574.8,590.5,103.5,234.3,1 889,-1,1722,452.7,77.6,215.6,1 889,-1,558.4,116.8,59.1,176.1,1 889,-1,300.5,159.5,69.2,196.9,1 889,-1,292.6,659.9,84.4,249.1,1 889,-1,1587.3,37.6,52.2,156.1,1 889,-1,753.8,72,53.7,162.7,1 889,-1,1425,3.6,51.4,154,1 889,-1,471.3,1,49.5,140.3,1 889,-1,889.4,461.5,68.8,223.8,1 889,-1,423.9,323.2,58.8,203.1,1 889,-1,971.9,447.1,78.2,229.4,1 889,-1,240.2,132.5,54.3,169.1,1 889,-1,254.3,1.6,54.3,119.9,1 889,-1,404.8,172.3,58,179.8,1 889,-1,1749.5,681.6,90.5,235.1,1 889,-1,1493.6,1,63.6,146.9,1 889,-1,405.9,56.9,59.2,173.9,0.996 889,-1,312.9,1,45.4,125.6,0.969 889,-1,1353,925.4,92,155.6,0.962 889,-1,358.6,167.2,35.1,163.3,0.336 133,-1,1221.4,30.6,62.1,117.9,1 133,-1,356.5,103.7,56.2,181.4,1 133,-1,1488.1,69,55.4,148.7,1 133,-1,393.7,753.9,95.7,265.1,1 133,-1,287.3,125.7,55.4,170,1 133,-1,704,1,56,157.7,1 133,-1,108.5,354,50.1,183.5,1 133,-1,1359.9,567.1,104.2,244.1,1 133,-1,1721.7,456.7,77.5,210.7,1 133,-1,687.3,206.4,78.2,115.1,1 133,-1,423.5,273,76,226.1,1 133,-1,538.5,66.2,50.3,161.7,1 133,-1,891.6,207.7,77.2,198.9,1 133,-1,219.3,127.1,50.1,164,1 133,-1,1207.1,171.2,48.1,168.2,1 133,-1,1080.3,139.4,57.9,175.4,1 133,-1,529,255.7,66.4,207.4,1 133,-1,477.3,177,60.1,171,1 133,-1,123.7,646.3,70.3,213,1 133,-1,379.8,1,47.7,137.9,1 133,-1,1326.4,185,54.7,177.7,1 133,-1,820.4,240.6,56.6,172,1 133,-1,775.5,227.1,61.5,189.2,1 133,-1,478.2,44.4,54.5,164.1,1 133,-1,447.7,1,51,139.1,0.998 133,-1,1075,924.5,85.3,156.5,0.949 133,-1,572.8,245,52.7,190.1,0.75 1045,-1,1221.6,29.8,61.2,118.9,1 1045,-1,686.3,206.7,80.4,114.2,1 1045,-1,795.4,142.6,70.6,171.1,1 1045,-1,274.4,539,93.7,201.8,1 1045,-1,476,322.9,76.6,197.4,1 1045,-1,1721,455.6,79.2,214.4,1 1045,-1,287.7,125.3,53.9,174,1 1045,-1,359.8,325.8,73.6,211.5,1 1045,-1,229.9,137.9,55.4,164.8,1 1045,-1,1301,199.1,60.2,162.8,1 1045,-1,937.1,234.6,65.1,201.7,1 1045,-1,751.2,73.6,53.9,164.1,1 1045,-1,1121.3,555,86.6,253.6,1 1045,-1,851,239.1,66.9,194.4,1 1045,-1,1720.3,216.8,59.6,175.4,1 1045,-1,1651.3,678.3,95.2,233.5,1 1045,-1,374.6,517,68,238.1,1 1045,-1,373.1,99.6,58.8,180.4,1 1045,-1,506.6,171.4,76.4,196.5,1 1045,-1,1468.4,218.5,77.5,168.7,1 1045,-1,290.6,328.5,72.4,209.2,1 1045,-1,1573.5,589.5,103.1,242.1,1 1045,-1,309.1,2.1,37.6,129.5,1 1045,-1,583.5,535.4,64,255.4,1 1045,-1,467.2,175.7,55,164.2,1 1045,-1,1861.5,254.1,59.5,202.6,0.999 1045,-1,432.5,72.2,62.7,169.7,0.998 387,-1,1222.4,31.3,61.4,118.4,1 387,-1,686.2,206.3,80,113.7,1 387,-1,1636,26.1,76.2,175.1,1 387,-1,1115.9,461.2,71.6,206.5,1 387,-1,358.2,108.2,55.3,177.7,1 387,-1,445.7,287.1,81.8,210.6,1 387,-1,369,1,62,102.6,1 387,-1,1773.1,104.9,67.8,163.7,1 387,-1,827.4,1,56.1,116.4,1 387,-1,949.6,25.1,64.3,179.3,1 387,-1,442.8,569.1,70.9,235.5,1 387,-1,108.2,349.3,53.6,190.7,1 387,-1,208.4,293.3,54.9,180.4,1 387,-1,1599.6,631,80.6,249.3,1 387,-1,328,543.1,92.3,251.1,1 387,-1,282.4,127.9,54.9,165.4,1 387,-1,219.9,141.5,58.1,155.7,1 387,-1,795.4,148.9,59.5,176.2,1 387,-1,1015.4,43.4,53.8,165.1,1 387,-1,452.1,70.7,71.9,197.1,1 387,-1,1719.3,454.2,78.5,216,1 387,-1,914.2,516.7,78.2,211.9,1 387,-1,847.8,499,86.6,229.2,1 387,-1,1437.3,2.7,52.4,84.8,0.999 387,-1,1779.8,436,70.2,209.1,0.999 387,-1,756.3,105.2,50.1,136.9,0.998 387,-1,978.9,905.7,87.3,175.3,0.995 387,-1,505,79.7,48.5,172.7,0.988 314,-1,1221.2,31.9,62.1,118.5,1 314,-1,687.2,207,79,113.9,1 314,-1,1456.6,7.4,55.6,145.7,1 314,-1,416.5,38.9,59.5,170.7,1 314,-1,1700,48.9,58.3,160.1,1 314,-1,1497.5,599.6,92.2,244,1 314,-1,311.8,582.1,105.6,247.2,1 314,-1,1720.7,456.9,77.7,212.3,1 314,-1,932.8,49.3,63.1,173.8,1 314,-1,358.2,108.7,56.6,181.1,1 314,-1,451.4,123,76.9,199.6,1 314,-1,108.7,350.5,51.6,190,1 314,-1,796.1,149.8,58.4,176.7,1 314,-1,1000,77.4,62.5,180.2,1 314,-1,280.1,130.8,54.8,173.3,1 314,-1,705.1,2.5,53.6,157.3,1 314,-1,889.3,433.5,72.7,197.4,1 314,-1,1055.1,79,55.2,166.5,1 314,-1,527.2,463,66.9,222.9,1 314,-1,236.3,374.9,59.2,190.9,1 314,-1,216,130.8,56.1,166.5,1 314,-1,827.3,421.9,80.2,211,1 314,-1,732.7,101.3,47.1,166,1 314,-1,440.1,440.3,73.2,235.8,1 314,-1,341,883.9,96.7,197.1,0.999 314,-1,510.9,101.9,44,172.1,0.997 314,-1,926.9,909.4,79.8,171.6,0.994 314,-1,398.1,409.8,77.3,216.5,0.945 441,-1,1221.3,30.1,62.6,117.7,1 441,-1,936.9,2.1,60.2,159.6,1 441,-1,686.9,205.9,78.2,113.4,1 441,-1,1007.5,14.8,55.5,155,1 441,-1,448.8,223.7,75.9,197.4,1 441,-1,359.2,106.4,53.4,180.7,1 441,-1,111.6,347.9,53.9,191.1,1 441,-1,852.6,1,52.4,136.8,1 441,-1,1717.9,457.2,80.6,212.8,1 441,-1,1352.8,530.6,68.7,207.6,1 441,-1,286,129.5,53.8,167.8,1 441,-1,236.6,238.5,53.7,178.8,1 441,-1,768.1,567.4,81.1,254.3,1 441,-1,797.1,150.3,54.1,171.7,1 441,-1,1750.2,149.3,66.4,170.4,1 441,-1,365.1,665.6,75.7,241.3,1 441,-1,1565,617.2,73.4,236.3,1 441,-1,270.7,637.3,87.6,264.3,1 441,-1,881.6,575.3,108.9,242.6,1 441,-1,531.6,68.7,54.2,173.2,1 441,-1,430.7,118.1,59.3,171.3,1 441,-1,726.3,1,50.7,99.8,1 441,-1,1696.2,96.4,69.7,173.2,1 441,-1,423.7,1,42.4,133.1,1 441,-1,1678.7,370.8,72.2,206.1,1 441,-1,1846.6,403.4,74.4,200.1,1 441,-1,363.7,1.9,59.7,131.3,1 441,-1,220.3,137.8,60,153.2,1 441,-1,711.5,87.7,60.8,173.9,0.999 441,-1,958,599.2,87.4,222.5,0.999 441,-1,756.5,85.5,47.4,150.9,0.991 441,-1,1005.9,923.3,88.7,157.7,0.98 673,-1,1221.8,29,61.2,119.3,1 673,-1,687.5,206.8,78.9,113.1,1 673,-1,1481.7,6.9,59.7,141.7,1 673,-1,800.6,144.7,64.5,174.1,1 673,-1,315.5,353.1,68.6,208.6,1 673,-1,482.2,123.1,45.3,172,1 673,-1,395.2,526.8,93.8,253,1 673,-1,562.4,111.6,51.8,176.4,1 673,-1,359.9,116.6,49.2,165.2,1 673,-1,1112.4,1,59.8,105.7,1 673,-1,1574.5,589,97.8,235,1 673,-1,414.8,131.1,74.7,162.9,1 673,-1,1709.3,456.1,100.7,208.7,1 673,-1,1493,161.9,53.5,175.5,1 673,-1,1624.2,154.3,75.2,189.9,1 673,-1,750.7,79.1,48.6,156.6,1 673,-1,407,6.5,56.1,154.4,1 673,-1,229,210.8,61.4,198.7,1 673,-1,282,222.3,54.5,179.8,1 673,-1,1311.8,896.3,86.1,184.7,1 673,-1,1396.2,866.9,95.2,214.1,1 673,-1,353.8,4.7,52.7,150.5,0.999 673,-1,295.6,1,53.2,132.3,0.996 673,-1,290.2,121.5,49.3,173.6,0.952 334,-1,1221,30.9,63.1,118.7,1 334,-1,686.9,206.7,78.9,113.4,1 334,-1,392.4,580.9,100.5,247.2,1 334,-1,1723.2,68.6,62,155.4,1 334,-1,449.9,110.8,72,192.3,1 334,-1,108.2,351.3,52.6,189.1,1 334,-1,1449.3,2,54.7,127.7,1 334,-1,1587.8,1.3,58.8,123.7,1 334,-1,1719.8,457.9,79.5,212.5,1 334,-1,796.6,150.2,61.3,170.9,1 334,-1,284.9,131.5,54.4,174.2,1 334,-1,234.8,353.6,57.7,189.4,1 334,-1,362.5,105.1,58.2,180.3,1 334,-1,982.6,66.6,60.5,178.4,1 334,-1,927.1,26,65.5,175.1,1 334,-1,1829.9,501.1,70.4,210.1,1 334,-1,1534.8,612.5,85.8,242.8,1 334,-1,899,447.1,70.7,209.6,1 334,-1,521.3,99.2,40.2,167.9,1 334,-1,1040.8,74.4,52.3,162,1 334,-1,212.6,139.1,54.4,161.9,1 334,-1,506.5,491.7,70.6,225.5,1 334,-1,720.4,94.7,53.9,169.6,1 334,-1,948.7,397.7,67.5,192.4,1 334,-1,839.6,440.4,83.6,218.5,1 334,-1,419.6,47.1,59.6,174.4,0.999 334,-1,775.6,96.2,42.3,158.3,0.997 334,-1,939.7,915.3,69.4,165.7,0.968 334,-1,378.8,925.9,104.8,155.1,0.241 334,-1,434.6,869.1,84.3,211.9,0.174 217,-1,1221.8,30.6,61.7,119.7,1 217,-1,687.1,206.9,78.6,113,1 217,-1,211.9,126.8,55.5,166,1 217,-1,108.7,348.3,50.8,187.9,1 217,-1,403.3,579.1,89.5,250.6,1 217,-1,1492.2,69.2,53.3,148.3,1 217,-1,705.5,1.2,54.6,159,1 217,-1,1127.4,130.8,59.2,188.9,1 217,-1,357,104.8,52.3,180.6,1 217,-1,115.1,666.8,103.7,253.4,1 217,-1,1720.9,456.4,78.6,211.5,1 217,-1,288.3,126.8,55.3,173.1,1 217,-1,1356.8,566.4,104.4,245.3,1 217,-1,901.6,142,76.2,183.5,1 217,-1,428.5,199.5,74.1,211.9,1 217,-1,795.1,152.5,60.6,170.6,1 217,-1,506.1,328.7,73.9,220.9,1 217,-1,1001.1,130.8,44.6,157.2,1 217,-1,519.8,122.7,50.6,179.5,1 217,-1,1202.7,138.4,41.3,162.8,1 217,-1,220.2,514.6,61,206.1,1 217,-1,815.4,322.7,74.8,191,1 217,-1,41,617.5,103.6,241.2,1 217,-1,830.3,109.7,67.3,174.4,0.999 217,-1,760.7,311.7,77.3,202.6,0.999 217,-1,943.7,910.5,71.9,170.5,0.988 217,-1,574.5,267.9,49,178.3,0.959 217,-1,598.3,333.4,58.3,205.7,0.321 105,-1,1221.5,30.5,62.1,118.7,1 105,-1,1165,157.1,69.9,166.6,1 105,-1,704.3,1,56.1,159.6,1 105,-1,390.5,819.1,99.5,261.9,1 105,-1,356.2,105.6,55.7,179,1 105,-1,1487.4,69.3,55.3,149.4,1 105,-1,108.5,351.4,49.3,188.5,1 105,-1,1722,456.6,77.2,211.3,1 105,-1,425.8,298.5,79.5,227.5,1 105,-1,1358.1,566.7,105.4,245.9,1 105,-1,507.4,228.8,72.5,197.5,1 105,-1,944.7,203.6,72.5,188.3,1 105,-1,291.1,125.5,58.5,173.1,1 105,-1,209.2,129.8,50.5,166,1 105,-1,39.2,686.7,71.9,218.8,1 105,-1,103.2,546.4,84,254.3,1 105,-1,701.4,182.9,59.3,166.5,1 105,-1,808.2,196.1,62.5,189.2,1 105,-1,538.8,66.1,48.7,164.3,1 105,-1,1266.8,194.6,43.7,164.6,1 105,-1,440,3.9,53.3,152.8,1 105,-1,852.7,220,57.1,163.4,1 105,-1,482.4,39.7,59.4,162.4,1 105,-1,376,6.9,49,162.3,0.999 105,-1,480.2,152.5,57.7,161.4,0.999 105,-1,1429.9,186.4,61.8,180,0.999 105,-1,1386.3,185.9,61.7,189,0.998 105,-1,255.8,86.1,66.8,185.1,0.935 105,-1,1147.1,936.2,74.9,144.8,0.137 181,-1,1221.1,30.7,63.2,118.4,1 181,-1,412.2,38.6,60.2,164.7,1 181,-1,110.2,348,48.2,190.6,1 181,-1,356.5,105,54.6,179.5,1 181,-1,212,125.9,55.2,168.7,1 181,-1,704.3,1,55.9,159.4,1 181,-1,1488.9,69.3,54.9,147.7,1 181,-1,686.7,207.9,79.2,110.9,1 181,-1,925.4,124.2,78.6,172.7,1 181,-1,1720.1,457.7,79.2,212.1,1 181,-1,1358.6,568,105.1,243.6,1 181,-1,540.5,143,66.2,172.1,1 181,-1,289.2,128.2,54.7,168.2,1 181,-1,528.2,297.2,60.6,203.6,1 181,-1,1,617.7,114.2,240.8,1 181,-1,420.5,230.6,78.9,219,1 181,-1,412.1,646.7,92.4,257.6,1 181,-1,1097.2,150.2,47.1,160.6,1 181,-1,235.1,568,63.4,211.7,1 181,-1,869.6,175.5,71.4,190.3,1 181,-1,793.4,151.8,63.4,171.4,1 181,-1,1203.2,153.4,62.2,187.9,1 181,-1,98.5,549.6,87.5,251.8,1 181,-1,797.3,290.8,71.3,184.9,1 181,-1,743.8,274.2,73.2,201,1 181,-1,1251.8,155.7,48,169.9,0.998 181,-1,994.8,913.9,69.3,167.1,0.978 399,-1,1222.1,30.1,61.3,118,1 399,-1,686.4,206.1,79.3,113.9,1 399,-1,364.5,1,64.3,107.5,1 399,-1,1641.9,45.4,59.7,165.8,1 399,-1,945.9,23.3,64.5,172.5,1 399,-1,1772.2,116,64.8,165.9,1 399,-1,313.1,565.4,88,242.6,1 399,-1,358.1,106.7,55.6,179.4,1 399,-1,454.3,267.7,77.8,209.2,1 399,-1,1718.1,460.9,79.4,207.1,1 399,-1,218.3,141.2,64.3,155.3,1 399,-1,796.4,152.9,58.1,169.4,1 399,-1,826.4,1,57.1,121.4,1 399,-1,467.3,71.3,67.4,190.6,1 399,-1,109.1,349.5,52.3,190.7,1 399,-1,1163.7,474.9,66.7,200.1,1 399,-1,431.4,592.5,69.6,237.5,1 399,-1,283.5,128.8,55,167.1,1 399,-1,550.2,67.4,56.8,173.2,1 399,-1,1007.7,40.7,55.7,161.6,1 399,-1,1596.8,625.5,88.6,247.9,1 399,-1,203.8,280.3,56,182.8,1 399,-1,851.3,518.5,98.3,233.6,1 399,-1,922.4,531.2,81.1,217,1 399,-1,427.4,87,49.3,171,1 399,-1,716.1,1,51.3,137.9,1 399,-1,709.6,87.4,61.9,178.6,0.998 399,-1,980.4,909.5,89,171.5,0.99 399,-1,1768.9,431.3,58.4,198.1,0.222 331,-1,1221.1,31.1,63.1,119.2,1 331,-1,687,206.9,78.3,112.5,1 331,-1,389.7,578.9,85.5,251.9,1 331,-1,449.4,114.5,74.2,191.3,1 331,-1,1719.7,65.2,61.8,157.1,1 331,-1,1448.5,1.3,56.7,132.7,1 331,-1,109.6,349.6,50.7,190.7,1 331,-1,1720.1,457.9,79.1,213,1 331,-1,1583.4,1,63.4,126.4,1 331,-1,282.2,132.1,55.4,173.4,1 331,-1,362.2,105.8,58.3,182.2,1 331,-1,984.8,65.4,61,182.1,1 331,-1,237,355.3,59,189.9,1 331,-1,927.5,27.9,64.7,176.5,1 331,-1,796.8,151.6,59.5,169.7,1 331,-1,721.9,90.5,52.9,176.8,1 331,-1,213,139.8,54.9,161.1,1 331,-1,1042.9,76.1,51.6,163,1 331,-1,1829.9,506.6,69.4,206.4,1 331,-1,837.3,438.8,83,214.1,1 331,-1,898.6,446.1,70.2,203.5,1 331,-1,1532.7,606.6,82.8,244.9,1 331,-1,509.8,490.7,67.2,225.1,1 331,-1,520.4,100.7,39.7,167.2,1 331,-1,420.4,47.4,57.4,169.8,1 331,-1,412.6,466.5,82.7,236.7,0.999 331,-1,937.8,393.7,68.4,193.4,0.999 331,-1,937.6,911,67.4,170,0.912 331,-1,781.8,98.1,43.9,157,0.787 331,-1,374.4,921.7,85.1,159.3,0.093 435,-1,1221.6,30.4,61.5,118.1,1 435,-1,938.4,4.5,62.7,165.8,1 435,-1,686.7,206.2,79.1,112.8,1 435,-1,359.1,109,53.4,177.4,1 435,-1,449.5,227.3,78.4,201.9,1 435,-1,1320.1,525.7,73.1,198,1 435,-1,1008.8,20.6,54.2,159.5,1 435,-1,846,1,54.3,134.9,1 435,-1,111.1,351.7,53.9,188,1 435,-1,1716.4,458.6,81.9,208.9,1 435,-1,1684.4,86.8,66.3,177.6,1 435,-1,276.3,624.3,91.3,255.5,1 435,-1,284.6,130.6,55.6,166.7,1 435,-1,799.1,150.8,52.4,172.3,1 435,-1,760.2,563,81.4,248.6,1 435,-1,376.9,653.6,69.9,242.6,1 435,-1,1755.5,144.8,61.3,168.1,1 435,-1,229.7,244.2,51.8,175.2,1 435,-1,1848.3,417.5,72.7,188.2,1 435,-1,1565.8,614,86.3,246.9,1 435,-1,536.2,71.8,54.1,166.4,1 435,-1,873.8,570.8,108.3,242.3,1 435,-1,422.3,1,42.8,128.4,1 435,-1,430.8,111.8,58.9,173.7,1 435,-1,360.9,1.1,64.5,129.1,1 435,-1,954.6,583.6,86.4,220.6,1 435,-1,713.4,87.1,58.4,178.4,1 435,-1,221.5,139.5,68.1,154,0.999 435,-1,726.7,2.1,47,106.7,0.997 435,-1,759.3,83.9,43.1,153.5,0.986 435,-1,1766.6,72.2,81.2,166.3,0.981 435,-1,997.8,928.3,84.7,152.7,0.966 530,-1,1221.5,30.7,61.7,119.8,1 530,-1,1485.8,1,59.2,141.8,1 530,-1,687.1,205.8,78.1,114.5,1 530,-1,386,200.8,65.1,187.7,1 530,-1,780,143.7,56.7,174.3,1 530,-1,1718,457,82.2,209.5,1 530,-1,993.1,1,55.5,112.7,1 530,-1,1670.5,14.3,51.7,161.4,1 530,-1,288.3,125.8,53.2,171,1 530,-1,169.7,316,66,195.4,1 530,-1,464.5,118.6,64.5,187,1 530,-1,882.9,1,53.1,117.2,1 530,-1,1605.3,2.2,57.9,171.1,1 530,-1,264.9,827.3,82.5,253.7,1 530,-1,1766,218.2,68.5,171.3,1 530,-1,929.3,1,56.5,111.2,1 530,-1,1701.1,302.3,77.2,205,1 530,-1,516.9,101.8,59.2,179.1,1 530,-1,1579.1,593.8,64.4,238.7,1 530,-1,815.7,600.5,74,257.9,1 530,-1,218.9,138.8,60.7,158.1,1 530,-1,190.8,786.8,93.9,287.3,1 530,-1,1784.1,655.7,71,212.8,1 530,-1,450.9,2.9,69.8,169.4,1 530,-1,959.6,728,122.6,266.7,1 530,-1,401.7,38.2,48.3,158.6,1 530,-1,1591.5,284,58.4,205.3,0.992 530,-1,1875.6,223.2,45.4,206.7,0.968 530,-1,1048.6,752.3,86.5,242.4,0.306 530,-1,1042.7,937.7,70.4,143.3,0.217 530,-1,760.2,106.2,53,165.9,0.094 241,-1,1221.1,31.1,62.9,119.5,1 241,-1,686.3,207,80.1,112.2,1 241,-1,1485,61.2,53.3,152.2,1 241,-1,1165.2,122.6,52.5,160.3,1 241,-1,1085.5,121.2,59.7,182.8,1 241,-1,796.3,152.8,59.3,173,1 241,-1,1591.1,1.6,57.1,143.3,1 241,-1,383.6,525.7,90.6,236.6,1 241,-1,288.9,128.1,55.5,172.2,1 241,-1,211.9,126.2,55.6,168.7,1 241,-1,704.6,1,55.1,159,1 241,-1,109.2,350,50,190.6,1 241,-1,1362.6,566.8,110.9,245.9,1 241,-1,927.9,120.7,69.9,186.5,1 241,-1,355,103.4,54.3,182.1,1 241,-1,446.5,176.4,73.6,208.1,1 241,-1,192,714.8,88.8,252.8,1 241,-1,1721.2,456.1,78.3,213.5,1 241,-1,223,477.5,60.7,203.9,1 241,-1,496.4,353.6,74,225.4,1 241,-1,516.4,116.8,51.5,183,1 241,-1,843.6,344.5,81,194.9,1 241,-1,590.1,365.4,62.4,198,1 241,-1,786.7,331.8,80.6,207.8,0.999 241,-1,109.3,564.2,86.9,239.1,0.999 241,-1,934.2,895.8,69.8,185.2,0.985 994,-1,686.8,206.3,79.5,112.7,1 994,-1,1797.6,184.6,72,185.5,1 994,-1,793.1,140.5,75.3,172.6,1 994,-1,1220.7,30.6,62.2,121.9,1 994,-1,399.9,278.1,67.7,197,1 994,-1,1194.9,126.7,59.9,173.7,1 994,-1,1671.7,149.1,59.1,172.2,1 994,-1,502.6,263.5,64.6,184.8,1 994,-1,1471.6,177.1,64,159,1 994,-1,329.3,849.4,96.4,231.6,1 994,-1,289.7,125.1,51.8,169.4,1 994,-1,838.4,306.9,70.1,204.1,1 994,-1,1720.7,453,79.3,216.2,1 994,-1,231.3,134.8,54.5,166.2,1 994,-1,1576.2,589.6,102.7,238.3,1 994,-1,752,71.4,55.1,163.6,1 994,-1,543.7,119.7,58.6,170.1,1 994,-1,301.6,462.8,83.8,198.8,1 994,-1,920.6,300.3,71.4,208.3,1 994,-1,1182,658.8,91,262.9,1 994,-1,386.7,449.1,67.1,220.5,1 994,-1,314.2,274.5,63.8,197.7,1 994,-1,314.4,1.7,45.4,129.5,1 994,-1,504,79.2,55.1,156,1 994,-1,1739.6,675.3,94.1,247.1,1 994,-1,442.5,66.5,58.3,175.1,1 994,-1,387.1,165.5,67.9,195.1,0.999 994,-1,1440.8,3,56.2,77,0.902 307,-1,1221.5,31.4,61.9,118.4,1 307,-1,1457.6,11.3,54.3,146.8,1 307,-1,686.3,206.9,79.1,113.4,1 307,-1,415,33.9,56.3,162.7,1 307,-1,288.5,582.1,86.9,244.4,1 307,-1,1691.1,44.4,57.7,158.3,1 307,-1,1719.3,457,80,213.1,1 307,-1,355.6,108.7,56.7,178.7,1 307,-1,108.6,352.4,51.8,187.5,1 307,-1,934,54.8,65.5,178.2,1 307,-1,235.7,387,60.8,194.4,1 307,-1,795.5,147.3,59.9,178.1,1 307,-1,454,126.2,72.2,202.8,1 307,-1,216.1,127.3,55.9,168.2,1 307,-1,532,450.6,67.9,214.6,1 307,-1,1483.2,596.3,87.9,244.6,1 307,-1,706.4,1,51.9,156.6,1 307,-1,280.2,130.5,54.5,172.4,1 307,-1,1003.5,79.7,61.7,184.4,1 307,-1,322.7,864.8,92.3,216.2,1 307,-1,1063.9,81.5,54.7,167.4,1 307,-1,826.2,414.4,88.4,213.8,1 307,-1,887.4,426.3,71.8,190.6,1 307,-1,734.9,99.4,47.2,169.5,1 307,-1,389.6,404.1,84.1,231.4,0.999 307,-1,450.8,436.6,65.9,231.5,0.999 307,-1,510.5,102.2,45.4,173.9,0.999 307,-1,930.2,910.1,75.3,170.9,0.99 307,-1,366.7,788.8,93.5,261,0.975 329,-1,1221.4,31.3,62.5,118.4,1 329,-1,686.3,206.6,80,112.9,1 329,-1,382.8,579.4,84.9,251.6,1 329,-1,1450.2,1.1,56.6,135.2,1 329,-1,1718.4,62.7,63.7,159.9,1 329,-1,451.2,115.4,73.4,193.4,1 329,-1,1720.1,457.5,78.5,212.7,1 329,-1,109.2,349.9,51,189.1,1 329,-1,362.3,106.9,58.2,180.3,1 329,-1,795.5,150.9,61,171.9,1 329,-1,281.6,133.3,55.3,171.3,1 329,-1,986.3,64.6,61.5,180.4,1 329,-1,927.3,30.8,63.8,175.5,1 329,-1,1582.6,1.9,66.1,122.2,1 329,-1,723.5,86.1,51.7,185.2,1 329,-1,212.5,138.6,56.1,161.6,1 329,-1,237.8,356.9,59.2,191.8,1 329,-1,1832,507.4,69.8,205.4,1 329,-1,835.3,439.9,82.9,211.9,1 329,-1,898.3,446.9,72.2,198.1,1 329,-1,1524.6,608.2,86.8,241.4,1 329,-1,420.7,47.9,57.1,168.4,1 329,-1,1043.9,76.9,51.8,162.1,1 329,-1,511,485.2,69.1,226,1 329,-1,518.8,103.3,38.9,165.2,0.999 329,-1,419.4,464.2,78.9,231.8,0.998 329,-1,934.1,911.7,70.3,169.3,0.965 329,-1,936.6,389.3,65.2,193.2,0.732 329,-1,376.1,917.2,84.4,163.8,0.182 232,-1,1221.9,31.1,62.1,117.9,1 232,-1,685.9,206.7,80.8,112.7,1 232,-1,1490.4,65.6,54.7,150.6,1 232,-1,381.2,546.4,95.1,239.7,1 232,-1,1179.3,127.4,51.3,160.8,1 232,-1,799.4,149.3,58.2,177.8,1 232,-1,356.3,105.4,53.6,180.3,1 232,-1,436.4,183.6,78.5,217.1,1 232,-1,705.7,1,55.4,158.7,1 232,-1,288.5,125.7,55.8,172.9,1 232,-1,108.5,350.1,50.8,190.1,1 232,-1,1580.2,1,58.1,142.6,1 232,-1,211.7,125.3,56.1,168.7,1 232,-1,1096.7,125.3,66.8,183,1 232,-1,1358.8,569.1,104.9,241.3,1 232,-1,1721.3,457.5,77.5,211,1 232,-1,516.7,120.9,50,178.8,1 232,-1,921.1,129.3,70.3,180.4,1 232,-1,836.6,332.7,75.4,195,1 232,-1,162,696.7,101.6,259.8,1 232,-1,220.8,490.5,57.8,204.4,1 232,-1,504.5,344.1,73.3,223.5,1 232,-1,778.3,324,74.1,208.6,1 232,-1,591.1,355.5,60.5,191.4,1 232,-1,110.9,631.4,88,254.6,0.999 232,-1,934,900.6,72.6,180.4,0.993 1037,-1,1222.1,29.9,61.4,118.6,1 1037,-1,686.9,206.9,79.5,114.3,1 1037,-1,794.2,141.5,69.9,172.5,1 1037,-1,1277.7,186.1,64.6,163.7,1 1037,-1,484.8,312.8,74,196.3,1 1037,-1,1719.8,456,80.6,214.8,1 1037,-1,288.8,127.4,52.4,169.4,1 1037,-1,1130,570.9,90.3,243.9,1 1037,-1,233.2,138.8,55.9,164.5,1 1037,-1,751.8,75,53.3,162.6,1 1037,-1,283.4,527.5,92.1,211.2,1 1037,-1,848.7,254.2,64,196.3,1 1037,-1,937,240.4,66,204.4,1 1037,-1,1708.5,202.8,61.6,181.6,1 1037,-1,363.3,319.8,74.8,203.2,1 1037,-1,1469.2,209.5,70.1,163.3,1 1037,-1,1572.8,588.5,104.3,239.7,1 1037,-1,440.7,172.3,66.3,167.5,1 1037,-1,294.3,316.6,68.5,207.7,1 1037,-1,375.2,504.5,65.8,233.6,1 1037,-1,1674.5,675.4,81.5,239.9,1 1037,-1,1852.4,240.2,66.1,200.6,1 1037,-1,580.9,541.8,68.5,250.2,1 1037,-1,372.1,105,58.5,175.1,1 1037,-1,307.8,2.4,36.1,126.9,1 1037,-1,494.4,167.2,71.7,196.6,1 1037,-1,539.7,119,58,172.1,0.997 957,-1,686.3,206.3,80.5,113,1 957,-1,793.4,139.9,74.7,173.1,1 957,-1,1471.2,138,66.4,163,1 957,-1,1221.4,30,62.4,119,1 957,-1,1762.9,148.4,65.2,173.3,1 957,-1,1643,109.9,54.7,167.4,1 957,-1,1152.2,83.2,57.3,165.6,1 957,-1,1577.2,591.8,99.4,236,1 957,-1,928,343.9,73.9,220.8,1 957,-1,1720.8,453.7,78.6,212.9,1 957,-1,1408,1.5,47,108.9,1 957,-1,850.1,359.8,70.5,213,1 957,-1,751.5,73,56,161,1 957,-1,1230.1,743.4,95.9,273.2,1 957,-1,388.3,396.2,70.5,220.2,1 957,-1,321.8,776.6,95.8,268.2,1 957,-1,551,120.1,54.7,169.7,1 957,-1,420.9,235.2,70.3,196.3,1 957,-1,231.1,135.9,56.3,166.5,1 957,-1,319,411,79.3,195.7,1 957,-1,437,74.6,56.9,179.1,1 957,-1,1474.2,1,56.9,111,1 957,-1,482.9,225,64.4,182.5,1 957,-1,337.5,239,65.4,183.9,1 957,-1,1742.9,677.5,93.1,249.4,1 957,-1,480.5,46.4,54.4,163.5,1 957,-1,288.2,126,53.8,172.9,1 957,-1,242.6,2.2,54.3,120.4,0.998 957,-1,312.3,1,47.4,132.8,0.895 957,-1,324.9,164.9,46.8,198.4,0.073 364,-1,1222.2,31.6,60.9,117.9,1 364,-1,686.4,206.3,80.1,113.3,1 364,-1,434.1,329,77.6,203.8,1 364,-1,1433.7,2.8,50.3,101.4,1 364,-1,1624.3,1,62.6,161,1 364,-1,1023.6,57.5,55,167.8,1 364,-1,208.3,141.6,59.6,160.2,1 364,-1,1754.9,94.2,62.6,160.5,1 364,-1,443.7,84.6,70.4,200.1,1 364,-1,109.6,352.1,51.5,186.7,1 364,-1,512,92.6,47,163,1 364,-1,372.7,511.9,85.9,244.1,1 364,-1,1719.5,456.3,79.5,212.8,1 364,-1,1841,64.6,57.6,162.1,1 364,-1,796,150.3,60.5,173,1 364,-1,833.6,1,53.5,106.5,1 364,-1,1046.5,436.5,66.1,195.4,1 364,-1,1815.6,465,64.5,205.8,1 364,-1,286.7,130.3,53.6,170.1,1 364,-1,956.9,49.1,61.3,172.7,1 364,-1,219,318.7,53,186.2,1 364,-1,362.4,112.4,53.9,173.7,1 364,-1,1573,624.8,84.2,249.5,1 364,-1,519,570.2,103.6,248,1 364,-1,909.2,486.2,82.2,210.8,1 364,-1,381.3,1,41.7,87.6,1 364,-1,844.8,476.1,84.7,228.4,1 364,-1,471.6,533,64.6,228.8,0.999 364,-1,927.3,4.1,59.9,153.6,0.996 364,-1,763.2,95.5,41.3,143.3,0.995 364,-1,959.3,923.1,77.7,157.9,0.99 492,-1,1221.3,30.6,62.3,118,1 492,-1,686,206.3,80.4,113.5,1 492,-1,999.6,1,54.8,137.6,1 492,-1,1498.7,1,57.4,125.6,1 492,-1,1733,184.5,68.5,171.5,1 492,-1,1700,458.9,98.7,209.4,1 492,-1,1814.5,172.7,70.2,182.8,1 492,-1,802.1,602.5,93,259.3,1 492,-1,875,1,54.5,129.1,1 492,-1,305.8,190.4,50.1,168.8,1 492,-1,464.8,154.1,64.3,197.4,1 492,-1,931.2,1,55.9,131.2,1 492,-1,801.1,144,53.9,175.6,1 492,-1,138.2,336.8,66.8,190.1,1 492,-1,408.8,160.8,60,184,1 492,-1,1692,42.7,53.3,167.3,1 492,-1,301.4,759,79.1,260.5,1 492,-1,1539,600.8,88.8,238.8,1 492,-1,920,659,113,248,1 492,-1,1633.2,29.3,59.7,176.7,1 492,-1,219.4,136.7,62.2,164.7,1 492,-1,216.3,732.2,98.3,266.3,1 492,-1,359.8,107.6,55,178.3,1 492,-1,449.2,18.8,74.2,179.8,1 492,-1,1627.4,325.8,61,194.6,1 492,-1,715,93.9,58.1,165.1,1 492,-1,1763.3,344.5,75.1,216.6,1 492,-1,408.1,8.6,47,166.7,1 492,-1,504.1,92.3,64,169.2,1 492,-1,1617.3,590.5,74.7,217.3,0.999 492,-1,1007.2,676.3,80,234.1,0.997 492,-1,288.8,129.4,50.2,169,0.959 492,-1,753.3,97.7,46.2,142.6,0.79 492,-1,1019.1,938.7,85,142.3,0.071 777,-1,1221,29.5,62.6,118.9,1 777,-1,688.1,204.9,78.1,114.9,1 777,-1,546,115.6,62.2,176.1,1 777,-1,1723.5,452.5,75.5,214.3,1 777,-1,783.5,133.3,59.4,174.6,1 777,-1,1490.4,15.8,59.9,149.7,1 777,-1,1575.4,590.3,100.3,234.5,1 777,-1,292.1,482.1,77.5,230.6,1 777,-1,1445.2,75.8,53.9,168.6,1 777,-1,449.7,207.1,54.5,188.1,1 777,-1,389.4,215.4,73.7,177.9,1 777,-1,554.6,570.9,80.8,252.2,1 777,-1,276.3,173,57.2,193.2,1 777,-1,329.3,189.1,56.5,175.4,1 777,-1,749.6,75.7,53.6,157,1 777,-1,1573.1,77.1,59.7,173.1,1 777,-1,469.8,78.3,62,173.7,1 777,-1,255.7,1.1,51.7,118.1,1 777,-1,233.6,135.3,51.4,165.1,1 777,-1,1050.7,653.8,78.6,250,1 777,-1,1121.5,632.5,83.6,256.6,1 777,-1,415.9,78.1,56.4,167.8,1 777,-1,355.5,108.4,51.5,186.2,0.966 613,-1,1221.8,31.5,60.6,118.1,1 613,-1,687.4,205.5,78.1,113.4,1 613,-1,1480.7,5.4,60,144.8,1 613,-1,802.2,145.4,65.9,169.1,1 613,-1,361.3,283.7,67.8,201.9,1 613,-1,1710.3,456.9,92.6,209.9,1 613,-1,1637.1,212.3,69.8,197.4,1 613,-1,1574.3,589.5,97.3,234.7,1 613,-1,1608.7,1.2,54,103,1 613,-1,581,554.6,94.6,228.4,1 613,-1,173,243.3,64.9,198.4,1 613,-1,357,112.2,52.1,172.5,1 613,-1,244.5,260.1,60,182.3,1 613,-1,558,110,52.6,180.2,1 613,-1,288.3,127.4,51,168.4,1 613,-1,494.2,90.7,48.7,157.1,1 613,-1,223.4,137,54.6,158.8,1 613,-1,754,82,42.6,153.8,1 613,-1,444.2,82.2,47.3,161.2,1 613,-1,1099.3,889.6,119.4,191.4,0.999 613,-1,398.3,91.5,52.9,162.3,0.998 613,-1,355.1,1.5,51.8,118.7,0.206 984,-1,1222.1,29.5,62,119.1,1 984,-1,686.8,206.2,79.3,113.1,1 984,-1,794.2,140.9,72,170.4,1 984,-1,407.9,266.8,72.3,193.3,1 984,-1,1183.5,120.1,56,163.8,1 984,-1,1576.7,590.2,102.9,234.4,1 984,-1,495.3,249.4,66.7,186.8,1 984,-1,1787.9,177.2,72.3,179,1 984,-1,333.9,836.1,95,244.9,1 984,-1,839.4,316.7,72.7,206.1,1 984,-1,1469.6,166,66.8,167.4,1 984,-1,318.3,259.9,63.5,197.9,1 984,-1,304.2,451.5,84.4,202.4,1 984,-1,1720.5,452.7,79.7,215.8,1 984,-1,751.2,71.7,56,163.4,1 984,-1,1194.2,674,87.5,260.3,1 984,-1,230.3,137.2,55.3,164.7,1 984,-1,289.7,125.4,52.9,172.7,1 984,-1,1451.2,1,56.4,94.1,1 984,-1,1667.7,142.2,54.3,166.8,1 984,-1,546.4,119.2,55,166.5,1 984,-1,921.4,308.9,68.3,205,1 984,-1,1739.6,673.9,95.4,249.9,1 984,-1,314.2,2,46.4,129,1 984,-1,391.9,434.9,65.3,217.6,1 984,-1,445.2,61.7,56.4,184.7,1 984,-1,495.5,68,51.9,155.8,1 984,-1,383,1,53.7,133.2,1 984,-1,367.5,166.3,64,197.3,0.999 984,-1,1388.2,1.6,46.1,92.1,0.999 679,-1,1222,29.5,61.5,121.7,1 679,-1,687.3,206.8,79.1,113.5,1 679,-1,1481.5,4.5,60.2,146.1,1 679,-1,1083.6,1,73.8,101.4,1 679,-1,1621.9,153,72,189,1 679,-1,1709.3,458.1,97.9,207.3,1 679,-1,801.3,145.6,63,172.3,1 679,-1,563.7,111.5,49.5,178.3,1 679,-1,314.7,355.9,68.4,214.6,1 679,-1,485.1,131.2,46.3,172,1 679,-1,1288.7,879.5,87,201.5,1 679,-1,1492.3,157.7,51.1,173,1 679,-1,360.2,114.4,49.5,169.4,1 679,-1,370,530.3,110,251.7,1 679,-1,1575.3,589.6,97.3,235,1 679,-1,750.1,79.7,49.2,157.1,1 679,-1,416.7,140.1,71.3,160.9,1 679,-1,1372.8,863,99.6,218,1 679,-1,403.6,8.7,59.3,162,1 679,-1,232.9,211.9,64.2,196.2,1 679,-1,288.5,223,58.2,176.1,1 679,-1,299.4,1,54.8,135,0.999 679,-1,840.9,926.4,71,154.6,0.922 679,-1,482.8,45.5,43,134.1,0.846 679,-1,353.7,14.6,49.4,146,0.544 486,-1,1221.5,30.9,61.8,117.1,1 486,-1,686.7,205.9,80,113.4,1 486,-1,998.5,1,57.1,143.9,1 486,-1,1499.7,1,58.1,121.7,1 486,-1,299.5,196.2,51.1,170.2,1 486,-1,931.5,1,56.4,136,1 486,-1,1685.5,460.2,114.1,207.5,1 486,-1,458.6,164,65,194.1,1 486,-1,876.1,1,53.7,132.1,1 486,-1,1799,166.2,71.2,184.1,1 486,-1,1729.5,178.2,69.7,172.9,1 486,-1,803.6,597.8,90.2,258.9,1 486,-1,134.9,340,60.1,189,1 486,-1,803.2,142.8,50,177.2,1 486,-1,1699.4,47,51.5,167.4,1 486,-1,216,712.5,95.4,261.8,1 486,-1,915.6,648.1,114.7,256.2,1 486,-1,358.3,110.1,53.9,175.5,1 486,-1,219.4,138,62.9,160.8,1 486,-1,1539.1,599.3,83.2,241.5,1 486,-1,309,744.7,76.5,257.8,1 486,-1,412.9,153.6,57.5,178.4,1 486,-1,1777.2,349.2,74.7,215.8,1 486,-1,1632.4,327.2,62.8,193.2,1 486,-1,447.6,22.8,75.2,177,1 486,-1,505.4,89.6,62.4,171,1 486,-1,1641.1,38.8,57.8,174.2,1 486,-1,711.8,93.5,59.1,168.8,0.999 486,-1,410.8,7,47.6,158.8,0.999 486,-1,754.3,98.5,50.8,143.1,0.998 486,-1,1004.7,674,74.9,224.3,0.979 486,-1,1592.2,573.8,65.8,213.1,0.627 486,-1,1017.6,937.2,83.9,143.8,0.2 615,-1,1221.5,30.8,62.1,119.1,1 615,-1,687.2,205.9,78.9,113.8,1 615,-1,1479.9,4.8,60.4,145,1 615,-1,801.3,144.7,66.7,171,1 615,-1,1633.5,209,72.8,194.9,1 615,-1,359.2,286.3,66.5,200.5,1 615,-1,1710.5,456.9,92.7,210.3,1 615,-1,173.4,242.3,66.8,200.2,1 615,-1,1606.8,1,51.9,99.7,1 615,-1,358,115.5,51.9,175.4,1 615,-1,1574.8,589.3,97,235,1 615,-1,579,549.4,87.6,236.2,1 615,-1,245.2,258.5,59.6,183.8,1 615,-1,288.2,127.2,50.8,169.1,1 615,-1,556,111.8,54.8,177.5,1 615,-1,224.1,136.8,53.9,159.7,1 615,-1,754.1,82.5,43.1,152.8,1 615,-1,495.1,91.3,47.7,155.6,1 615,-1,444.8,80.8,47.3,164.5,1 615,-1,1101.7,897,115.5,184,1 615,-1,398.3,93.2,54,164.8,0.999 615,-1,354.2,3.4,52.6,114.8,0.825 615,-1,1196.8,910.8,74.9,170.2,0.076 206,-1,1221.5,31,62.5,119.1,1 206,-1,687.2,207,78.3,113.6,1 206,-1,211.5,127,55.7,167.2,1 206,-1,704.8,1,55.8,158.9,1 206,-1,397.7,600.1,88.3,244.4,1 206,-1,1491.3,70.4,54,147.4,1 206,-1,108.8,349.8,49.9,186.9,1 206,-1,1208.9,146.1,52.4,164.9,1 206,-1,1721.1,456.8,77.6,211.4,1 206,-1,1358.7,568.6,103.1,244.5,1 206,-1,287.9,125.8,55.9,171.9,1 206,-1,354.6,106.9,55.7,178.9,1 206,-1,72.8,644.8,112.6,257,1 206,-1,521.3,132.4,56.3,163.9,1 206,-1,423.9,205.1,77.6,216.6,1 206,-1,1146.1,140,61.4,183.1,1 206,-1,507.6,319,76.9,216.3,1 206,-1,796.9,150.2,59,173.7,1 206,-1,896,155.1,69.5,184.1,1 206,-1,1026,135.4,47.4,156,1 206,-1,228,529.2,59.3,207.1,1 206,-1,806.9,311.9,71.5,187.8,1 206,-1,381.6,38.8,61.9,167.9,1 206,-1,1,604.6,80,234.8,1 206,-1,755.5,295,70.3,206.2,0.999 206,-1,963.7,913.1,69.8,167.9,0.991 206,-1,866.7,109.2,51.7,168.6,0.989 206,-1,474.2,4,42.2,75.5,0.148 825,-1,1221.5,29.8,62.2,118.3,1 825,-1,687.4,205.7,78.1,114.1,1 825,-1,275.4,558.4,80.5,239,1 825,-1,1036.5,547.9,96.3,244.6,1 825,-1,791.4,134.9,64.7,178.6,1 825,-1,1635.9,2.3,56.2,158,1 825,-1,1723.6,453.5,74.8,213.2,1 825,-1,1575.4,589.8,100.8,234.6,1 825,-1,556.5,116.6,63.1,174.4,1 825,-1,437.7,256.8,55.8,194.5,1 825,-1,1476.7,42.5,58.9,158,1 825,-1,1423.4,40,51.6,161.1,1 825,-1,751.7,71.4,57,162.2,1 825,-1,286.4,163.1,70,196.8,1 825,-1,474.2,122.7,58.7,176.4,1 825,-1,374.1,264.9,73.9,174.7,1 825,-1,966.2,567.6,75,237.7,1 825,-1,238.2,134.2,49.1,167,1 825,-1,423.3,117.9,58,176.4,1 825,-1,347.4,172.8,50.4,176.2,0.999 910,-1,1222.2,30.4,60.9,118.4,1 910,-1,686.5,206.3,79.7,113.1,1 910,-1,472.6,198.2,67.3,190.1,1 910,-1,794,140.6,74.9,171.7,1 910,-1,1433,1,48.6,141.7,1 910,-1,1110.9,31.9,62.6,162.2,1 910,-1,308.6,694.3,89.6,267.1,1 910,-1,871.7,434.1,65.1,218.5,1 910,-1,1575.2,590.5,104.5,234.9,1 910,-1,557.2,114.4,57.8,173.9,1 910,-1,1721.7,452.9,77.7,214.9,1 910,-1,1716.1,89.5,56.4,172.8,1 910,-1,1480,107.1,60.7,153.2,1 910,-1,413.9,347.8,59.3,206.5,1 910,-1,300.8,165.2,67.3,198.5,1 910,-1,1598.4,63.3,54,161.1,1 910,-1,1304.1,876.8,96.8,204.2,1 910,-1,379.2,192.4,58.5,180,1 910,-1,329.6,356.7,82.1,190.8,1 910,-1,752.2,73.5,55.5,160,1 910,-1,1744.9,680.8,97.1,239.4,1 910,-1,470.3,11.2,49.5,149.3,1 910,-1,967.4,414.3,65,226.1,1 910,-1,241.5,134.6,57.2,165,1 910,-1,1502.3,2.7,57.7,133.9,1 910,-1,421.9,66.5,56,171.9,1 910,-1,253.8,1.3,54.7,118.8,1 910,-1,312.7,1.1,47.7,132.4,1 1041,-1,1221.7,29.2,61.4,119.7,1 1041,-1,686.9,206.4,79.9,115.2,1 1041,-1,793.4,141.3,70.8,172.6,1 1041,-1,478.4,320.2,77.3,196.7,1 1041,-1,1720.3,454.2,80.7,218.3,1 1041,-1,289.1,126.9,52.4,171.8,1 1041,-1,1126.1,560.2,88.7,256.6,1 1041,-1,937.3,236.9,66.3,206.1,1 1041,-1,277.3,533.9,97.1,203.6,1 1041,-1,230.9,138.6,55.5,164.2,1 1041,-1,1289.8,191.8,64.5,163.9,1 1041,-1,1660.4,682.1,92.2,233.7,1 1041,-1,751.2,74.9,54.2,161.3,1 1041,-1,362.3,323.8,73.7,200.6,1 1041,-1,292.8,319.7,70.6,208.1,1 1041,-1,374.7,509.5,66.5,237.5,1 1041,-1,1468.9,212.7,75.2,169,1 1041,-1,1716.7,209.4,58.3,179.2,1 1041,-1,372,102.8,58.3,177.6,1 1041,-1,851.6,249.1,62.3,191,1 1041,-1,307.2,2.9,37.2,126.5,1 1041,-1,1573.7,589.9,102.9,240.2,1 1041,-1,582.5,536.1,64.9,254.5,1 1041,-1,454.2,167.8,60.8,175.2,1 1041,-1,1857.7,242,63.3,199.3,1 1041,-1,501.7,168.1,75,196.9,1 1041,-1,433.2,66.7,62.2,176.7,0.998 1041,-1,541.3,114.6,56.9,175.7,0.371 782,-1,1221.6,29.5,62,117.7,1 782,-1,686.9,204.6,79.7,114.2,1 782,-1,1724.1,452.7,75.2,212.8,1 782,-1,782.4,132.4,57.7,175.4,1 782,-1,546.7,114.8,62,178.2,1 782,-1,1488.1,21,58.7,146.8,1 782,-1,1574.6,590.2,100,234.2,1 782,-1,292.9,494.8,76.9,228.6,1 782,-1,277.2,170.5,57.3,193.7,1 782,-1,1445.4,69.8,49.4,164.8,1 782,-1,447.8,212.6,55.2,192.5,1 782,-1,472.7,78.2,61.1,177.7,1 782,-1,332.6,188,53.9,176.7,1 782,-1,391.1,221.9,70.4,179.9,1 782,-1,233.3,130.7,50.8,168.8,1 782,-1,750,74.5,53.3,156.2,1 782,-1,254.2,1,53,120.4,1 782,-1,1109.6,626.3,83.1,247.8,1 782,-1,1572.5,76.2,59.5,171.9,1 782,-1,421.6,78.7,55.5,170.5,1 782,-1,573.4,572.6,68.7,259.4,1 782,-1,1047.3,646.4,73.9,250.4,0.999 1048,-1,1221.8,29.6,61.9,119.6,1 1048,-1,686.9,206.5,79.7,114.6,1 1048,-1,794.5,141.9,71.1,172.7,1 1048,-1,1720.2,455.6,79.4,215.1,1 1048,-1,357.6,335.4,73.4,204.7,1 1048,-1,476.4,324.9,75.5,197.5,1 1048,-1,287.7,125.9,54.6,173.5,1 1048,-1,1312.3,200.2,56.5,163.8,1 1048,-1,1649,679.1,96.7,233.7,1 1048,-1,1117.9,550.1,84.6,244.3,1 1048,-1,935.5,232,65.2,196.6,1 1048,-1,229.1,138.1,53.9,163.2,1 1048,-1,751.5,74.7,53.9,162.2,1 1048,-1,851.9,236.9,66.7,193.7,1 1048,-1,274.6,541.7,94.9,213.8,1 1048,-1,1724.9,222.3,57.2,172.6,1 1048,-1,374.3,99.2,58.9,180.6,1 1048,-1,373.1,519.3,68.9,240,1 1048,-1,288.9,332.6,72,207.4,1 1048,-1,308.1,2.8,38.7,130.6,1 1048,-1,1471.3,219.8,74.1,166.6,1 1048,-1,513.6,170.5,75.2,194.1,1 1048,-1,471.5,169.1,53.9,172.7,1 1048,-1,1573.1,588.8,102.1,241,1 1048,-1,583.8,536.8,62.7,255.1,1 1048,-1,433.4,67.7,62.3,177.9,0.999 1048,-1,1865.1,262,55.9,201.8,0.992 489,-1,1221.5,31,61.9,118.1,1 489,-1,686.4,206.3,80.2,112.7,1 489,-1,998.9,1,56.1,141.1,1 489,-1,1499.4,1,57.6,122.6,1 489,-1,1690.4,458.8,107.9,210,1 489,-1,931.3,1,56.8,135.1,1 489,-1,303.3,192.3,49.4,169.8,1 489,-1,460.6,158.1,65.3,195.4,1 489,-1,800.5,600.4,94.4,258.8,1 489,-1,1730.8,179.8,70.8,174.3,1 489,-1,875,1,53.9,130.3,1 489,-1,802.2,143.5,52.1,176.7,1 489,-1,1805.2,171.2,69.7,179.9,1 489,-1,410.8,155.2,60.2,185.2,1 489,-1,214.8,716.8,97.9,267.8,1 489,-1,1694.6,44.2,53.3,165.5,1 489,-1,358.1,108.9,54.1,173.9,1 489,-1,136.9,337.6,64.4,188.7,1 489,-1,218.6,137.4,62.5,160.8,1 489,-1,303.7,752.9,79.7,252.4,1 489,-1,448.1,19.2,75.4,180,1 489,-1,920.7,655.4,109,247.2,1 489,-1,1538.8,600.3,85.1,239.7,1 489,-1,1630.5,323.4,61.8,196.4,1 489,-1,1766.1,351.1,78.8,208,1 489,-1,713.8,92.4,60.1,167.6,1 489,-1,1636.6,33.7,60.7,176.1,1 489,-1,505,89.7,62.3,172.7,0.999 489,-1,409.7,8.4,46.5,158,0.999 489,-1,1598,579.4,77.3,225.9,0.997 489,-1,1004.9,673.6,78.3,231.4,0.996 489,-1,754.7,98.5,47.1,143.5,0.947 489,-1,291.1,137.7,47.9,148,0.067 489,-1,1017.8,937.5,84.5,143.5,0.052 726,-1,1221.7,30.4,62.3,118.1,1 726,-1,687.2,205.8,79,114.2,1 726,-1,550.6,112.3,59.8,176.8,1 726,-1,1471.6,111.2,52.8,169.8,1 726,-1,1710.7,456.1,96.6,207.6,1 726,-1,260.4,188.8,56.9,202.5,1 726,-1,1479.9,8.3,58.7,143.5,1 726,-1,477.2,160.3,51.8,184.3,1 726,-1,1574.2,590.9,99.7,232,1 726,-1,414.1,178.6,65.3,165.2,1 726,-1,1598.2,113.9,59.5,182.3,1 726,-1,301.6,415.9,72.5,220.8,1 726,-1,317.3,199.3,63.4,180.5,1 726,-1,400.4,552.5,96.4,247.4,1 726,-1,787,140.2,50,176.8,1 726,-1,749.2,81.2,50.5,153.2,1 726,-1,360.1,106.4,47.8,177.9,1 726,-1,1237.9,738.6,99.8,267.8,1 726,-1,1168,768.1,79.1,250.7,1 726,-1,422.9,38.9,59.5,168.2,1 726,-1,464.6,8.4,46.8,143.8,0.999 726,-1,320.8,1,50.5,133,0.998 726,-1,237.3,134.4,52.1,171.7,0.998 153,-1,1221.4,31.3,62.6,116.9,1 153,-1,356.3,103.1,54.2,180.8,1 153,-1,1488.4,68.5,55.5,151.3,1 153,-1,108.9,351.2,49.1,186,1 153,-1,1721.8,456.2,77.1,211.3,1 153,-1,1159.2,162.3,50,163.7,1 153,-1,704.3,1,56.4,158.5,1 153,-1,287.6,122.8,55.8,173.1,1 153,-1,1275.5,177.1,63,171.7,1 153,-1,214.5,125,55.3,168.1,1 153,-1,1358.7,566.7,105.5,244.6,1 153,-1,420.9,253.6,78.2,223,1 153,-1,687.3,206.1,79,115.3,1 153,-1,454.4,34.5,50.6,164.5,1 153,-1,405.9,710.6,93.5,265.2,1 153,-1,539,64.5,50.6,166.6,1 153,-1,100.9,544.1,86.4,257.9,1 153,-1,1017.9,131.3,57.5,174.8,1 153,-1,592.2,262.6,61.1,190.3,1 153,-1,190.8,614.1,65.4,214,1 153,-1,806,260.2,62.5,181.7,1 153,-1,531.1,275.5,59.8,201.7,1 153,-1,756.4,249.1,69.3,190.7,1 153,-1,859.5,202.9,71.6,195.4,1 153,-1,489.9,201.1,59.1,167.4,1 153,-1,385.8,2.4,45.2,122.5,1 153,-1,1043.1,914.2,72,166.8,0.993 153,-1,793.4,144.7,63.9,185.2,0.99 419,-1,1221.8,29.8,61.7,118.7,1 419,-1,686.2,204.9,79.8,115.4,1 419,-1,1663.6,67.4,74.5,179.5,1 419,-1,452.4,245.7,81,202.2,1 419,-1,550.1,70.7,55.2,165.2,1 419,-1,359,109.5,54.4,176.1,1 419,-1,944.8,14.3,60.3,165.7,1 419,-1,109.5,347.1,53.6,191.4,1 419,-1,1719.5,458.1,78.4,206.8,1 419,-1,1768.4,133.6,54.4,163.6,1 419,-1,1007,28,55.2,162,1 419,-1,1582.4,617.8,98.6,241.5,1 419,-1,1240.1,508.1,83.2,201.9,1 419,-1,837.3,1.4,51,129.9,1 419,-1,286.5,129.8,54.7,165.2,1 419,-1,212.6,258.4,54,179.7,1 419,-1,394,626.4,77.9,234.7,1 419,-1,288.7,599.2,92.2,250.3,1 419,-1,798.2,150.5,54.7,171.7,1 419,-1,860,541.6,107.5,247,1 419,-1,425.1,105.9,54.2,163.4,1 419,-1,219.7,142.2,72.2,157.4,1 419,-1,723,559.2,79.5,241.3,1 419,-1,1820.9,72.5,78.4,181.5,1 419,-1,358.4,1,66.7,118.5,1 419,-1,424.2,1.5,45.6,121.1,1 419,-1,717.6,1,50.2,127.2,1 419,-1,459.7,63,66.1,194.9,0.999 419,-1,712.7,90.7,63.4,176.6,0.999 419,-1,937.8,560,80.8,222.7,0.998 419,-1,752.9,90.6,43.6,159,0.537 419,-1,984.5,929.7,81.8,151.3,0.236 419,-1,918.6,7.9,38.4,99,0.209 811,-1,1221.6,29.8,62.7,118.3,1 811,-1,686.9,205.5,78.6,114.4,1 811,-1,277,535.7,78.9,235.5,1 811,-1,553.1,116.3,64.8,177.7,1 811,-1,1723,452.9,75.5,214.5,1 811,-1,1577.8,594.1,97.1,233.9,1 811,-1,441.6,237.8,54.7,195.7,1 811,-1,1619.4,2.2,61.2,146,1 811,-1,788.7,130.3,53.3,181.9,1 811,-1,279.1,164.8,61.7,198.5,1 811,-1,991.4,592.4,72.3,245.2,1 811,-1,1472.7,35.5,62.9,156.3,1 811,-1,475.7,105.9,64.8,180.2,1 811,-1,378.6,253,73.9,178.5,1 811,-1,750.5,73.2,57.7,161.7,1 811,-1,234.2,135.8,51.2,164.4,1 811,-1,1066.2,570.1,73.9,251.1,1 811,-1,346.8,179.9,51.9,171.8,1 811,-1,1434.7,54,48.2,155.8,1 811,-1,425.7,107,60.6,166.6,0.997 611,-1,1221.2,31.4,61.3,119,1 611,-1,687.5,205.8,78,113.8,1 611,-1,1480.9,4.5,59.7,144.5,1 611,-1,361.5,279.9,69.1,200,1 611,-1,801.7,146.4,66.2,168.7,1 611,-1,1709.2,456.9,93.7,210,1 611,-1,171.8,243.3,63.1,198.5,1 611,-1,1610.5,1.6,55.1,103.2,1 611,-1,1574,590.1,97.8,233.7,1 611,-1,585.6,553.8,102,230.7,1 611,-1,243.4,262.7,60.6,180.8,1 611,-1,1639.4,217.1,69.9,195.9,1 611,-1,559.4,108.8,52.1,181.2,1 611,-1,221.7,138.2,55.9,160.2,1 611,-1,288.6,126.8,50.7,170,1 611,-1,357.6,111.6,52.1,178,1 611,-1,493,88,47.5,159.9,1 611,-1,753.8,83.2,42.7,152,1 611,-1,441.7,80.2,47.8,162.1,1 611,-1,1097.5,887.2,115.9,193.8,1 611,-1,396.6,88.7,53.3,163.4,0.995 110,-1,1221,30.2,63.7,118,1 110,-1,356.7,105.1,55.4,177.9,1 110,-1,209.7,127.9,51.4,165.8,1 110,-1,704.6,1,55.3,158.1,1 110,-1,108.7,352,49.2,185.1,1 110,-1,388.9,808.7,101.1,272.3,1 110,-1,1487,68.7,56.2,149.4,1 110,-1,1721.7,457.4,77,209.6,1 110,-1,290.7,124.8,56.9,172.5,1 110,-1,1154.2,148,55.8,177.1,1 110,-1,1358.5,567.3,104.9,244,1 110,-1,936.7,204.1,70.4,191.3,1 110,-1,510.9,232.6,71.7,198.3,1 110,-1,425.9,292.2,78.5,226.5,1 110,-1,1255.3,184.9,46.6,171.5,1 110,-1,44.6,678.9,85.7,218.8,1 110,-1,1374.3,182.9,65.6,190.4,1 110,-1,102.5,545.1,84.3,255,1 110,-1,537.8,65.7,48.7,168.2,1 110,-1,478.5,154.6,58.5,159.6,1 110,-1,843.3,222.4,54.8,168.4,1 110,-1,441.9,1,51.4,155.3,1 110,-1,802.1,195.6,62.1,194.2,1 110,-1,698.9,185,55.8,159.6,0.999 110,-1,375.9,4.5,48.3,160.5,0.999 110,-1,482.8,38.8,60.8,162.7,0.999 110,-1,1421.3,189,42,167.2,0.072 13,-1,1042.2,206.9,89.1,181.2,1 13,-1,687,206.2,79.5,113.7,1 13,-1,1487,69.8,55.7,148.5,1 13,-1,504.3,149.7,103.2,189.7,1 13,-1,704.6,1.7,55.9,156.7,1 13,-1,1360.9,566.5,105.9,244.6,1 13,-1,379.1,396.9,83.3,233.7,1 13,-1,796.1,148.8,61.4,174.1,1 13,-1,1725.2,457.6,76.7,209.2,1 13,-1,102.3,547.9,84.8,249.8,1 13,-1,1803.4,222.5,66.3,178.2,1 13,-1,1201.3,35.7,73.4,116.6,1 13,-1,217.6,125.3,48.3,168.2,1 13,-1,356.1,105.8,53.8,177.9,1 13,-1,210.1,384.9,65.2,194.3,1 13,-1,285.4,121.6,54.8,174.5,1 13,-1,1622.6,253.8,61.9,181.9,1 13,-1,880.6,130.4,58.1,178.5,1 13,-1,416.8,89.4,53.4,163.7,1 13,-1,460.7,71.6,52.4,171.8,1 13,-1,1438.9,240.8,50.6,173.2,0.999 13,-1,1400.3,189.9,50.4,172.7,0.997 13,-1,1039,1,47.5,73.9,0.994 13,-1,250.5,364.4,49.9,197.9,0.399 551,-1,1221.2,30.7,62.2,119.6,1 551,-1,687,205.9,78.3,114.6,1 551,-1,1491.2,4.2,58.5,143.4,1 551,-1,1660.8,285,88.6,205.8,1 551,-1,382,222.6,63.1,190.6,1 551,-1,785.7,145.1,66.6,174.3,1 551,-1,1715.1,455.5,85.5,209.5,1 551,-1,762,595.9,99.4,256.4,1 551,-1,1793.6,232.8,70.7,182.6,1 551,-1,873.8,1,53.9,108.9,1 551,-1,532,109.8,60.7,176.8,1 551,-1,988.3,2.2,50.9,98.7,1 551,-1,289.3,121.3,51.6,175.1,1 551,-1,1659.1,2.1,54.7,155.2,1 551,-1,188,300.1,66.4,194.8,1 551,-1,1593.4,1.7,54.3,153.4,1 551,-1,219.6,134.9,57.6,160.4,1 551,-1,245.9,879.4,83.6,201.6,1 551,-1,1596,584.9,67.3,238.4,1 551,-1,456.3,97.2,65.8,182.4,1 551,-1,753,82.6,48.1,153.9,1 551,-1,359,109.8,55.3,174.5,1 551,-1,134.1,268.8,57.7,219.2,1 551,-1,412.3,140.6,49.3,163.6,1 551,-1,1076.7,785.7,93.6,247.8,0.997 551,-1,927.9,1.2,56.3,97.4,0.995 551,-1,1005.5,781,105.7,231.1,0.648 680,-1,1221.7,29.2,61.3,122.3,1 680,-1,687.3,206.8,79.2,113.3,1 680,-1,1481.3,4,60.6,147.3,1 680,-1,1079.2,1,77.3,102,1 680,-1,486.5,132.5,45.1,173.1,1 680,-1,1708.3,457.8,100.1,206.8,1 680,-1,801.1,145.7,61.2,173.5,1 680,-1,1620.7,153.4,72.2,188,1 680,-1,1490.8,156.9,52,175.7,1 680,-1,563.6,111.8,49.1,179.6,1 680,-1,368.3,529.8,109.3,253.1,1 680,-1,314.6,356.5,69,215.1,1 680,-1,416.2,141.2,71.2,159.9,1 680,-1,360.6,114.2,49.9,169.5,1 680,-1,1575.6,589.2,96.5,235.8,1 680,-1,1285.1,875.2,86.4,205.8,1 680,-1,750.3,80,49.1,157.5,1 680,-1,1369.2,860.3,101,220.7,1 680,-1,402.6,10.1,59.6,163.4,1 680,-1,233.8,209.8,65.1,196.7,1 680,-1,290.1,222.7,58.5,174.9,1 680,-1,480.8,40.6,46.7,148,0.989 680,-1,839.3,926.7,70.9,154.3,0.974 680,-1,296.4,1.4,58.1,136.5,0.952 96,-1,1222.1,30.6,61,117.1,1 96,-1,704.8,1,55.6,159.7,1 96,-1,400.2,844.9,98.9,236.1,1 96,-1,356.9,108.2,54.3,176.3,1 96,-1,1487.5,69.7,55,148.2,1 96,-1,424.1,307.2,77.3,231.5,1 96,-1,1721.3,456.4,78,210.7,1 96,-1,960.2,198.4,72.2,188.9,1 96,-1,1358.6,565.7,105.6,247.3,1 96,-1,1186.6,156.2,73.6,173,1 96,-1,101.7,547,86.9,254.1,1 96,-1,113.1,351.2,48.9,192.3,1 96,-1,293.2,125.5,53.8,170.8,1 96,-1,503.7,219.4,71.1,196.2,1 96,-1,209.8,129,49.9,166.7,1 96,-1,715.6,190.2,60.5,167.3,1 96,-1,29.2,696.7,66.5,228.9,1 96,-1,538.9,64.2,48.2,167.1,1 96,-1,438.8,12.1,51.8,156.5,1 96,-1,1284.7,197,45.8,168.3,1 96,-1,1453.1,189.8,58.9,174.3,1 96,-1,820.8,188.7,60.9,187.1,1 96,-1,376.6,17,50.5,159.8,1 96,-1,863.6,209.4,54.2,166.7,1 96,-1,1405.4,192.8,59.8,192,0.999 96,-1,482.4,136.3,57.1,160.4,0.999 96,-1,256,91,62.8,185.8,0.999 96,-1,483.2,37.9,58.8,161,0.99 847,-1,1221.2,29.7,62.4,119.5,1 847,-1,687.7,206,78.4,113.6,1 847,-1,794.4,138.4,78.6,174.9,1 847,-1,1720.5,452.4,79.6,213.8,1 847,-1,558.4,115.9,60.3,176.6,1 847,-1,1068.6,1,59,112.2,1 847,-1,1575.6,590.4,102.2,234.8,1 847,-1,265.7,590.4,83.2,245.8,1 847,-1,1470,60.8,60.8,154.6,1 847,-1,752.6,70.6,54.9,163.3,1 847,-1,296,160.9,72.7,196.3,1 847,-1,353.7,288.6,73.4,182.1,1 847,-1,240.1,131.7,52.3,166.7,1 847,-1,1414.8,28.9,54.4,158.2,1 847,-1,1657.2,24.4,54.1,162.1,1 847,-1,933.7,532.7,72.7,239.7,1 847,-1,474.1,136.1,59.6,181.8,1 847,-1,436.8,271.8,54.8,202.7,1 847,-1,1018.5,513.1,72.8,235.6,1 847,-1,416,139.2,60.9,169.3,1 847,-1,253.7,1.1,53.7,121.2,1 847,-1,494.5,1,43.7,106,0.753 119,-1,1221.1,29.9,63,119.3,1 119,-1,1114.5,148.1,80.1,173,1 119,-1,355.9,105.7,56.8,178.5,1 119,-1,394.8,783.4,103.4,280.4,1 119,-1,1487.6,68.1,56.1,151.5,1 119,-1,704,1,56.2,159.1,1 119,-1,212.6,127.4,50.9,165.2,1 119,-1,108.4,349.8,49.8,187.8,1 119,-1,925.1,207.9,67.3,195.2,1 119,-1,1721.3,457.1,77.5,209.7,1 119,-1,289.5,126.4,54.2,168.6,1 119,-1,1358.3,567.1,105,244.4,1 119,-1,478.4,167.4,57.1,157.1,1 119,-1,426.6,287.8,78.6,225.2,1 119,-1,522.4,241.7,69.3,204.3,1 119,-1,538.3,64.3,50.3,169.8,1 119,-1,1237.4,179.1,43.6,168.7,1 119,-1,788.7,208.5,65.6,189.6,1 119,-1,76.3,656.6,71.5,226.3,1 119,-1,1354.8,182.1,68.7,182.2,1 119,-1,445.8,1,54.4,148.7,1 119,-1,101.1,544,87.5,258.9,1 119,-1,377.1,1.5,48.4,150.6,1 119,-1,834.5,228.5,57.5,176.7,1 119,-1,482.6,39.4,59.3,166.2,0.999 119,-1,1114.7,926.8,83.6,154.2,0.148 184,-1,1221.5,31,62.4,117.4,1 184,-1,211.3,125.8,55.9,170.1,1 184,-1,1489.4,68.1,54.9,149.6,1 184,-1,406.3,37.7,63,167.6,1 184,-1,109,349.7,48.8,188.6,1 184,-1,356.6,105.8,54.2,179.2,1 184,-1,686.9,207.7,79.4,111.7,1 184,-1,704.5,1,55.7,159,1 184,-1,1720.1,456.5,78.8,212.5,1 184,-1,414,642,91.7,259.3,1 184,-1,289.8,129.5,54.6,167.7,1 184,-1,1358.3,567.9,104.3,243.6,1 184,-1,540.5,141.5,63,167.9,1 184,-1,5.1,616.9,117.7,255.6,1 184,-1,234.1,565.5,63.3,214.1,1 184,-1,528.7,302.7,60.3,204.1,1 184,-1,420.6,224,76.9,219.7,1 184,-1,869.5,175,78.1,191.8,1 184,-1,1087.8,145.6,50.8,163.5,1 184,-1,794.9,151.8,61.5,172.6,1 184,-1,923.5,123.8,72.8,169.8,1 184,-1,1196.1,152.9,60.2,188.2,1 184,-1,798.7,292.1,70.4,185.8,1 184,-1,98.7,548.3,86.2,251.4,1 184,-1,746.2,276.1,71.1,202.8,1 184,-1,1248.6,156.3,45,164.2,0.999 184,-1,989.3,917,73.5,164,0.974 318,-1,1221.4,30.9,61,118.9,1 318,-1,687.6,206.7,77.5,113.7,1 318,-1,324.8,585.2,105.2,245.5,1 318,-1,1456.5,4.3,55.6,143.7,1 318,-1,1707.4,52.9,57,155,1 318,-1,796.4,146,58.3,178.1,1 318,-1,1719.7,457.2,79.6,213.3,1 318,-1,108.9,349.5,51.8,191.1,1 318,-1,1507.5,601.2,88.9,245.6,1 318,-1,452.9,115.5,75.1,204.1,1 318,-1,930.4,48.8,62.1,173.7,1 318,-1,357.8,108.4,58.4,181.6,1 318,-1,892,438.6,70.1,196.3,1 318,-1,237,374.6,58,189.7,1 318,-1,435.1,447.7,72.3,237.3,1 318,-1,419.3,44.2,56,170.1,1 318,-1,996.5,77.7,60.4,177,1 318,-1,1051.8,76.9,55.5,169.2,1 318,-1,213.5,129,56.7,170.4,1 318,-1,281.6,129.4,53.3,174.4,1 318,-1,522.4,472.9,65.3,217,1 318,-1,705.7,2.3,52.1,154.7,1 318,-1,828.2,432.5,77.3,206.5,1 318,-1,727.6,98.5,47.5,175.9,1 318,-1,352.5,888.7,99.3,192.3,0.999 318,-1,514.2,101.9,40.9,165.9,0.998 318,-1,926.9,910.5,78.9,170.5,0.996 318,-1,1572.2,3.2,56.7,107.6,0.931 765,-1,1221.5,29,62.1,119.9,1 765,-1,687.4,205.5,78.2,114.3,1 765,-1,544,115,64.9,177.2,1 765,-1,782.3,135.6,63.9,176.5,1 765,-1,1721,452.6,78.3,214,1 765,-1,1575.4,590.5,99.3,233.6,1 765,-1,1455,79.8,53.9,169.8,1 765,-1,301.7,471.9,76.1,223.9,1 765,-1,456.3,197.9,55,184.7,1 765,-1,272.7,177.4,56.2,197.8,1 765,-1,329.6,193,56.7,179.6,1 765,-1,397,210.2,68.3,177.5,1 765,-1,460.4,64.9,59.3,171.4,1 765,-1,1493.8,19.2,60.4,145.3,1 765,-1,1575.6,83.6,65.3,177.3,1 765,-1,752,77.9,50.4,155.3,1 765,-1,256.5,1.1,50.9,122.2,1 765,-1,517.8,568.5,86,248.9,1 765,-1,235,136,48.8,163,1 765,-1,1141.6,658.4,99.4,262.5,1 765,-1,1078.3,678.6,81.1,257.8,1 765,-1,403.5,68,57.1,166.4,1 765,-1,361.1,113.4,51.5,167.3,0.999 746,-1,1221.4,29.8,62.2,118.8,1 746,-1,686.4,205.9,79.5,114.3,1 746,-1,257.4,182.4,61.2,202,1 746,-1,1463.9,97.6,54,166.1,1 746,-1,779.6,137.2,58.8,175.3,1 746,-1,551.3,116.8,59.8,175.2,1 746,-1,1714.4,456.8,90.9,208,1 746,-1,1576.3,589.5,99.2,234.1,1 746,-1,455.2,559.7,96,251.4,1 746,-1,1489.4,16.3,59.1,139.9,1 746,-1,299.5,443.8,74,219.7,1 746,-1,332.2,199.4,56.7,175.2,1 746,-1,1597.7,96.4,58.6,182.8,1 746,-1,441.3,55.2,57.8,167.5,1 746,-1,467.5,182.1,53,187.1,1 746,-1,404.2,196.5,68,173.4,1 746,-1,1117.3,717,82.9,260.3,1 746,-1,1191.4,698.8,84.3,262.9,1 746,-1,750.1,84.1,49.5,147.8,1 746,-1,358.9,113.6,49.6,168.1,0.999 746,-1,258.5,1.6,48.1,121.1,0.999 746,-1,291,127.8,46.8,166.4,0.988 746,-1,393.9,48.1,49,175.9,0.945 746,-1,237.5,145.8,49.5,158.3,0.614 501,-1,1221.4,30.1,62.4,119.1,1 501,-1,686.1,206.5,80.7,114.1,1 501,-1,999.1,1,54.5,130,1 501,-1,1495.3,1.3,59.3,133.9,1 501,-1,793.2,141.6,61.1,179.1,1 501,-1,1828.2,183.2,80.8,192.1,1 501,-1,468.3,154.9,64.2,191,1 501,-1,1663.1,604.4,63.8,207.4,1 501,-1,931.6,1,55.9,127.4,1 501,-1,143.9,332.1,64.9,191.7,1 501,-1,1681.3,35.8,57,168.7,1 501,-1,925.3,682.2,119.3,251.5,1 501,-1,1732.9,194.3,71,171.1,1 501,-1,879.4,1.5,51.8,124.7,1 501,-1,317.9,186.9,51.9,166.5,1 501,-1,208.7,743.5,94.7,263,1 501,-1,821.2,608.5,79.3,255.6,1 501,-1,405.2,168.6,59.5,184.4,1 501,-1,1549.4,598.2,79.9,240.8,1 501,-1,1725.9,458,75.4,208.1,1 501,-1,218.3,134.2,64.2,164.5,1 501,-1,299.4,775,74.1,258.5,1 501,-1,1622.6,315.3,62.5,193.3,1 501,-1,716,92.3,60.7,167.3,1 501,-1,1622.6,27.3,57.2,173.9,1 501,-1,449.6,12.3,75.4,181.5,1 501,-1,1741.6,336.1,74.5,211.7,1 501,-1,510.3,94.5,61.8,181.2,1 501,-1,360,111.3,56.5,179.7,0.999 501,-1,286.7,124.7,51.6,166.9,0.999 501,-1,402.2,20.4,46.3,155,0.998 501,-1,1019.8,697.9,79.2,228.8,0.997 501,-1,1024.1,933.9,82.6,147.1,0.075 382,-1,1221.7,31.3,61.4,118.4,1 382,-1,686.2,206.7,79.6,113.1,1 382,-1,1636.1,20.2,69.9,170.7,1 382,-1,1099.6,454.4,69.4,201.9,1 382,-1,358.2,102.7,56,183.9,1 382,-1,450.2,295.8,73.4,207.9,1 382,-1,828.2,1,54.4,113.6,1 382,-1,952.7,33.1,62.5,173.8,1 382,-1,336.1,537.8,86.5,247,1 382,-1,1597.8,632.5,80.4,246.5,1 382,-1,794.2,150.3,61.5,172.3,1 382,-1,108.9,350.7,52.4,189.1,1 382,-1,282.4,126.9,55.1,169.5,1 382,-1,375.7,1,55.5,95.9,1 382,-1,1015.5,49,53.2,165.7,1 382,-1,1718.9,454.8,77.6,215,1 382,-1,451.2,562.9,69.8,236.3,1 382,-1,219.7,137.4,57.1,159.8,1 382,-1,209.4,300.4,53.3,182.6,1 382,-1,1434.9,1,53.8,90.8,1 382,-1,1773.7,103.6,59.1,155.1,1 382,-1,447.6,73.7,70.5,195.9,1 382,-1,506.1,82.9,52.9,167.9,1 382,-1,848.4,499.4,94.7,228.9,1 382,-1,1789.3,442.9,67.5,203.6,1 382,-1,756.1,104.6,50.2,134,1 382,-1,603.2,560.5,92.7,244,0.999 382,-1,908.4,513.1,75.7,204.9,0.999 382,-1,976.6,907.7,86.9,173.3,0.995 710,-1,1221.4,30.4,62.5,118.5,1 710,-1,687,206.2,79.4,114.1,1 710,-1,1481,6.3,57.2,145.5,1 710,-1,1601.3,127.3,69.2,182.3,1 710,-1,558.6,110.6,56.7,178.2,1 710,-1,294.9,394.2,75.4,217.1,1 710,-1,1712.1,456.7,94.8,206.8,1 710,-1,1474.6,121.5,54.4,177.4,1 710,-1,481,151.2,50.3,180.3,1 710,-1,1574.2,588.9,100.6,236.5,1 710,-1,1289.1,776.4,89.8,276,1 710,-1,412.2,164.3,74.9,163.9,1 710,-1,360.5,108.7,49.8,175.8,1 710,-1,750.2,81.4,49.3,154.2,1 710,-1,800.8,139.6,47,172.2,1 710,-1,260.7,195.9,56.4,196.7,1 710,-1,1203.5,797.3,89.8,270.1,1 710,-1,391,544.1,71.1,244.5,1 710,-1,471.5,22.9,44.9,137.4,1 710,-1,411.9,30.1,61.9,160.2,1 710,-1,306.5,206.2,59.2,179.6,1 710,-1,984,2.2,77.3,88.1,1 710,-1,231.1,135,51.3,163.7,1 60,-1,1221.3,30,61.8,117.9,1 60,-1,686.8,206.5,79.4,113.8,1 60,-1,1488,69.4,54.5,154.1,1 60,-1,488.7,185.3,82.4,194.3,1 60,-1,1362.2,566.1,103.9,245,1 60,-1,704.7,1,55.4,157.9,1 60,-1,403.6,345,81.6,235,1 60,-1,1000.7,181.5,72.5,178.9,1 60,-1,356,114.4,53.5,171.2,1 60,-1,1722.4,456.4,76.3,210.6,1 60,-1,103,546.3,84.9,253.2,1 60,-1,212.7,130.1,48.7,162.2,1 60,-1,285.5,126.8,54.3,169.5,1 60,-1,10.4,758.1,67.5,234.6,1 60,-1,151.2,364.4,55.3,187.1,1 60,-1,451.3,108.5,50,151,1 60,-1,833,202.6,88.8,169.6,1 60,-1,794.7,145.5,63.5,180.1,1 60,-1,1362.3,209,43.6,171.9,1 60,-1,1302.8,179,58,168.8,1 60,-1,540.6,62.8,43.9,165.5,1 60,-1,384.9,39.2,53.7,172,1 60,-1,1467.9,211.5,63.1,194.1,1 60,-1,481.9,41.2,60.5,165.9,0.999 60,-1,1872.3,286.8,48.7,199.7,0.962 60,-1,887.7,185,57.3,174.6,0.958 60,-1,437.9,31.6,52,162.3,0.899 60,-1,237.7,108.6,44.8,165.9,0.143 210,-1,1221.7,30.6,61.7,119.9,1 210,-1,687.2,207.1,77.7,113.7,1 210,-1,211.2,126.7,55.9,167.1,1 210,-1,705.4,1.4,54.9,159,1 210,-1,356.1,108.5,54,176.5,1 210,-1,1492.5,70.9,53.5,146.4,1 210,-1,109.6,351.7,49.4,184.7,1 210,-1,287.5,125.7,56.5,172.6,1 210,-1,1721.5,456.3,77,212,1 210,-1,91.2,657.9,106.4,245.3,1 210,-1,1357.6,567.1,104.2,245.7,1 210,-1,399.5,586.6,88,247.7,1 210,-1,795.5,151.1,60.7,171.2,1 210,-1,425,203.5,75.8,214.5,1 210,-1,1204.9,140.1,50.9,166.2,1 210,-1,505,321,76.7,216.3,1 210,-1,1017.2,134.1,46.8,154.8,1 210,-1,522.4,128.6,51.1,169,1 210,-1,227.4,520.8,61.1,210.7,1 210,-1,1140.2,137,58.2,183.1,1 210,-1,897.2,148.1,70.3,193.5,1 210,-1,2.8,612.4,103.9,250.1,1 210,-1,809,315.1,75.1,189.8,1 210,-1,858.6,106.8,53.3,175.4,0.999 210,-1,561.6,263.7,53.8,181.2,0.999 210,-1,757.1,300.8,71.1,202.2,0.999 210,-1,379.1,38.1,55.2,162.6,0.999 210,-1,953.3,914.7,75.4,166.3,0.995 210,-1,474.9,5.7,41.9,76,0.131 340,-1,1220.9,30.8,62.9,119.3,1 340,-1,687.2,206,78.4,113.6,1 340,-1,1730.4,70.2,55.6,160.2,1 340,-1,1447.7,1.4,57.5,125.5,1 340,-1,1596.6,1,55.7,130.7,1 340,-1,417.7,580.1,107.7,249.6,1 340,-1,287.6,130.8,52.9,173.2,1 340,-1,446.8,104.4,73.2,196.1,1 340,-1,1719.7,456.7,80,213.9,1 340,-1,108.1,350.5,52.6,189.9,1 340,-1,1830,499.5,68.7,204.1,1 340,-1,796.1,149.7,60.3,174.4,1 340,-1,519.9,100.2,41,167.8,1 340,-1,363.8,104.7,56.6,180.9,1 340,-1,969,401,67.7,196.1,1 340,-1,975.5,64.9,65.1,177.8,1 340,-1,210.5,141.4,55.7,164.4,1 340,-1,1542.9,614,85,246.1,1 340,-1,928.6,22,62,165.2,1 340,-1,231.3,343.4,57.3,185.9,1 340,-1,1037.4,70.1,52.9,163.6,1 340,-1,902,453.8,67.3,213.6,1 340,-1,843.3,448.9,84.9,222.7,1 340,-1,502.4,496.8,69.4,220.8,1 340,-1,422.1,358.8,87.1,221.7,1 340,-1,716.4,96,56.1,168.1,0.999 340,-1,772.7,97.4,39.6,153.8,0.995 340,-1,945.7,919.7,73.5,161.3,0.98 340,-1,422.8,52.4,54.8,163.9,0.958 340,-1,849,5,46.2,81.4,0.162 340,-1,451.8,882.1,93.2,198.9,0.05 450,-1,1221.6,31,62.7,118.4,1 450,-1,936.2,1,59.1,156.2,1 450,-1,446.6,211,73.3,198,1 450,-1,687,206.4,78.4,112.9,1 450,-1,358.6,107.9,53.8,177.6,1 450,-1,1007,11.7,53.8,157.2,1 450,-1,1375.4,549.7,105,202.7,1 450,-1,1716.8,453.8,83,213.5,1 450,-1,112.4,351.4,53.6,188.3,1 450,-1,254.9,226.7,50.1,180,1 450,-1,862.3,2.4,53.8,136.9,1 450,-1,287.1,126.9,53.5,169.1,1 450,-1,1553.9,610.1,75,243.8,1 450,-1,800.2,151.9,49.3,171,1 450,-1,1836.6,389.8,84.4,208.5,1 450,-1,348,684.2,74.6,242.4,1 450,-1,1667.2,360,67.6,196.6,1 450,-1,883.7,593.1,117.4,247.2,1 450,-1,525.9,76.6,54.5,169.7,1 450,-1,253.1,651.5,93.1,256.3,1 450,-1,1746.7,155.7,57.7,166.9,1 450,-1,426.5,125.2,59.1,161.9,1 450,-1,788.1,575.1,84.6,248.6,1 450,-1,221.7,138.5,57,156.4,1 450,-1,755.5,90.7,48.5,150,0.999 450,-1,732,2.4,48.5,90.8,0.999 450,-1,422.4,1,43.9,137.6,0.999 450,-1,1507.6,1,57.2,104.4,0.999 450,-1,359,4.7,64.1,133.8,0.999 450,-1,1022.7,921.9,84,159.1,0.998 450,-1,966.9,608.3,83,220.7,0.996 450,-1,1709.4,107.5,62.6,177.7,0.988 450,-1,711.6,90.2,54.5,170.9,0.984 450,-1,451.9,35.7,64.6,200.8,0.517 174,-1,1220.9,30.8,62.5,118.2,1 174,-1,108.7,350.3,49.8,188.9,1 174,-1,1489,68.7,55.3,148.5,1 174,-1,356.2,103.7,55.6,179.2,1 174,-1,703.9,1,56.6,158.9,1 174,-1,1357.8,567.7,105.5,245,1 174,-1,212.7,125.4,54.5,167.3,1 174,-1,289.3,128.1,53.7,169.2,1 174,-1,1721,457.2,77.6,211.8,1 174,-1,403.2,664.5,96.6,258.9,1 174,-1,2.1,604,77,239.1,1 174,-1,424.7,41.6,56.9,158.7,1 174,-1,688.2,207.9,76.6,111.1,1 174,-1,421.7,234.5,78.2,221.6,1 174,-1,953.5,123.1,61.5,177.3,1 174,-1,100.5,548.9,86.6,252,1 174,-1,548.7,150.9,65.5,173,1 174,-1,229.8,583,65.7,212.3,1 174,-1,528.5,284.9,60.5,215,1 174,-1,1217.9,162.9,58.5,176.4,1 174,-1,861.3,185.4,76.1,188.8,1 174,-1,794.9,149.3,61.8,173.5,1 174,-1,797.4,278.5,63.7,177.9,1 174,-1,1113.8,151.6,45,157.4,1 174,-1,746.5,265.4,68.7,194.3,1 174,-1,1263.2,160.2,50.2,159.7,0.999 174,-1,537.3,65.6,51.7,167.3,0.998 174,-1,1007.3,911.8,73.1,169.2,0.971 174,-1,515.3,230.1,45.5,151.5,0.448 589,-1,1221.5,30.7,61.6,119.4,1 589,-1,687.4,206.1,78.5,113.5,1 589,-1,1481.4,4.4,60.5,144.4,1 589,-1,801.2,142.9,65.3,175.6,1 589,-1,1642.2,1,55.4,121.9,1 589,-1,1651.5,241.7,78.5,202.3,1 589,-1,224.6,276.5,63.5,187.3,1 589,-1,561.1,112.6,50.3,175.9,1 589,-1,358.1,110.8,53.5,175.2,1 589,-1,372.4,258.5,65,196.7,1 589,-1,1719.7,455.7,81.9,211,1 589,-1,288,126.8,52.2,169.1,1 589,-1,1575.4,589.5,93.5,236.4,1 589,-1,161.2,252.2,60.4,206.8,1 589,-1,469.3,111.4,50.9,162.7,1 589,-1,213.9,134.5,54,164,1 589,-1,754.3,82.1,43.1,152.9,1 589,-1,428.2,65.2,45.5,173.7,1 589,-1,872.8,2.9,50.8,98.3,1 589,-1,1063.3,846.3,122.9,234.7,1 589,-1,1855.8,266.2,65.2,178.4,0.999 589,-1,1156.6,854.7,87.3,226.3,0.59 589,-1,291,891.2,110.5,189.8,0.057 549,-1,1221.4,30.2,62.8,120.4,1 549,-1,687.2,205.9,78.1,114.5,1 549,-1,1491.3,4.3,58.3,141.7,1 549,-1,383.4,219.3,62.9,192.7,1 549,-1,782.9,144.5,67.1,175.6,1 549,-1,1663.3,286.1,91.7,208.4,1 549,-1,1789.4,232.1,69.6,180.5,1 549,-1,988.8,1,51.7,98.7,1 549,-1,1715.6,456.7,84.7,211.2,1 549,-1,875.1,1,53.7,108.6,1 549,-1,530.1,107.5,60.4,178.7,1 549,-1,288.8,121.7,52.3,174.2,1 549,-1,1659.8,1.8,53.6,156.7,1 549,-1,249.1,875.4,83.4,205.6,1 549,-1,767.2,596.9,98.4,254.3,1 549,-1,184.1,304.2,70,193,1 549,-1,1594.3,1,55.6,155.3,1 549,-1,1595.9,583.6,66.8,238.7,1 549,-1,219.5,136.4,57.9,158.3,1 549,-1,453.7,100.5,67.1,185.6,1 549,-1,134.2,270.6,57.2,218.1,1 549,-1,359.3,111,55.6,176.4,1 549,-1,928.5,1,56.4,100,0.999 549,-1,753.4,84.4,48.8,153.4,0.999 549,-1,1070.7,779.6,97.4,241.7,0.997 549,-1,414.5,145.1,43.4,164.4,0.956 549,-1,414.3,39.8,45.6,183,0.776 549,-1,1002.9,773.1,111.5,243.4,0.445 549,-1,1029.7,946.4,80.3,134.6,0.072 424,-1,1221.8,30,61.6,119.4,1 424,-1,686.8,205.3,78.8,114.8,1 424,-1,941.1,9.9,63.8,166.5,1 424,-1,360,108.6,53.7,176.7,1 424,-1,1669.7,73.2,65.1,175.8,1 424,-1,450.5,240.9,77.7,202.6,1 424,-1,110.2,350.8,52.8,187.1,1 424,-1,1719.3,458.5,79.8,206.6,1 424,-1,1258.8,507,86.8,211.3,1 424,-1,838.7,1,52,133.4,1 424,-1,1008.7,24.5,54.5,159.7,1 424,-1,285.2,129,54.8,165.6,1 424,-1,1576,615,98.1,243.5,1 424,-1,738.8,559.6,76.7,242.2,1 424,-1,544.2,71.7,54.7,165,1 424,-1,1764.4,135.8,54,165.9,1 424,-1,798.3,150.4,54.9,172.4,1 424,-1,285.6,613.2,93.5,249,1 424,-1,865,549.3,103.9,239.3,1 424,-1,358.5,1.7,68.5,122.9,1 424,-1,216.8,256.2,52.9,180.6,1 424,-1,388.6,635.8,74.8,239.9,1 424,-1,221.3,139.3,71,161.2,1 424,-1,713.8,91.6,62,172.7,1 424,-1,942.9,569.1,85.4,222.6,1 424,-1,430.4,108.8,53.4,164,1 424,-1,424.7,1.5,44,124.7,1 424,-1,719,2.8,50.8,119.9,0.999 424,-1,454.5,60.3,74.2,193.1,0.999 424,-1,1801.8,69.8,76,179.3,0.996 424,-1,1863.4,425.8,57.6,194.3,0.823 424,-1,987.4,927.8,81.8,153.2,0.183 464,-1,1221.6,31.1,62.7,117.8,1 464,-1,687.1,205.7,79,113.5,1 464,-1,935.2,1,58.5,148.5,1 464,-1,1006.9,1,54.6,158.6,1 464,-1,451.7,190.5,68.4,199,1 464,-1,240.3,677.5,97.2,260.9,1 464,-1,1730.9,167.7,63.4,164.4,1 464,-1,1649.7,351,62.8,194.7,1 464,-1,274.1,207.9,53.1,179.4,1 464,-1,1812.8,369.6,84.5,214,1 464,-1,359.3,110.1,54.9,177.7,1 464,-1,875.7,1,54.1,132.8,1 464,-1,1701,458.5,97.7,208.7,1 464,-1,1506.7,2.2,58,109.9,1 464,-1,804.2,148.4,46.8,175.1,1 464,-1,1541.5,607.2,76.9,246.7,1 464,-1,519.3,78.6,57.9,173.5,1 464,-1,1674.8,53.3,68,175.5,1 464,-1,118.4,348.9,53.2,183.8,1 464,-1,899.7,618.9,108.3,248.8,1 464,-1,217.7,136.2,61.6,160.8,1 464,-1,338.1,707.7,71,256,1 464,-1,809.4,582.4,88.7,251,1 464,-1,753.4,94.7,51.9,145.5,1 464,-1,1469.3,564,82.3,200.2,1 464,-1,445.4,41.4,72.3,184.6,0.999 464,-1,981.6,632.8,88.2,219.1,0.999 464,-1,713.2,90.8,52.8,167.5,0.998 464,-1,285.2,125.9,53.1,171.8,0.998 464,-1,416.9,1.9,42.8,157.5,0.998 464,-1,1026.6,920.9,85.3,160.1,0.991 464,-1,432,144.9,45.7,164.2,0.702 46,-1,686.4,206,79.3,114.4,1 46,-1,1215.5,31.2,69.5,114.1,1 46,-1,395.2,363.1,84.8,234.4,1 46,-1,1487.6,70.7,54.6,147.5,1 46,-1,489.1,172.3,91.1,198.2,1 46,-1,1362.1,566.4,104,246.4,1 46,-1,704.5,1,55.7,156.9,1 46,-1,1721.3,455.7,77.2,211.4,1 46,-1,900.5,199.3,79,178.3,1 46,-1,213.7,126.1,50.1,166.4,1 46,-1,354.1,105.4,55.1,177.8,1 46,-1,167.9,367.5,68.8,190.8,1 46,-1,1009.5,160.9,77.7,188.9,1 46,-1,2.9,790.8,66.5,240.2,1 46,-1,101.6,548.2,86.9,250.8,1 46,-1,407.7,88.9,53.9,158.8,1 46,-1,283.6,125.4,53.8,169.8,1 46,-1,795.2,148.2,61.6,177,1 46,-1,860.6,149.5,61.2,185.3,1 46,-1,1850.4,267.4,70.5,196.8,1 46,-1,1335.1,181.8,52.5,163.1,1 46,-1,1488.9,216.8,62.4,201.8,0.999 46,-1,443.3,41.9,56.8,167.6,0.998 46,-1,484.1,42.7,57.8,157.5,0.997 46,-1,541.8,61.9,42.2,174.5,0.987 46,-1,1384.2,217,45.2,176.6,0.875 818,-1,1221.2,29.1,62.5,119.6,1 818,-1,688.4,205.7,76.7,114.3,1 818,-1,789.9,134,62.8,176.7,1 818,-1,557.4,116.4,61.8,174.2,1 818,-1,1629,1,53.5,150.2,1 818,-1,1723.3,452.9,75.3,214.9,1 818,-1,1575.4,590,100.6,235.8,1 818,-1,274.8,550,79.5,242.6,1 818,-1,282.9,163.1,64.8,198.1,1 818,-1,439.4,245.8,55.6,197.3,1 818,-1,377.3,261.3,69.9,176.9,1 818,-1,1471.1,37.1,63.3,158.4,1 818,-1,1428.1,46.7,51.4,163.1,1 818,-1,474,111,59.9,180.2,1 818,-1,1052.2,557.1,76.2,246,1 818,-1,751.3,72.7,58.7,160.2,1 818,-1,236.1,137,49.6,162.9,1 818,-1,980.1,583.4,71,238,1 818,-1,346.5,178.2,51.6,170.8,1 818,-1,425.5,110.1,59.9,170.8,0.999 1017,-1,1222,30.1,61.4,118.1,1 1017,-1,686.4,206.6,79.7,113.2,1 1017,-1,791.8,140.6,76.2,172.9,1 1017,-1,381.8,297.9,75.3,193.7,1 1017,-1,1233.1,160,60.5,169.3,1 1017,-1,289.3,127.2,53.8,170.9,1 1017,-1,495.6,287.5,66,188.9,1 1017,-1,538.4,121.3,61.6,169.9,1 1017,-1,927.8,267,67.3,203.2,1 1017,-1,299.6,297.4,63.4,202.7,1 1017,-1,1575.4,589.5,102.6,237.8,1 1017,-1,841.7,277.2,69.7,200.6,1 1017,-1,1721.4,455.7,78.3,210.5,1 1017,-1,231.2,141.3,54.5,161.5,1 1017,-1,1832.4,221.5,60.1,188.1,1 1017,-1,1468.1,185.9,65.6,165.5,1 1017,-1,1156.6,606.1,87.4,247.6,1 1017,-1,295.2,493.1,86.1,210.8,1 1017,-1,1697.3,178.4,54.9,168.8,1 1017,-1,751.4,73.2,53.9,162.3,1 1017,-1,380.5,476.8,63.9,227,1 1017,-1,1715.9,684,102.5,234.2,1 1017,-1,441.3,166,74.4,194.6,1 1017,-1,314.7,2.2,37.8,131,1 1017,-1,586.1,552.6,82.7,243,1 1017,-1,396.1,170.9,53.4,163.8,0.997 1017,-1,357.4,907.4,98,173.6,0.993 1017,-1,503.3,112.5,50.5,140.9,0.961 1017,-1,374.3,102.9,58.2,184.3,0.211 425,-1,1221.5,30.6,62.6,119.1,1 425,-1,686.9,205.4,79,114.7,1 425,-1,359.2,107.7,54.5,179.4,1 425,-1,941.3,9.1,63.3,165.9,1 425,-1,1671.4,74.8,63.1,176,1 425,-1,450.2,241.1,78.9,200.9,1 425,-1,1718.9,457.1,80.3,208.5,1 425,-1,109.9,348.6,53.5,191.4,1 425,-1,1008.6,23.7,54.9,160.9,1 425,-1,839.6,1,52.3,133.8,1 425,-1,1762.3,141.5,55.7,160.7,1 425,-1,1575.4,616.2,96.2,244,1 425,-1,543.5,73.1,54.1,162.7,1 425,-1,1265.9,507,82.7,211.1,1 425,-1,285.7,129.5,54.7,165.7,1 425,-1,741.9,558.9,78.7,243.7,1 425,-1,864.3,553.3,104.1,236.7,1 425,-1,797.8,150,55.1,172.2,1 425,-1,285.1,616.5,93.9,249.9,1 425,-1,215.8,255,54.1,178.8,1 425,-1,357.5,1.7,70.1,123.3,1 425,-1,221.2,140.5,73.5,160.9,1 425,-1,387.1,637.3,74.3,242.9,1 425,-1,712.9,90.9,62.9,174.9,1 425,-1,431.5,107.5,53.5,166.7,1 425,-1,943.9,567.6,86,223.1,1 425,-1,425.1,2,43.1,124,0.999 425,-1,718.9,1,50.9,118.9,0.999 425,-1,1799,68.5,76.5,182.5,0.999 425,-1,452.2,62.1,74.3,191.9,0.999 425,-1,1861.4,425.2,59.6,195,0.969 425,-1,988.9,930.4,81.1,150.6,0.722 425,-1,752.9,90.3,39.6,153.6,0.156 425,-1,915.9,11.1,39.3,92.1,0.051 84,-1,1221.3,30.2,61.8,117.8,1 84,-1,1487.5,69.3,54.8,147.7,1 84,-1,703.9,1.2,55.9,156.6,1 84,-1,416.6,321,83.3,230.6,1 84,-1,356.3,103.2,55.7,181.5,1 84,-1,497.4,208.1,74.3,199.9,1 84,-1,1358.7,565.5,105.3,244.8,1 84,-1,1721.6,456,77.3,210.6,1 84,-1,976.8,191.9,73.9,184,1 84,-1,1223.5,161.9,72.3,172.3,1 84,-1,102.1,544.8,85.6,257.3,1 84,-1,294.4,127.6,51.7,168.6,1 84,-1,14.9,721.1,70.2,231.8,1 84,-1,393.2,875.7,100.2,205.3,1 84,-1,754.5,183.7,60.4,179.9,1 84,-1,210.6,131.5,51.5,164,1 84,-1,1422.1,199.1,65.1,191.6,1 84,-1,686.5,205.8,76.3,116.5,1 84,-1,1482.8,197.1,53.6,178.8,1 84,-1,1318.7,202.3,42.3,167.8,1 84,-1,127.4,353.7,43.6,189.3,1 84,-1,539.2,64.4,48.1,171.5,1 84,-1,875.9,197,55.4,167.7,1 84,-1,435.1,19,53.3,163.3,1 84,-1,478.3,123.5,56.7,161.6,0.999 84,-1,256.2,97.5,58.1,175.2,0.999 84,-1,378.2,25,54.7,161,0.999 84,-1,834.6,171.4,56.7,191.9,0.999 84,-1,799.2,160.9,50.5,169.9,0.398 798,-1,1221.6,29.2,61.4,119.1,1 798,-1,686.9,205.6,79.9,113.7,1 798,-1,287.7,518.2,78.3,237.5,1 798,-1,547.8,114.2,63.3,178.1,1 798,-1,783.1,132.1,51.5,180.4,1 798,-1,1723.7,452.7,75.1,214.3,1 798,-1,1574.4,589.8,101.6,234.8,1 798,-1,278.6,167.3,59,196.3,1 798,-1,479.3,91.6,61.2,176.8,1 798,-1,1483,28.7,59.3,148.5,1 798,-1,1609.9,1,53.4,126.1,1 798,-1,749.7,70.1,56.4,160.6,1 798,-1,233,133.1,51.4,167.5,1 798,-1,253.9,1.2,53.2,121.8,1 798,-1,391,241,65.6,176.5,1 798,-1,442,227,55.2,193.4,1 798,-1,1078.3,594.4,93.4,264.7,1 798,-1,345,186.2,47.5,177.4,1 798,-1,1441.4,60.8,48.7,157,1 798,-1,444.6,1.9,42.8,88.1,1 798,-1,1013.8,617.3,80,248.8,1 798,-1,423.3,93,54.8,164.6,1 798,-1,609.6,577.9,77.6,239.4,1 1006,-1,1221.2,30.5,61.9,118.3,1 1006,-1,686.3,206.3,80,112.7,1 1006,-1,395.4,287.4,69.4,190.2,1 1006,-1,1212.7,139.7,63,176.8,1 1006,-1,793.6,140.2,75.1,172.8,1 1006,-1,501.3,275.9,68,191.2,1 1006,-1,290,125.7,52.2,169.1,1 1006,-1,1473.5,182.8,63.2,159.6,1 1006,-1,1575.8,590.6,102.2,235.1,1 1006,-1,231.4,137.9,54.8,166.3,1 1006,-1,1721.9,453.4,79.9,216.6,1 1006,-1,1815.5,204.7,64.6,183.2,1 1006,-1,927.4,277.4,68.8,210.7,1 1006,-1,309.4,285.7,65.2,198.8,1 1006,-1,843,291.5,65.2,205,1 1006,-1,541.6,122.9,59.7,169.1,1 1006,-1,751,73.7,54.3,161.4,1 1006,-1,301.1,477.7,85.3,199.8,1 1006,-1,1685.2,165.1,57.9,175,1 1006,-1,380.1,461,68.5,227.5,1 1006,-1,1166.1,628.3,90.6,261.9,1 1006,-1,346.5,882.7,91.5,198.3,1 1006,-1,1742.8,676.7,92.2,247.2,1 1006,-1,594,551.7,100.8,244.8,1 1006,-1,313.8,2,42.6,128.5,1 1006,-1,507.9,86.9,52.3,157.9,1 1006,-1,417.4,167,62.7,188.9,0.999 1006,-1,437,66.7,61.8,170.8,0.999 1006,-1,376,174.2,48.6,164.1,0.998 1006,-1,385,1,52.9,156.4,0.857 922,-1,1221.6,30.3,61.7,118.2,1 922,-1,686.1,206,80.7,113.8,1 922,-1,1122.3,42,58,163.7,1 922,-1,793.4,141.6,75.2,171.8,1 922,-1,1284.9,832.4,97.7,248.6,1 922,-1,459.1,206.5,68.1,189.6,1 922,-1,1475.7,108.3,64.1,163.9,1 922,-1,1613,73.4,52.2,163.5,1 922,-1,1574.3,588.9,103.9,235.8,1 922,-1,556.6,115.2,58.1,173,1 922,-1,1721.3,453.9,77.4,212.7,1 922,-1,327.1,372.5,80.6,191,1 922,-1,1430.7,2.2,46.8,129.4,1 922,-1,750.3,73,56.4,160.8,1 922,-1,301,162.1,69.5,199.7,1 922,-1,407.2,360.7,60.1,209,1 922,-1,951.2,391.6,75.4,228.9,1 922,-1,865,413.7,65.1,213.1,1 922,-1,308.2,711.2,88.6,258.7,1 922,-1,1747.8,678.1,95.8,244.1,1 922,-1,239.9,133.1,54.1,165.4,1 922,-1,1492.3,1.4,60.7,125.3,1 922,-1,1728,101.2,53.3,171.9,1 922,-1,372.1,207.6,59.5,180.4,1 922,-1,470.6,18.6,52.9,151.8,1 922,-1,254.6,1.7,53,120.6,1 922,-1,426.1,69.2,61.9,172.3,1 922,-1,313.3,1.8,48.6,131.6,1 693,-1,1221.2,30,62.4,118.9,1 693,-1,687.5,206.6,78.4,112.9,1 693,-1,1481.7,6.9,59.2,145.3,1 693,-1,562.7,111.2,53.3,178.4,1 693,-1,1610.1,141.9,69.7,181.9,1 693,-1,1711.9,454.1,97.5,212.6,1 693,-1,803.7,145.4,52.6,172.1,1 693,-1,1483.9,134.7,54.5,179.9,1 693,-1,374.8,531.8,87.5,257.5,1 693,-1,1575.5,590,95.7,233.4,1 693,-1,486.7,134.9,48.5,183,1 693,-1,749.4,79,50.8,157.3,1 693,-1,422.4,148.7,62.6,164.7,1 693,-1,360.9,112,50,174.8,1 693,-1,305.8,376.7,70.6,212,1 693,-1,480.3,30.7,48.1,138.7,1 693,-1,249.7,198.7,61.2,201,1 693,-1,407.3,20.6,56.2,165.7,1 693,-1,1042.5,1.4,64.1,94.3,1 693,-1,300.9,212.1,59,181.2,1 693,-1,1327.1,817.7,98.8,263.3,1 693,-1,224.9,133.1,54.1,165.2,1 693,-1,1250.2,837.7,87.1,243.3,1 693,-1,825.3,924.4,78.8,156.6,0.446 269,-1,1221.7,31.1,61.9,119,1 269,-1,687.4,206.5,78.9,111.7,1 269,-1,379.7,8.3,61.6,162.5,1 269,-1,381.2,480.5,87.7,234.3,1 269,-1,290.2,127.8,55.6,171.6,1 269,-1,1634.8,19.5,61.1,148.5,1 269,-1,1120.1,98.6,56.9,169.6,1 269,-1,454.8,154.8,74.4,212.1,1 269,-1,939.4,91.7,69.1,181.9,1 269,-1,108.7,351,50.8,188.5,1 269,-1,1721,457.2,77.3,211.2,1 269,-1,1476.7,45.6,53.1,148.1,1 269,-1,355.8,105.4,52.4,180,1 269,-1,796.9,150.3,60.5,173.2,1 269,-1,704.8,1,54,156.9,1 269,-1,1045.8,104.2,61.6,184.7,1 269,-1,217.5,125.3,56.2,167.4,1 269,-1,233.9,435,59.5,198.8,1 269,-1,703.5,331.6,67.3,196.1,1 269,-1,1413.3,567.9,97.4,246.4,1 269,-1,252.5,766.9,90.7,273.5,1 269,-1,177,571.3,88.1,250.9,1 269,-1,872,373,77.9,201,1 269,-1,805.2,360.6,87.5,217.8,1 269,-1,566.2,404.1,65.2,209.8,1 269,-1,479.2,393.6,73.4,224.3,1 269,-1,513.5,116.9,54.1,172.2,1 269,-1,868.7,107.8,44.7,155.7,1 269,-1,755.6,102.3,46.6,170.1,0.999 269,-1,940.3,914.3,87,166.7,0.677 721,-1,1221.8,30.3,62.2,118.9,1 721,-1,686.4,206.1,80.5,113.4,1 721,-1,1480.2,7.8,58.9,145.7,1 721,-1,1474.7,112.9,52.7,174.3,1 721,-1,1572.6,589.8,101.9,232.4,1 721,-1,1711,456.3,96.4,207.4,1 721,-1,551.5,113.2,59.6,176.4,1 721,-1,1600.1,121.1,60.1,178.4,1 721,-1,390.2,548.2,99.3,247,1 721,-1,412.5,172.8,68.2,162.5,1 721,-1,479.4,161.1,49.4,180.7,1 721,-1,299.9,405.2,75.1,222.2,1 721,-1,312.3,201.4,66.1,181.6,1 721,-1,260.9,192.5,55.8,198.6,1 721,-1,1253.1,746.5,95.3,274.7,1 721,-1,750.3,82.2,48.8,153.2,1 721,-1,1177.3,775.9,84.2,265,1 721,-1,787.8,137.8,49.8,178.7,1 721,-1,416.8,37.4,62.3,168.6,1 721,-1,360.4,109.3,47.4,170.9,1 721,-1,464.9,15.7,48.3,141.5,1 721,-1,236.5,132.7,50,170.6,0.998 144,-1,1221.2,30.8,62.6,117.9,1 144,-1,1037.6,136.6,81.1,171.4,1 144,-1,356.7,102.9,55.8,181.3,1 144,-1,1487.6,68.6,56.1,149.9,1 144,-1,108.6,351.2,48.6,186.6,1 144,-1,395.3,732.4,93,261,1 144,-1,420.3,261.9,77.7,221.4,1 144,-1,704.5,1,56,157.2,1 144,-1,288.1,125.7,54.6,169.4,1 144,-1,1721.8,457.1,77.4,210.3,1 144,-1,1359.1,566.6,105.2,244.7,1 144,-1,538.1,64.5,51.1,165.8,1 144,-1,1302.1,175.2,55.9,181.3,1 144,-1,686.4,205.6,80.9,117,1 144,-1,218.9,128.1,51.8,162.5,1 144,-1,869.5,205.6,74.5,192.7,1 144,-1,1180.3,167.1,51,165,1 144,-1,810.9,247.5,55.8,177.1,1 144,-1,531.3,263.6,58.8,200.3,1 144,-1,101,551.5,83.5,243,1 144,-1,383.5,1.8,46.4,132.6,1 144,-1,469.2,36.1,51.4,161.4,1 144,-1,481.9,188.8,59.8,172.8,1 144,-1,583,252.1,57.7,194.1,1 144,-1,159.6,630.4,75.2,216.2,1 144,-1,766.3,234.3,63.2,190,1 144,-1,1058.4,921.5,78,159.5,0.976 1027,-1,1221.3,29.8,62.3,120.1,1 1027,-1,686.8,206.8,79.7,113.4,1 1027,-1,1249.5,173.1,64.9,171,1 1027,-1,373.5,311.3,71.8,199.6,1 1027,-1,1699,187.6,63.1,184.2,1 1027,-1,792.6,140.9,74,173,1 1027,-1,491.3,301.1,68.2,188.8,1 1027,-1,289,127.6,52.5,167.5,1 1027,-1,932.2,255.4,68.3,208,1 1027,-1,1721.5,457.2,78.1,206.3,1 1027,-1,844.2,263.7,64.8,193.1,1 1027,-1,1143,586.7,87.2,255.9,1 1027,-1,233.5,139.6,57.1,163.4,1 1027,-1,750.3,74.4,54.9,161.8,1 1027,-1,293,307.6,69.4,210,1 1027,-1,1575.2,588.8,103.2,240.5,1 1027,-1,1699.1,684,84.8,237.8,1 1027,-1,538.6,121.4,63.2,176.1,1 1027,-1,1840.8,232.6,63.2,191.9,1 1027,-1,376.9,495,66,229.1,1 1027,-1,289.1,507.6,87.8,201.5,1 1027,-1,422.4,171.2,59,167.7,1 1027,-1,578.5,547.2,76,242.6,1 1027,-1,1470.7,210,67.2,157.2,1 1027,-1,374.3,101,57.6,177.9,1 1027,-1,472.6,163.3,69.8,197.7,1 1027,-1,311.5,2,35.7,129.5,0.999 1027,-1,365.5,924.5,86.3,156.5,0.47 381,-1,1222,31.3,61.3,118.7,1 381,-1,686,206.7,80.1,113.4,1 381,-1,1098.4,453.1,67.2,201.5,1 381,-1,1635.5,19.2,67.6,168.7,1 381,-1,358.4,102,55.6,184.4,1 381,-1,449.5,297.5,74.6,208.9,1 381,-1,827.5,1,54.5,112.7,1 381,-1,1597.3,634.9,81.6,243.1,1 381,-1,794.5,149.8,61,173.3,1 381,-1,952.6,34.8,62,175.2,1 381,-1,338.8,534.9,85.1,249.1,1 381,-1,1718.5,455.4,77.8,214.6,1 381,-1,109.4,351,52.3,189.3,1 381,-1,282.2,127.6,55.9,169.1,1 381,-1,219,138.6,58.4,158.9,1 381,-1,377.8,2.6,52.9,93.9,1 381,-1,208.8,300.9,54.2,185.4,1 381,-1,452.1,559.5,70,238.8,1 381,-1,1016.3,49.1,53.7,166.2,1 381,-1,1435.3,1,53.3,90.2,1 381,-1,847.7,496.6,95.9,233.3,1 381,-1,446.7,73.5,71.9,197.7,1 381,-1,1773.3,104.5,58.1,155.6,1 381,-1,504.4,83.4,54.3,168.9,1 381,-1,1790.5,445.7,68,202.5,1 381,-1,599.2,561.5,90.9,248.7,1 381,-1,756,104,50.5,134.2,0.999 381,-1,906.7,511.5,73.7,206.4,0.999 381,-1,975.6,910.5,87.2,170.5,0.997 407,-1,1221.3,29.5,62.4,119.2,1 407,-1,686.1,205.1,79.9,116.1,1 407,-1,1649.1,51.4,68,171.9,1 407,-1,458.2,266.3,75.9,206.1,1 407,-1,1770.1,120.4,65.2,173.8,1 407,-1,358.1,106.2,54.3,179.6,1 407,-1,110.4,346.1,52.6,193.6,1 407,-1,416,603.7,73.2,235.8,1 407,-1,1720.1,455.9,80.7,210.4,1 407,-1,795.9,151.5,58.3,170.5,1 407,-1,551.1,68.4,59.3,171.7,1 407,-1,946,18.5,62.2,170.9,1 407,-1,285.2,129,55.1,165.7,1 407,-1,362.3,1,64.1,116.2,1 407,-1,220.4,142,64.6,156.4,1 407,-1,1587.5,614.9,99.8,251.8,1 407,-1,1005.4,32.3,55.5,160.6,1 407,-1,303.2,578.8,82.9,257.1,1 407,-1,830.3,1,56.2,129.3,1 407,-1,1198.1,488.9,60.2,201.6,1 407,-1,204.7,269.6,55.1,182,1 407,-1,466.4,69.3,64.7,188.8,1 407,-1,425.1,90.9,51,173.5,1 407,-1,855.1,525.8,102,236.7,1 407,-1,930,544.4,82.7,222.7,1 407,-1,718.2,1,51.4,133.7,1 407,-1,709.9,90.6,63.2,171.7,0.999 407,-1,689.3,559.3,89.4,238.9,0.999 407,-1,427.4,1,43,110.9,0.99 407,-1,978.2,919.3,84.4,161.7,0.955 407,-1,1875.6,60.7,45.4,192.1,0.854 31,-1,1206.6,29.1,72.5,122,1 31,-1,686.1,206.5,80.7,112.5,1 31,-1,385.9,375.2,89.4,238,1 31,-1,703.8,1.8,56.1,156.4,1 31,-1,1487,69.8,55.3,150,1 31,-1,1362.2,566.9,104.1,243.9,1 31,-1,1724.1,455.6,75.1,212.1,1 31,-1,491,164.4,86.7,191.2,1 31,-1,214.9,127.9,47.8,162.6,1 31,-1,973.7,199.5,77.5,178.4,1 31,-1,794.7,149.3,62.9,174.5,1 31,-1,190.5,370,67.1,197.3,1 31,-1,102.1,546.8,85.3,253.1,1 31,-1,355.8,106.5,53.4,179.8,1 31,-1,283.5,123.2,54.4,172,1 31,-1,1832.7,245.9,65.2,191.5,1 31,-1,1365.9,187.7,48.2,171.8,1 31,-1,870.7,139.9,57.3,185.9,1 31,-1,410.3,81.5,55.4,160.1,1 31,-1,1,819.9,59.3,233.3,1 31,-1,914.2,153.2,51.1,162.8,1 31,-1,455.7,58.9,45,161.6,1 31,-1,1593,234.5,55.5,178.7,0.999 31,-1,1010.7,155.2,77.3,187.6,0.97 310,-1,1221,31.3,61.9,118.1,1 310,-1,1456.7,10.2,55.4,146.5,1 310,-1,686.6,207.4,79.2,112.2,1 310,-1,308.5,578.3,82.8,255.2,1 310,-1,415.7,36.3,59.5,167.4,1 310,-1,1719.7,456.6,79.5,213.4,1 310,-1,1695.8,47.6,57.6,159.2,1 310,-1,108.2,352.6,52.3,187.7,1 310,-1,357.8,110.5,55.4,177.1,1 310,-1,795.9,148.2,58.5,174.3,1 310,-1,235.9,382.6,58.4,188.4,1 310,-1,933.9,53,62.8,172.7,1 310,-1,452.9,123.1,74.7,203.1,1 310,-1,1489.9,597.8,90,243.4,1 310,-1,217.8,133.3,55.5,163.7,1 310,-1,279.3,131.5,54.5,171,1 310,-1,530.2,459,67,207.5,1 310,-1,1002.7,77.9,62.2,184.3,1 310,-1,705.7,1.5,52.4,156.4,1 310,-1,887.5,426.2,71.6,196.7,1 310,-1,1058.5,80.2,55.9,167.8,1 310,-1,326.6,872.7,96.2,208.3,1 310,-1,733.8,98.2,46.7,173.8,1 310,-1,826.4,418,82.6,215.8,1 310,-1,445.6,436.6,69.5,234.6,0.999 310,-1,390.9,404.5,84.7,235.8,0.999 310,-1,511.1,102.3,43.4,171.7,0.996 310,-1,928.8,909.2,78.1,171.8,0.994 310,-1,367.8,790.9,104.3,259.5,0.978 948,-1,686.5,206.2,80.2,113.5,1 948,-1,1221.4,30.1,62.4,118.7,1 948,-1,1474,133.2,63.6,168.9,1 948,-1,794.5,140.6,72.7,172.7,1 948,-1,1485,1,56.1,113.2,1 948,-1,749.4,68.5,57.4,165.5,1 948,-1,323.1,762.5,95.6,273.7,1 948,-1,1575.5,588.5,103.1,235.7,1 948,-1,1139.7,67.1,60.8,170.7,1 948,-1,1720.1,453.9,77.7,214,1 948,-1,1246.8,766.1,91.5,276.4,1 948,-1,1634,97.8,55.6,170.9,1 948,-1,934.7,359.6,69.2,217.2,1 948,-1,1415.9,1.3,48,118.1,1 948,-1,347.2,230.2,61.2,181.4,1 948,-1,554.2,116.9,53.4,170.9,1 948,-1,394.2,383.4,66,216.4,1 948,-1,431.2,229.4,67.8,192.4,1 948,-1,325.3,406.1,78.7,197.2,1 948,-1,857.5,373.2,64.3,208.6,1 948,-1,235,132.9,58.8,173.7,1 948,-1,435.1,74.9,58.3,178.9,1 948,-1,251.2,1.4,52.3,120,1 948,-1,1744.7,673.7,92.3,252.1,1 948,-1,1753.8,133.3,60.1,179.4,1 948,-1,478.5,38.3,53.9,149.8,1 948,-1,480.5,215.4,61.7,186.2,1 948,-1,311.6,172,61.7,181,0.999 948,-1,291.4,132.4,50.9,167.6,0.231 446,-1,1221.5,30.4,62.1,118.6,1 446,-1,936.8,1,59.2,158.6,1 446,-1,449,214.9,72.4,197,1 446,-1,1006.2,12.6,55.3,159.2,1 446,-1,687.6,206.1,77.8,113.1,1 446,-1,359.5,107.8,53,178.2,1 446,-1,1368.9,539.9,85.8,203.6,1 446,-1,1719.6,453.8,80,214.2,1 446,-1,111.4,351.1,53.7,188.3,1 446,-1,859.6,3.1,51.4,139.5,1 446,-1,287.5,124.7,53.4,173.7,1 446,-1,1746.6,153.2,68.4,170.3,1 446,-1,1559.9,613.6,73.9,241.9,1 446,-1,799.6,151.7,50.7,171.6,1 446,-1,248.2,226.7,50.8,185.8,1 446,-1,258.9,643.8,95.3,260.4,1 446,-1,882.7,586.5,118.6,245.7,1 446,-1,1673.6,363.5,68.7,193.9,1 446,-1,528.6,72.4,53.4,168.7,1 446,-1,1843.6,393.9,77.4,207.7,1 446,-1,358.5,676,72.7,246.2,1 446,-1,221.7,138.2,55.6,154.7,1 446,-1,783.9,572.6,77.4,249.5,1 446,-1,422.8,1,43.9,136.6,1 446,-1,427.4,120.4,62.2,171.2,1 446,-1,730.1,1.3,48.5,94.5,1 446,-1,1702.5,105.8,70.1,173.4,0.999 446,-1,360.3,3.5,63.2,133.3,0.999 446,-1,753.9,86.9,49,152.2,0.998 446,-1,711,89.3,58.6,173.7,0.997 446,-1,963.6,603.1,83.2,219.9,0.997 446,-1,1015.9,919.3,87.5,161.7,0.977 446,-1,1507.1,2.7,60.7,94.8,0.177 446,-1,456.8,40.1,59.3,198.5,0.126 635,-1,1221.1,30.4,63.2,118.1,1 635,-1,687.3,205.8,78.8,113.6,1 635,-1,1481.4,6.1,60.4,143,1 635,-1,801.1,145.1,65.9,171.2,1 635,-1,1709.7,455.9,99.6,210.4,1 635,-1,341.2,306.2,68.3,206.5,1 635,-1,546.5,114.3,63,172.2,1 635,-1,358.9,111.2,51.1,172.8,1 635,-1,1574.2,589.4,96.8,234.6,1 635,-1,499,539.2,104.9,242.6,1 635,-1,199.8,228.6,65.6,203.5,1 635,-1,1625.3,197.9,70.3,186.7,1 635,-1,257.9,245.1,60.5,185.7,1 635,-1,417.3,109.1,53.3,157.4,1 635,-1,288.1,124.5,51.4,169.3,1 635,-1,752.2,83.7,44.2,151.5,1 635,-1,419.8,1,58.5,134.9,1 635,-1,460,92.5,49.5,170.2,0.999 635,-1,351.9,1,56.9,127,0.999 635,-1,496.7,68.1,45.3,152.6,0.999 635,-1,234.7,136,48.2,159.7,0.994 635,-1,1122.1,935.6,95.2,145.4,0.38 635,-1,1580.7,4,48.9,79.3,0.08 325,-1,1221.5,31.4,61.7,117.9,1 325,-1,1453.5,1,55.8,138.4,1 325,-1,686.2,207.4,80.8,112,1 325,-1,355.8,581.5,99.2,248.4,1 325,-1,1715.5,55.7,61.3,163.1,1 325,-1,109.1,350.4,51.8,189.6,1 325,-1,452.5,116.7,73.6,198.9,1 325,-1,1718.7,457.3,80.4,212.4,1 325,-1,795.3,149.3,59.6,174.1,1 325,-1,362.3,107.5,57.7,181.1,1 325,-1,989.4,69.8,62.5,179.5,1 325,-1,420.5,45.4,56.1,170.1,1 325,-1,898.1,442.8,69,197,1 325,-1,928.9,38.6,62.2,170.9,1 325,-1,1517.7,602.7,85.9,247.2,1 325,-1,237.7,362.7,57.6,185.1,1 325,-1,281.4,133.4,54.3,171.2,1 325,-1,1576.6,1,67.3,116.5,1 325,-1,213.7,135.3,55.3,164.1,1 325,-1,833.1,438.5,78.6,208.2,1 325,-1,516.4,475.5,67.6,221.1,1 325,-1,1046.7,77.2,51.5,160.5,1 325,-1,726.5,98.7,50.5,171,1 325,-1,427.1,461.9,74.7,237.6,1 325,-1,514.3,99.6,43.8,171.6,0.999 325,-1,1840,515.9,62.4,216.4,0.993 325,-1,929.8,910.3,77.3,170.7,0.985 325,-1,369.2,911.3,93.4,169.7,0.882 325,-1,710.1,6.7,48.1,152.8,0.61 193,-1,1222.4,30.4,60.7,118.5,1 193,-1,211.7,127.2,55.7,167.3,1 193,-1,108.8,346.3,49.8,192.8,1 193,-1,686.5,207.6,79.2,111.3,1 193,-1,412.9,630,87.9,245.8,1 193,-1,1489.3,68.4,55.1,149.4,1 193,-1,705.1,1,55.3,159,1 193,-1,1358.1,566.6,105.7,246.3,1 193,-1,1720.3,457.1,78.8,211.5,1 193,-1,357.3,105,53.7,178.1,1 193,-1,43.1,627.5,112.7,250.7,1 193,-1,288.6,126.9,55.2,171,1 193,-1,1166.7,148.7,68.2,184.2,1 193,-1,398,41.2,62.4,164.9,1 193,-1,1063.5,144.3,51.4,158.7,1 193,-1,520.9,303.7,69.3,212.1,1 193,-1,420.4,219.1,76.8,214.8,1 193,-1,875.8,165.3,80,194,1 193,-1,530.7,137.4,60.7,158.4,1 193,-1,795.1,149.9,62.3,174.6,1 193,-1,801,296.6,71.4,189.6,1 193,-1,232.4,547,61.2,210.4,1 193,-1,1230,145.2,48.1,175.2,1 193,-1,750.7,281.5,70,203.5,1 193,-1,459.9,2,52.4,95.1,1 193,-1,976.1,916.6,72.5,164.4,0.97 20,-1,687.2,206.3,79,113.6,1 20,-1,496.1,150.3,96.7,191.5,1 20,-1,1486.8,70.1,55.3,147.6,1 20,-1,1361.5,567.6,104.5,245,1 20,-1,703.9,2.4,56.5,156.6,1 20,-1,1725,457.6,76.7,209.9,1 20,-1,1205.2,33.7,71.9,117.3,1 20,-1,380,386.9,85.9,240.5,1 20,-1,794.7,150.2,62.7,173.5,1 20,-1,203.2,381.5,68,198.9,1 20,-1,355.3,104.5,55.2,180.1,1 20,-1,1020.1,200.3,67.8,183.3,1 20,-1,102.2,548.3,84.8,250.4,1 20,-1,216.5,128.2,48.2,165,1 20,-1,1612.9,242.6,58.5,187.7,1 20,-1,284.7,124.9,54.1,170.5,1 20,-1,417.1,82.1,54.8,163.7,1 20,-1,1815.2,227.4,64.2,187.9,1 20,-1,877,139.1,60.3,180.4,1 20,-1,457.7,64,49.8,168.6,1 20,-1,1385.3,189.9,52.9,176.9,0.999 20,-1,1.1,842.4,50.1,238.6,0.999 20,-1,1427.9,234.8,46.4,181.4,0.771 20,-1,911.2,143.7,50.7,163.2,0.757 1030,-1,1221.4,29.7,61.8,119.7,1 1030,-1,687.2,206.3,79.1,114.6,1 1030,-1,793.5,141.6,72,171.3,1 1030,-1,489.1,302.5,71.9,190.6,1 1030,-1,1721.3,455.9,79.1,208.2,1 1030,-1,1699.9,195.4,63.3,183.8,1 1030,-1,1256.7,177.8,64,166.4,1 1030,-1,371.4,316,71,201.2,1 1030,-1,289.1,127.4,52.7,168,1 1030,-1,234.4,139.4,57.3,165.9,1 1030,-1,844.8,258.5,66,197.7,1 1030,-1,935.5,252.5,65.9,202.2,1 1030,-1,1574.5,589.5,104.1,241,1 1030,-1,1139.2,579.8,86.8,253.4,1 1030,-1,751.2,75.2,54.4,161.1,1 1030,-1,1846.6,241.3,60.7,189.1,1 1030,-1,294,312.2,66.1,207.9,1 1030,-1,538.5,121.3,63.4,172,1 1030,-1,375.4,501.3,67,222.9,1 1030,-1,579.3,549.8,73.5,238.4,1 1030,-1,371.8,104,58.9,178.2,1 1030,-1,1694.9,684.8,78.2,233.1,1 1030,-1,289.4,510.4,87.8,210.2,1 1030,-1,430.9,169.7,59.1,172.8,1 1030,-1,1469.3,205.8,68.8,161,1 1030,-1,309.2,2.1,37.3,130.4,1 1030,-1,477.8,159.8,69.6,199.4,1 1030,-1,372.1,931.7,85,149.3,0.077 770,-1,1221.1,29.7,62.8,119.3,1 770,-1,687.3,205.3,78.2,114.4,1 770,-1,547,117.7,61.6,174.1,1 770,-1,782.3,134.6,64.4,174.2,1 770,-1,1721.8,454.7,76.5,210.7,1 770,-1,1575.2,589.7,101.2,236,1 770,-1,294.8,474,78.6,226.9,1 770,-1,1450,78.2,55.2,169.7,1 770,-1,273.9,175.5,58,192.8,1 770,-1,393.4,209.7,71,172.5,1 770,-1,1492.3,17.2,59.5,147.4,1 770,-1,328.3,190.9,58.5,175.7,1 770,-1,750.8,75.6,51.6,157.7,1 770,-1,255.9,1.1,51.6,122,1 770,-1,465.5,69.7,62,176.8,1 770,-1,452.9,202.9,54.9,187.3,1 770,-1,1068.3,670.8,79.8,255.9,1 770,-1,1573.5,78,63,175,1 770,-1,233,138.1,50.4,160.8,1 770,-1,527,573.2,94.5,246.3,1 770,-1,1136.6,640.4,88.1,265.6,1 770,-1,407.9,74.2,57,168.2,0.999 770,-1,358.2,107.3,54.1,177.7,0.999 415,-1,1221.8,30.2,61.6,119.7,1 415,-1,686.3,206.1,79.6,113.6,1 415,-1,358.9,109.5,54.3,175.7,1 415,-1,454.8,246.8,78.5,206.2,1 415,-1,551.6,71.8,55.6,164.6,1 415,-1,1658,63,74.7,175.3,1 415,-1,1720.2,457.5,77.9,207.4,1 415,-1,945.7,16.4,60.5,169.4,1 415,-1,110.2,348.2,52.8,191,1 415,-1,1770.2,128.3,56,163.1,1 415,-1,292.6,595.7,85.9,247.4,1 415,-1,1005.9,30.1,54.9,161.7,1 415,-1,359.3,1,66.7,114.7,1 415,-1,1229.6,496.5,69.6,208.3,1 415,-1,286.5,130.6,54.4,163.8,1 415,-1,832.7,1.1,53.8,131.1,1 415,-1,796.2,149.3,57.9,173.2,1 415,-1,1582.8,619.6,100.3,239.6,1 415,-1,399.8,619.9,76.9,238.3,1 415,-1,219.4,141.4,71.4,157.9,1 415,-1,859.6,539.5,107.4,244.1,1 415,-1,208.3,262.6,55.2,182.7,1 415,-1,425.6,97,54.5,170.4,1 415,-1,712.1,556.8,87.7,246.3,1 415,-1,1840.3,76.5,78.6,174.7,1 415,-1,717.7,1,52.1,129.8,1 415,-1,460.3,67.9,69,191.1,1 415,-1,935.9,556.1,80.8,213.2,0.999 415,-1,712.1,86.4,64.1,180.3,0.999 415,-1,424.5,1,45.1,117.6,0.999 415,-1,983,926.3,78.9,154.7,0.752 192,-1,1221.9,30.1,61.2,119.8,1 192,-1,211.8,126.5,55.7,167.5,1 192,-1,108.8,346.3,50,193,1 192,-1,1489.4,68.6,55.2,149.1,1 192,-1,686.4,206.9,79.1,112.4,1 192,-1,1357.7,566.8,106.5,246.8,1 192,-1,705.1,1,55.5,160,1 192,-1,357.1,105.9,54,178.7,1 192,-1,1719.8,457.8,78.7,210.7,1 192,-1,39.1,624.9,118,252.7,1 192,-1,413.2,627.8,90.6,253.8,1 192,-1,288.3,126.7,55.8,170.4,1 192,-1,398.6,40.3,63.9,165.6,1 192,-1,873.6,167.1,80.8,192.8,1 192,-1,1167.9,147.5,69.5,185.5,1 192,-1,421.9,223.6,75.4,215.5,1 192,-1,522.2,304.4,68.2,211.7,1 192,-1,533,138.4,59.1,158.2,1 192,-1,1065.5,143.7,53.1,160.4,1 192,-1,795.3,149.9,62.3,174.1,1 192,-1,232.7,550.9,61.9,208.2,1 192,-1,801.5,296.8,70.4,187.2,1 192,-1,748.4,280.2,70,202.4,1 192,-1,1231.8,146.5,47.5,168.5,1 192,-1,460.1,1.9,52,92.4,0.999 192,-1,976.5,916.7,73.8,164.3,0.98 277,-1,1221.4,31.3,62.2,118.4,1 277,-1,687,207,78.4,112.1,1 277,-1,392.9,15.6,58,160.5,1 277,-1,1470.9,34.4,55.2,149.9,1 277,-1,1645.4,22.6,57.6,155.1,1 277,-1,288.7,128.6,55.5,172.4,1 277,-1,390.4,465.1,83.9,227.8,1 277,-1,1032.7,100.7,63.9,188.1,1 277,-1,355.5,107.7,52.9,178.3,1 277,-1,455.4,146.7,73.9,205.6,1 277,-1,1720.2,457.7,78.7,210.9,1 277,-1,108.6,351,50.3,187.9,1 277,-1,941.8,86,65.8,173.6,1 277,-1,221.2,131.2,53.5,161.2,1 277,-1,704.1,1.4,55.1,157.8,1 277,-1,795.7,149.8,60.6,172.3,1 277,-1,1109.3,97.7,52.5,162.9,1 277,-1,268.4,795.5,89.9,260.5,1 277,-1,233,426.7,59.7,197.8,1 277,-1,736.5,333.2,66.4,188.6,1 277,-1,197,583.4,89,241.6,1 277,-1,810.7,371,85.5,212.1,1 277,-1,1427.3,576.9,96.1,245.8,1 277,-1,559.5,408.9,66.2,215.4,1 277,-1,880.9,383.6,74.9,194,1 277,-1,752,104.3,46.4,169.8,1 277,-1,855.2,111.9,43.8,155.7,1 277,-1,514.7,112.2,51,177.8,1 277,-1,471.2,401.2,68.6,222,1 277,-1,943.3,919.7,88,161.3,0.873 111,-1,1221.2,30.1,62.6,119.1,1 111,-1,356.7,106.1,55.5,176.7,1 111,-1,704.1,1,55.5,158.6,1 111,-1,209.8,127.9,51.7,165.6,1 111,-1,108.6,352.5,48.7,184.2,1 111,-1,1487.4,68.3,56.1,149.3,1 111,-1,389.4,805.3,101,275.7,1 111,-1,1722.3,456.7,76.7,210.8,1 111,-1,290.3,125.8,56.6,171,1 111,-1,935.8,204.9,71.2,190.6,1 111,-1,1152.2,148.5,54.3,176.3,1 111,-1,1357.7,567,105.9,244.4,1 111,-1,425.5,291.2,79.9,226.7,1 111,-1,1253.5,185.3,47.6,170.6,1 111,-1,512.3,233.1,71.6,200.2,1 111,-1,1372,183,67.3,190.6,1 111,-1,47,677.4,86.4,221.8,1 111,-1,538.4,65.6,49.6,166.2,1 111,-1,478.2,155.9,58.3,157,1 111,-1,103,544.8,83.9,256.5,1 111,-1,797.2,195.9,64.4,195.3,1 111,-1,441.4,1,52,155,1 111,-1,844.4,222,53.8,169.1,1 111,-1,376.2,5.1,48.3,161.1,0.999 111,-1,482.2,39.1,60.1,161.5,0.999 111,-1,698.1,187.6,56.4,151.4,0.999 111,-1,1134.3,930.2,81.2,150.8,0.188 212,-1,1221.6,31,61.4,118.3,1 212,-1,686.3,207,79.7,113,1 212,-1,356.6,106.8,52.2,179.1,1 212,-1,211.7,127,55.8,165.9,1 212,-1,705.3,1,55.8,159.6,1 212,-1,288.5,127.8,55.4,171.2,1 212,-1,108.5,350.2,50.3,186.1,1 212,-1,1492.6,70.3,53.2,147.6,1 212,-1,1720.5,456.7,78.4,211.8,1 212,-1,1356.6,567.3,105.4,245.2,1 212,-1,1203.7,143.4,48.1,160.7,1 212,-1,401.5,585.6,86.4,243.9,1 212,-1,97.7,662.2,104.9,246.9,1 212,-1,522.1,125.8,50.1,173,1 212,-1,426.6,202.6,74.8,214.7,1 212,-1,1135.3,137.4,59.9,185.9,1 212,-1,795.8,151.9,59.7,170.4,1 212,-1,504.4,323.5,75.4,216.2,1 212,-1,900.5,145.9,69.3,189,1 212,-1,1012.2,135.5,48.3,155.1,1 212,-1,225.5,518.9,60.2,207.9,1 212,-1,9,615,111.9,240.4,1 212,-1,809.3,317.6,75.2,192.5,1 212,-1,562.9,265.5,57.3,181,1 212,-1,852,109.7,53.7,170.8,1 212,-1,757.1,301.2,72.5,204.5,0.999 212,-1,949.9,912.6,75.6,168.4,0.991 212,-1,373.8,36.6,56.2,173.2,0.925 373,-1,1222.1,31.2,61.3,118.6,1 373,-1,686.4,206.6,79.8,113.6,1 373,-1,1631,14.2,59.8,163.1,1 373,-1,1072.6,444.6,69.4,196.9,1 373,-1,444.5,310,72.1,216.6,1 373,-1,285.5,130.6,54.7,170.2,1 373,-1,359.8,108.7,54.4,178.4,1 373,-1,109.3,350.6,52.7,189.8,1 373,-1,350.9,526.4,90.1,246.5,1 373,-1,1433.1,2.3,53.2,98.1,1 373,-1,443.1,78.4,70.5,195.3,1 373,-1,508.9,89.6,50,167.1,1 373,-1,954.3,39.9,60.9,178.5,1 373,-1,553.1,568.3,102.5,249.3,1 373,-1,1719.6,455.6,78.5,214.2,1 373,-1,796.1,150.3,59.3,171.8,1 373,-1,214.2,141.4,58,158.1,1 373,-1,1018.6,53.2,55.3,166.3,1 373,-1,459.5,543.1,68.4,234.4,1 373,-1,1763.4,98.5,57.3,161.1,1 373,-1,1585.7,630.2,82.4,244.1,1 373,-1,1804.9,451.2,64.8,216.5,1 373,-1,831,1.4,55.9,111.1,1 373,-1,382.4,1.7,45.7,90.7,1 373,-1,212.5,308.6,53.7,178.6,1 373,-1,1816,68.1,62.9,166.2,1 373,-1,756.7,97,46.7,142.7,1 373,-1,912.9,498.8,73.4,208.9,1 373,-1,849.4,484.1,85.6,232.4,1 373,-1,967.4,917.3,85.7,163.7,0.997 586,-1,1221.8,31.1,61.7,118.1,1 586,-1,687.1,205.9,79.4,113.6,1 586,-1,1481.3,4.2,60.2,144.4,1 586,-1,1643.7,1,55.8,124,1 586,-1,375.3,257.4,65.4,197.6,1 586,-1,801.7,148,62.8,170.8,1 586,-1,1649.8,245.6,80.3,201.4,1 586,-1,873.3,2.6,50.1,100.3,1 586,-1,560.2,113.7,50.4,175.3,1 586,-1,358.3,110,53.6,175.9,1 586,-1,287.6,125.9,52.2,168.4,1 586,-1,220.2,277.1,64.5,189,1 586,-1,1719.6,453.4,80.7,212.4,1 586,-1,1575.7,588.8,92.6,234.9,1 586,-1,214.7,133.1,53.6,164.2,1 586,-1,754.1,80.2,42.8,154.6,1 586,-1,465.7,113.8,49.7,162.5,1 586,-1,161,254.5,59.3,206.5,1 586,-1,1852.7,268.1,68.3,177.5,1 586,-1,1055.8,840.8,125.1,240.2,1 586,-1,427.4,62.2,45.5,172.9,1 586,-1,1142,850.1,93,230.9,0.475 520,-1,1221.6,30.3,60.9,119.3,1 520,-1,1489.5,1.1,59.1,140.9,1 520,-1,687.2,206.5,79,114.9,1 520,-1,994.1,1,55.1,121.2,1 520,-1,162.4,324.7,67.4,192.4,1 520,-1,1672.4,23.2,54.3,159.5,1 520,-1,391.7,185,60.4,188.8,1 520,-1,1720,461.4,80.6,203.2,1 520,-1,461.2,130.2,66.8,182.4,1 520,-1,288.9,123.4,53.7,173.9,1 520,-1,884,1,53.4,119.9,1 520,-1,788.8,146.2,55.2,175,1 520,-1,1743.6,631.4,69.7,219.7,1 520,-1,1854.8,216.6,66.2,187.7,1 520,-1,826.8,606.9,71.6,258.8,1 520,-1,1569.7,597,63.5,243.5,1 520,-1,1611,11.1,56.1,174.5,1 520,-1,929.6,1.8,57.7,116.9,1 520,-1,737.1,90.4,66.2,171.1,1 520,-1,1599.6,297.4,64.2,198.3,1 520,-1,217.4,138.7,64.2,159,1 520,-1,1707.4,314.7,88.7,211.7,1 520,-1,194.4,783.1,93.7,269.3,1 520,-1,274.3,807.1,81.3,265.4,1 520,-1,450.4,2.8,76.1,173.4,1 520,-1,515.8,97.2,55.8,183.7,1 520,-1,948.1,711.9,120.2,262.3,1 520,-1,1762.2,206.3,58.6,174.2,1 520,-1,353.4,167.7,46.1,160.1,1 520,-1,400.4,26.9,46.4,161.2,0.999 520,-1,577.7,70.4,41,153.1,0.993 520,-1,1043.6,732.6,68.4,255.2,0.16 520,-1,1046.6,930.3,72,150.7,0.133 203,-1,1221.6,31,61.3,118.4,1 203,-1,398,604.7,92.3,246.6,1 203,-1,687,206.9,78.4,113,1 203,-1,211.2,126.9,55.7,166.9,1 203,-1,1490.5,69,54.4,149.7,1 203,-1,704.6,1,55.7,158.3,1 203,-1,109,351,49.2,186.6,1 203,-1,64.5,642.8,116.7,255.8,1 203,-1,1209.2,145.1,55.3,168.6,1 203,-1,288.8,128,55,170.9,1 203,-1,423,207.6,76.9,216.2,1 203,-1,1721.3,456.5,76.9,212,1 203,-1,1359.5,568.7,103,244.3,1 203,-1,522,132.3,60.4,166.2,1 203,-1,1032.5,139.1,52.9,158.6,1 203,-1,510,316.6,78.4,218.4,1 203,-1,797.3,150,59.2,175.8,1 203,-1,891,156.2,74.2,185.6,1 203,-1,355.4,107.5,54.7,177.6,1 203,-1,1151.2,141.4,58.5,182.6,1 203,-1,803.3,310.2,73.5,187.5,1 203,-1,387.7,40.4,62,167.2,1 203,-1,228.1,535.9,61.5,219.5,1 203,-1,754.6,294.1,68.9,206.9,0.999 203,-1,1,606.1,64.8,227.1,0.985 203,-1,965.2,914.1,74.8,166.9,0.98 83,-1,1221,30.5,61.4,117.6,1 83,-1,703.7,1.3,57,158.2,1 83,-1,1487.8,69.2,54.4,148,1 83,-1,1225,161.7,75,171.2,1 83,-1,496.4,207.8,74.9,198.4,1 83,-1,1358.7,564.6,105.3,246.4,1 83,-1,1722.6,455.9,76.3,210.7,1 83,-1,415.9,321.6,82.5,231.3,1 83,-1,977.5,190.8,73.9,184,1 83,-1,356.7,105.6,55.2,178.8,1 83,-1,102.1,545,85.4,256,1 83,-1,14.9,721.8,68.8,232.7,1 83,-1,392.2,878.5,99.2,202.5,1 83,-1,757.2,184.9,61,178.2,1 83,-1,295.1,128.1,50,169.3,1 83,-1,210.4,131.7,52,164.1,1 83,-1,686.5,205.8,77.7,117.3,1 83,-1,127.3,355.6,45.3,187.5,1 83,-1,1421.7,199.6,66.5,190.5,1 83,-1,1484.7,200.5,52.8,174.2,1 83,-1,1321.3,199.6,40.6,169.4,1 83,-1,538.4,64.7,49,171.1,1 83,-1,835.9,170.5,56.6,192,1 83,-1,254.3,93.7,59.2,183.3,1 83,-1,475.6,123.8,59.6,155,1 83,-1,879.6,195.6,55.7,167.5,1 83,-1,435.1,21,53.7,163.5,1 83,-1,378.9,25.5,54.7,165,0.999 702,-1,1221.6,29.9,62,118,1 702,-1,687.2,206.3,79.1,113.2,1 702,-1,1481.7,7.2,58.9,146.2,1 702,-1,1604.1,140.4,70.2,182.5,1 702,-1,562.2,109.7,53.6,178.6,1 702,-1,1711.7,456.5,95.4,208,1 702,-1,1477.7,132.1,52,175.2,1 702,-1,415.4,151.2,73.3,163.4,1 702,-1,1016.9,1.6,62.7,89.7,1 702,-1,1574.4,587.9,97.9,236.3,1 702,-1,485.8,138.7,47.3,182.8,1 702,-1,360.4,111.5,49.6,171.8,1 702,-1,297.8,380.6,74.4,214.4,1 702,-1,384.3,538.1,68.9,250.3,1 702,-1,1227.7,819.7,90.6,261.3,1 702,-1,1308.9,792.1,95.6,275,1 702,-1,475.5,23.7,46.5,144.5,1 702,-1,750,79.5,50.4,156.6,1 702,-1,802.4,139.4,46.8,177.3,1 702,-1,254.2,199.1,60.4,195.6,1 702,-1,306.2,211.4,57.2,180.9,1 702,-1,408.9,23.9,57.5,164.7,1 702,-1,227.3,132.5,52.9,167,1 702,-1,833.2,928.1,81.6,152.9,0.231 797,-1,1221.4,29.7,62.3,118.8,1 797,-1,687,205.6,79.5,113.8,1 797,-1,288.5,515.6,77.6,237.7,1 797,-1,784.2,131.7,51,180,1 797,-1,548,113.7,63.7,180.5,1 797,-1,1723.4,452.2,76,214.8,1 797,-1,1575.1,590.3,100.5,234.5,1 797,-1,479.4,94,61.9,176,1 797,-1,278.6,167.2,58.4,194.2,1 797,-1,1483.3,27.6,59.2,149,1 797,-1,1608,1,52.7,126.5,1 797,-1,749.9,71.4,56.2,158.5,1 797,-1,233.2,132.8,51,167.9,1 797,-1,1441,60.7,48.7,160,1 797,-1,253.9,1.2,53.1,120.9,1 797,-1,391.1,240.5,65.2,177.2,1 797,-1,443.1,226.9,54.8,190.8,1 797,-1,344.4,186.8,48.1,176.1,1 797,-1,422.8,93,54.9,163.9,1 797,-1,446,1.6,43.1,88.8,1 797,-1,1080.6,596.3,94,259.3,1 797,-1,1014.7,618.6,80.9,247.9,1 797,-1,608.3,577.5,76.4,243.5,1 667,-1,1220.9,29.6,62,119.4,1 667,-1,686.8,206,79.5,113.1,1 667,-1,1480.8,6.7,60.6,140.5,1 667,-1,801.2,144.4,64.1,171.4,1 667,-1,1709.7,458.1,97.8,205.6,1 667,-1,360.5,115.3,49.2,166.1,1 667,-1,1125.3,1,67.7,109.2,1 667,-1,317.8,341.5,71.3,205.8,1 667,-1,1574.8,588.4,97.9,235.3,1 667,-1,481.6,114.3,46.1,175.1,1 667,-1,559.9,109.7,51.4,177.3,1 667,-1,1619.9,163,76.2,184.9,1 667,-1,750.8,79.9,47.8,155.8,1 667,-1,417.1,122.9,72.8,161.7,1 667,-1,225.7,208.7,60.6,203.1,1 667,-1,409,2.3,54.9,156.9,1 667,-1,277.6,223.2,55.7,186.9,1 667,-1,420.1,526.1,77.9,251.1,1 667,-1,1494.1,164.5,56,176.7,1 667,-1,1405.9,884.5,104.3,196.5,1 667,-1,1331.8,905,82.5,176,1 667,-1,353.2,4.2,53.6,150.8,0.999 667,-1,289.2,123.7,50.6,170.3,0.999 667,-1,864.6,929.4,72.7,151.6,0.16 667,-1,305.8,8.1,37.2,127.2,0.063 468,-1,1222.1,30.3,62,118.2,1 468,-1,687.1,206.1,78.5,113.4,1 468,-1,934.9,1,57.7,147.4,1 468,-1,1006,1,54.6,153.1,1 468,-1,454.9,191.9,67.8,194.9,1 468,-1,1801.9,364,87.3,216.7,1 468,-1,359.5,107.8,56.3,178.5,1 468,-1,278.8,209.7,50.8,174.1,1 468,-1,1704,456.2,96.3,211.7,1 468,-1,1506.2,1.1,58.9,112.8,1 468,-1,117.6,344.6,58.2,188.9,1 468,-1,804,145.6,47.4,175.5,1 468,-1,237.3,682,93,258.9,1 468,-1,877.7,1,51.9,134.1,1 468,-1,1646,343.6,62.8,201.9,1 468,-1,1668.3,49.8,62.1,175.4,1 468,-1,218.5,138.5,63.4,159.9,1 468,-1,333.2,713.4,72.9,251.3,1 468,-1,516,82,60.7,172.6,1 468,-1,1545.6,613,70.8,237.4,1 468,-1,809.4,584.6,96.8,254.4,1 468,-1,1725.5,165.8,68.7,171.8,1 468,-1,898.7,619.8,116.2,246.4,1 468,-1,753.6,96.5,53.8,141.4,1 468,-1,985.1,639.6,86.7,225.4,0.999 468,-1,445.6,33.9,75,185.1,0.999 468,-1,1496,564.7,72,197.8,0.999 468,-1,713.8,94.3,53,162.8,0.999 468,-1,1726.4,66.3,52.3,157.5,0.997 468,-1,414,3.6,44.4,154.5,0.996 468,-1,1026.7,923,84.6,158,0.993 468,-1,429.1,141.2,48.9,166.6,0.991 468,-1,288.5,128.3,50.4,171.1,0.966 468,-1,1766.3,139.7,69.3,177.3,0.921 236,-1,1221.2,30.1,62.6,119.3,1 236,-1,1487.4,63.8,55.5,152,1 236,-1,685.8,207.5,80.7,111.7,1 236,-1,795.5,151.9,60.3,175.2,1 236,-1,379.3,539.5,93.7,237.9,1 236,-1,108.6,350.1,51.1,189.6,1 236,-1,705.3,1,54.9,160.5,1 236,-1,1091.4,123.8,64.1,184.3,1 236,-1,288.6,126.4,55.9,172.6,1 236,-1,441.8,184,77.9,207.7,1 236,-1,1583.6,1.2,58.2,145.8,1 236,-1,211.5,125.3,55.6,168.8,1 236,-1,356.8,107,53.6,178.4,1 236,-1,1720.8,456.2,78.8,213.3,1 236,-1,1360.5,568.8,105.7,243.5,1 236,-1,1171.1,125.2,53.5,162.2,1 236,-1,222.3,482.3,58.4,201.6,1 236,-1,516.5,119.4,51.1,182,1 236,-1,923.9,124,71.3,185.8,1 236,-1,174.6,697,88.6,262.5,1 236,-1,502.5,350.8,74.3,224.2,1 236,-1,838.5,337.8,76.9,195.4,1 236,-1,589.9,360.2,63,201.9,1 236,-1,780.9,327.7,80.1,208.8,1 236,-1,125.2,647.4,90.4,244.9,0.999 236,-1,933.1,900.3,72.1,180.7,0.992 109,-1,1221.1,30.5,62.3,117.9,1 109,-1,356.9,106.5,55.2,177,1 109,-1,387.8,812.4,103.4,268.6,1 109,-1,704.4,1,55.6,159.2,1 109,-1,108.8,350.9,49.4,187.4,1 109,-1,209,128.1,51.5,164.9,1 109,-1,1487.1,68.7,56.2,149.3,1 109,-1,1721.6,456.8,76.8,210.6,1 109,-1,1357.7,566.7,105.4,244.3,1 109,-1,290.1,123.6,58.1,174.5,1 109,-1,939,203.8,69.6,191.3,1 109,-1,1157,149.2,57.2,174.5,1 109,-1,510.2,231.6,72,200.5,1 109,-1,426,292.7,77.7,225.9,1 109,-1,43.4,680.3,83.6,218.8,1 109,-1,1257.9,186.5,44.2,171.3,1 109,-1,537.7,65.3,49.3,168.3,1 109,-1,1375.7,180.6,64.5,197.3,1 109,-1,102.9,545.8,84.6,255.5,1 109,-1,478.1,154.1,59.7,162.6,1 109,-1,844.7,220.9,57.8,167.6,1 109,-1,698.1,185.5,57.8,161.9,1 109,-1,441.2,2.3,53.6,154,1 109,-1,376.1,4.7,48.8,161.1,0.999 109,-1,802.3,194.8,63.6,193.5,0.999 109,-1,482.9,39.4,59.3,159.8,0.999 109,-1,259.6,89.1,54.4,168.6,0.819 109,-1,1423.9,187.7,43,169.6,0.315 219,-1,1220.9,30,61.9,120.6,1 219,-1,687.3,206.2,78.4,114.1,1 219,-1,1122.6,131.8,59.2,183.9,1 219,-1,427.6,193.4,75.2,213.9,1 219,-1,108.6,347.7,50.7,188.6,1 219,-1,400.9,573.6,91.4,252.8,1 219,-1,705,1,55.7,160,1 219,-1,1491.7,69,54,149,1 219,-1,288.3,126.5,55.4,174.5,1 219,-1,357.8,105.6,51.8,179.2,1 219,-1,901.8,141.7,77.4,184.7,1 219,-1,212.1,127.1,55.8,164.5,1 219,-1,1721.2,456.9,77.7,211.2,1 219,-1,122.5,668.9,100.6,253.1,1 219,-1,1356.9,567.7,103.9,243.8,1 219,-1,794.2,153.5,60.7,167.8,1 219,-1,518.8,123.8,48.9,176.1,1 219,-1,1200.8,133.5,41.7,165.8,1 219,-1,508.4,332,72.2,221.4,1 219,-1,218.7,510.1,59.4,202.7,1 219,-1,996.2,126.6,39.7,156.3,1 219,-1,819.3,322.1,76,195.2,1 219,-1,761.6,311.5,79.2,206,1 219,-1,42.4,620.4,110.3,241.2,1 219,-1,825.7,111.8,68.4,171.4,0.999 219,-1,942.7,911.4,71.4,169.6,0.997 219,-1,595.7,341.6,60.8,198.9,0.847 219,-1,1565.9,6.8,50.7,124.4,0.122 219,-1,483.5,4.6,35.3,60.3,0.083 676,-1,1222.2,29.4,61.3,120.5,1 676,-1,687.4,206.8,78.9,113.8,1 676,-1,1481,4.9,60.3,144.8,1 676,-1,801.7,146.4,62.8,170.4,1 676,-1,483.1,129.5,45.9,171.4,1 676,-1,564.4,110.7,49.3,177.3,1 676,-1,359.5,115.9,50.1,166,1 676,-1,1711.3,456.5,95.9,208.7,1 676,-1,315.4,355.4,69.2,209.5,1 676,-1,384.6,528.3,99,254,1 676,-1,1097.7,1.4,64.8,104.6,1 676,-1,1493,159.7,51.9,173.8,1 676,-1,1575.2,589.1,97,236.4,1 676,-1,1622.9,153.5,74.7,192.7,1 676,-1,417,138.5,71.6,160.8,1 676,-1,750,78.7,49.4,158.4,1 676,-1,405.9,6.8,57.2,158.6,1 676,-1,1385.2,865.5,95.9,215.5,1 676,-1,232.2,212.4,62.7,195.5,1 676,-1,1300.8,885.3,84.7,195.7,1 676,-1,285.8,224.2,55.8,176,1 676,-1,297.2,1,54.6,135.6,1 676,-1,352.2,7.9,54.6,154.7,0.99 676,-1,845.3,923.9,67.4,157.1,0.41 676,-1,292.5,119.9,48.4,170,0.08 393,-1,1222.4,31.4,60.6,117.9,1 393,-1,685.9,206.7,80.2,112.9,1 393,-1,1639.4,30.4,68.2,172.4,1 393,-1,1774.3,112.3,66.8,165.9,1 393,-1,358.8,104.5,54.6,180.9,1 393,-1,447.3,280.8,82.3,211.7,1 393,-1,1135.1,472.6,74.7,202.5,1 393,-1,363.8,2.1,63.1,102.6,1 393,-1,795.4,152.1,60,171.1,1 393,-1,828.5,1,54.6,120.7,1 393,-1,949.9,26,63.4,173.7,1 393,-1,435.1,577.5,72.8,234.3,1 393,-1,282.5,127.4,56.1,166.8,1 393,-1,321.4,556.7,92.4,253.5,1 393,-1,219.6,142.8,61.1,154.9,1 393,-1,1593.2,622.7,88.7,255.1,1 393,-1,108.8,349,52.7,192.1,1 393,-1,207,287.1,53.9,184.7,1 393,-1,1010.8,41.2,56.4,162.1,1 393,-1,461,72.7,67.6,191.4,1 393,-1,920.8,525.8,78.2,215.6,1 393,-1,1720.5,455.6,77.4,214.4,1 393,-1,847.8,510.5,89.8,232.5,1 393,-1,709.4,1,52.1,142.5,0.999 393,-1,542.4,65.1,53.1,170.2,0.997 393,-1,1769.5,429.6,74.1,211,0.996 393,-1,979.1,906.6,88.7,174.4,0.996 393,-1,433.1,80.8,44.1,173.3,0.979 393,-1,712.5,87.6,52.6,177.7,0.656 393,-1,759.6,107.3,40.7,136.6,0.252 393,-1,922.7,8.4,48.6,114.6,0.208 429,-1,1221.5,30.6,61.9,118.8,1 429,-1,938.6,4.5,64.6,168.3,1 429,-1,686.7,206,79.7,113.5,1 429,-1,447.6,233.6,80.3,200.2,1 429,-1,359.1,109.5,53.9,177.1,1 429,-1,842,1,52.7,136.3,1 429,-1,110,347.8,54.8,192.7,1 429,-1,1292.9,509.2,70.3,211.3,1 429,-1,1674.4,83.7,65.6,173.7,1 429,-1,1718,457.8,80.5,208.1,1 429,-1,1009.1,21.8,54.5,163.2,1 429,-1,750.7,560.1,79.7,250.6,1 429,-1,283.4,617,94.6,258.7,1 429,-1,798.3,150.9,53.4,172.5,1 429,-1,285.4,129.7,53.8,167,1 429,-1,537,70.3,57.2,166.2,1 429,-1,1573,613.3,91.9,246.8,1 429,-1,220.4,248.3,54.2,180.6,1 429,-1,1759,142.2,55.6,163.9,1 429,-1,382,647,71.9,239.9,1 429,-1,430.4,106.9,56.9,169.5,1 429,-1,869.2,560.7,105.4,238,1 429,-1,714.9,89.4,62.3,174.8,1 429,-1,357.9,2,68.5,127,1 429,-1,221.3,139,74.2,159.6,1 429,-1,945.7,572.8,88,223.8,1 429,-1,1853.4,420.2,67.6,189.6,1 429,-1,422.9,1,44.1,127.9,1 429,-1,724.4,1.5,50.1,112.2,0.999 429,-1,1784.6,71.2,81.4,175.7,0.999 429,-1,991.1,930.1,82.7,150.9,0.906 429,-1,456.4,57.9,67.6,184.8,0.682 874,-1,1221.5,29.9,61.7,118.4,1 874,-1,687.3,206.3,78.7,113.5,1 874,-1,478.9,1,48.7,125.6,1 874,-1,794.3,138,77.3,175.8,1 874,-1,1478.8,82.4,59.4,154.2,1 874,-1,278.6,636.8,86,256.1,1 874,-1,1086.7,2.6,58.5,141.9,1 874,-1,1574.5,590.5,104.3,234.9,1 874,-1,1690.6,46.8,54.8,166.3,1 874,-1,334.4,313.4,82.2,179.2,1 874,-1,1722.7,454.6,76.8,212.4,1 874,-1,300.7,162.2,69.9,194.1,1 874,-1,558.1,116.9,59.4,177.3,1 874,-1,1578.4,25.8,52.7,148.4,1 874,-1,900.6,481.4,70.7,235.1,1 874,-1,477.6,164.2,62.7,185.3,1 874,-1,752.8,69.9,54.8,165.5,1 874,-1,1419.2,10.2,50.8,153.4,1 874,-1,988.8,466.2,69.8,237.3,1 874,-1,253.4,1.6,54.7,120.4,1 874,-1,410.4,160.3,58.5,177.8,1 874,-1,240.1,133.6,51.5,164.9,1 874,-1,429.7,306.2,56.7,202.2,1 729,-1,1221.4,29.5,62.1,119.5,1 729,-1,687,205.8,79.2,114.1,1 729,-1,1471.4,110.9,52.4,169.9,1 729,-1,1479.3,8.2,58.8,142.4,1 729,-1,552.2,112.3,58.7,178.9,1 729,-1,260.5,189.1,55.1,201.1,1 729,-1,1711.4,456.1,96.7,207.9,1 729,-1,412,185.6,66.4,162.9,1 729,-1,1573.6,590,99.4,234,1 729,-1,299.5,420.4,74.2,223.9,1 729,-1,477.6,166.3,51,184.1,1 729,-1,784.8,138.7,53,175.4,1 729,-1,319.5,198.5,62.5,180.3,1 729,-1,406.6,553,96.5,249.1,1 729,-1,1597.2,108,59,183.8,1 729,-1,1160.8,760.4,82.8,255.7,1 729,-1,751,84.5,49.9,150.1,1 729,-1,361.7,109.8,46.9,175.5,1 729,-1,1234.5,742.6,90.7,264.6,1 729,-1,426.1,40.4,59,168.1,1 729,-1,319.8,1,50.7,131.7,0.999 729,-1,236.5,138,53.6,165.5,0.998 729,-1,464.6,6.7,46.6,144.1,0.99 747,-1,1221.4,29.6,62.1,119,1 747,-1,686.7,205.6,79.3,114.7,1 747,-1,258.4,182.7,61.3,200.8,1 747,-1,779.2,137.3,59.6,175.1,1 747,-1,551,116.4,60.4,176,1 747,-1,1463.8,98.5,54.4,163.4,1 747,-1,1714.7,457.3,90.5,207.1,1 747,-1,1490.3,14.1,59.5,142.7,1 747,-1,1576.3,589.3,98.4,234.2,1 747,-1,456.6,560.3,97.9,251.6,1 747,-1,1597.6,95.3,58.9,180.8,1 747,-1,331.5,199.4,57.9,175.4,1 747,-1,300.2,445.5,73.3,220.9,1 747,-1,467.2,184.9,53.3,185.9,1 747,-1,442.6,58.5,57.9,166.7,1 747,-1,404,197.2,66.8,173,1 747,-1,1113.8,713,84.5,263.2,1 747,-1,1188.7,697.8,86.4,261.2,1 747,-1,750.1,84.3,49.5,148.1,1 747,-1,359.8,112.6,49.8,169.1,0.999 747,-1,258.3,1.5,48.4,120.5,0.999 747,-1,394,50.2,51.7,174.9,0.988 747,-1,291,127.8,45.9,168.4,0.983 422,-1,1222,30.4,61.5,118.8,1 422,-1,686.6,204.9,79.2,115.5,1 422,-1,1667.7,70.6,67.9,176,1 422,-1,359.1,109.5,53.7,175.8,1 422,-1,943.3,12.9,61.3,162.9,1 422,-1,1244.3,508.3,90.7,202.9,1 422,-1,1720.2,457.8,78.6,207.5,1 422,-1,453.6,245.8,77.4,201.2,1 422,-1,110,347.3,52.5,190.7,1 422,-1,544,67.3,56.4,170.3,1 422,-1,838.3,1,52.3,134.2,1 422,-1,286.1,127.3,54.7,167.7,1 422,-1,1008,26.4,54,157.9,1 422,-1,1577.5,614.6,97.4,244.9,1 422,-1,1765.3,133.1,55,167.8,1 422,-1,392,629.6,73.4,240.1,1 422,-1,865.1,545.5,104.8,242.5,1 422,-1,285.8,606.6,95.9,252.6,1 422,-1,215.5,255,53,184.5,1 422,-1,798.1,150.3,54,172.9,1 422,-1,730.6,559.9,75.7,239.2,1 422,-1,427.5,108.5,53.4,165.1,1 422,-1,220.7,141.3,73.9,162.5,1 422,-1,358.7,1.1,67.1,120.6,1 422,-1,713.3,91.3,63.2,173.7,1 422,-1,424.3,1.4,44.5,124.8,1 422,-1,942.8,567,80.4,219.6,1 422,-1,717.9,1,50.2,124.4,0.999 422,-1,457.7,60.3,68.8,194.5,0.999 422,-1,1802.9,69,84.9,181,0.993 422,-1,985.8,930.2,82.1,150.8,0.5 1026,-1,1221.8,29.6,61.9,119.9,1 1026,-1,686.6,206.7,80.1,113.5,1 1026,-1,373.7,306.3,73,200.8,1 1026,-1,1699,183.9,62.8,184.4,1 1026,-1,491.8,299.3,68.2,190.4,1 1026,-1,794.2,141.7,71.7,171.7,1 1026,-1,1249.6,172.8,63.5,168.8,1 1026,-1,289.3,128.6,52.2,166.5,1 1026,-1,930.8,256,69,208.2,1 1026,-1,1144.6,588.3,86.9,257.3,1 1026,-1,843.6,266.6,65.8,192.3,1 1026,-1,232.8,140.3,57.9,162.8,1 1026,-1,293.8,306.7,67.7,206.1,1 1026,-1,1721.3,454.5,77.4,212.9,1 1026,-1,378.2,493.5,63.9,227,1 1026,-1,1575,589.5,103.3,238.3,1 1026,-1,750.3,73.9,54.3,161.9,1 1026,-1,539.7,120.1,62,175.7,1 1026,-1,1699.5,684,89.1,236.6,1 1026,-1,288.8,506.2,88.6,201.9,1 1026,-1,1840.3,229.6,62,187.6,1 1026,-1,1469.4,201.8,66.8,161.4,1 1026,-1,420.4,170.1,58.3,164,1 1026,-1,468.7,164.2,70.3,198,1 1026,-1,579.9,555.1,75.6,234.2,1 1026,-1,374.3,102.6,57.9,175.4,1 1026,-1,312,1.7,35.9,130.7,0.999 1026,-1,363.2,921.8,89.8,159.2,0.192 748,-1,1221.5,30,62.5,119.1,1 748,-1,686.6,206,79.2,113.8,1 748,-1,258.5,183.5,60.1,200.8,1 748,-1,780,136.2,59.7,175.6,1 748,-1,550.4,116.4,61.5,174.5,1 748,-1,1463.3,97.7,53.5,164.7,1 748,-1,1713.4,457.1,92.2,207.1,1 748,-1,1575.4,589.4,100.3,236,1 748,-1,332,198.4,57.5,176.2,1 748,-1,1491.9,15.1,59.1,142.4,1 748,-1,301.4,445.5,72.3,221.6,1 748,-1,1596.4,94.6,58.4,181.1,1 748,-1,459.7,562.4,95.5,247.7,1 748,-1,466.1,186.8,53.5,184.2,1 748,-1,400,197.8,68.8,175.4,1 748,-1,442.1,56.3,57.5,169,1 748,-1,1112.6,715.5,83.4,258.3,1 748,-1,1184.4,698.5,88.4,258.1,1 748,-1,750.3,82.4,50.2,150.4,1 748,-1,258.5,1.6,48.8,120,0.999 748,-1,358.9,110.9,49.3,169.8,0.999 748,-1,391.9,52.5,58.9,169.2,0.99 748,-1,291.4,129.2,45.4,162.5,0.981 858,-1,1221.4,28.7,62.3,119.7,1 858,-1,686.9,206.1,80.2,113.9,1 858,-1,1675.5,33.3,53.9,160.9,1 858,-1,796.8,139.6,75.8,175.5,1 858,-1,272.1,611.5,84.6,247.4,1 858,-1,487,1.5,48.9,115.3,1 858,-1,1472.3,65.7,60.9,158.8,1 858,-1,1575.8,590.1,101.9,234.3,1 858,-1,1413.4,22.9,51.5,156.2,1 858,-1,342.2,299,78.4,181.3,1 858,-1,1720.7,454.2,78.6,211.8,1 858,-1,559.7,116.3,58.4,174.8,1 858,-1,1077.3,1,58,121.8,1 858,-1,752.5,70.8,55.2,164.5,1 858,-1,995.3,498,85.2,238.8,1 858,-1,432.6,287.9,55.8,202.7,1 858,-1,297,160.9,74.2,195.4,1 858,-1,254.3,1.4,54.2,121.2,1 858,-1,474.2,148.1,61.2,187.1,1 858,-1,239.9,133,54.2,163.6,1 858,-1,416.5,145.5,61.5,176.4,1 858,-1,919.9,510.9,71.2,232.9,1 858,-1,1571.2,14.8,48.4,142.9,0.998 933,-1,1221.2,29.9,62.2,119.8,1 933,-1,686.8,205.8,79.4,113.1,1 933,-1,793.1,140.8,75.5,172.3,1 933,-1,448.7,214.8,69.7,190.3,1 933,-1,555.6,117,58.5,172,1 933,-1,1486.1,1,60.6,123.8,1 933,-1,1576.2,591.4,101.7,237.4,1 933,-1,1478.1,122.4,59.4,158.9,1 933,-1,1268.9,807.6,96.2,273.4,1 933,-1,1128,51.3,59.4,169.9,1 933,-1,1620.9,80.6,55.9,167.7,1 933,-1,1720.7,454.6,78.9,212,1 933,-1,749.9,69.9,56.8,163.3,1 933,-1,1423.5,1.9,47.1,124.5,1 933,-1,316.6,732.6,88.6,262,1 933,-1,860.7,398.6,63.2,210.4,1 933,-1,946.8,379.7,74.4,218.1,1 933,-1,238.7,133.3,56.9,168.5,1 933,-1,1734.3,112.8,58.1,177.2,1 933,-1,473.7,23.4,55.5,152.2,1 933,-1,329.7,385.7,78.8,192.1,1 933,-1,302.3,160.8,67.8,200.5,1 933,-1,400.5,371.8,62.9,209.3,1 933,-1,1748,675.4,91.6,246.3,1 933,-1,363.8,218,62.9,183,1 933,-1,253.8,1,53.9,120.1,1 933,-1,427.5,66.9,61.6,181.8,1 933,-1,316.4,4.2,40.6,122.4,0.23 116,-1,1221.7,30.1,62.7,118.5,1 116,-1,1128.7,149.3,68,170.9,1 116,-1,356.3,105.8,56.2,177.8,1 116,-1,704.3,1,55.9,159.5,1 116,-1,394.7,790.3,100,275.9,1 116,-1,107.8,348.3,50.3,189.7,1 116,-1,1488.3,68.7,55.6,151,1 116,-1,211.5,128.7,50.7,163.2,1 116,-1,928.3,208.2,68.7,192.8,1 116,-1,1358.5,566.5,105.3,245,1 116,-1,1721.9,457.1,77.2,210.1,1 116,-1,289.5,124.8,55.2,171.3,1 116,-1,426.7,290.1,79.3,227.6,1 116,-1,518.4,240.2,72.5,203.8,1 116,-1,64.2,671.6,79.2,217.9,1 116,-1,1244.9,183.6,41.8,160.7,1 116,-1,790.8,207,64.9,188.1,1 116,-1,478.7,163.3,58,157.2,1 116,-1,539.3,63.8,49,167.1,1 116,-1,1362.1,182.3,64.8,191.3,1 116,-1,443.4,1,55.1,152.3,1 116,-1,375.9,3.1,48.6,153.4,1 116,-1,103.1,545.1,85.1,255.5,1 116,-1,836.2,223.2,55.4,176.2,1 116,-1,481.6,41.1,61,161,1 116,-1,1122,927.8,83.7,153.2,0.122 564,-1,1221.1,30.2,62,119.8,1 564,-1,687.3,206,79,114.1,1 564,-1,1483.3,3.4,59.7,146.8,1 564,-1,543.6,117.5,56.6,169.1,1 564,-1,377.6,232.5,65,192.6,1 564,-1,1822.2,241.6,66.8,182.4,1 564,-1,791.6,147.4,66.1,173.9,1 564,-1,1665.1,267.8,73,203.5,1 564,-1,1577.1,1.3,56.5,140.1,1 564,-1,1721.4,454.4,79.1,211,1 564,-1,1656.4,1,53.1,144.7,1 564,-1,873.2,1,52.5,108.4,1 564,-1,200.8,289.4,64.5,191.4,1 564,-1,289.4,121.1,51.5,173,1 564,-1,144,258.1,57.7,213.5,1 564,-1,432.8,140.7,54.2,153,1 564,-1,986.4,3.5,51.5,91.8,1 564,-1,218.2,134.7,57.6,164.2,1 564,-1,755.7,79.3,44.7,154.2,1 564,-1,1593.7,590.2,75.4,234.9,1 564,-1,737.4,586.8,81.1,256.4,1 564,-1,464.3,88.1,63.5,172.7,1 564,-1,358.3,107.3,51.5,178.2,1 564,-1,1021.5,792.6,116.7,274.9,1 564,-1,246.6,914.6,78.2,166.4,0.999 564,-1,417.2,49.9,49.4,170.3,0.999 564,-1,1098.9,811.2,92.8,234.8,0.998 564,-1,1020.7,936.1,72.6,144.9,0.297 928,-1,1221.5,30,62,120.1,1 928,-1,686.1,206.3,80.4,112.8,1 928,-1,794.2,140.9,73.2,172,1 928,-1,453.5,212.1,68,190,1 928,-1,1127.6,48.8,56.5,166.7,1 928,-1,1487.1,1,62.3,126.5,1 928,-1,1475.9,117.4,60.7,161.9,1 928,-1,1574.3,588.5,103.8,235.9,1 928,-1,750.5,72.5,56.2,160.1,1 928,-1,557.5,116.2,57.6,172.1,1 928,-1,1720.1,453.8,79.6,213.3,1 928,-1,1619.3,79.6,53.6,163.5,1 928,-1,1274,820.5,96.3,260.5,1 928,-1,944.6,391.8,82.6,222.5,1 928,-1,300.7,161.4,69.3,199,1 928,-1,1428.4,2.6,46.1,125.4,1 928,-1,313.2,727.2,84.6,256.8,1 928,-1,472.5,22.8,54,154.8,1 928,-1,329.2,374.7,78.6,196.7,1 928,-1,239.4,132.5,55.1,166.8,1 928,-1,864,408,63.1,214.1,1 928,-1,253.8,1,54.6,120.2,1 928,-1,402.7,369.5,62.1,206.3,1 928,-1,1732.4,110.3,53.8,176.1,1 928,-1,1748.5,677,92.7,244.9,1 928,-1,368.6,212.3,61.9,181.2,1 928,-1,426,67.4,63.5,179.7,1 928,-1,313.4,2,47.4,127.2,0.998 892,-1,1221.1,29.8,62.3,119.2,1 892,-1,687.1,206,79.3,113.6,1 892,-1,1103.2,9.8,55.8,158.3,1 892,-1,792.7,139.4,76.9,172.8,1 892,-1,1482.6,95.8,59.3,151.9,1 892,-1,479.8,186,62.1,178.5,1 892,-1,1574.4,590.7,104.5,234.1,1 892,-1,299.1,666.1,81.3,247.4,1 892,-1,1706.3,64.6,53.2,171.2,1 892,-1,557.8,117.2,59.9,175.2,1 892,-1,334.1,340.6,80.1,179.4,1 892,-1,1721.2,454.5,78.1,212.6,1 892,-1,1426.1,1.7,51,154.8,1 892,-1,470.3,1,50.5,142.6,1 892,-1,421.8,327,58,204.3,1 892,-1,969.4,444.1,82.4,231.3,1 892,-1,753.9,70.4,54.4,163.6,1 892,-1,1591.9,45.6,49.8,152.4,1 892,-1,301.8,161.3,68,192.6,1 892,-1,886.2,456.6,68.7,227.5,1 892,-1,253.9,1.6,54.7,119.6,1 892,-1,241,132.6,55.2,169.9,1 892,-1,1746.8,682.5,91.5,232.4,1 892,-1,403.1,174.8,55.2,178.7,1 892,-1,1493.5,1,63.9,149,1 892,-1,314.2,1.5,47.2,125.5,1 892,-1,411.2,57.5,55.5,171.5,0.999 892,-1,1343.2,921.7,96.4,159.3,0.965 892,-1,351.6,165.6,44.1,175.3,0.594 324,-1,1221.7,31.3,61.9,118.4,1 324,-1,1453.5,1,56.4,140.5,1 324,-1,350.8,582.4,99.2,248.2,1 324,-1,686.7,207.1,79.9,112.3,1 324,-1,1714,54.1,60.9,162.9,1 324,-1,109.1,350.4,51.7,190,1 324,-1,453,116.2,72.7,200.5,1 324,-1,1720.3,455.6,78.3,215.1,1 324,-1,794.8,149,60.2,174.9,1 324,-1,361.9,108.3,57.7,180.3,1 324,-1,896.4,442.3,70.8,200.2,1 324,-1,420.3,45,55.7,170.8,1 324,-1,990.4,70.8,62,179.6,1 324,-1,1514.5,601.7,87.5,249.1,1 324,-1,238.4,364.5,58.1,186.3,1 324,-1,1576.7,1.2,64.9,115.7,1 324,-1,281.6,132.3,54.1,172.6,1 324,-1,928,41.8,62.6,170.2,1 324,-1,212.8,134.7,56.8,165.7,1 324,-1,516.4,474.9,68.1,221.2,1 324,-1,831.7,437.1,79,207.9,1 324,-1,1047.2,78.8,52.2,160.7,1 324,-1,727.7,97.3,49.2,175,1 324,-1,426.7,460.7,76.2,237.7,1 324,-1,514.7,100.5,40.8,169,0.999 324,-1,1839.2,516.9,63.5,217.3,0.997 324,-1,708.1,5.9,49.7,156.3,0.991 324,-1,930.5,908.6,75.8,172.4,0.986 324,-1,365.4,906.8,98.9,174.2,0.92 592,-1,1221.6,30.5,61.2,118.9,1 592,-1,687,206.1,79.6,113.7,1 592,-1,1481.7,5,60.5,143.8,1 592,-1,800.3,143,64.3,175.3,1 592,-1,1638.7,1,55.3,119.9,1 592,-1,561.8,112.7,49.3,175,1 592,-1,368.8,259.8,66.8,194,1 592,-1,359.8,110.8,51.7,171.4,1 592,-1,1652.6,237.2,77.6,201.7,1 592,-1,1718.9,455.4,81.1,210.6,1 592,-1,227.8,273,62.7,186.2,1 592,-1,288.3,126.7,51.9,170.3,1 592,-1,1575.2,589.8,94,234.2,1 592,-1,753.8,82.3,43.5,151.8,1 592,-1,428,67.3,49.7,171.6,1 592,-1,164.4,250.8,58.2,203.5,1 592,-1,476.3,104,49.2,163.3,1 592,-1,213.7,135.7,55.3,163.4,1 592,-1,1066.4,849.9,121.4,231.1,1 592,-1,871.2,2,53.9,96.1,0.999 592,-1,1863.6,274.4,57.4,168.5,0.995 592,-1,306.3,903.8,98.8,177.2,0.954 592,-1,1158.4,859,89.5,222,0.893 1007,-1,1221.8,30.3,61.4,118.2,1 1007,-1,686.5,206.4,79.7,113.3,1 1007,-1,794.3,139.8,74.5,173.6,1 1007,-1,395.4,288.4,67.6,190.2,1 1007,-1,1214.6,141.7,62.3,175.6,1 1007,-1,500.2,279,68.5,190.2,1 1007,-1,289.7,126.8,52.6,169.2,1 1007,-1,1471.5,182.8,65.2,162.5,1 1007,-1,1720.9,452.8,80.7,217.6,1 1007,-1,231.3,138.8,54.4,165.2,1 1007,-1,1576.7,591.3,100.5,234.1,1 1007,-1,308.6,285.7,65.9,200.6,1 1007,-1,927.5,277.7,68.6,209.7,1 1007,-1,843.7,290.4,65.3,203.5,1 1007,-1,1818.1,204.2,63.8,184.6,1 1007,-1,1685.6,165.3,58.2,175.2,1 1007,-1,299.5,477.7,88.1,201.7,1 1007,-1,381.2,462.4,67.4,229.6,1 1007,-1,751.1,73.3,54.2,162.2,1 1007,-1,540.4,120.2,60.7,171.1,1 1007,-1,1164.3,627.6,90.5,263.4,1 1007,-1,1742,676.1,92.8,249.5,1 1007,-1,594.2,552.7,96.9,243.3,1 1007,-1,314.5,2.3,41.7,128.5,1 1007,-1,347.2,881.8,92.6,199.2,1 1007,-1,507.4,87.7,53.1,156.4,1 1007,-1,418.6,164,62.8,194.2,0.999 1007,-1,435.8,66.3,63.1,169.9,0.999 1007,-1,377.4,175.2,49.3,162.3,0.999 1007,-1,385.9,1,51.8,152.2,0.97 800,-1,1221.3,29.3,62,119.1,1 800,-1,687,205.6,79.5,113.9,1 800,-1,287.3,523.9,76.7,237.9,1 800,-1,783.3,133,51.6,178,1 800,-1,548.3,113.9,63.1,176.7,1 800,-1,1723.5,453,75.1,213.9,1 800,-1,1574.6,589.6,99.9,234.6,1 800,-1,478.9,93.5,62.5,175.4,1 800,-1,278.2,167.6,58.8,195.4,1 800,-1,1612.1,1,55,128.4,1 800,-1,1480.3,30.2,60.5,151.3,1 800,-1,750.5,71.1,55.7,161.2,1 800,-1,232.3,134.4,51.8,166.3,1 800,-1,388.8,243.5,68.6,174.7,1 800,-1,254.6,1,53.2,123.2,1 800,-1,441.7,229.3,56.4,196.1,1 800,-1,1079.7,589.4,88.9,254.6,1 800,-1,346.6,183.4,49.4,177.2,1 800,-1,422.8,95,55.4,166.4,1 800,-1,1440.8,59,48.8,157.5,1 800,-1,1010.8,616,77.4,246.3,1 800,-1,444.4,1,42.6,88.1,0.999 800,-1,610.9,578.2,83.8,234.2,0.999 74,-1,1221.7,31,61.2,117.2,1 74,-1,1487.5,69.2,55.4,149.2,1 74,-1,409.3,330.6,84,230.6,1 74,-1,686.6,206.5,79.5,115.4,1 74,-1,1256.8,172.8,65.7,169.2,1 74,-1,704.5,1,56.2,158.8,1 74,-1,356.1,106.2,55.3,178.8,1 74,-1,1361.8,566.3,104.4,245.9,1 74,-1,1721.8,456.6,77.1,209.8,1 74,-1,490.4,200.3,79,194,1 74,-1,9.6,737.4,71.3,227.5,1 74,-1,987.8,186.3,69.3,185.6,1 74,-1,103.8,547.3,84.4,252.6,1 74,-1,135.4,355.2,53.4,191.2,1 74,-1,290,128,52.5,167.6,1 74,-1,778.4,192.5,79.3,178.9,1 74,-1,211.3,131.3,51.6,164.3,1 74,-1,1336.7,204.4,42.5,162.6,1 74,-1,1434.8,200.2,76.2,197.1,1 74,-1,537.6,64.1,48.9,169.9,1 74,-1,885.8,190.3,57.6,167,1 74,-1,435.4,25.3,51.4,161.7,1 74,-1,467.7,116.3,63.7,161.2,1 74,-1,382,29.7,52.3,165.2,1 74,-1,386.2,904.3,101.7,176.7,0.999 74,-1,841,168,57.3,181.1,0.998 74,-1,256.3,94,55.2,172.3,0.996 473,-1,1221.8,30.5,62.7,118.1,1 473,-1,686.8,206.3,79.3,113.1,1 473,-1,1003.6,1,55.6,151.6,1 473,-1,934.2,1,57.7,144.9,1 473,-1,453.3,182.8,71,194.6,1 473,-1,285.2,208.5,53.5,169.8,1 473,-1,360.3,109.5,54.8,176.7,1 473,-1,1696.4,458.1,103.9,211.3,1 473,-1,1789.8,363,89.7,213.8,1 473,-1,878.1,2,50.8,132.7,1 473,-1,1505.3,1.4,58.5,116.8,1 473,-1,1642.1,342.3,64.5,198.3,1 473,-1,1539,597.9,78,248.1,1 473,-1,121.2,341.4,60.4,189.9,1 473,-1,803.4,141.6,47.9,179.1,1 473,-1,1723.2,172.1,68,165.4,1 473,-1,809.4,587.6,96.6,259.7,1 473,-1,218.1,138,63.5,159.6,1 473,-1,514.5,85.4,59.2,171,1 473,-1,326.9,724.4,74.3,249.3,1 473,-1,233.8,688.6,95.5,271.7,1 473,-1,905.8,626.3,116.8,248.3,1 473,-1,446.5,33.8,71.1,181.4,1 473,-1,1661.6,43.8,56.8,178.1,1 473,-1,1767.8,143.9,86.6,182.4,0.999 473,-1,1713.1,57.3,51.2,169.4,0.999 473,-1,712.3,92.8,55.6,164.8,0.999 473,-1,753.2,97.6,54.6,140.3,0.999 473,-1,413.3,5.1,47.4,151.8,0.998 473,-1,988,649.7,77.8,228.7,0.981 473,-1,1026.4,924,82.7,157,0.976 473,-1,429.1,146.5,49,170.9,0.741 735,-1,1221.7,30,62,118.9,1 735,-1,686.7,205.6,79.4,115.1,1 735,-1,257.7,189.5,59.4,194.2,1 735,-1,1481.1,9.9,60.3,144.4,1 735,-1,781.6,138.7,54.4,176.8,1 735,-1,552.3,111.8,58.4,181,1 735,-1,297,423.6,76.1,224.3,1 735,-1,1469.5,107.9,52.4,170.1,1 735,-1,403.2,185.9,75.4,163.7,1 735,-1,424.5,555.7,87.8,248,1 735,-1,1712.1,455.8,95.6,210.7,1 735,-1,475.9,170.2,48.5,182.2,1 735,-1,1574.9,591.7,99.8,232.6,1 735,-1,326.3,196.9,59.7,180.9,1 735,-1,1598.4,103.4,58.4,179.7,1 735,-1,1222.5,725.4,88.3,250.1,1 735,-1,432.9,45.2,57.7,168.4,1 735,-1,1146,746.7,83.7,260.4,1 735,-1,360.1,108.2,50.7,175.5,1 735,-1,750.9,85,50,148.7,1 735,-1,319.3,1.2,47.4,131.5,0.991 735,-1,240.4,147.8,53.1,164.3,0.775 664,-1,1220.5,29.6,61.9,120,1 664,-1,686.7,205.7,80.2,113.4,1 664,-1,1480.8,3.2,61.1,144.3,1 664,-1,1711.1,456.3,98.2,208.6,1 664,-1,801.8,143.7,64,173,1 664,-1,360.6,114.3,48.9,167.1,1 664,-1,557.8,111.2,53.3,177,1 664,-1,1576.2,587.7,97,236.2,1 664,-1,1616.6,167.2,77.6,184.7,1 664,-1,320.4,334.2,70.7,211.3,1 664,-1,431.1,528.1,76.5,244.6,1 664,-1,224.8,210.9,58.4,197.1,1 664,-1,478.5,112.2,46.5,178.4,1 664,-1,1134.7,1.9,65.9,111.2,1 664,-1,407.7,1,57.2,156.1,1 664,-1,421.3,121.8,65.4,161.1,1 664,-1,750.6,79.9,47.2,155.5,1 664,-1,277.2,226.8,56.3,183.3,1 664,-1,1418,896.3,102.1,184.7,1 664,-1,287.3,123.7,53,171,0.999 664,-1,353,2.4,53.7,148.4,0.999 664,-1,1499.7,159,49.3,177.9,0.998 664,-1,1341.7,909.3,83.2,171.7,0.996 664,-1,869.7,929.2,72.3,151.8,0.056 112,-1,1221.2,30.5,62.8,118.7,1 112,-1,356.1,105.1,55.8,178.2,1 112,-1,210,127.8,51.9,165.3,1 112,-1,704.5,1,55,159.4,1 112,-1,108.3,352,49,186.4,1 112,-1,1487.2,68.1,56.3,151.6,1 112,-1,389.6,802.9,101,277.1,1 112,-1,1721.9,457,77,210.5,1 112,-1,1149.1,151.6,55.3,169.7,1 112,-1,290,125.6,56.4,171,1 112,-1,936.1,205.9,68.9,188.9,1 112,-1,1358.7,566.9,105,243.2,1 112,-1,1250.9,185.6,47.4,167,1 112,-1,424.8,290.8,81.7,226.9,1 112,-1,1370.1,182.6,67.8,191.3,1 112,-1,513.9,234.6,71.5,200.5,1 112,-1,538.1,66.2,49.5,166.7,1 112,-1,480.6,154.2,55.2,163.7,1 112,-1,102.7,546.1,84.1,255.6,1 112,-1,51.1,675,81.9,222.1,1 112,-1,796,199.6,63.3,194.6,1 112,-1,441.7,1,52.7,155.7,1 112,-1,843.1,221.5,55.4,173.1,1 112,-1,482.1,40,60,159.9,0.999 112,-1,376.4,3.9,47.6,160,0.999 112,-1,697.2,190.8,54.4,131.1,0.963 112,-1,1133.3,929.8,82.4,151.2,0.198 149,-1,1221.5,31.4,61.8,117,1 149,-1,1488.4,68.1,55.5,149.3,1 149,-1,704.1,1,56.2,157.5,1 149,-1,356.4,101.4,55.6,180.8,1 149,-1,1031.4,132.8,59.2,172.9,1 149,-1,421.4,257.2,76.5,220,1 149,-1,109.1,352.1,49.1,184.7,1 149,-1,1721.6,458.2,77.1,208.9,1 149,-1,1359,566.6,105.2,244.5,1 149,-1,287.4,124.3,55.3,173.3,1 149,-1,401,715.7,95.4,264,1 149,-1,538.2,64.8,51.1,163.6,1 149,-1,217.7,126.6,53.4,164.7,1 149,-1,686,206.7,82.1,113,1 149,-1,1166,162.3,51,163.8,1 149,-1,1286.2,175.2,62.5,178,1 149,-1,102.9,553,83.8,246.3,1 149,-1,531.1,269.5,59,201.7,1 149,-1,808.2,257.7,64.4,180.8,1 149,-1,864.4,203.9,70.2,192.6,1 149,-1,590.3,259,57.5,194,1 149,-1,382.9,1.3,47.7,125.3,1 149,-1,757.7,245.2,70,190.3,1 149,-1,486.8,197.1,58.4,167.9,1 149,-1,175.2,616.8,73,213.4,1 149,-1,463.7,34.7,47.7,163.1,1 149,-1,1052,919.6,69.6,161.4,0.988 149,-1,795.6,150,61.7,192.4,0.08 89,-1,1222.2,30.5,61.5,116.5,1 89,-1,419.1,314.3,82.6,230.4,1 89,-1,355.4,106.5,56.6,177.6,1 89,-1,704.2,1.3,56.3,157.8,1 89,-1,1487.3,69.6,55,146.8,1 89,-1,1360.5,566.4,103.4,245.2,1 89,-1,1721.2,457.1,78.1,208.8,1 89,-1,1214.7,156.3,59.2,178.4,1 89,-1,397.8,863.9,105.7,217.1,1 89,-1,969.5,192.7,74.9,189.1,1 89,-1,501,212.4,74,199.8,1 89,-1,733.9,185.5,69.9,179.8,1 89,-1,102.4,547.5,85.6,252.7,1 89,-1,295,126.5,52.2,169.6,1 89,-1,210.4,131.3,50.5,164.1,1 89,-1,23.9,709.6,68.6,225.5,1 89,-1,1415.7,196.4,61.3,189.1,1 89,-1,538.5,64.4,48.7,168.8,1 89,-1,437.4,12.5,52.5,159.6,1 89,-1,830.3,180.9,61.4,181.6,1 89,-1,1473,192.5,54.6,166.1,1 89,-1,122.3,354.9,46.1,189.9,1 89,-1,376.7,20.7,53.2,159.6,1 89,-1,1305.3,204.3,41.8,167,1 89,-1,874.1,202.5,53,168.7,1 89,-1,482.2,130.6,54.9,163.1,1 89,-1,255.2,93.1,60.3,179.5,0.999 89,-1,691.6,208.4,58,111.5,0.854 89,-1,486.3,38.5,54.7,169.8,0.703 89,-1,800,155.5,49.2,165.5,0.694 38,-1,686.1,206.3,80.4,112.9,1 38,-1,1210.5,28.7,74.4,122.5,1 38,-1,389.6,367.9,89.1,237.9,1 38,-1,1486.6,69.2,56.6,150.7,1 38,-1,704.2,1.4,56.4,156.8,1 38,-1,1361.5,566.8,104.8,244.8,1 38,-1,933.8,195.5,82.3,184.2,1 38,-1,484.2,163.8,92.5,197.7,1 38,-1,1722.3,456.2,76.7,211.1,1 38,-1,181.5,373.4,70.5,191.4,1 38,-1,795.4,149,61.5,175.1,1 38,-1,214.4,127.6,49.1,163.1,1 38,-1,355.5,110.4,54.5,171.4,1 38,-1,102.3,547.9,85,251.1,1 38,-1,866.2,144.3,60.4,187.5,1 38,-1,1009.9,155.4,80.1,189.2,1 38,-1,448.3,50.6,52.3,169.5,1 38,-1,284.6,123.4,53,172.2,1 38,-1,1.3,810,66.1,241.1,1 38,-1,1841.2,250.8,73.1,197.1,1 38,-1,1353.6,189.2,52.5,163.7,0.999 38,-1,390.1,77.6,53.8,165.3,0.998 38,-1,1580.8,235.7,54.4,178.4,0.586 38,-1,1401.1,220.5,39,172.5,0.274 38,-1,1504.6,224.7,50,187.1,0.14 38,-1,499,46.3,42.3,142.9,0.058 404,-1,1222.1,30.7,61.6,118.1,1 404,-1,686.1,205.7,80.1,115.2,1 404,-1,1645.8,50.3,65.2,171.4,1 404,-1,357.4,104.2,55.5,180.5,1 404,-1,457.6,268.3,75.6,205.5,1 404,-1,945.7,19.3,62.7,172.3,1 404,-1,1770.7,117.9,66.4,169.6,1 404,-1,361.6,1,66.7,111.5,1 404,-1,829.2,1.2,56.1,127.1,1 404,-1,549.6,69.3,60.4,171.9,1 404,-1,1718.8,460.2,79.5,205.7,1 404,-1,305.8,575.9,84.3,244.4,1 404,-1,219.5,141.1,63.4,155.7,1 404,-1,796.1,152.5,58.6,171.1,1 404,-1,283.6,129.4,55.5,164.9,1 404,-1,423.2,599.4,69,235,1 404,-1,108.5,346,53.1,195.7,1 404,-1,1589.8,619.1,96.3,249.9,1 404,-1,1185.7,483.5,60.4,204.8,1 404,-1,1006.6,35.3,55.4,159.1,1 404,-1,424.4,89.9,52.7,173.1,1 404,-1,205.5,270.9,52.9,182.2,1 404,-1,853.7,523.6,101,236,1 404,-1,467.4,69.7,65,189.9,1 404,-1,925.7,540.8,81.6,218.1,1 404,-1,717.7,1,52.1,132.2,1 404,-1,708.5,90.7,66.4,173,0.999 404,-1,977.4,917.9,86.2,163.1,0.988 404,-1,424.6,1.6,44.4,110.5,0.981 404,-1,678.8,564,89.8,241.7,0.976 973,-1,686.3,206.1,79.9,113.3,1 973,-1,1221.8,31,61.2,119.5,1 973,-1,794.9,140.9,71.4,172,1 973,-1,413.2,255.3,70.7,187.9,1 973,-1,1775.7,163.8,67.3,180.1,1 973,-1,305.8,432.1,88,196.5,1 973,-1,491.3,238.9,68.2,187.8,1 973,-1,1161.2,106.1,64.4,166.7,1 973,-1,1471,153.1,66,164.3,1 973,-1,1652.8,126.1,59.1,172.1,1 973,-1,1575.8,590.2,102.3,235.6,1 973,-1,928.8,322.4,68.7,212.7,1 973,-1,229.5,137.3,56.2,163.2,1 973,-1,329.8,249.2,62.9,201.3,1 973,-1,751.4,71.9,55.6,163.3,1 973,-1,846.3,337,66.6,211,1 973,-1,333,805.8,92.9,275.2,1 973,-1,1720.3,455.4,79.3,209.4,1 973,-1,550.4,119,52.7,169.6,1 973,-1,390.6,422.4,68.9,220.5,1 973,-1,448.2,68,55.2,178.9,1 973,-1,1396.4,2.5,46,97.6,1 973,-1,1738.6,674.1,97.9,251.5,1 973,-1,1205,704.9,92,270.5,1 973,-1,1454.1,1,60.9,102.1,1 973,-1,289.9,128.5,54,170.9,1 973,-1,314.1,1,46.7,129.8,1 973,-1,380.7,1,53.8,126.3,0.999 973,-1,484.7,60.4,55.8,157.8,0.999 973,-1,340.2,166.1,65.2,177.1,0.951 873,-1,1222.2,29.6,61.5,118.4,1 873,-1,686.8,206.2,79.7,112.7,1 873,-1,479.8,1,48.6,125.2,1 873,-1,794.7,138.4,77.6,175,1 873,-1,1478.3,80,59.7,155.4,1 873,-1,278.1,635,86.5,257.7,1 873,-1,335.7,314.3,82.5,178.8,1 873,-1,1086.4,3,57.4,138.5,1 873,-1,1575.2,589.5,103.4,236.3,1 873,-1,1689.8,47,55,165.6,1 873,-1,1722.5,454.4,76.7,212,1 873,-1,557.8,117.2,59.3,175.9,1 873,-1,300.3,161.6,70.7,195.4,1 873,-1,477.2,161.4,61.9,187.4,1 873,-1,901,483,70.8,233.6,1 873,-1,1579,24.1,51.5,147.2,1 873,-1,987,469.5,73.9,233.6,1 873,-1,753.3,71.4,54.3,163,1 873,-1,1418.1,11.6,50.8,154.5,1 873,-1,239,132.7,52.9,166.5,1 873,-1,253.5,1.3,54.3,121.3,1 873,-1,411.8,159.2,57.9,174.7,1 873,-1,430.4,306.9,55.8,200.7,1 967,-1,685.7,206.4,81,113.1,1 967,-1,1153.6,95,66.4,169,1 967,-1,792.8,140.8,73.7,172.7,1 967,-1,1221.8,30.5,61.4,120.4,1 967,-1,1768.9,150.3,69.5,188.7,1 967,-1,1649.3,120.2,58,170.7,1 967,-1,927.3,328.4,72.4,216.9,1 967,-1,1574.5,589.7,103.7,236.9,1 967,-1,1721.3,456.4,78.1,208.3,1 967,-1,328.7,797.7,91.4,270.2,1 967,-1,489.6,231.9,65.1,181.1,1 967,-1,751.7,72.9,55.7,162.3,1 967,-1,230.1,137.3,55.4,163.3,1 967,-1,415.5,247.2,72.3,197.6,1 967,-1,1472.6,152,65.8,163.6,1 967,-1,443.4,72.3,55.7,178.9,1 967,-1,1215.1,723.2,91.7,265.8,1 967,-1,1401.4,1.8,47.4,103.2,1 967,-1,332.6,244.9,64,192.5,1 967,-1,848.1,343.2,65.6,203.4,1 967,-1,309.5,426.4,89.4,200.5,1 967,-1,1457.7,1,64.4,102.7,1 967,-1,550.2,119,53.6,169.7,1 967,-1,390.8,415.2,66.4,215.3,1 967,-1,1741.5,673.2,94,251.5,1 967,-1,290.2,126.1,54.2,170.3,1 967,-1,313.6,1,48,129.8,1 967,-1,483.9,51.1,55.2,161,1 967,-1,381.7,1,53.3,125.1,0.986 967,-1,432.9,4.9,53.7,145,0.618 705,-1,1221.6,30.2,61.6,117.6,1 705,-1,686.7,206.5,80.2,112.7,1 705,-1,1482,6.6,58,147.1,1 705,-1,562.3,108.1,54.4,181.1,1 705,-1,1711.3,456.6,97.7,208.2,1 705,-1,1604.2,137.2,66.7,183.2,1 705,-1,1475.7,129.9,51.4,174.2,1 705,-1,412.4,155.5,76.5,164,1 705,-1,294.7,383.8,76.2,217.5,1 705,-1,474.3,22.1,45,140.5,1 705,-1,1573.1,587.5,99,235.7,1 705,-1,1219.1,818.2,91.4,258.2,1 705,-1,484.5,141.8,46.9,180.4,1 705,-1,802.5,138.6,47.4,174.8,1 705,-1,1305.6,784.9,87.7,266.4,1 705,-1,387.1,546.1,68,242.5,1 705,-1,359.6,109.8,50.5,172.5,1 705,-1,749.9,81,50,155.4,1 705,-1,257.9,198.2,58.5,197.2,1 705,-1,1005.6,1,66.8,89.1,1 705,-1,304.8,208.7,59.2,180.8,1 705,-1,409.4,27.6,58.3,161.6,1 705,-1,229.1,133.7,51.1,163.2,1 705,-1,844.6,932.6,72.4,148.4,0.517 534,-1,1221.8,30.4,61.7,120.1,1 534,-1,1486.2,1,58.5,141.4,1 534,-1,687.9,206.1,77.1,114.5,1 534,-1,780.5,144.2,58,174.5,1 534,-1,386.2,203.6,63.7,189.2,1 534,-1,288.4,126.4,54.1,169.5,1 534,-1,992,1.2,54.2,109.3,1 534,-1,1717.9,457.3,82.4,210,1 534,-1,171.2,311.7,68.2,194.8,1 534,-1,1694.3,301.4,73.4,200.4,1 534,-1,1767.4,220.9,73.8,174,1 534,-1,463.4,114.4,63.4,186.9,1 534,-1,1583.6,591.8,67.2,244.1,1 534,-1,1663.3,8.6,54.4,164.2,1 534,-1,1604,1,55.3,166.8,1 534,-1,808.2,603.8,77.5,255.8,1 534,-1,880.2,1.8,52.8,114,1 534,-1,217.4,138,63.1,161.6,1 534,-1,517.9,103.3,61.8,175.6,1 534,-1,264,834.4,80.2,246.6,1 534,-1,928.8,1,56.8,109.3,1 534,-1,965.1,742.1,126.6,256.7,1 534,-1,403.7,38.5,49.8,161.8,1 534,-1,192.3,800.1,97.4,275.3,1 534,-1,449.3,1,68.6,168.7,0.999 534,-1,1796.3,671.5,60.6,202.6,0.661 534,-1,1588.5,284.9,55.5,195.9,0.637 534,-1,1874.5,222.4,46.5,214.6,0.324 461,-1,1222,30.7,61.6,118.6,1 461,-1,687,205.4,78.5,114.3,1 461,-1,936.5,1,57.8,148.7,1 461,-1,449.9,192,67.4,199.4,1 461,-1,1732.6,164.5,59.1,164.2,1 461,-1,1008.5,2.2,53.3,156.4,1 461,-1,871.5,1,56.8,134.9,1 461,-1,359.5,107.8,53.9,179.2,1 461,-1,1704.4,459.5,95,206.5,1 461,-1,116.3,349.1,55.5,190,1 461,-1,242.7,671.2,99.5,265.2,1 461,-1,1823.1,377,78.7,211.5,1 461,-1,1507.8,1.8,56.3,110.4,1 461,-1,1543.5,610.8,76.7,242.5,1 461,-1,271.3,214.9,50,171.9,1 461,-1,520.9,77.6,57.1,171.8,1 461,-1,1654.3,357.7,65,194.9,1 461,-1,803.3,149.7,45.4,173.4,1 461,-1,889.4,605.8,114.6,249.4,1 461,-1,218,137.9,60.9,159.3,1 461,-1,339.3,703.8,72.2,254,1 461,-1,1681,56.5,69.7,174.6,1 461,-1,284.6,126.5,54.4,171.3,1 461,-1,807.6,580.5,85.1,251.8,1 461,-1,1455.4,553.5,80.6,206.6,1 461,-1,753.4,95.3,53.6,145.5,1 461,-1,979.3,626.8,92.4,225.4,0.999 461,-1,444.9,43.2,69.8,187.6,0.999 461,-1,418.1,1.7,42.9,158.5,0.998 461,-1,712.9,93.7,52.8,166.2,0.997 461,-1,1028.6,922.1,83.2,158.9,0.997 273,-1,1222.3,31.8,61.3,117.4,1 273,-1,687.4,206.7,78.1,111.1,1 273,-1,386.7,12.9,61.5,161.7,1 273,-1,1639.6,21.4,59.4,152.7,1 273,-1,289.9,129.8,54.9,170.5,1 273,-1,455.7,152.9,74.5,208.1,1 273,-1,940.8,87.2,69.9,183.7,1 273,-1,1039.5,101.6,63,185.3,1 273,-1,355,107.7,53.2,177.6,1 273,-1,1112.5,96.4,57.4,168.2,1 273,-1,108.3,349,50.5,190.7,1 273,-1,188.2,573.5,88.2,252,1 273,-1,1721.4,456.5,77.3,212.7,1 273,-1,219.7,128.9,54.2,164.1,1 273,-1,795.8,151.3,61.8,172.1,1 273,-1,704.3,1.5,53.9,157.1,1 273,-1,386,467.1,85.5,230.6,1 273,-1,1473,40.7,54.7,153.3,1 273,-1,232.1,432.4,61.5,200.1,1 273,-1,262,776.3,88.3,273.3,1 273,-1,721.6,337.3,69.3,185.7,1 273,-1,1421.4,570.9,99.7,249.6,1 273,-1,806.6,367.8,88.9,214.1,1 273,-1,875.9,381.5,78.6,192.6,1 273,-1,565.1,404.9,63.5,212.7,1 273,-1,753,102.1,46.4,172,1 273,-1,862.2,109.1,43,156.3,1 273,-1,513.8,114.6,52.1,175.7,1 273,-1,473.6,395.6,73,223,1 273,-1,945.3,919,82,162,0.945 921,-1,1221.5,30.5,61.8,118.5,1 921,-1,686.2,206.4,80.4,113,1 921,-1,793.6,141.2,75.1,171.3,1 921,-1,1121.6,39.8,58.2,164.1,1 921,-1,308.6,712,88,256.2,1 921,-1,1287.5,835.1,95.8,245.9,1 921,-1,1611.6,73.3,52.4,161.6,1 921,-1,459.8,203.3,68.1,196.9,1 921,-1,1574.9,589.9,103.1,235.1,1 921,-1,1721.9,451.6,78.4,216.6,1 921,-1,1476,107.3,63.5,163.3,1 921,-1,557.2,116.4,58.4,171.7,1 921,-1,328,372,79.9,193.5,1 921,-1,300.9,161.8,71.2,200,1 921,-1,751.4,73.9,55.5,159.4,1 921,-1,952.5,392,73.8,229,1 921,-1,865.4,414.6,65.5,215,1 921,-1,1431.3,2.8,46.7,129.9,1 921,-1,408.5,357.1,59,211.1,1 921,-1,1492.7,1,61,127.8,1 921,-1,1748.9,678.8,94,243.6,1 921,-1,240.2,133,54.7,165.3,1 921,-1,1727.9,96.5,51.9,175.1,1 921,-1,373.4,209,57.3,175.4,1 921,-1,470.5,18.2,52.1,151.3,1 921,-1,253.6,2,53.8,120.4,1 921,-1,424.8,67.2,61.9,176.5,1 921,-1,313,1.6,47.2,132.6,1 897,-1,1221,29.9,62.1,118.8,1 897,-1,686.8,205.7,79.5,114.9,1 897,-1,478.9,186.7,63.8,184.6,1 897,-1,793.9,140.3,74.6,172,1 897,-1,297.9,667.7,91.4,255.9,1 897,-1,1486.1,102.9,57,148.7,1 897,-1,1427.2,1,51.4,148.6,1 897,-1,1107.9,18.1,54.1,157.9,1 897,-1,1721.7,454.2,77.6,212.4,1 897,-1,1574.3,590.4,103.1,234.4,1 897,-1,559.3,117,58.7,174.3,1 897,-1,338.4,348.5,78.7,185.3,1 897,-1,1595.2,47.4,50.6,158.7,1 897,-1,964.9,437.4,87.9,224.7,1 897,-1,421.5,331.3,55.7,203.6,1 897,-1,1708.9,73.3,54.8,172.6,1 897,-1,753.6,72.8,54,161.3,1 897,-1,468.3,3.2,51.9,150.1,1 897,-1,303,161.4,67,190.9,1 897,-1,882,451.1,66.2,227.6,1 897,-1,394.7,186.2,60.5,177.6,1 897,-1,1747.8,679.3,89.6,235.4,1 897,-1,254.1,1,53.1,119.4,1 897,-1,241.8,132.9,57.2,170.8,1 897,-1,313.7,1,48.5,129.6,1 897,-1,1499.2,1,60.2,145.7,1 897,-1,416.8,56.8,55.3,178.9,1 897,-1,1330.5,910.8,95.7,170.2,0.999 666,-1,1220.8,29.6,61.8,119.1,1 666,-1,687.1,206,79.5,113.1,1 666,-1,1480.8,5.1,61.1,142.4,1 666,-1,1711,457.6,97.5,206.7,1 666,-1,360.4,113.5,49.2,167.1,1 666,-1,802.4,143.8,63.5,172.8,1 666,-1,1128,1,67.4,111.1,1 666,-1,558.9,111.3,52.7,176.7,1 666,-1,480.2,115.3,45,174.3,1 666,-1,1574.5,587.2,98.1,236.3,1 666,-1,319,339.7,71.4,206.2,1 666,-1,1618.8,164.8,77.1,185.5,1 666,-1,224.4,209,60.6,201.7,1 666,-1,750.8,79.7,47.2,156.5,1 666,-1,409.6,1.4,55.2,155.3,1 666,-1,419.2,122.5,70.4,161.3,1 666,-1,1494.9,164,56.1,175.5,1 666,-1,278,225.8,56.8,184.2,1 666,-1,423.9,525.1,78.3,254.8,1 666,-1,1407.9,887.6,104.9,193.4,1 666,-1,1334.1,907.6,81.6,173.4,1 666,-1,288.2,122.1,52.2,172.1,0.999 666,-1,354,4,53.2,150.9,0.999 666,-1,867.7,929.1,71.1,151.9,0.14 666,-1,299.6,5.6,46.4,128.2,0.078 48,-1,396.1,358.9,85.7,235.6,1 48,-1,686.8,206.1,78.2,114.2,1 48,-1,1219.2,29.5,65.8,115.1,1 48,-1,1487.4,70.1,54.9,149.2,1 48,-1,490.7,174.5,89.6,197.4,1 48,-1,1361.8,566.8,104.2,246,1 48,-1,704.6,1,55.7,156.6,1 48,-1,1722.4,455.9,75.6,211.8,1 48,-1,354.9,108.1,54.4,175.1,1 48,-1,897.4,199.5,67,175.3,1 48,-1,166.4,363.9,66,194.7,1 48,-1,213.9,125,49.3,168.7,1 48,-1,283.7,125.5,54.5,170.2,1 48,-1,102,547.6,85.9,251.6,1 48,-1,1007.5,163.2,78.9,190.6,1 48,-1,794.8,148.3,61.6,177,1 48,-1,3.8,785,67.8,244.1,1 48,-1,418.3,95.7,55,148.7,1 48,-1,1853.1,271.3,67.9,193.3,1 48,-1,1328.1,177.9,53.9,165.7,1 48,-1,486.5,44.5,56.4,156.1,1 48,-1,859.8,151.7,59.5,180.3,1 48,-1,1485.9,215.2,61.3,200.4,0.999 48,-1,1380,223.4,43.9,164.9,0.999 48,-1,541.1,63.8,43.8,170.3,0.998 48,-1,440.6,42.5,52.3,168.7,0.977 495,-1,1221.4,30.8,62,117.9,1 495,-1,686.2,206.1,79.7,113.4,1 495,-1,1497.5,1,58.2,127.3,1 495,-1,1733.9,187.5,70.8,175,1 495,-1,999.1,1,54.8,133.6,1 495,-1,1816.9,174.4,77.1,184.6,1 495,-1,930.5,1.1,56.6,132.1,1 495,-1,875.8,1,52.9,127.1,1 495,-1,808,605.1,89.9,258.5,1 495,-1,799.2,141.9,54.5,175.9,1 495,-1,1714.2,458.5,86.8,206.5,1 495,-1,463.8,150.8,64.6,199.7,1 495,-1,1631.9,596.8,76.9,214,1 495,-1,139.2,335.3,66.2,191.7,1 495,-1,213.8,729.5,97.9,273.1,1 495,-1,406.6,163,63.7,187.5,1 495,-1,300.2,766.8,77.7,261.7,1 495,-1,1689.7,42.9,54.6,164.5,1 495,-1,1540.5,599.7,88.9,240.5,1 495,-1,217.3,135.5,63.5,164.1,1 495,-1,312.9,190.9,48.9,167.8,1 495,-1,922.5,664,111.5,253.8,1 495,-1,1628.7,30.1,59.1,173.5,1 495,-1,1756.6,343.8,77.2,216.8,1 495,-1,1625.2,327.1,62.6,189.8,1 495,-1,715.8,92.4,59.1,164.7,1 495,-1,449.7,19.1,73.4,177.5,1 495,-1,360.9,109.8,53.2,176.6,1 495,-1,505.1,95.3,61.9,169.7,1 495,-1,404.7,15.2,46.5,160.9,1 495,-1,286.4,126.4,53,168.1,0.999 495,-1,1012.2,685.6,80.2,227.6,0.999 495,-1,749.4,97.2,46.5,144.9,0.504 495,-1,1019.5,937.1,86.3,143.9,0.075 876,-1,1221.8,29.9,61.3,118.2,1 876,-1,687,206,79.2,113.4,1 876,-1,477.5,1,48.9,128.5,1 876,-1,1086.4,2.7,61.5,146.7,1 876,-1,1479,82.5,60.7,158,1 876,-1,794.9,138.2,75.9,175.4,1 876,-1,1722.4,454,78.1,213.3,1 876,-1,283.1,639,84.4,259,1 876,-1,1574.6,589.7,104.2,235.6,1 876,-1,335.9,315.4,80,182.9,1 876,-1,559.2,117.3,58.9,176.7,1 876,-1,898.5,481.9,70.6,231.5,1 876,-1,300.1,162.7,70.4,192.7,1 876,-1,479.1,167.4,62.2,182.6,1 876,-1,1693.2,48.6,52.1,168.9,1 876,-1,753,70.3,55.2,164,1 876,-1,1576,29.3,56.6,152.4,1 876,-1,1420.1,8.4,50.4,153.6,1 876,-1,985.6,465.2,71,234.6,1 876,-1,408.9,162.1,58,175.2,1 876,-1,253.1,1.3,55.2,122,1 876,-1,430,306.7,55.3,203,1 876,-1,240,132.2,51.4,165.8,1 876,-1,1765.2,689.6,97.8,229.6,0.89 655,-1,687.2,206.5,79.3,112.7,1 655,-1,1481,3.3,60.4,145.9,1 655,-1,547.6,111.7,62.5,174.1,1 655,-1,1161.8,1,69.4,122.6,1 655,-1,1710.3,456.2,98,208.9,1 655,-1,801.6,144.4,65.2,173.6,1 655,-1,1222.2,27.7,62.3,124.1,1 655,-1,359,113.8,51.3,170.2,1 655,-1,330.9,331.8,69,206.9,1 655,-1,1614,171.6,72.7,187.1,1 655,-1,1576.2,589.2,96,236.6,1 655,-1,448.8,533.5,84.6,246.3,1 655,-1,751.6,79.6,46.4,156.3,1 655,-1,271.1,236.9,60,178.9,1 655,-1,410,1,58.2,156.9,1 655,-1,218.7,219.2,56.5,203.5,1 655,-1,471.2,105.2,47.5,175.9,1 655,-1,425.7,118.7,54.9,161.2,1 655,-1,288.4,125.5,51.9,169.3,0.999 655,-1,1442.6,910.9,88.1,170.1,0.995 655,-1,353.1,1,53.3,144.3,0.992 655,-1,1363.2,935,85.2,146,0.671 655,-1,893.7,930.2,70.6,150.8,0.054 694,-1,1221.5,30.3,62.1,117.6,1 694,-1,687,206.4,79.6,113.1,1 694,-1,1481.6,6.9,59.1,145.3,1 694,-1,377.5,534.7,82.8,250.5,1 694,-1,563.1,111.2,52.7,179.4,1 694,-1,1710.3,456.8,98.4,208.2,1 694,-1,1483.7,132.6,54.4,181.8,1 694,-1,1609.2,140.9,69.5,183.3,1 694,-1,1575.6,589.1,95.4,233.8,1 694,-1,802.7,145,52.4,173.4,1 694,-1,422.4,150,62,164.2,1 694,-1,487.4,135.5,49.5,183.2,1 694,-1,749.7,79.9,50.6,155.5,1 694,-1,407.1,19.8,57.2,166.7,1 694,-1,304.4,377.5,71.2,212.4,1 694,-1,1038.5,2,65.9,93.8,1 694,-1,360.1,114.4,50.2,172.4,1 694,-1,251.1,200.3,60,197.7,1 694,-1,1320.2,816.9,102.3,264.1,1 694,-1,225.5,134.9,54.1,161.6,1 694,-1,479.7,30.1,47.2,137.1,1 694,-1,300.7,211.8,59.1,181.3,1 694,-1,1248,840.2,85.3,240.8,1 694,-1,824.9,924.5,80.3,156.5,0.622 271,-1,1222.1,31.3,61.4,118.3,1 271,-1,384.1,11.2,60.1,159.7,1 271,-1,687.7,206.7,77.9,111.8,1 271,-1,290.9,129.4,55.2,170.7,1 271,-1,1636.6,19.7,60.9,153.4,1 271,-1,456.4,154.4,73.5,210.2,1 271,-1,380.5,474.5,89.8,229.5,1 271,-1,1116.8,97.5,56.8,170.1,1 271,-1,940.9,90.1,70.3,181.7,1 271,-1,354.9,105.7,53.6,179.9,1 271,-1,219.5,128.6,54.7,163.5,1 271,-1,796.9,151,59.3,172.1,1 271,-1,108.2,350.7,50.5,189.2,1 271,-1,711.8,332.3,72.1,195,1 271,-1,704.2,1.6,54.7,156.3,1 271,-1,1042.5,102.5,62.6,186.2,1 271,-1,1721.6,456.6,77.2,213,1 271,-1,1474.4,42.8,54.3,151.8,1 271,-1,185,570.6,86,254.6,1 271,-1,1415.2,568,100.3,249.7,1 271,-1,233.2,433.6,60.6,199.3,1 271,-1,806.3,365.3,86.8,216.9,1 271,-1,255,774.7,91.1,269,1 271,-1,874.8,377.8,76.6,196.2,1 271,-1,564.6,404.4,64.7,211.3,1 271,-1,754.3,102.5,47.1,170.6,1 271,-1,513.1,115.9,52.8,174.2,1 271,-1,475.8,397.8,72.5,220.2,1 271,-1,865.5,108.8,42.8,153,0.999 271,-1,943.4,918.8,83.9,162.2,0.968 596,-1,1221.6,30.7,60.7,118.9,1 596,-1,687.4,206,78.5,113.4,1 596,-1,1480.6,3.7,60.9,144.5,1 596,-1,800.8,143.2,64.4,175.5,1 596,-1,232.8,268.8,62.8,185.8,1 596,-1,367.1,261.8,66.2,203.1,1 596,-1,1633,1,54.3,116.7,1 596,-1,1716.7,457,84.9,209.6,1 596,-1,358.9,110,53.1,174.9,1 596,-1,562.8,113.1,48.8,174.1,1 596,-1,1654.4,230.1,73.3,200.6,1 596,-1,164.4,248.3,60.2,205.3,1 596,-1,1574.7,589.5,93.8,230.3,1 596,-1,287.7,126.9,52,170.9,1 596,-1,429.3,66.7,50.6,174.5,1 596,-1,753.3,81.2,44.3,153.4,1 596,-1,479.8,104.3,50.2,159.1,1 596,-1,215.9,138,55.7,161.2,1 596,-1,1074.6,857.1,118.4,223.9,0.999 596,-1,1164.5,870.3,84.3,210.7,0.983 596,-1,1869.6,272.4,51.4,180.2,0.944 596,-1,307.2,907.4,109.6,173.6,0.12 90,-1,1222,30.4,61.7,115.6,1 90,-1,355.9,107.7,55.8,176.8,1 90,-1,703.9,1.6,56.3,157.5,1 90,-1,420.2,311.3,81.1,230.1,1 90,-1,1487.5,69.9,54.6,146,1 90,-1,968.9,194,74.6,188.5,1 90,-1,399.1,860.9,105.2,220.1,1 90,-1,1359.4,565.1,104.7,247.9,1 90,-1,1212.7,155.1,57.7,182.1,1 90,-1,1721.1,457.9,77.7,207.8,1 90,-1,730.4,188.1,71,176.7,1 90,-1,501.7,211.7,72.8,200.5,1 90,-1,102.3,548.1,85.6,251.1,1 90,-1,210.3,131.5,50.3,163.5,1 90,-1,294.9,126.6,52.6,169.5,1 90,-1,24.4,706.6,68.3,226.7,1 90,-1,1301.1,203.3,44,168,1 90,-1,1413.9,196.8,59.5,190.3,1 90,-1,437,13.7,53.1,158.5,1 90,-1,538.9,64,48.1,167,1 90,-1,376.2,19.7,53,157,1 90,-1,1469.5,190.5,56.5,174,1 90,-1,870.7,203.4,56.8,168.5,1 90,-1,122.1,354.3,46.4,191.6,1 90,-1,255.4,93,60.2,180.9,1 90,-1,482.6,131.4,54,163.2,0.999 90,-1,830.3,188.1,61.3,175.4,0.998 90,-1,795.6,155.6,58.9,172.3,0.985 90,-1,485.6,40.5,55.4,165.5,0.883 211,-1,1221.5,30.9,62.2,118.1,1 211,-1,686.9,207.2,78.9,113.6,1 211,-1,212,126.6,55.4,166.8,1 211,-1,704.6,1.1,55.9,160.3,1 211,-1,398.5,583,88.5,247,1 211,-1,356.4,109.9,52.6,174.8,1 211,-1,1492.4,70.4,53.4,146.8,1 211,-1,288.1,126.8,56,172.3,1 211,-1,108.9,351,50.4,184.7,1 211,-1,1720.3,456.4,79.1,211.5,1 211,-1,1356.2,566.8,105.8,245.8,1 211,-1,1204.6,141.9,48.9,163.2,1 211,-1,522.5,126.7,50.1,172.5,1 211,-1,426,203,75,213.9,1 211,-1,95.5,659.3,105,247.1,1 211,-1,504.7,322.8,75.4,215.2,1 211,-1,795.5,152.1,59,170.5,1 211,-1,1138.3,137.3,58.5,183.4,1 211,-1,1015.9,134.2,46.8,156.5,1 211,-1,899.4,145.8,68.4,192.5,1 211,-1,225.9,520.7,61.2,205.7,1 211,-1,1,614.9,111.5,240.4,1 211,-1,809.1,316.7,75.7,189.8,1 211,-1,562.9,265.6,56.2,177.8,1 211,-1,853,107.5,56.1,175.1,1 211,-1,757.2,301.4,72.6,202.5,0.999 211,-1,377.9,38.7,54.1,161.7,0.991 211,-1,950.8,912.8,76.6,168.2,0.99 211,-1,477.5,6.6,38.1,72.3,0.104 849,-1,1221.1,30.2,62.8,118,1 849,-1,687.4,206,78.9,113.5,1 849,-1,794.9,139.3,79.3,174.5,1 849,-1,1070.4,1,60,116.5,1 849,-1,1574.8,590.1,103.6,235.2,1 849,-1,559.2,115.3,60.2,176.9,1 849,-1,1721.7,452.7,78.1,213.9,1 849,-1,1470.8,62.1,60.1,156,1 849,-1,752.9,71.7,55.1,161.2,1 849,-1,265.3,596.2,82.2,243.5,1 849,-1,297.2,160.7,72.2,197.4,1 849,-1,1659.7,28.2,52.6,159.6,1 849,-1,1413.3,29.5,54.7,155.4,1 849,-1,352.4,291,73.5,183,1 849,-1,931,530.4,70.6,235.7,1 849,-1,239.9,132.5,53.1,165.9,1 849,-1,252.5,1,54.7,120.5,1 849,-1,435.4,276.3,53.7,195.4,1 849,-1,472.5,140.2,60,180.8,1 849,-1,1014.3,506.1,72.9,238.7,1 849,-1,416.8,139.1,61.5,169.7,1 849,-1,492.9,1,47.2,109.6,1 832,-1,1221.1,29.2,62.5,119.3,1 832,-1,686.9,205.8,79.1,113.8,1 832,-1,791.1,136.3,69.1,177.7,1 832,-1,272.5,569.8,81.9,244.9,1 832,-1,1640.7,7.4,59.6,157.7,1 832,-1,558.8,114.9,61.1,175.9,1 832,-1,1034.9,541.1,88.2,236.2,1 832,-1,1722.9,452.7,75.5,214.4,1 832,-1,1475.7,48.1,58.3,155.2,1 832,-1,1575.6,589.5,101.8,235.2,1 832,-1,752.3,71.8,56.4,163.5,1 832,-1,292.8,162.1,68.2,200.5,1 832,-1,358.2,274.1,86.1,182.4,1 832,-1,1423,40.7,49.2,155.3,1 832,-1,955.6,562.1,71.7,234.9,1 832,-1,239.4,134.5,51,161.8,1 832,-1,474.8,124.4,60,179.8,1 832,-1,437.7,259.8,55.7,195.8,1 832,-1,422.8,122.8,56.4,175.9,1 832,-1,253.8,1,53.2,121.5,1 832,-1,354,169.1,39.6,175.2,0.71 767,-1,1221.5,29.4,62,119.3,1 767,-1,687.2,205.1,78.4,115.2,1 767,-1,543.9,116.3,65.9,174.6,1 767,-1,781.8,134,64.8,177.4,1 767,-1,1722.1,452.8,76.7,214,1 767,-1,1574.8,590.5,101,235,1 767,-1,298.4,472.2,78.1,227.5,1 767,-1,273.6,177.1,56.7,194.5,1 767,-1,396.6,211.4,69.3,174.1,1 767,-1,1452.8,79.7,54.8,168.9,1 767,-1,328.8,191.8,57.6,178.4,1 767,-1,456.1,197.3,52.7,187.9,1 767,-1,1493.5,17.6,60.4,147.1,1 767,-1,751.2,79.2,51.3,155.8,1 767,-1,1074.2,678.1,81.4,254.8,1 767,-1,256.5,1.2,50.9,122.3,1 767,-1,233.9,136,50.3,161.8,1 767,-1,463,70.4,60.5,169.4,1 767,-1,520.1,570.1,92.8,248,1 767,-1,1574.6,82.3,64.3,174.7,1 767,-1,1138.4,653.4,95.1,261.9,1 767,-1,405.1,70,57.1,168.6,0.999 767,-1,358.4,109.8,53.3,174.3,0.999 917,-1,1221.9,29.6,61.8,119.6,1 917,-1,686.5,206,79.9,113.1,1 917,-1,794.2,141.4,75.6,170.8,1 917,-1,1115.8,32.6,61.6,167.5,1 917,-1,1432.8,3.8,47.3,133.1,1 917,-1,1476,107.2,62.5,157.2,1 917,-1,462.7,203.9,68.4,188.3,1 917,-1,557.4,117.2,58.4,171.5,1 917,-1,1575.2,589.3,103.2,236.1,1 917,-1,1606.5,66.9,53.3,162,1 917,-1,1296.4,848.5,95.5,232.5,1 917,-1,305.7,701.5,90.4,267.4,1 917,-1,301,161.4,69.8,200.6,1 917,-1,867.3,418.9,65,224.6,1 917,-1,1721.6,452.4,78.2,215.2,1 917,-1,751.8,75.5,54.9,157.9,1 917,-1,327.3,371.9,83.5,188.6,1 917,-1,1722.1,96,55.2,169.8,1 917,-1,958.8,402.5,68.3,219.5,1 917,-1,241.3,134,54.1,164.3,1 917,-1,410.5,350.9,58,206.5,1 917,-1,376.1,203.5,57.4,174.9,1 917,-1,469.7,16.2,51.9,148.9,1 917,-1,422.6,66.2,61.6,175.7,1 917,-1,1747.6,680.1,95.8,241.5,1 917,-1,1497.7,1.6,59.1,133,1 917,-1,253.9,2,54.2,121.2,1 917,-1,313.3,1.3,48.1,133.2,1 143,-1,1221.7,30.7,61.7,118.2,1 143,-1,1039,135.9,83.3,173.3,1 143,-1,356.9,102.5,54.9,181.8,1 143,-1,1488.3,68.5,55.7,150,1 143,-1,704.2,1,56.1,158.6,1 143,-1,109,351.6,49.2,185,1 143,-1,420.9,263.7,76.1,222.2,1 143,-1,287.9,126.5,55.1,168.8,1 143,-1,1303.8,176.3,58,183.8,1 143,-1,393.5,735.5,95.1,261.6,1 143,-1,1722.2,457.4,77,210,1 143,-1,537.5,64.4,51.2,164.3,1 143,-1,1182.4,168.4,52.1,164.1,1 143,-1,1358.2,566.6,105.8,244.2,1 143,-1,686.6,206.3,79.7,116.2,1 143,-1,871.1,210.5,74,187.1,1 143,-1,218.8,127.8,51.9,162.2,1 143,-1,811.9,248.6,55.7,173,1 143,-1,532,263.7,57.9,200.7,1 143,-1,480.6,185.5,61.8,177.3,1 143,-1,384.2,2.1,45.7,134.4,1 143,-1,99.9,550.3,84.2,243.8,1 143,-1,470.2,37.6,52.8,162.8,1 143,-1,157.1,629.5,77.8,222,1 143,-1,766,234.4,62.3,185.5,1 143,-1,580.7,250.5,57.9,194.1,1 143,-1,1059.1,920.7,78.5,160.3,0.976 343,-1,1221.6,30.8,62.2,119.6,1 343,-1,686.8,205.7,79.3,114.3,1 343,-1,1733.7,75.1,55.8,158.3,1 343,-1,1827.2,493.7,70.8,203.9,1 343,-1,287.1,132.1,53.4,171.8,1 343,-1,446.5,102.9,71.9,197.7,1 343,-1,1445,1,56.5,124.2,1 343,-1,1602.9,1.6,54,131.8,1 343,-1,430.7,573.3,103.5,253,1 343,-1,1720.6,458.1,78.7,212.5,1 343,-1,108,348.9,52.3,190.4,1 343,-1,208.8,141.4,57.3,162.8,1 343,-1,796.3,153.9,59.6,169.4,1 343,-1,519.5,99.3,40.5,169.7,1 343,-1,980.1,408.3,66.1,188.7,1 343,-1,971.1,62.4,63.3,174.8,1 343,-1,364.5,106.5,56.4,180.8,1 343,-1,1036.5,68.4,53.4,163.8,1 343,-1,1547.4,615.8,85.4,242.7,1 343,-1,842.7,450.5,84.2,227.6,1 343,-1,928.1,18.9,62.3,167.9,1 343,-1,901.8,462.7,65.2,205.6,1 343,-1,429.1,359.7,79.6,210.1,1 343,-1,230.5,339.3,56.5,185.3,1 343,-1,714.1,95.5,58.2,171.9,0.999 343,-1,771.7,96,39.6,157,0.996 343,-1,501.6,498.2,63.5,222.5,0.993 343,-1,402.6,475.7,80.1,250.1,0.991 343,-1,947.7,923,74.8,158,0.981 343,-1,1883.3,63.4,37.7,171.2,0.665 343,-1,422.6,55.7,52.2,161.7,0.608 343,-1,846.2,4.2,48.3,85.8,0.064 287,-1,1221.6,31.5,63.3,120,1 287,-1,687,207.4,78.3,112.7,1 287,-1,353.2,111,54.1,176,1 287,-1,456.2,143.8,71,202.6,1 287,-1,939.9,79.6,63.3,176.5,1 287,-1,287.4,130.7,55.1,173.6,1 287,-1,1467.4,29.4,56.8,149,1 287,-1,108,351.1,52.2,189.1,1 287,-1,1720.6,459.4,77.5,209.9,1 287,-1,1095.2,92.6,51.1,163.8,1 287,-1,1663.6,32.7,57.8,153,1 287,-1,400.4,21.6,56.5,165.7,1 287,-1,796.8,148.9,59.6,174.8,1 287,-1,222.5,585.2,88.9,245.5,1 287,-1,1019.7,95.6,60.9,184.7,1 287,-1,704.2,1,54.6,157.5,1 287,-1,233.5,415.3,61.6,193.5,1 287,-1,387.9,448.7,84.9,225.6,1 287,-1,1447.2,585.5,92.7,238.3,1 287,-1,222.3,130.2,53.8,163.4,1 287,-1,515.5,107.9,51.8,176.8,1 287,-1,285.9,805,96.8,276,1 287,-1,546.3,428.7,69.4,209.7,1 287,-1,749,104,47.6,166,1 287,-1,882.8,395.7,79.6,203.7,1 287,-1,811.7,383.2,93.1,218.6,1 287,-1,835.7,106.9,54.6,161.9,1 287,-1,464.2,409.9,66.2,231,1 287,-1,778,350.2,64.7,179.1,0.999 287,-1,942.4,920.8,83.5,160.2,0.846 15,-1,687.2,206.4,78.9,113.4,1 15,-1,497.8,149.9,106.6,189.5,1 15,-1,1487,69.7,55.7,148.9,1 15,-1,1361.8,566.6,104.9,246,1 15,-1,1725.3,457.5,76.7,209.6,1 15,-1,704.4,2.1,56.3,156.6,1 15,-1,1203.6,34.7,73.2,118.1,1 15,-1,795.3,149.4,60.7,174.3,1 15,-1,1038.5,207.9,78,177.2,1 15,-1,380,392.3,86.2,236.3,1 15,-1,102.3,548,85.3,249.8,1 15,-1,355.5,105.4,54.6,178.2,1 15,-1,217.8,123.8,48.1,169.3,1 15,-1,1807.7,225.1,64.3,182.5,1 15,-1,286,121.9,54.2,174.3,1 15,-1,1618.9,250.3,62.7,186.3,1 15,-1,876.9,130.6,61.2,182.8,1 15,-1,209.2,382.3,64.6,194.4,1 15,-1,417.2,88.6,53.2,162.7,1 15,-1,461,70.9,51.6,172,1 15,-1,1434.5,240.2,50.8,174.2,0.999 15,-1,1396.6,188.3,50.2,175.9,0.998 15,-1,1040,1,48.4,66.9,0.574 15,-1,1,849.3,42.8,231.7,0.431 15,-1,252.5,368.2,46.7,188.4,0.179 15,-1,916,138,47.2,164.4,0.059 9,-1,687.2,205.7,79,114.2,1 9,-1,1057.3,209,89.4,181.2,1 9,-1,1486.4,70,56,148.3,1 9,-1,504.2,144.3,105.6,190.8,1 9,-1,1362.2,567.9,105.1,243.6,1 9,-1,704.4,1.2,56.9,157.4,1 9,-1,1199.9,38.1,75,113.4,1 9,-1,1801.2,209.3,64.6,187.9,1 9,-1,377.6,402.5,84.5,241,1 9,-1,1726,457.5,77.6,207.4,1 9,-1,102.5,546.9,84.9,251.3,1 9,-1,795.9,147.7,61.7,174.9,1 9,-1,218.4,128.3,49.4,165.8,1 9,-1,355.9,107,53.2,176.3,1 9,-1,284.8,119.5,55.8,177.2,1 9,-1,877.5,128.7,63.8,178.1,1 9,-1,216,386.9,65.3,202.6,1 9,-1,415.4,89.7,55.7,168.9,1 9,-1,462.3,72.9,51.4,172.8,1 9,-1,1628.5,257.7,60.7,183.5,1 9,-1,1038.3,1,47.7,80.2,0.999 9,-1,1441.8,243.7,50.3,171.1,0.999 9,-1,1408.3,188,46.1,179.8,0.982 528,-1,1221.5,30.3,62.3,120.4,1 528,-1,1486.1,1,58.9,142.6,1 528,-1,687.3,206.4,77.4,114.4,1 528,-1,388,198,62.5,185.9,1 528,-1,1718.7,458.1,82,208.7,1 528,-1,993.1,1.3,56,114.8,1 528,-1,1671.3,15.8,52.7,161.2,1 528,-1,167.5,319.4,66.7,193.5,1 528,-1,781.9,145.4,55.4,173.8,1 528,-1,288,124.8,53.5,172.6,1 528,-1,465.8,118.5,62.7,189.5,1 528,-1,883.5,1,53.4,116.5,1 528,-1,191.9,783,94,289.8,1 528,-1,1701.9,302.6,80.4,212.9,1 528,-1,928.7,1,56.8,112.5,1 528,-1,1765.4,215.1,67.3,169.5,1 528,-1,1606.8,3.1,57,171.8,1 528,-1,268.2,832.5,79.7,248.5,1 528,-1,1577,590.1,66.5,246.8,1 528,-1,218.4,135.6,60.3,159.7,1 528,-1,817.9,600.6,73.7,259.2,1 528,-1,516.2,101,58.9,181,1 528,-1,451.1,2.6,70.2,165.8,1 528,-1,958.3,725.6,120.6,252.3,1 528,-1,1779.9,654.1,65.7,220.2,1 528,-1,401,34.9,47.8,160.9,0.999 528,-1,1594.4,287.3,58.5,193.5,0.999 528,-1,750.4,88,56,169,0.995 528,-1,1869.7,221.1,51.3,204.3,0.969 528,-1,1047.6,748,80.4,240.5,0.498 528,-1,1045,939.8,70.2,141.2,0.165 528,-1,361,169.8,48.4,152.7,0.066 362,-1,1222,30.7,61,119.4,1 362,-1,687.1,206.3,78.9,113,1 362,-1,1433.9,3.6,50.3,101.9,1 362,-1,1621,1,68,160.5,1 362,-1,1025.7,59,54.8,166.6,1 362,-1,1037.7,433.9,69.3,195.2,1 362,-1,1841.1,61.6,58.2,167.5,1 362,-1,207.9,141.6,59.6,161,1 362,-1,1755.2,92.7,61.3,161.5,1 362,-1,430.5,326.5,82.6,211.9,1 362,-1,512.4,92.5,46.7,164.7,1 362,-1,441.9,84.8,72.6,201.3,1 362,-1,1719.7,456.3,79.3,212.8,1 362,-1,835.3,1,53.5,102.8,1 362,-1,1816.3,468.5,68.5,206.2,1 362,-1,109.9,351.8,52.1,187.4,1 362,-1,796,149.9,60.4,174.6,1 362,-1,958,53,61,171.8,1 362,-1,286.7,129.8,54.5,171,1 362,-1,378.5,512.7,82.8,239.6,1 362,-1,220,318.6,55.1,188,1 362,-1,362.6,110.8,54.8,176,1 362,-1,509.4,572.9,104.6,246.1,1 362,-1,1571.6,626.3,84.8,250.3,1 362,-1,907.5,483,86,211.7,1 362,-1,841.7,474.4,87.4,225.5,0.999 362,-1,925,1.5,62.9,158.8,0.998 362,-1,764.2,96.2,41.6,143.8,0.997 362,-1,383.4,1,39.5,85.4,0.994 362,-1,476.1,526.7,69.4,240.7,0.988 362,-1,955.5,922,80,159,0.949 362,-1,497.2,932.6,98.5,148.4,0.544 535,-1,1222,30.3,61.7,120.1,1 535,-1,1486.2,1.3,59,141.5,1 535,-1,687.7,206.1,77.4,114.6,1 535,-1,387.6,204.8,61.5,186.8,1 535,-1,780.6,144.4,59.3,175,1 535,-1,288.5,127.6,54.4,168.5,1 535,-1,992.1,1,55,109.3,1 535,-1,1717.1,457.1,83.1,210.1,1 535,-1,170.9,311.3,69.7,194.1,1 535,-1,1692.6,301.8,72.1,197.8,1 535,-1,462.5,115.4,62.8,181.4,1 535,-1,1768.6,223,74.1,173.9,1 535,-1,1661.9,7.1,53.7,168.2,1 535,-1,805.4,603.4,78.1,254,1 535,-1,880.4,1.9,52.3,113.3,1 535,-1,1584.9,590.6,67.7,243.6,1 535,-1,1602,1,55.8,168.5,1 535,-1,518.5,103.1,61.4,176.8,1 535,-1,264,836.9,80.2,244.1,1 535,-1,217.8,137.8,62.3,160.7,1 535,-1,928.4,1,57,109.1,1 535,-1,405.2,42.3,48.8,155.4,1 535,-1,448.8,1,68.8,168.5,1 535,-1,967.6,745.4,125.7,254.4,0.999 535,-1,191.6,804,99.3,270.8,0.999 535,-1,1588.4,285.8,54.3,195.1,0.419 535,-1,1874.2,228.4,46.8,208.1,0.268 535,-1,1060,763.3,86.9,235.5,0.102 5,-1,687.2,206.2,78.9,113.7,1 5,-1,1074.3,213.8,83.5,180.7,1 5,-1,1487.1,69.5,55.7,147.6,1 5,-1,704.5,1.1,55.9,157.2,1 5,-1,1362.4,567.8,105,244.7,1 5,-1,1729.6,456,78.4,215.9,1 5,-1,507.9,140.9,99.7,188.6,1 5,-1,102,545.4,85.5,255.3,1 5,-1,795.2,148.2,62.3,175.1,1 5,-1,1198.7,38.4,73,113.3,1 5,-1,1795.9,203.5,67,188.2,1 5,-1,285.6,124.4,55.8,170.4,1 5,-1,872.3,127.5,64.7,178,1 5,-1,372.8,407.8,86.2,238.8,1 5,-1,220.3,129.6,49.1,162.7,1 5,-1,355.5,104.8,53.9,178.8,1 5,-1,415.6,91.3,55.5,170.2,1 5,-1,1630.8,259.6,64.4,188.2,1 5,-1,1039.6,1.9,48.2,82.5,1 5,-1,222.5,389.8,65.1,206.6,1 5,-1,463.2,76.8,51.8,172.9,1 5,-1,1444.5,248.8,54.1,173.4,1 5,-1,1035,136,79,185.3,1 5,-1,257.4,366.2,61.5,221.2,0.922 5,-1,1413.8,206.6,46.6,159.6,0.094 418,-1,1222,30,61.8,118.6,1 418,-1,686.3,205.2,79.4,114.8,1 418,-1,1663.6,67.5,73.3,173.7,1 418,-1,551.7,72.1,54.1,163.2,1 418,-1,453,245.3,81.1,204.8,1 418,-1,944.8,14.2,61.2,167.4,1 418,-1,359.2,111.2,53.4,173.8,1 418,-1,1719.3,460.1,78.4,204.1,1 418,-1,109.9,347.3,52.6,190.7,1 418,-1,289.8,599.3,89.4,247.8,1 418,-1,1580.2,615.3,102.4,242.9,1 418,-1,287.2,130.1,54.5,165.2,1 418,-1,211.5,258.9,54.5,180.7,1 418,-1,1007.1,29.2,54.4,160.7,1 418,-1,1234.8,503.3,82.1,205.2,1 418,-1,836.3,1.3,51.1,131.6,1 418,-1,395.5,625.7,78.7,234.2,1 418,-1,796.5,149.3,56.7,173.7,1 418,-1,859.3,541.9,108.2,245.6,1 418,-1,1767.9,134.2,52.9,159.7,1 418,-1,219,141.6,72.9,157.8,1 418,-1,357.9,1,67,119.7,1 418,-1,718.6,557.7,83.3,245.7,1 418,-1,424.8,102,54.4,165.4,1 418,-1,1827.1,72.2,77.6,182.2,1 418,-1,458,63.7,69.8,196.4,1 418,-1,717.7,1,51.1,127.2,1 418,-1,713.4,90.2,64,175,0.999 418,-1,424.6,1,44.7,121.8,0.999 418,-1,939.1,557.3,79.4,221.7,0.997 418,-1,986.1,927.7,79.8,153.3,0.165 918,-1,1221.8,29.9,61.5,119,1 918,-1,686.4,206.3,80.1,112.8,1 918,-1,794.3,140.8,75.1,172.2,1 918,-1,1117,33.8,60.4,166.8,1 918,-1,1475.9,107.1,62.9,157.6,1 918,-1,460.1,201.9,69.5,190.8,1 918,-1,1432.9,4.1,46.2,131.6,1 918,-1,1574.7,589.8,103.4,235.6,1 918,-1,558.2,117,57.3,170.9,1 918,-1,307.2,703.6,89.6,263.9,1 918,-1,1292.4,844.9,97.7,236.1,1 918,-1,1722.3,453.2,77.1,214.1,1 918,-1,1607.8,67.5,54.1,165,1 918,-1,866.2,417.3,66.3,222.7,1 918,-1,327.1,371.7,82.1,189.5,1 918,-1,301.7,161.8,68.8,199,1 918,-1,1723.1,94.9,55.5,172.1,1 918,-1,751.9,75.2,55.4,157.9,1 918,-1,955.9,398.6,70.7,221.6,1 918,-1,409.5,350.7,59,208.4,1 918,-1,240.6,133.7,54.3,165.7,1 918,-1,375.7,205,57.9,175,1 918,-1,1748,680.4,95.6,239.4,1 918,-1,1495.7,1.5,60.3,132.1,1 918,-1,469.8,18,51.9,147.9,1 918,-1,423.5,65.8,62.3,176.4,1 918,-1,253.8,1.9,54,122,1 918,-1,313.4,1.8,49.5,132.1,0.999 336,-1,1221.2,30.4,62.4,119.6,1 336,-1,686.8,206.7,78.9,113,1 336,-1,1448.2,1,56.5,127.7,1 336,-1,400.1,579.7,103.9,248.1,1 336,-1,1592.1,1.4,56.9,125.5,1 336,-1,448.9,106.5,73.1,196,1 336,-1,1719.4,457.4,79.8,212.6,1 336,-1,108.9,348.9,51.8,190.5,1 336,-1,1725,70.9,58.5,153.3,1 336,-1,285.5,131.1,54.5,173.1,1 336,-1,899.7,451.3,71,211.1,1 336,-1,232.8,350.7,58.1,192.1,1 336,-1,979.5,66,63.2,180,1 336,-1,363,107.2,57.5,177.3,1 336,-1,796,147.7,60.3,175.7,1 336,-1,926.7,24.3,65.8,175.6,1 336,-1,956,395.6,66.7,193.7,1 336,-1,1830.4,501.1,69.2,208.9,1 336,-1,1537.9,612,82.9,246.4,1 336,-1,1039.9,73.8,52,162.2,1 336,-1,212.8,140,54.4,161.3,1 336,-1,521.3,98.9,39.2,169.5,1 336,-1,839.1,442.6,85.8,220.1,1 336,-1,718.6,95,54.3,169,1 336,-1,506.7,492.7,68.4,227.7,1 336,-1,419.1,49.5,57.3,170.2,0.999 336,-1,775.3,97.1,41.5,157.5,0.997 336,-1,941.4,918,70.4,163,0.983 336,-1,416.5,368.1,80.1,204.5,0.593 336,-1,429.9,868.4,103.9,212.6,0.367 154,-1,1221.4,30.7,62.9,117.7,1 154,-1,356.4,103.9,53.6,180.4,1 154,-1,1488,67.9,55.9,151.7,1 154,-1,1721.3,456.3,78.2,211.2,1 154,-1,704.5,1,56.1,157.8,1 154,-1,109.1,351.7,49.2,185.9,1 154,-1,451.1,34.4,53.5,164.3,1 154,-1,215.4,125.6,53.9,167.5,1 154,-1,288,123.4,55.3,172.9,1 154,-1,1158.5,162.6,47.4,161.2,1 154,-1,420.7,253.1,78.1,222.9,1 154,-1,1358.7,566.9,104.6,244.9,1 154,-1,1011.4,131.1,62.4,171.2,1 154,-1,687.3,206.7,78.9,113.7,1 154,-1,538.3,63.7,51.3,167.9,1 154,-1,404.3,708,93.5,267.8,1 154,-1,1269.3,175.7,66.3,173.3,1 154,-1,101.4,544.3,85.4,256.4,1 154,-1,192.9,613.8,65.3,213.3,1 154,-1,531.3,277.3,59.3,200.6,1 154,-1,593.3,263.5,60.9,194.4,1 154,-1,804.3,259.9,61.2,181.9,1 154,-1,860,202.9,70,194.9,1 154,-1,755.7,250.9,70.7,187.1,1 154,-1,489.9,198.5,60.6,167.3,1 154,-1,386.2,2.4,45.6,121.9,1 154,-1,793.5,145.4,63.6,183.9,0.993 154,-1,1041.5,912.9,72.2,168.1,0.992 683,-1,1221.7,30,61.8,121,1 683,-1,686.8,206.8,80.3,113.2,1 683,-1,1480.6,4.9,60.7,146.9,1 683,-1,364.2,530.7,111.8,250.9,1 683,-1,1489.3,156,53,170,1 683,-1,486.3,130.6,45.4,177.3,1 683,-1,1708.2,456.9,101.4,208.9,1 683,-1,1618.1,151.4,73.1,190.8,1 683,-1,312.9,357.5,70.1,214.7,1 683,-1,804.2,145.2,57.9,173.7,1 683,-1,562.9,112.9,50.5,177.6,1 683,-1,1070.4,1,79.9,100.1,1 683,-1,1574.4,590,96.7,234.3,1 683,-1,361,114,49.8,171.3,1 683,-1,417.2,141.2,67.7,163.1,1 683,-1,750.6,79.3,49.2,158,1 683,-1,1273.8,868.6,90.7,212.4,1 683,-1,1361.9,848.5,95.4,232.5,1 683,-1,404.6,14.4,56.4,160.6,1 683,-1,238.3,205.1,64,199.2,1 683,-1,293.6,220.4,58.4,176.2,1 683,-1,481.5,37.5,47.8,144.5,1 683,-1,833.8,924.6,74.9,156.4,0.955 683,-1,225.3,133.4,48.3,163.4,0.148 258,-1,1221.3,31.6,62,118.1,1 258,-1,1622.5,11.8,58.9,148.5,1 258,-1,686.8,206.1,80.1,114,1 258,-1,1479.4,52.1,54,153.4,1 258,-1,356.4,105,53.5,181.2,1 258,-1,212.4,126.3,56.5,167,1 258,-1,286.9,129.6,56.5,170,1 258,-1,797.5,153.5,59.9,174.3,1 258,-1,108,351.7,52,189.3,1 258,-1,388.2,494.2,86.8,234.3,1 258,-1,1720.6,458,78.1,210.5,1 258,-1,452,160.2,75.8,212.6,1 258,-1,1396,567.6,100.7,246.5,1 258,-1,937.9,103.3,71.5,185.7,1 258,-1,1140.9,104,51.3,168,1 258,-1,704.5,1,54.5,157.1,1 258,-1,1061.5,110.8,60.2,183.5,1 258,-1,227.5,454.7,60.7,200.3,1 258,-1,238.3,743.2,89.1,283.3,1 258,-1,865.4,358.5,77.2,193.5,1 258,-1,888.8,110.1,47.9,157.4,1 258,-1,797.5,350,84.7,210.4,1 258,-1,143,566.7,87.3,243.3,1 258,-1,487.8,372.2,71,230.3,1 258,-1,371,5.5,55.3,157,1 258,-1,513.8,117.7,55.4,173.8,1 258,-1,576.1,383.7,65.2,212.8,1 258,-1,759.9,101,49.9,175.5,0.999 258,-1,934.6,914.1,78.4,166.9,0.996 451,-1,1221.5,30.7,62.4,119,1 451,-1,936.6,1,59.1,156.7,1 451,-1,446.4,211.1,72.9,196.1,1 451,-1,687.4,206.2,77.9,113.6,1 451,-1,358.2,109.1,54.3,177.2,1 451,-1,1008,11.8,53.2,155.4,1 451,-1,1713.7,454.7,86.4,211.8,1 451,-1,111.4,352.4,54.7,187.4,1 451,-1,1385.1,549.3,100.2,199.3,1 451,-1,287.8,125.6,53.6,170.3,1 451,-1,1553.3,610.5,75.9,245.1,1 451,-1,799.8,151.6,49.9,170.7,1 451,-1,863.2,2,53.9,138.5,1 451,-1,524.9,75.8,55.6,171.8,1 451,-1,346.9,683.2,73.1,245.6,1 451,-1,256.3,225.3,50,177.7,1 451,-1,1666.3,361,66.3,195,1 451,-1,790.6,576.5,85.7,247.7,1 451,-1,1838.3,389.5,82.7,204.2,1 451,-1,251.9,652.1,92.5,257,1 451,-1,886.2,595.7,117.1,246.8,1 451,-1,1747.4,156.8,55.5,166.9,1 451,-1,754.1,89.5,51,153,1 451,-1,219,137.6,59.1,158.1,1 451,-1,426.8,126.3,58.2,162.5,1 451,-1,421.4,1,44.4,140.5,0.999 451,-1,1508.5,1,56.1,104.4,0.999 451,-1,360.1,5.2,62.6,132.7,0.998 451,-1,967.3,609.1,82.6,224,0.998 451,-1,1022.2,920.5,84.8,160.5,0.995 451,-1,733.4,3,48.2,87.9,0.991 451,-1,1710.6,113,62.7,174.4,0.988 451,-1,716.1,90.9,50.3,169.7,0.978 451,-1,447.1,37.6,66.7,205.4,0.699 348,-1,1221.8,31,61.1,119,1 348,-1,687.1,206.9,78.8,113.5,1 348,-1,1737.2,77.2,59.5,155.4,1 348,-1,1608.6,1,57.4,137.6,1 348,-1,445.1,95.8,72.6,201.9,1 348,-1,286.9,131.4,54.5,172,1 348,-1,464.2,574.4,91.1,245.8,1 348,-1,997.2,413.2,63.8,191.8,1 348,-1,434.7,348,74.3,210.1,1 348,-1,1033.2,64.4,54.5,167.6,1 348,-1,109.5,347.7,51.7,191.6,1 348,-1,1719.5,457.1,78.4,212.8,1 348,-1,1551.6,617.3,87.3,240.7,1 348,-1,796.7,153.8,58.9,170.6,1 348,-1,968.6,56.2,62.5,176.6,1 348,-1,207.8,140,58.7,162.2,1 348,-1,1829.2,484,68.6,209.2,1 348,-1,1444.2,2.1,52.6,111.9,1 348,-1,365,107.2,55.2,179.8,1 348,-1,226.6,336.7,57.5,190.2,1 348,-1,519,97.2,39.2,167.9,1 348,-1,901.6,468.4,72.7,205.1,1 348,-1,394.3,492.5,82.4,230.7,1 348,-1,926.4,18.2,60.1,163.6,1 348,-1,842.1,453.8,86.1,223.8,1 348,-1,845.6,1,46.4,95.3,0.999 348,-1,768.8,94.1,40.9,156,0.999 348,-1,710.6,95.8,58.6,171.3,0.998 348,-1,1874.8,66.2,46.2,165,0.995 348,-1,953.7,930.9,74.9,150.1,0.848 986,-1,686.5,206.2,79.9,113.3,1 986,-1,1222.1,30.1,61.3,119.9,1 986,-1,793.1,139.4,73.2,172.8,1 986,-1,405.8,264.8,70.9,200.6,1 986,-1,1187.4,121.4,55.7,162.9,1 986,-1,496.8,250.3,67.1,189.8,1 986,-1,1574.8,590,104.8,236.3,1 986,-1,1469.8,168.7,66.4,167.8,1 986,-1,1790.5,178.1,71.1,184.2,1 986,-1,839.1,315,71.1,207.1,1 986,-1,303.2,452.1,81.8,204.5,1 986,-1,333,839.2,93.1,241.8,1 986,-1,1719.3,455.7,79.9,210.6,1 986,-1,751.2,71.9,55.4,163.7,1 986,-1,230.5,136,55.5,165.9,1 986,-1,1669.8,143.8,54.3,167.7,1 986,-1,1190.6,669.3,90.3,264.6,1 986,-1,545.7,118.2,56.3,168.6,1 986,-1,289.6,126,51.8,171.2,1 986,-1,316.8,262.4,64.2,199.7,1 986,-1,390.6,437.6,65.6,214.4,1 986,-1,921.7,304.3,68.3,205.8,1 986,-1,1740.3,673.8,93.1,250,1 986,-1,1450,1,55.4,92,1 986,-1,444.9,66.4,57.5,176.3,1 986,-1,315.5,2.1,45.4,129.2,1 986,-1,499.1,72.5,51.7,153.3,1 986,-1,1387.3,2.5,44.5,90.4,1 986,-1,371.6,165,64.6,194.8,0.999 986,-1,382.5,1,53,134.8,0.999 552,-1,1221.2,30.3,62.4,119.4,1 552,-1,687.1,205.8,78.3,115,1 552,-1,1490.5,3.8,58.9,143.7,1 552,-1,1794.8,231.4,73.4,186.3,1 552,-1,381.1,221.6,64.2,192.7,1 552,-1,786.6,143.7,65.5,176.8,1 552,-1,1661.5,283.6,89.9,208.1,1 552,-1,1716,455.9,84.6,209.9,1 552,-1,533,109.9,61.3,176.6,1 552,-1,873.4,1,54.2,109.3,1 552,-1,987.3,2.7,51.7,97.9,1 552,-1,761.1,597.3,97.2,255.4,1 552,-1,189.8,299.5,66,194.5,1 552,-1,289.3,123.4,53.1,173.2,1 552,-1,1658.9,1.5,55,154.2,1 552,-1,246.2,878.9,81,202.1,1 552,-1,220.1,137,57.7,158.2,1 552,-1,1591.9,1.3,55.1,152.5,1 552,-1,1595,585.3,71.3,242.3,1 552,-1,456.8,96.1,64.5,181.6,1 552,-1,136.3,269.3,55.5,217.7,1 552,-1,414.1,137.4,49.3,163.2,1 552,-1,752.7,81.5,48.3,153.6,1 552,-1,359,111.8,54,170.4,1 552,-1,1077.6,787.5,95.1,249.1,0.996 552,-1,927.6,1.8,57.7,96.5,0.992 552,-1,1007.8,779,108.7,244.1,0.532 552,-1,1026.1,946.8,79.9,134.2,0.059 997,-1,1221.6,30.8,61.8,120.1,1 997,-1,686.7,206.1,79.6,113.1,1 997,-1,792.9,140.7,75.8,172.4,1 997,-1,400.4,284.5,67.6,196.7,1 997,-1,1473.8,180.3,63.3,160,1 997,-1,1803.5,190.1,68.2,188.1,1 997,-1,1196.2,132.2,63.6,176.6,1 997,-1,504.1,265.5,62.9,184.6,1 997,-1,231.4,135.8,54.6,167,1 997,-1,1673.8,155.5,59.9,171.3,1 997,-1,290.3,125,50.3,168.7,1 997,-1,1576.2,590.1,102.5,235.8,1 997,-1,1722.3,452.5,77.8,217.6,1 997,-1,751.4,70.6,54.4,164.5,1 997,-1,841.1,301.9,66.8,197.8,1 997,-1,922.3,295.4,71.3,206.2,1 997,-1,331.7,857.2,94.2,223.8,1 997,-1,541.5,120,60.6,169.4,1 997,-1,301.1,463.4,85.6,207.4,1 997,-1,1176.3,646.5,89.7,263.4,1 997,-1,312.6,276.1,66.2,199.9,1 997,-1,1739.1,675.7,93.9,246.9,1 997,-1,383.5,453.7,67.7,220.2,1 997,-1,314.5,1,45.3,131.2,1 997,-1,439.2,64.7,60.8,173.1,1 997,-1,506.7,81.8,54.4,157.3,1 997,-1,602.2,544.7,104.6,251.1,0.999 997,-1,386.5,168,74,186.3,0.999 997,-1,1438.6,3.2,53.8,76.7,0.453 409,-1,1221.3,30.5,62.2,118.8,1 409,-1,686.3,205,79.2,114.9,1 409,-1,1650.9,57.2,66.7,168.6,1 409,-1,358,105.2,54.2,180.2,1 409,-1,458.7,263.5,76.7,204,1 409,-1,1769.4,123.2,65.1,172.2,1 409,-1,109.8,347.1,53.2,192.9,1 409,-1,1719.2,455.6,80.5,208.5,1 409,-1,412.6,606.7,75,239.2,1 409,-1,551.7,69.6,57.7,169.9,1 409,-1,946,16.7,62.1,172,1 409,-1,795.1,150.2,59.7,173.1,1 409,-1,285.5,129.8,55.1,165.9,1 409,-1,1586,615.5,100.9,249.1,1 409,-1,830.8,1,56.8,130.3,1 409,-1,1004.7,31.2,56.1,161.6,1 409,-1,220.8,141.8,65,156,1 409,-1,204.6,269,55.4,181.7,1 409,-1,465.8,69.7,66.4,191,1 409,-1,302.1,581.2,82.2,256.9,1 409,-1,361.3,1,64.3,116.7,1 409,-1,1206,492.7,61,204,1 409,-1,425.6,90.8,50.3,173.1,1 409,-1,697.9,558.7,88.6,239.2,1 409,-1,860.1,528.6,97.6,240.2,1 409,-1,930.7,546.6,80.8,219.9,1 409,-1,718.4,1,50.7,135.3,1 409,-1,710.9,92.7,62.3,168.1,1 409,-1,1870.5,66,50.5,181.3,0.996 409,-1,426.8,1,43,112.4,0.987 409,-1,978.5,920.8,84.2,160.2,0.816 974,-1,686.1,206.4,80.2,112.8,1 974,-1,793.5,140.8,73.4,171.9,1 974,-1,1221.9,31,61.3,120.1,1 974,-1,1776.2,165.7,68.1,180.3,1 974,-1,1163.5,106.4,62.6,166.3,1 974,-1,491.3,240.9,68.9,189.8,1 974,-1,1471.5,152.9,66.6,165.6,1 974,-1,412,255.8,72,190.9,1 974,-1,305.8,433.4,87.4,196.8,1 974,-1,1576.2,589.8,101.3,234.9,1 974,-1,1654.1,126.9,58.8,171.9,1 974,-1,928.8,322.1,67.6,212.8,1 974,-1,229.9,137.7,55.8,162.8,1 974,-1,332.8,807.5,94,273.5,1 974,-1,846.3,336.9,65.6,206.9,1 974,-1,1721.2,454.3,78.3,212.6,1 974,-1,328.8,249.3,62,204,1 974,-1,751.9,72.1,55.3,163.3,1 974,-1,391.5,425.1,68.2,218.5,1 974,-1,550.7,118.4,52.2,169.4,1 974,-1,1738.9,673.6,95.7,250.9,1 974,-1,447.1,64.8,55.8,181.7,1 974,-1,1396.2,2.5,45.7,95.9,1 974,-1,1453.9,1,60.6,101.8,1 974,-1,1203.9,704.9,92.8,271.7,1 974,-1,314.2,1,46,131,1 974,-1,290,128.4,54.2,171.5,1 974,-1,487,61.2,55,156,0.999 974,-1,380.9,1.2,54.7,126.3,0.999 974,-1,343.2,164.6,63.9,181.8,0.998 50,-1,1221.3,28.9,63.8,117.1,1 50,-1,686.5,206.2,78.9,114,1 50,-1,397.8,355.7,85,234.6,1 50,-1,1487.6,70.4,55,149.2,1 50,-1,489.9,176.6,89.4,197.2,1 50,-1,1362.1,566.8,104.9,245.4,1 50,-1,704.9,1,55.5,156.6,1 50,-1,355.2,107,54.2,177,1 50,-1,1722.1,456.5,76.6,210.6,1 50,-1,164.8,364.1,64,191.5,1 50,-1,213.7,125.4,49.3,167.2,1 50,-1,794.2,148.1,62.5,177.4,1 50,-1,893.6,195,60.8,181.5,1 50,-1,1006.4,168.2,75.9,187.6,1 50,-1,102.3,547.5,85.7,251.6,1 50,-1,283.5,125.7,54.7,171,1 50,-1,422.3,98.1,56.1,157.2,1 50,-1,4.8,782.7,68.9,244.2,1 50,-1,1324.1,177.5,55.7,169.5,1 50,-1,484.4,46.7,55.4,155.8,1 50,-1,1855.7,275.1,65.3,192.1,1 50,-1,1483.7,211.7,60.6,205.6,1 50,-1,541,63.8,44.7,169.5,1 50,-1,1377.4,220.7,41.6,163.5,0.999 50,-1,859.4,154.9,62.2,184.1,0.994 69,-1,1221.9,31.1,61.3,116.8,1 69,-1,406.4,334,86.8,230.9,1 69,-1,686.5,206.9,79.8,113.2,1 69,-1,1487.4,69.6,54.7,147.8,1 69,-1,1361.9,566.2,104.1,245.4,1 69,-1,355.7,107.4,56.2,176.7,1 69,-1,705.3,1,55.3,159.4,1 69,-1,1722.1,455.1,77.5,212.8,1 69,-1,1273.2,177.1,59.4,163.7,1 69,-1,140.2,355.6,57.9,196.9,1 69,-1,799.5,194.5,74,175.6,1 69,-1,102.7,547.1,86,252.3,1 69,-1,210.7,129.2,51.5,165.5,1 69,-1,493.6,193.8,75.8,196.4,1 69,-1,992.7,185.3,68.9,179.2,1 69,-1,287.1,125.9,53.8,170.3,1 69,-1,1446.3,201.5,71.4,198.8,1 69,-1,467.1,113.7,56.8,160.1,1 69,-1,539.1,65.5,46.9,167.7,1 69,-1,1347,207.1,39.9,162.1,1 69,-1,889.3,188.7,55.7,162.6,1 69,-1,10.5,745.3,70.4,238.8,1 69,-1,435.9,25.8,52.1,159.8,1 69,-1,383.5,32.9,53.3,163.8,1 69,-1,257.6,89.9,56.8,182.6,0.966 69,-1,387,910,104.2,171,0.955 69,-1,859.5,177.8,42.6,158.5,0.115 962,-1,686.1,206.1,80.2,113.7,1 962,-1,1220.8,30.1,62.8,119.9,1 962,-1,794.3,140.1,71.8,172.4,1 962,-1,1768.1,154.7,68.3,172.5,1 962,-1,926.1,339.9,76.3,217,1 962,-1,1573.8,588.7,105.2,235.8,1 962,-1,419,242.9,70.1,197.4,1 962,-1,1472.8,149.8,65,161.1,1 962,-1,1645.7,108.8,57.1,173.4,1 962,-1,1721.3,453.5,77.7,214.6,1 962,-1,751.8,70.7,55.4,164.8,1 962,-1,1404.7,2.4,49,103.4,1 962,-1,327.6,786.9,89.9,269.7,1 962,-1,443.2,72.7,54.8,181.8,1 962,-1,1221,733.7,93.2,267.4,1 962,-1,847.7,352.2,68.5,206.4,1 962,-1,229.2,137,55.6,166.9,1 962,-1,1464.7,1,61.5,104.5,1 962,-1,1153.8,84.2,59.8,170.7,1 962,-1,334.8,242.3,64.8,193.6,1 962,-1,392.1,413.8,66.7,214.2,1 962,-1,486.7,231.5,64.8,180.6,1 962,-1,549.8,118.5,56.1,172.6,1 962,-1,318,417.7,80.1,202.2,1 962,-1,1740.1,674.6,95.2,250.8,1 962,-1,289.6,123,52.9,173.2,1 962,-1,483.3,51.8,55.4,162.5,1 962,-1,313.4,1,47.9,130.2,0.999 962,-1,434.2,8.5,49.1,129.4,0.625 962,-1,238.7,2.9,53.4,115.9,0.581 177,-1,1221.6,31.1,61.8,117.6,1 177,-1,108.3,350.5,50.1,187.6,1 177,-1,355.6,104.2,55.1,179.4,1 177,-1,1489.1,69.8,54.9,147.3,1 177,-1,704,1,56.4,159.2,1 177,-1,418.2,39.8,58.2,162.9,1 177,-1,1358.8,568.2,103.7,242.5,1 177,-1,212.6,125.6,54.7,167.1,1 177,-1,1719.8,456.8,79.1,211.9,1 177,-1,408.1,653.3,89.6,260.5,1 177,-1,289,126.8,53.7,169.3,1 177,-1,688,207.5,76.6,111.5,1 177,-1,420.5,232.1,78.7,222.8,1 177,-1,939.4,122.8,74.4,173,1 177,-1,1,611.4,101.2,237.4,1 177,-1,865.1,178.7,75.3,190.9,1 177,-1,527.6,285.6,59.9,214.1,1 177,-1,546.8,149.5,65.5,173.3,1 177,-1,231.3,576.8,64.3,211.9,1 177,-1,99.1,548.5,88.1,253.9,1 177,-1,796.2,282.3,68.2,185.1,1 177,-1,794.4,150.4,62.1,171.8,1 177,-1,1213,158.1,57.1,180.7,1 177,-1,742.9,266.6,70.8,202.9,1 177,-1,1109.1,150,45.3,161.9,1 177,-1,1257.8,158.8,50,162.9,0.999 177,-1,1002.4,910.5,70.5,170.5,0.965 177,-1,536.3,67.1,50.3,158.8,0.462 359,-1,1222.2,31.1,60.4,118.3,1 359,-1,687.6,207,77.9,112.3,1 359,-1,1434.8,2,50.5,107.1,1 359,-1,1618.8,1,71.7,159.5,1 359,-1,1028.4,428.3,67,197.1,1 359,-1,1029.4,60.6,53.8,167.1,1 359,-1,1720.2,456,78.3,213.3,1 359,-1,1752,87.4,62.1,158.8,1 359,-1,426.9,330.8,83.6,212,1 359,-1,208.7,140,57.5,160.2,1 359,-1,287.1,130.7,54.2,171.1,1 359,-1,961.1,54.5,63.9,172.8,1 359,-1,1848.4,60.1,55.4,166,1 359,-1,443.9,84.4,69.6,204.1,1 359,-1,108.9,350.3,52.3,189.8,1 359,-1,796.3,150.1,60.4,173.2,1 359,-1,364.3,109.4,55,175.8,1 359,-1,1820.2,474.5,67.2,202.1,1 359,-1,513.7,91.3,45.2,164.1,1 359,-1,1563.9,622.5,88.7,248,1 359,-1,498.6,576.5,102.1,243.8,1 359,-1,381,510.8,85.1,235.2,1 359,-1,838.5,2.2,51.8,102.1,1 359,-1,220.9,321.8,56.3,187.5,1 359,-1,910.5,487.5,78,205.3,1 359,-1,844.2,472.4,85.7,224.6,1 359,-1,925.6,3.4,61.8,157.9,1 359,-1,764.3,91.7,42.8,152.4,0.999 359,-1,953.9,924.6,80.7,156.4,0.634 359,-1,384.7,3.4,39.4,80,0.364 359,-1,475.9,523.7,73.9,243.4,0.326 374,-1,1221.7,31.6,61.7,118.6,1 374,-1,686.1,206,80.7,113.4,1 374,-1,1632,15,59.7,163.2,1 374,-1,1076.2,446.8,68,197,1 374,-1,445.2,309.5,72.2,215.9,1 374,-1,285.3,130,55,170.6,1 374,-1,108.7,351.1,53,189.1,1 374,-1,359.2,111.4,55.4,175.1,1 374,-1,348.8,528.5,89.5,245.8,1 374,-1,1719.2,454.4,79,215.2,1 374,-1,215.5,141.5,57.2,157.2,1 374,-1,508.1,87.8,51.2,169.1,1 374,-1,457.6,543.6,70.5,234.3,1 374,-1,1587.4,631.1,82.9,245.6,1 374,-1,444.5,77.1,69.7,196.4,1 374,-1,1432.2,1,54.1,98.8,1 374,-1,953.6,40.5,61.1,178.8,1 374,-1,796.1,150,60.1,172.3,1 374,-1,1017.9,52.7,55.7,165.6,1 374,-1,829.3,1.5,55.7,111.5,1 374,-1,382.8,2.1,47,91.4,1 374,-1,555.5,566,103.3,252.3,1 374,-1,1804.3,450.1,64.5,214.6,1 374,-1,211.9,307.4,54.1,179.3,1 374,-1,1766.2,101.2,55.4,157.8,1 374,-1,1811.4,68.4,65.7,167.1,1 374,-1,757,96,45.3,143.9,1 374,-1,849.1,486.6,86.8,232,1 374,-1,911.8,500.5,75.7,211.3,1 374,-1,968.4,917.7,86.4,163.3,0.998 437,-1,1221.9,29.9,62.2,119,1 437,-1,938.1,3.3,62.6,164.7,1 437,-1,359,108.8,53.6,178.4,1 437,-1,687.6,206.1,77,113.2,1 437,-1,449.3,227.3,77.2,199.6,1 437,-1,847.3,1,54.1,135.3,1 437,-1,1007.9,17.3,54.7,159.8,1 437,-1,1334.4,527.1,67.9,198.8,1 437,-1,111.6,352.5,54.1,187.5,1 437,-1,1716.9,457.7,81.3,210.9,1 437,-1,230.3,242.7,53.4,179.3,1 437,-1,285,131.1,55.1,166.8,1 437,-1,272.7,624.2,91.4,266.1,1 437,-1,1751.7,146.7,65.4,167.4,1 437,-1,371.2,659,73.5,237.8,1 437,-1,797.9,150.3,53.8,173.2,1 437,-1,1688.3,87,70.6,174.1,1 437,-1,762.3,566.5,82.6,248.7,1 437,-1,1846.5,415,74.5,188.1,1 437,-1,533.7,72.3,54.8,167.6,1 437,-1,1566.2,614.2,80,242.2,1 437,-1,876.1,569.8,109.9,245.9,1 437,-1,363.7,1,60.8,130.2,1 437,-1,432,116.3,57.5,171.8,1 437,-1,421.9,1,44.1,129,1 437,-1,956.6,588.8,82.6,223.3,0.999 437,-1,220.8,138.7,62.6,150.8,0.999 437,-1,712.3,86.1,59,181.1,0.999 437,-1,726.6,1.7,48.3,105.5,0.998 437,-1,758.6,84.2,42.9,157.5,0.986 437,-1,1001.5,928.1,83.7,152.9,0.975 437,-1,1690.9,384,68.1,201.6,0.174 8,-1,687.3,205.6,78.8,114.1,1 8,-1,1487,70.2,55.5,147,1 8,-1,704.1,1.5,56.8,156.9,1 8,-1,1361.6,567.1,105.6,244.5,1 8,-1,504.6,143.7,104.7,191.5,1 8,-1,1064,208.3,85.3,182.9,1 8,-1,375.6,403.8,86.4,239.7,1 8,-1,1726.3,456.8,78.2,209,1 8,-1,1799.6,207.2,65.7,188.6,1 8,-1,102.1,545.5,85,254.1,1 8,-1,1199.1,38.8,73.4,111.7,1 8,-1,795.3,148,62.1,174.2,1 8,-1,219.2,128.7,49.2,164.9,1 8,-1,284.7,119.6,55.8,176.3,1 8,-1,217.6,386.1,64.6,205.9,1 8,-1,356.1,107.3,52.9,176.5,1 8,-1,1629.5,257.1,62.3,186.5,1 8,-1,875.8,128.7,62.1,175,1 8,-1,415.4,91.2,55.1,168,1 8,-1,462.1,75.5,51.7,170.3,1 8,-1,1443,245.8,52.5,174.2,1 8,-1,1037.9,1,48.5,81.4,0.999 8,-1,1409.4,188.3,46.4,179.3,0.972 8,-1,1034.8,145.1,79.1,185.5,0.914 8,-1,255.5,367.1,50.3,197,0.059 8,-1,911.8,133.2,50.1,163.2,0.059 869,-1,1221.4,29.9,61.9,118.6,1 869,-1,687.6,206.1,78.7,113.5,1 869,-1,795.9,138.7,76.8,175.6,1 869,-1,1474.7,73,61.5,158.8,1 869,-1,480.1,1.2,49.1,126.8,1 869,-1,1087.3,1.5,55.1,137.7,1 869,-1,1721.2,453.5,79,213,1 869,-1,337.3,311.2,83.1,183,1 869,-1,1575.5,590.8,102.9,235.3,1 869,-1,1689,46.1,53.4,161.8,1 869,-1,989.8,472.5,78.9,238.5,1 869,-1,276.5,625.7,87.5,255.6,1 869,-1,557.8,116.9,60.1,174.8,1 869,-1,477.4,157.5,60.3,182.8,1 869,-1,299.7,161.4,69.4,193.2,1 869,-1,1579.8,19.8,48.6,144.3,1 869,-1,752.5,71.4,54.9,162.5,1 869,-1,904.8,492.9,69.7,222.6,1 869,-1,430.1,296.6,56.4,208.8,1 869,-1,1417.1,16.9,49.9,152.5,1 869,-1,239.2,133.1,52.3,165.6,1 869,-1,253.6,1,54.4,119.4,1 869,-1,412.6,158,59.5,176,1 122,-1,1221.4,30.6,62.1,119.3,1 122,-1,1106,144.3,81.4,173.6,1 122,-1,355.9,104.1,57.1,181.6,1 122,-1,1487.9,68.1,56,150.1,1 122,-1,212.9,125.3,52.4,168.6,1 122,-1,704.4,1,56,159,1 122,-1,396.2,780.5,101.2,280.7,1 122,-1,108.8,352.4,49.3,185.4,1 122,-1,1721.7,457.1,76.4,210.3,1 122,-1,425.8,285,77.6,225.7,1 122,-1,289.1,129,53.8,167.3,1 122,-1,917.9,210.5,70.6,190.4,1 122,-1,1358,566.7,105.5,244.5,1 122,-1,1228,179.9,45.5,163.6,1 122,-1,523.7,243.9,73.3,202.2,1 122,-1,538.7,65.5,49.4,170.6,1 122,-1,1345.6,181.2,64,189,1 122,-1,477.4,167.6,58.2,161.4,1 122,-1,377.5,1.4,47.1,148.9,1 122,-1,786.3,210.3,63.1,190.5,1 122,-1,101.4,548.8,85.2,247.1,1 122,-1,834.9,229.7,53.7,175.6,1 122,-1,87.3,655.6,66.7,223.4,1 122,-1,447,1,53.4,146.4,1 122,-1,479.9,39.6,61.6,164.9,1 122,-1,1103,926.6,87.1,154.4,0.183 1011,-1,1221.2,30.3,62.5,116.7,1 1011,-1,685.7,206.4,81,112.5,1 1011,-1,495.3,282.6,69.3,189.9,1 1011,-1,792.4,140.9,75.3,172.1,1 1011,-1,289.3,126.7,53.4,170.6,1 1011,-1,1223.9,146.7,62.3,172.4,1 1011,-1,390,292.1,75.3,194.4,1 1011,-1,1824.2,205.7,61.6,188.8,1 1011,-1,1576.2,590.2,102.1,236.5,1 1011,-1,1719.4,454.7,81.7,213.1,1 1011,-1,540,120.4,61.3,169,1 1011,-1,1156.6,620.4,94.5,263.7,1 1011,-1,1469.4,185.7,65.8,162.5,1 1011,-1,929.5,274.5,66,208.9,1 1011,-1,232.2,140.2,52.5,162.5,1 1011,-1,845.8,285.2,64.1,198.3,1 1011,-1,751.2,74.1,54.2,160.6,1 1011,-1,1735,679.2,94.7,241.8,1 1011,-1,1691.4,172.3,55.7,168.5,1 1011,-1,297.6,481.7,90.4,206.7,1 1011,-1,303.7,292.6,66.6,202.4,1 1011,-1,379.9,468.3,64.9,228.6,1 1011,-1,433.7,168.5,61,190.1,1 1011,-1,313.3,1.9,42,127.9,1 1011,-1,589.8,552.6,96.8,243.5,1 1011,-1,383.6,175.6,50.9,157.6,0.999 1011,-1,351.7,887.7,95.4,193.3,0.999 1011,-1,506.6,94.7,54.8,153.2,0.999 1011,-1,435,67.5,62.5,172,0.99 1011,-1,385.7,1.9,57.6,161.3,0.182 360,-1,1221.8,31,61.5,118.5,1 360,-1,687.3,207.2,78.6,112.5,1 360,-1,1434.4,1.9,51.8,106.8,1 360,-1,1027.8,59.4,55.1,167.6,1 360,-1,1619,1,72.4,161.8,1 360,-1,501,575.6,102.9,244.3,1 360,-1,427.3,329,84.7,214.4,1 360,-1,1753.6,90.9,62,156.5,1 360,-1,1719.4,455.9,79.4,213,1 360,-1,1846.1,60.9,55.7,165.3,1 360,-1,443.2,84.8,70.8,203.4,1 360,-1,109.3,350.7,52.8,189.2,1 360,-1,208.4,139.8,58.1,160.2,1 360,-1,1032.2,429.8,65.3,198.4,1 360,-1,796.2,150.9,60.9,173.2,1 360,-1,287.2,130.5,54,171.9,1 360,-1,1818.1,472.6,67.7,203.1,1 360,-1,960.6,54.6,63.2,172.2,1 360,-1,363.9,109.5,55.3,176.4,1 360,-1,514,92,44.6,162.3,1 360,-1,838.1,1.6,51.8,102.9,1 360,-1,220.9,321.4,56.2,187.2,1 360,-1,1567.4,623.4,84.8,248.6,1 360,-1,381,510.4,83.9,239.6,1 360,-1,908.5,483.5,81.2,209.5,1 360,-1,841.7,472.9,88,226.9,1 360,-1,924.7,1.4,63.6,160.8,0.999 360,-1,764.6,95.5,41.2,147.3,0.999 360,-1,384.1,2.4,38.3,84.1,0.869 360,-1,954.6,923.7,80.7,157.3,0.71 360,-1,475.3,526.3,69.5,229.6,0.654 26,-1,687,206.1,79.3,113.5,1 26,-1,1206.7,30.7,72.8,120.1,1 26,-1,703.6,1.3,56.6,158.3,1 26,-1,1487.5,69.3,55.1,149,1 26,-1,1362.7,566.9,105.3,244.7,1 26,-1,491.9,158.4,91.4,189.3,1 26,-1,794.3,150.2,63.1,173.7,1 26,-1,989.2,201.9,80.1,176.3,1 26,-1,1724.2,457,75.1,210.4,1 26,-1,196.8,375.8,69.1,201.3,1 26,-1,355,102.4,54.5,182.3,1 26,-1,102.5,547.8,84.8,252,1 26,-1,383.7,378.5,83.7,244.1,1 26,-1,1823.8,235.9,64.5,191.8,1 26,-1,283.1,124.6,57.2,169.5,1 26,-1,216.6,129.3,48.5,163.8,1 26,-1,415.3,79.5,53.8,162.5,1 26,-1,1601.6,241.7,59.4,186.3,1 26,-1,456.2,59.4,50.7,169.9,1 26,-1,873.6,139.9,56.4,180.9,1 26,-1,1.4,833,54.6,236.3,1 26,-1,913.9,151.8,51.9,164.3,0.999 26,-1,1377.7,188.5,48.7,170.2,0.998 628,-1,1221,28.1,63.6,120.5,1 628,-1,687,206,79.5,113.2,1 628,-1,1480.2,5.9,60.4,143.1,1 628,-1,800.4,144.6,66.3,171.5,1 628,-1,520.7,539.6,103.7,243.4,1 628,-1,343.5,294.7,69.1,205.1,1 628,-1,1711.6,456.3,91.9,208.3,1 628,-1,1574.2,588.4,97.1,235.7,1 628,-1,357.6,114.5,52.4,169.9,1 628,-1,548.3,111.5,61.3,175.9,1 628,-1,1624,200.4,76.1,198.7,1 628,-1,287.3,126.1,53.2,168.2,1 628,-1,186.6,233.1,71,205,1 628,-1,500.5,79.3,47.6,151.6,1 628,-1,754.4,78.6,44.9,154.6,1 628,-1,251.7,247.7,60.1,184.7,1 628,-1,352.5,1,55.2,123.5,1 628,-1,413.7,105.1,52.4,155.9,1 628,-1,420.1,1,60.2,125.1,1 628,-1,234.5,133.8,48.3,161.2,1 628,-1,451.3,84.7,47.1,171.2,0.999 628,-1,1585.3,1,55.7,92.2,0.999 628,-1,1110,922.2,103,158.8,0.993 628,-1,953.9,933.4,69.6,147.6,0.282 628,-1,1194.3,933.3,80.1,147.7,0.242 602,-1,1221.7,30.7,61.5,119.4,1 602,-1,687.4,205.4,78.8,114.7,1 602,-1,1480.7,3.4,61.5,146,1 602,-1,800.7,144.7,65,174.1,1 602,-1,366.3,273.7,63.7,197.6,1 602,-1,1709.9,457.3,93.5,210.9,1 602,-1,1649.9,227.2,71.4,199.9,1 602,-1,1624.5,2.3,55.3,111,1 602,-1,236.3,265.6,63.7,187.8,1 602,-1,1572.9,588.3,100.6,237.2,1 602,-1,166.8,242.8,63.7,211.3,1 602,-1,286.8,126.4,51.8,171.4,1 602,-1,562.2,110.7,49.8,178.9,1 602,-1,432.5,69.3,48.6,171.3,1 602,-1,217.5,138,54.3,159.1,1 602,-1,484.9,98.7,47.7,160.7,1 602,-1,362.6,110.5,51.1,176.9,1 602,-1,752.1,80,44.2,154.4,1 602,-1,1081.9,875.7,118.1,205.3,1 602,-1,394.4,92,44.5,157.9,0.927 602,-1,1879.3,280.8,41.7,183.5,0.355 342,-1,1221.8,30.7,61.6,119.3,1 342,-1,687,206,78.8,113.3,1 342,-1,1731.5,70.9,55.8,162.6,1 342,-1,1446.6,1,56.6,124.6,1 342,-1,446.7,104.8,71.5,195.9,1 342,-1,287.6,131.9,53.3,172.2,1 342,-1,1828.2,495,70.1,203.4,1 342,-1,1598.5,3.1,54.5,131.2,1 342,-1,1720.6,457.3,78.4,213.7,1 342,-1,425.3,575,104.7,253.1,1 342,-1,796.6,154.8,57.9,170.1,1 342,-1,108.2,349.5,52.3,189.9,1 342,-1,975.8,406.3,67.8,191,1 342,-1,364,104.8,57.5,182.5,1 342,-1,520.3,99.3,40.4,168.5,1 342,-1,210.1,141.7,56.3,161,1 342,-1,971.5,62,64.8,176.1,1 342,-1,1545.6,615.7,84.4,243.4,1 342,-1,1036.6,69.4,53,163.7,1 342,-1,843.5,450.6,81.8,226.6,1 342,-1,230.8,339.5,56.7,186.3,1 342,-1,903.1,461.7,63.7,206.2,1 342,-1,928.2,21.4,61.6,165.1,1 342,-1,428.4,360.3,79.9,207.8,1 342,-1,502.5,498.9,65.2,216.3,0.999 342,-1,714.2,94.8,57.4,171.8,0.999 342,-1,770.6,93.7,41.5,157.6,0.999 342,-1,947.1,920.1,73.8,160.9,0.958 342,-1,405.3,472.8,81.8,269.8,0.84 342,-1,423.4,54.2,52.5,164.5,0.682 103,-1,1221.6,30.5,62.5,118.6,1 103,-1,1165.9,157.1,81.2,168.2,1 103,-1,391.5,822.1,101.3,258.9,1 103,-1,704.5,1,56.1,158.7,1 103,-1,1487.4,69.6,55.5,149.5,1 103,-1,356.3,105,55.7,178.9,1 103,-1,426.8,303.1,78.5,228.8,1 103,-1,109.4,350.4,49.9,189.6,1 103,-1,1720.6,457.1,78.8,210.2,1 103,-1,1358.6,566.5,105.7,246,1 103,-1,507.9,229.1,70.6,192.4,1 103,-1,946.8,201.1,74.5,192,1 103,-1,102.8,550.2,84.6,246.9,1 103,-1,292.4,125.5,56.4,172.9,1 103,-1,209.7,131.2,49.9,165.3,1 103,-1,34.8,688.6,70.1,218.7,1 103,-1,809.9,195.1,60.9,190.8,1 103,-1,703.4,182.9,60,172.3,1 103,-1,539.3,65.9,48.3,164.1,1 103,-1,1268.7,193.2,45.4,168.1,1 103,-1,853.3,215,58,168.7,1 103,-1,439.9,3.5,52.9,154.3,1 103,-1,1392.1,189.6,58.6,183.4,1 103,-1,1436.1,188.4,60.2,179.3,1 103,-1,375.1,7.1,51.1,164.6,1 103,-1,481.3,40,60.5,159,1 103,-1,482.9,150.6,54.7,162.3,0.999 103,-1,258.6,89,60.4,182.2,0.991 103,-1,1150.9,939.7,74.9,141.3,0.075 414,-1,1222.2,30.4,61,119,1 414,-1,686.2,205.9,79.8,113.8,1 414,-1,454.1,247.1,80.5,209.9,1 414,-1,358.2,109.4,55.1,176.2,1 414,-1,552.2,68.5,55.5,168.8,1 414,-1,1720,454.3,79.1,211.6,1 414,-1,1657.4,61.4,74.4,173.9,1 414,-1,110,348.2,52.5,190.5,1 414,-1,1005.5,30.4,54.8,163.7,1 414,-1,946.4,17.3,59.4,168.5,1 414,-1,286.8,129.7,54.5,164.8,1 414,-1,832.6,1.3,54.4,130,1 414,-1,358.4,1,67.7,113.3,1 414,-1,1770.7,125.6,56.6,166.3,1 414,-1,795.6,150.2,58.6,171.9,1 414,-1,403.3,616.9,75.4,240.4,1 414,-1,1225.4,494.7,65.8,207.2,1 414,-1,220.3,141.9,68.3,157.5,1 414,-1,1581.8,615.2,102.8,241.6,1 414,-1,859,538.5,105.5,244.6,1 414,-1,293.7,589.8,87.6,252.9,1 414,-1,207.6,263.5,54.8,185.5,1 414,-1,1843.9,72.6,77.1,177.1,1 414,-1,426.3,94.9,53.8,171.7,1 414,-1,711.9,557,86.6,246,1 414,-1,460.5,69,70.9,193.9,1 414,-1,717.5,1,51.2,129.4,1 414,-1,712.2,88.5,63.5,175.3,0.999 414,-1,934.9,553.3,80.5,215.6,0.999 414,-1,425.6,1.5,43.2,113.3,0.997 414,-1,981.9,924.7,79.5,156.3,0.689 326,-1,1221.4,31,62.4,118.9,1 326,-1,1453.3,1,55.6,138.2,1 326,-1,686.1,207.5,80.3,112,1 326,-1,363.7,578.1,95,249.6,1 326,-1,1716.9,58.8,60.9,159.4,1 326,-1,452.5,116.8,73.3,198.4,1 326,-1,1720.2,456.9,79,212.9,1 326,-1,109.2,351.6,51.4,188.2,1 326,-1,795.3,149,60.5,174.2,1 326,-1,420,44.6,57.1,169.1,1 326,-1,988.3,68.5,62.2,181.1,1 326,-1,363.4,107.7,57.2,179.9,1 326,-1,238.2,361.8,57.3,186.3,1 326,-1,927.9,35.7,63.3,172.9,1 326,-1,898,445.4,70.8,196.5,1 326,-1,281,133.4,55,171.7,1 326,-1,1577.2,1,67.4,118.8,1 326,-1,212.8,135,56,164.9,1 326,-1,1518.6,602.1,85.9,248.9,1 326,-1,515.3,478.4,68,219.6,1 326,-1,832,439.4,80.8,209,1 326,-1,726,95.2,50.8,174.9,1 326,-1,1046.1,77.5,51.7,161,1 326,-1,1836.3,513.2,66.5,213.5,1 326,-1,424.5,462.6,77.1,238,0.999 326,-1,516.1,101.4,40.9,170.1,0.999 326,-1,932.4,909.4,73.8,171.6,0.979 326,-1,371.4,913.2,93.3,167.8,0.834 326,-1,712.4,17.8,46.6,150.6,0.057 51,-1,1220.5,29.3,63.8,117.2,1 51,-1,686.1,206.4,79.8,113.4,1 51,-1,398.7,352.9,83.2,236.6,1 51,-1,1361.8,567.1,104.9,244.4,1 51,-1,355.2,108.5,55.2,175.2,1 51,-1,1487.2,70.5,55,148.8,1 51,-1,489.4,177.4,89.6,197.9,1 51,-1,704.6,1,55.4,157.4,1 51,-1,1721.9,456.3,76.7,211.3,1 51,-1,889.6,192.3,60.3,186,1 51,-1,162.7,363,64.6,193.4,1 51,-1,1005.7,168.5,76.4,186.4,1 51,-1,213.7,125.9,49.7,167.5,1 51,-1,102,546.4,86.1,253.3,1 51,-1,793.5,147.5,63.7,176.7,1 51,-1,284,125.9,53.9,170.9,1 51,-1,5.5,782.2,68.6,241.8,1 51,-1,427.5,100.2,54.7,155.3,1 51,-1,1322.3,178.3,55.4,169.1,1 51,-1,1376.6,219.5,42.5,163.8,1 51,-1,485.2,47.5,54,154.4,1 51,-1,541.2,65.3,44.8,167.5,1 51,-1,1481.9,214.8,62.2,200.3,0.999 51,-1,1858.2,272.1,62.8,193.5,0.999 51,-1,858.8,165.6,54.1,170.4,0.895 51,-1,395.6,68,42.6,141.9,0.296 837,-1,1221.4,29.7,62.2,120.1,1 837,-1,687.8,205.8,78,114.3,1 837,-1,791.7,136.5,73.8,178.5,1 837,-1,1644.5,9.8,59.1,165.1,1 837,-1,558.6,116.3,60.5,175.6,1 837,-1,270.3,582.2,82.1,242.5,1 837,-1,1722.6,452.1,76,215.3,1 837,-1,1577.2,593.6,98.5,234.1,1 837,-1,1472.8,52.3,60.1,157.2,1 837,-1,475.5,130.5,59.8,182,1 837,-1,752.3,71.4,56.6,163.1,1 837,-1,438.4,267.9,54.6,200.4,1 837,-1,358.2,276.3,81.1,182.1,1 837,-1,1032,527,73.3,234.7,1 837,-1,239.1,131.9,51.6,169.3,1 837,-1,295,162.3,69.4,196,1 837,-1,1419.2,35.1,53.2,157.1,1 837,-1,946.6,548.6,72.4,231.5,1 837,-1,253.5,1.2,55.4,122,1 837,-1,1067.5,3.3,58.6,94.9,1 837,-1,416.8,125.7,57.9,182.1,1 516,-1,1221.2,30.6,62.2,119,1 516,-1,1490.7,1,60.1,138.2,1 516,-1,686.8,207.1,79.5,113.9,1 516,-1,995.6,1,55,121.5,1 516,-1,789.2,142.6,57.2,175.4,1 516,-1,392.8,184.2,62.9,188.3,1 516,-1,1673.4,23.5,54.1,165.3,1 516,-1,160,327.5,65.6,188.9,1 516,-1,1724.8,625.5,74.7,215.3,1 516,-1,883.3,1.3,53.5,121.3,1 516,-1,1718.8,459.6,79.6,206,1 516,-1,1563.8,599.9,67.6,235.7,1 516,-1,460.1,136.4,70.8,186.1,1 516,-1,930,2.2,57.1,118.9,1 516,-1,340.5,169.8,50.9,166.5,1 516,-1,828.8,608.3,73.3,256.4,1 516,-1,948.7,703.3,115.8,262.5,1 516,-1,1613.8,14.5,54.4,174.9,1 516,-1,1604.3,300.5,63.8,202.6,1 516,-1,287.3,126.7,53.9,173.1,1 516,-1,215.9,135.8,64.9,162.2,1 516,-1,1708.2,324.6,93.9,196.5,1 516,-1,1850.2,211.8,70.8,187.5,1 516,-1,731.2,94.8,64.6,164.6,1 516,-1,196.8,771.9,94.4,270.8,1 516,-1,451.5,3.4,75.5,182.5,1 516,-1,516.2,95.8,57.1,177.5,1 516,-1,1757.6,206.4,57.9,167.7,1 516,-1,277,801.9,82.3,262.7,1 516,-1,398.7,24.8,46.9,160.3,0.998 516,-1,571.6,68.4,44.4,158.3,0.981 522,-1,1221.8,30.5,61.5,120.2,1 522,-1,1487.5,1.1,59.5,140.8,1 522,-1,687,206.3,79.6,113.6,1 522,-1,994.6,1.4,54.1,120,1 522,-1,1719,462,80.3,204.3,1 522,-1,1671.7,20.6,53.8,160.7,1 522,-1,163.3,323,65.7,194.3,1 522,-1,392.3,186.5,59.1,189.5,1 522,-1,786.6,143.6,57.6,177.6,1 522,-1,288,124.4,54.1,173.6,1 522,-1,465.2,127.8,65.1,183.6,1 522,-1,1608.9,7.4,56.9,173.4,1 522,-1,929.5,1.3,58,117.4,1 522,-1,826.1,607,70.4,259.4,1 522,-1,1571.9,596.2,62.3,243.6,1 522,-1,1707.6,310.7,86.2,212.1,1 522,-1,886.4,1.3,51.3,117.3,1 522,-1,1751.4,644.4,72.9,215.1,1 522,-1,950.6,719.6,121.7,260,1 522,-1,216.7,136.1,63.7,160.5,1 522,-1,272.2,810.6,79.2,268.3,1 522,-1,1763.3,208.1,60.7,171.9,1 522,-1,1860.7,215.4,60.3,191.3,1 522,-1,514.6,98.5,58.9,182.2,1 522,-1,450.6,2.6,76.3,172.2,1 522,-1,190.4,781.8,97.3,273,1 522,-1,1598.2,291.3,63.5,199.3,1 522,-1,740.6,91,61.9,170.2,1 522,-1,357.2,165.8,46.6,164.2,0.999 522,-1,401,27.6,47.6,163.1,0.999 522,-1,1043,734.8,71.6,248.6,0.456 522,-1,578,73.9,37.3,149.3,0.422 522,-1,1046.7,933.5,71.2,147.5,0.074 166,-1,1221.6,30.4,61.7,118.8,1 166,-1,1489.2,69.1,54.6,149.1,1 166,-1,977,127,64.7,171.2,1 166,-1,109.1,350.7,50.2,187.1,1 166,-1,212.2,125.6,55.3,167.9,1 166,-1,356.7,103.8,54.9,178,1 166,-1,704.1,1,56.4,159.6,1 166,-1,1721.5,457.2,77.8,212,1 166,-1,1359.1,568,104,243.2,1 166,-1,288.8,126.7,54.5,170.3,1 166,-1,1131.8,155.2,49.3,160.1,1 166,-1,688,208,77.6,112.1,1 166,-1,401.1,678.9,100.3,258.6,1 166,-1,432.8,38.4,61.1,168,1 166,-1,538,63.5,51.5,170.3,1 166,-1,100.8,548,86.1,251.9,1 166,-1,528.1,281.8,64.3,213.5,1 166,-1,421.5,241.3,77.3,218.3,1 166,-1,560.9,157.7,67.4,169,1 166,-1,216,589.6,67.1,220.2,1 166,-1,854.3,192.3,73.6,187.8,1 166,-1,799.3,274.8,63.6,178.6,1 166,-1,749.2,261.9,68.1,198.1,1 166,-1,795.4,147.9,62,172.7,1 166,-1,502,211,56.7,172.1,0.999 166,-1,1278.5,166.5,55.6,168.6,0.999 166,-1,1244.3,166.6,54.1,168.3,0.999 166,-1,1021.8,904.9,73.1,176.1,0.99 166,-1,394,8.6,47.9,110.9,0.985 166,-1,604.4,272.8,51.6,189.1,0.133 40,-1,686.4,206.3,80,113.4,1 40,-1,1210.9,29.3,74.1,121.1,1 40,-1,916,194.1,95.7,186.9,1 40,-1,1486.5,69,56.1,152.2,1 40,-1,390.6,366.7,87.5,238.6,1 40,-1,1362.4,567.6,104.9,244.9,1 40,-1,704,1,56.6,158.1,1 40,-1,1722.8,457.7,76,209.7,1 40,-1,483,166.5,94.7,196,1 40,-1,177.7,370.5,68.9,190.5,1 40,-1,1009.5,157.7,79.4,186.3,1 40,-1,214.8,128.1,49.4,163.9,1 40,-1,795.1,148.6,62,175.3,1 40,-1,355.3,108.7,54.9,173.1,1 40,-1,102.5,548.5,85.1,250.3,1 40,-1,284,126.6,53.7,168.2,1 40,-1,446.9,48,51.5,168.9,1 40,-1,865.5,146.8,56.4,185,1 40,-1,1.4,804.9,64.7,240.9,1 40,-1,1843.6,253.5,73.9,195,0.999 40,-1,390.8,78.7,55.5,163.5,0.999 40,-1,1348.3,189.1,53.7,167.8,0.999 40,-1,494.7,42.7,41.5,144.1,0.155 40,-1,1502.2,217.2,50.8,195.7,0.136 40,-1,1397.2,219.7,37.6,171,0.067 82,-1,1221.6,30.4,61.4,117.6,1 82,-1,704.4,1,56.3,159.1,1 82,-1,1487.2,69.2,55.2,148.3,1 82,-1,1228.6,164.3,73.2,166.7,1 82,-1,1359,565.3,105.9,245.6,1 82,-1,494.9,205.9,76,198.8,1 82,-1,356.7,104.4,55,180.1,1 82,-1,977.8,191.5,73.6,184.4,1 82,-1,1722.3,456,76,211.8,1 82,-1,414.2,324.5,83.5,229.1,1 82,-1,102.6,547.4,85.3,251.9,1 82,-1,1323,201.2,41.7,166.1,1 82,-1,294.6,129,50.6,166.6,1 82,-1,685.6,205.9,80.2,116.9,1 82,-1,14.8,723.4,68.5,234,1 82,-1,1422.7,200,69.1,190.7,1 82,-1,389,882.6,102.3,198.4,1 82,-1,211.3,131.9,51.3,163.3,1 82,-1,128.3,355.9,45.5,190.3,1 82,-1,762.6,184.4,58,180.2,1 82,-1,1488.1,201.8,51.7,175.4,1 82,-1,538,63.1,49.2,172.4,1 82,-1,836,172,58,191.5,1 82,-1,881.4,196.7,53.6,166.8,1 82,-1,433.5,21.1,53.8,163.6,1 82,-1,378,25.8,55.4,164.3,1 82,-1,255.8,96.6,56.9,173,0.999 82,-1,476.7,122.9,56.6,160.9,0.999 860,-1,1221.3,29.4,61.9,119.4,1 860,-1,687.1,206.5,79.7,113.3,1 860,-1,270.4,610.8,88.6,250.4,1 860,-1,486.6,1.1,48.7,116.5,1 860,-1,797.3,138.8,75.2,176,1 860,-1,1680.6,32.7,52,160.3,1 860,-1,1472.1,69.3,61.4,155,1 860,-1,1574.3,589.7,103.5,234.3,1 860,-1,341.5,300.5,78.2,181.3,1 860,-1,1079.1,1,58.4,123.3,1 860,-1,559.4,117.1,58.9,172,1 860,-1,1721,453.5,79.7,212,1 860,-1,1413.9,21,51,153,1 860,-1,753.1,70.3,54.9,164.9,1 860,-1,297.4,160.4,73.4,197.7,1 860,-1,475.8,150.7,57.9,178.5,1 860,-1,433.6,295.8,55,194.1,1 860,-1,239.8,134.8,53.4,162.1,1 860,-1,254.4,1,53.8,120.9,1 860,-1,994.2,495.4,86.3,238.9,1 860,-1,415.3,148.9,62.3,175.1,1 860,-1,1573.4,14.3,48.9,142.5,1 860,-1,916.7,507.8,71.4,235.2,1 566,-1,1221.3,30.6,61.8,119.3,1 566,-1,686.9,206.1,79.4,113.5,1 566,-1,1482.5,3.5,59.4,146.1,1 566,-1,1824.6,247.4,68.6,175,1 566,-1,545.5,117.4,54.8,168.1,1 566,-1,377.6,233.5,65.4,195.1,1 566,-1,791.3,147.2,68,173.6,1 566,-1,1665.3,267.5,69.9,201.4,1 566,-1,1718.1,453.5,83,213.7,1 566,-1,1653.5,1,55.6,143.7,1 566,-1,873.1,1,51.9,106.4,1 566,-1,1575.6,2.2,55.9,137.4,1 566,-1,289.3,121.1,52.3,173.9,1 566,-1,203.3,289,64.2,191.2,1 566,-1,218.3,137.2,56.5,162.8,1 566,-1,438,137.4,53.3,155,1 566,-1,1591.7,591,76.7,230.8,1 566,-1,755.4,79.6,44.5,154.6,1 566,-1,145.9,255.8,57.5,217,1 566,-1,733.7,588.3,83.3,250.4,1 566,-1,1020.1,797.5,123,268.6,1 566,-1,465.8,84.1,63.1,170.9,1 566,-1,359.5,110.4,50.8,174.1,1 566,-1,987.2,1.7,49,86,0.999 566,-1,418.6,47.1,50.4,179.2,0.996 566,-1,246.8,911.6,83.7,169.4,0.995 566,-1,1102.6,816.5,90.7,237,0.99 566,-1,1019,934.4,77,146.6,0.083 698,-1,1221.5,30.2,62.4,118.1,1 698,-1,687.2,206.4,79.2,113.2,1 698,-1,1482,6,59,145.3,1 698,-1,1606.2,139.4,70.2,182.4,1 698,-1,1479.5,135.8,52.8,173.5,1 698,-1,1711.8,457,95.7,207.5,1 698,-1,561.4,112.2,53.3,177.4,1 698,-1,1575.1,588.9,96.5,235.7,1 698,-1,300.3,378.6,71.9,214.4,1 698,-1,382.2,534.8,76,253.7,1 698,-1,421,148.3,65.8,166.5,1 698,-1,486.8,137.7,47.8,184.7,1 698,-1,1314.9,804.3,102.8,276.7,1 698,-1,750.2,80.4,49.9,155.3,1 698,-1,801.7,140.5,51.2,177.4,1 698,-1,479.7,26.9,45.9,141.8,1 698,-1,360.5,112.5,48.9,172.7,1 698,-1,252.5,199.7,62.6,196.9,1 698,-1,303.9,211.7,59.1,181.8,1 698,-1,1029.9,2,66.7,91.4,1 698,-1,408.4,21.9,57.4,161.5,1 698,-1,1238.5,822.2,86.3,258.8,1 698,-1,227.7,134.1,52,162,1 698,-1,827.4,928,83.6,153,0.645 909,-1,1222.4,30.3,60.3,118.6,1 909,-1,686.9,206.2,79.5,113.6,1 909,-1,473.8,194.8,67.1,191,1 909,-1,794,140.3,75.2,171.5,1 909,-1,309.6,693.6,88.6,265,1 909,-1,1433,1,48.5,143.6,1 909,-1,1110.1,31.2,62.8,159.7,1 909,-1,1575,590.5,103.4,234.2,1 909,-1,1721.7,452.5,77.3,215.7,1 909,-1,557,114.4,58.5,175.2,1 909,-1,380.9,192.5,57.3,177.2,1 909,-1,1480.9,104.6,60.5,153,1 909,-1,872.1,434.7,65.8,222.4,1 909,-1,1716.8,87,53.3,174.9,1 909,-1,1306.4,878.9,97.8,202.1,1 909,-1,1597.7,62.2,53.5,160.7,1 909,-1,301.7,162.7,69.3,198.5,1 909,-1,414.7,346.7,58.9,207.4,1 909,-1,752.9,73.4,54.9,159.7,1 909,-1,1744.7,680.9,98.2,239.2,1 909,-1,328.5,354.3,83.3,189.3,1 909,-1,470.2,10.3,49.1,148.7,1 909,-1,241.4,134.5,57.7,165.2,1 909,-1,967.6,415,66.1,226.9,1 909,-1,1502.6,3.6,57.1,134.2,1 909,-1,312,1.3,47.8,133,1 909,-1,254.3,1.4,53.8,118.5,1 909,-1,422.8,65,53.5,172.8,1 838,-1,1221.4,29.2,62.2,120,1 838,-1,687.4,205.9,78.7,112.9,1 838,-1,792.2,137.1,74.3,178.1,1 838,-1,1644.9,12,59,162.4,1 838,-1,557.4,117.1,61.1,175.6,1 838,-1,1722.3,453.1,77,213.7,1 838,-1,267.9,582.6,84.6,245.1,1 838,-1,1577.1,594.6,98.8,232.1,1 838,-1,475,130.7,60.5,183.1,1 838,-1,752.5,70.9,56.2,162.4,1 838,-1,1471.7,53.2,61.2,157.1,1 838,-1,437.3,266.9,55.9,204.1,1 838,-1,239,130.7,52.4,171.2,1 838,-1,945.8,543.3,70.9,233.5,1 838,-1,358.3,277.1,81,181.3,1 838,-1,1418.5,33.7,53.7,160.3,1 838,-1,1068.3,2.9,57,98.3,1 838,-1,295.5,162,68.7,195.5,1 838,-1,1034.6,521.9,71.7,241.3,1 838,-1,254.3,1.5,54.5,119.9,1 838,-1,417,127.5,57.2,178.7,1 723,-1,1221.8,29.9,61.9,118.6,1 723,-1,687,206,79.9,113.5,1 723,-1,1480.3,7.2,59,145.9,1 723,-1,550.7,111.8,59.9,177.7,1 723,-1,1246.4,750.4,97.3,264.3,1 723,-1,1599.7,119.1,59.7,178,1 723,-1,1474.8,111,52.1,175.6,1 723,-1,1710.9,454.9,96.4,208.8,1 723,-1,412.9,175.7,68.5,163.4,1 723,-1,1574.6,591,99.1,233.4,1 723,-1,394.5,549,97.5,249.3,1 723,-1,261.9,192.8,56,198.2,1 723,-1,300.6,408.1,75.5,222.9,1 723,-1,478,159.2,49.3,183.1,1 723,-1,314.1,201.7,63.8,179.4,1 723,-1,749.7,81.9,49.7,152.4,1 723,-1,786.9,137.1,50.2,178.8,1 723,-1,418.1,42.6,64.1,163.2,1 723,-1,1169.7,771.9,87,264.6,1 723,-1,361.6,108.9,46.8,171.2,1 723,-1,466.2,13.2,45.6,139.6,0.999 723,-1,235.3,133.7,51.4,167,0.999 723,-1,320,1.4,52.9,132.5,0.326 835,-1,1221.7,29.9,61.8,118.2,1 835,-1,687.2,205.6,78.7,114,1 835,-1,791.4,137.2,71.8,178.2,1 835,-1,558.9,116,60.8,175.2,1 835,-1,1641.6,11.1,59.4,158.9,1 835,-1,271.3,577.6,82,244.2,1 835,-1,1722.7,453,76.6,213.8,1 835,-1,1574.9,590.4,101.9,233.9,1 835,-1,1473.4,50.6,59.8,156.8,1 835,-1,752.7,70.6,56.6,163.8,1 835,-1,475.9,127.2,59.2,179.2,1 835,-1,239.6,133.8,51.7,163.2,1 835,-1,354.1,271.8,86.3,185.7,1 835,-1,1421.7,37.4,50.7,158.4,1 835,-1,294.5,163.2,68.3,195.2,1 835,-1,1033.7,528.7,82.8,237.1,1 835,-1,437.2,259.9,55.3,205.6,1 835,-1,951.6,555.9,70.9,233.4,1 835,-1,420.3,124.1,56.6,174,1 835,-1,254.1,1.8,53.8,120.8,1 835,-1,1064.7,4.9,61.5,92,0.638 835,-1,357.8,174.4,34.6,156,0.153 958,-1,686.5,206,79.7,113.2,1 958,-1,1221,30,62.2,119.6,1 958,-1,1470.4,137.6,67.1,163.6,1 958,-1,793.6,139.4,74.2,174.2,1 958,-1,1762.9,148.4,67.1,174.2,1 958,-1,1644.4,109,54.5,168.5,1 958,-1,1153,83.9,56.6,167.1,1 958,-1,926.8,343.1,75,219.4,1 958,-1,1721.2,454.6,77.6,212,1 958,-1,751,72.3,56.4,161.1,1 958,-1,1575.6,589.2,102.3,236.1,1 958,-1,421.8,237.6,68.5,195.5,1 958,-1,323.2,779.7,96.8,269.7,1 958,-1,1227.6,741.8,94.8,273,1 958,-1,849.9,358.6,70.3,212.3,1 958,-1,1407.3,1.3,46.8,107.2,1 958,-1,389.5,401.4,69.3,217.6,1 958,-1,550.4,118.8,54.8,170.3,1 958,-1,1472.2,1,57.5,110.5,1 958,-1,230.5,137.4,56,165.8,1 958,-1,484.5,227.5,63.9,181.9,1 958,-1,322.2,417.7,78.1,191.1,1 958,-1,438.6,74.1,56.7,177,1 958,-1,336.5,241.8,64.4,182.7,1 958,-1,1742.3,678.1,94.5,248.8,1 958,-1,289.1,125.6,53.3,174.4,1 958,-1,481.8,47.4,55,161.3,1 958,-1,242.4,2.6,54,120.1,0.999 958,-1,313.5,1,47,133.3,0.983 810,-1,1221.2,29.3,62.8,118.7,1 810,-1,687,205.4,78.5,114.2,1 810,-1,277.6,536.1,79.5,233.4,1 810,-1,551.3,116.5,65.5,177.4,1 810,-1,1723.5,453.2,75,214.2,1 810,-1,787.7,130.9,53.6,178.5,1 810,-1,1574.8,590.7,100.9,234.5,1 810,-1,1618.2,1,60.2,145.1,1 810,-1,277.8,166.8,60.9,194.3,1 810,-1,441.3,235.8,56.1,196,1 810,-1,1472.6,34.4,63.3,155.6,1 810,-1,377.7,247.9,75.4,180.3,1 810,-1,991.7,590.8,74.9,247.5,1 810,-1,1069.2,570.9,72.8,252.2,1 810,-1,475.8,107.3,64.5,179.7,1 810,-1,234.9,137.6,50.3,162.2,1 810,-1,750.9,73.6,57.4,157.9,1 810,-1,346.8,178.9,52.5,174.4,1 810,-1,1435.8,53.7,49.1,155.1,1 810,-1,424,107.4,60.7,167.1,0.998 283,-1,1221.4,31.7,63,119.3,1 283,-1,687.9,207.5,76.8,112,1 283,-1,1023.6,98.9,62.2,182.7,1 283,-1,1469.8,32.3,55,148.9,1 283,-1,1654.1,28.5,58.5,155.5,1 283,-1,287.5,129.6,56.1,173,1 283,-1,353.8,109,53.3,177.1,1 283,-1,940.4,81.2,64.6,176.3,1 283,-1,455.5,144.9,73.5,206.1,1 283,-1,399.6,20.8,56,164.7,1 283,-1,1721.2,458.5,77,210.2,1 283,-1,213.7,579.3,83.8,251.6,1 283,-1,108.6,351.6,50.3,189.2,1 283,-1,704.4,1.1,54.5,158,1 283,-1,390,451.7,84.5,236.1,1 283,-1,1102.2,93.5,50.2,163,1 283,-1,796.1,148.9,61.3,172.6,1 283,-1,1439.6,578.7,94.7,247.5,1 283,-1,223.1,131.3,52.9,162.5,1 283,-1,280.8,803,94.5,271.2,1 283,-1,233.2,416.3,59,195.7,1 283,-1,750.7,105.7,47.8,164.5,1 283,-1,552.9,420.1,66.7,214,1 283,-1,514.8,108.9,51.9,178.2,1 283,-1,882,394.2,80.5,200.1,1 283,-1,759.2,345.3,68,187.3,1 283,-1,811.3,378.9,88.6,214.3,1 283,-1,465.9,404.6,65.3,222.9,1 283,-1,843.4,113.4,48.4,153.8,1 283,-1,944.8,920.9,85.8,160.1,0.919 724,-1,1221.6,29.8,62.3,119.6,1 724,-1,686.5,206,80.4,113.6,1 724,-1,1480.7,6.3,58.9,145.8,1 724,-1,549.8,111.6,61.3,178.6,1 724,-1,1474.5,110.6,51.9,175.5,1 724,-1,1711.8,455.5,95.9,208.9,1 724,-1,1599.3,117.4,58.4,179.6,1 724,-1,1244.1,751.6,96,260.5,1 724,-1,413.2,175.2,69.2,166.4,1 724,-1,1574,589.9,99.4,234.3,1 724,-1,262,192.6,54.9,198.6,1 724,-1,478.5,158.7,49.1,184.1,1 724,-1,395.8,550.7,97.2,248.3,1 724,-1,315.7,201.6,63.2,179.4,1 724,-1,300.1,410.5,75.6,222.8,1 724,-1,786.2,138.8,51.5,176,1 724,-1,419.5,38.4,62.5,168.1,1 724,-1,749.7,83,49.4,150.6,1 724,-1,360.9,107.7,46.7,174.2,1 724,-1,1167.8,771.1,87.1,253.4,1 724,-1,235.6,135,50.9,165.2,0.999 724,-1,467.4,11.3,43.5,142.2,0.998 724,-1,320,1,52.9,132.6,0.74 829,-1,1221.2,29.1,62.4,118.9,1 829,-1,687.1,205.6,78.7,114.7,1 829,-1,1639.4,3.5,57.2,158.1,1 829,-1,791.5,134.7,66.9,181.3,1 829,-1,275.7,564.7,80.6,238,1 829,-1,557.1,116,62,175.3,1 829,-1,1036,545,93.7,244.4,1 829,-1,1722.7,453.4,76.1,213.1,1 829,-1,1575.1,588.6,102.3,236.4,1 829,-1,1476.1,44.3,59.2,157.2,1 829,-1,751.7,72.2,57.7,163.2,1 829,-1,370.6,272.2,77.2,175.6,1 829,-1,438.1,259.2,54.8,192.6,1 829,-1,238.6,133.5,50.2,164.8,1 829,-1,474,124.9,60.4,177.4,1 829,-1,1424.3,39.8,49.8,154.9,1 829,-1,289.6,161.3,68.5,199.5,1 829,-1,959.5,563.3,74.1,236.9,1 829,-1,423.1,122.7,56.2,172.5,1 829,-1,349.6,171.8,46.1,179.8,0.996 829,-1,252.3,1,55.5,118,0.969 996,-1,686.7,205.9,79.7,113.2,1 996,-1,1221.4,31.1,61.9,120.1,1 996,-1,793.2,139.8,75.4,171.8,1 996,-1,1801.2,187.2,70.2,188.1,1 996,-1,1196.1,130.2,61.8,174.3,1 996,-1,400.2,281.8,67.7,199.3,1 996,-1,1472.5,178.1,64.3,160.9,1 996,-1,503.5,264.6,64.3,184.2,1 996,-1,1672.8,152.3,60.4,174.1,1 996,-1,231.2,135.7,54.5,166.6,1 996,-1,840.8,304.4,67.4,196.6,1 996,-1,330.8,854.1,94.4,226.9,1 996,-1,290.9,125,50.9,169.8,1 996,-1,1575.9,590.4,103.8,237,1 996,-1,1721.5,452.2,78.4,218.6,1 996,-1,751.8,72.6,54.9,161.3,1 996,-1,922.2,297.8,70.8,205.4,1 996,-1,1178.4,650.6,90.2,263.3,1 996,-1,300.5,461.3,86,205.8,1 996,-1,543.1,119.2,59.6,169.9,1 996,-1,313.8,276.4,64.6,198.4,1 996,-1,384.7,452,68,221.2,1 996,-1,504.3,79.8,55.5,158.2,1 996,-1,315,1.4,45.3,129.6,1 996,-1,1739.1,675.8,95.2,246.6,1 996,-1,439.6,64.4,60.2,175.1,1 996,-1,388,167.4,70.4,186.3,0.999 996,-1,601.8,545.1,111.9,248.6,0.93 996,-1,1438.4,2.3,56.2,79.1,0.705 996,-1,1378.9,4.3,42,77.5,0.287 853,-1,1221.2,29.9,62,119,1 853,-1,687.2,205.6,78.7,114.8,1 853,-1,795.5,140.1,77.5,173.9,1 853,-1,1575.6,590.4,103.2,235.5,1 853,-1,559.1,115.9,60.1,175.9,1 853,-1,489.2,1,49.9,115.5,1 853,-1,265.9,605.8,84,242.3,1 853,-1,1722.1,453.4,77,213,1 853,-1,1470.8,61.6,60.2,158.2,1 853,-1,1072.3,1.1,60.1,118.9,1 853,-1,344.2,298.3,77,176.7,1 853,-1,1412.9,29.1,53.4,153.1,1 853,-1,1667.2,31.2,52,159.5,1 853,-1,298.1,160.6,72.3,197.5,1 853,-1,253.7,1,55.5,122.4,1 853,-1,753.4,71.9,54.1,161.8,1 853,-1,925.9,521.7,71.9,223.7,1 853,-1,472.6,140.7,61,187.2,1 853,-1,238.9,132.2,54.7,165.7,1 853,-1,435.4,283.6,54.2,198.3,1 853,-1,1006.2,498.4,75.9,236.6,1 853,-1,416.3,141.5,60,171.3,1 102,-1,1222,30,62,118.9,1 102,-1,391.1,824.5,102.3,256.5,1 102,-1,1167.6,153.9,87.9,173.1,1 102,-1,704.9,1,56.1,159.4,1 102,-1,1487.7,69.4,55.2,148.2,1 102,-1,357,107.1,55.6,176.9,1 102,-1,1722.7,456.3,76.3,212,1 102,-1,427.3,303.2,77.6,230.5,1 102,-1,109.2,350.4,50.6,189.7,1 102,-1,505.6,228.7,72.1,194.1,1 102,-1,1358.2,566.6,105.2,246.1,1 102,-1,948.9,200.7,73.7,188.1,1 102,-1,292.1,126,55.9,172.6,1 102,-1,102.3,549.6,85.8,248,1 102,-1,209.9,130.8,50,165.7,1 102,-1,810.9,192.3,60.3,192.7,1 102,-1,1270,192.8,46.4,166.3,1 102,-1,32.7,689,68.1,222.8,1 102,-1,705.2,184.6,58.3,171.1,1 102,-1,538.4,66.2,48.5,163,1 102,-1,1394.2,190.2,59.3,185.3,1 102,-1,854.5,213.7,57,168.3,1 102,-1,375.2,8.7,51.6,162.4,1 102,-1,440.3,4.2,51.8,152.7,1 102,-1,480.9,39.6,62.1,160.2,1 102,-1,1438.9,188.6,59.9,177,0.999 102,-1,483.1,145.8,54.5,164.8,0.998 102,-1,257,86.9,64.7,187.6,0.994 102,-1,1152.5,941.8,75.7,139.2,0.066 14,-1,687.6,206.3,78.4,113.5,1 14,-1,1486.2,69.8,56.2,148.3,1 14,-1,1040.3,207.7,83.2,176.1,1 14,-1,502.5,150.2,104.4,190.9,1 14,-1,1361.8,567.3,105.1,244.1,1 14,-1,704.4,1.7,56.2,157.8,1 14,-1,380,394.2,83.4,235,1 14,-1,1202.9,34.7,73.1,118.5,1 14,-1,1725.4,457,75.9,210.7,1 14,-1,795.8,148.9,60.9,174.4,1 14,-1,102,547.5,85.1,250,1 14,-1,356.2,104.7,53.8,177.1,1 14,-1,1805.7,223.9,64.9,178,1 14,-1,217.7,125.7,47.9,167.3,1 14,-1,285.6,122.1,54.4,173.5,1 14,-1,1621,253.9,61.4,181,1 14,-1,460.6,71.4,53.3,172.9,1 14,-1,210.4,383.6,63.1,193.6,1 14,-1,878,131.3,58.4,178.9,1 14,-1,416.5,87.7,52.7,163.5,1 14,-1,1397.6,187.3,52.5,178.7,0.999 14,-1,1436.7,242.2,48.6,172.1,0.999 14,-1,1039.6,1,49.4,70.9,0.928 14,-1,247.4,365.5,51.2,199.8,0.462 14,-1,1,854.4,42.1,226.6,0.171 14,-1,913.8,139.7,49.7,163.9,0.115 809,-1,1221.4,29.2,62.4,119,1 809,-1,687.1,205.2,78.5,114.7,1 809,-1,277.4,534,80.4,233.8,1 809,-1,1617.8,1,60.1,142.8,1 809,-1,786.9,131.5,52.5,178.3,1 809,-1,1723.9,453.4,74.8,213.1,1 809,-1,550.7,115.6,64.8,176.9,1 809,-1,1574.2,590.8,101,234.4,1 809,-1,277.8,166.3,61.3,194.8,1 809,-1,441.3,235.9,56.2,194.8,1 809,-1,1472.4,33.3,63,155.9,1 809,-1,994.4,593.5,73.5,242.8,1 809,-1,378.2,247.7,75.5,179.3,1 809,-1,476.1,106.2,64.9,179.9,1 809,-1,234.3,136.8,51.2,162.5,1 809,-1,1069.6,572.5,74.1,251,1 809,-1,751.2,73.2,57.7,159.3,1 809,-1,346.2,179.5,52.6,174.4,1 809,-1,1435.4,52.4,50.6,158.5,1 809,-1,422.9,106.3,60.8,168.9,0.998 809,-1,441.4,4.2,36.2,70.3,0.224 235,-1,1221.6,30.4,62.2,119.2,1 235,-1,1488.3,64.4,55.3,151.6,1 235,-1,686.3,207.6,79.6,111.6,1 235,-1,378.8,541.9,96.4,238.7,1 235,-1,796.9,153.1,58.9,174.4,1 235,-1,705.9,1.5,55.4,159.5,1 235,-1,1582,1.3,58.5,145.6,1 235,-1,1092.1,125,64.8,182.6,1 235,-1,355.9,106.8,54.5,178.6,1 235,-1,288.5,127,55.5,172,1 235,-1,439.4,183.8,78.9,209.4,1 235,-1,211.9,125.4,55.6,168.6,1 235,-1,109.3,350.2,50,189.7,1 235,-1,1362,567.4,104.4,243.4,1 235,-1,1170.6,126.6,55,161.5,1 235,-1,1720.3,457,79.1,212.2,1 235,-1,516.9,121,49.9,181,1 235,-1,221.5,484.1,58.9,201.5,1 235,-1,923.6,125.3,70.4,185.8,1 235,-1,173,704.4,89.8,248.1,1 235,-1,502.9,348.7,73.4,223.7,1 235,-1,837.5,337.8,77.7,193.9,1 235,-1,590.1,359,62.1,200.9,1 235,-1,780.6,328.2,78.5,207.8,1 235,-1,120.8,644.9,89,243.4,0.999 235,-1,933.5,900.6,71.7,180.4,0.993 1046,-1,1222.1,30.2,61.2,118.8,1 1046,-1,686.9,206.7,79.8,114.4,1 1046,-1,795,141.8,71.4,172.1,1 1046,-1,476.8,324.1,75.8,195.6,1 1046,-1,288.1,125.2,53.8,173.7,1 1046,-1,275.8,541.4,91.9,204.3,1 1046,-1,1719.9,455.9,80.2,214,1 1046,-1,1119.3,554,86.6,248.8,1 1046,-1,357.7,327.5,76.2,211.6,1 1046,-1,1304.5,199.8,60.8,164.8,1 1046,-1,229.3,137.6,55.3,165.3,1 1046,-1,1650.7,676.2,94.9,236.9,1 1046,-1,1722.2,219.2,57.3,173.5,1 1046,-1,936.8,233.6,65.6,201.5,1 1046,-1,751.3,74.3,54.3,164,1 1046,-1,851.5,238.5,65.8,193.8,1 1046,-1,374.4,518,67.8,239,1 1046,-1,374,100.5,57.6,179,1 1046,-1,511.1,171.2,72.9,193.5,1 1046,-1,289.4,329.5,72.5,208.1,1 1046,-1,1470.7,219.2,73.4,167.2,1 1046,-1,308.7,2,38.1,129.7,1 1046,-1,1573.2,589.8,103.4,241.1,1 1046,-1,583,536.4,64.7,254.7,1 1046,-1,469.3,175.1,54,163.8,1 1046,-1,433.9,66.6,61.8,176.2,0.999 1046,-1,1863.1,258.8,57.9,198,0.996 1046,-1,876.9,927.1,70.3,153.9,0.055 1044,-1,1221.5,30.1,62,119.5,1 1044,-1,686.4,206.8,80.5,114.8,1 1044,-1,794.2,141.9,70.6,171.3,1 1044,-1,272.9,537.3,97.2,200.6,1 1044,-1,476.8,322.3,76.4,197.3,1 1044,-1,361.5,325.6,73.1,206.7,1 1044,-1,288.4,126,53.4,172.4,1 1044,-1,1721,455,78.8,214.9,1 1044,-1,230,137.6,55.9,166.1,1 1044,-1,1121.1,557.1,87.5,253.1,1 1044,-1,1651.8,678.3,97.3,234.8,1 1044,-1,937.1,235.5,65,203.2,1 1044,-1,751.3,73.8,54.7,162.8,1 1044,-1,1296.9,198,62.3,163.2,1 1044,-1,851.6,241,65.1,194.7,1 1044,-1,373.4,514.6,69.2,239,1 1044,-1,374,102,57.5,177.9,1 1044,-1,1718.5,218,59,173.2,1 1044,-1,308.5,2.6,38.1,128.1,1 1044,-1,291.1,325.6,72.5,210.2,1 1044,-1,1573.4,589.9,102.1,240.7,1 1044,-1,1469.1,217.3,75.6,165.3,1 1044,-1,503.7,168.2,77.7,201.5,1 1044,-1,582.5,536.6,65.2,253,1 1044,-1,1861.4,253.8,59.6,199.4,1 1044,-1,464.7,172.3,55.6,168.9,1 1044,-1,433.1,64.8,62.6,176,0.999 395,-1,1222.5,30.7,60.9,118.7,1 395,-1,686.3,206.7,79.6,113.5,1 395,-1,1638.7,34.8,65.8,174.8,1 395,-1,1773.4,115.2,67.7,164.7,1 395,-1,1144.4,472.9,74,202.9,1 395,-1,358.6,105.3,54.5,179.2,1 395,-1,947.9,25.7,65.5,173.8,1 395,-1,451.9,276.8,77.3,209.2,1 395,-1,826.8,1.1,56.7,119.6,1 395,-1,794.2,152.3,61.2,170.6,1 395,-1,220,142.6,61.9,155.4,1 395,-1,108.7,349.2,52.1,190.6,1 395,-1,365.6,2.8,61.6,100.5,1 395,-1,318.3,562.9,90.6,247.5,1 395,-1,282.6,127.4,56,167,1 395,-1,1594.3,622.6,88.9,255,1 395,-1,205.4,284.8,54.8,181.9,1 395,-1,1719.6,456.8,78.8,214.9,1 395,-1,432.5,583.4,73.8,236.5,1 395,-1,1010.8,41.3,55.1,162.1,1 395,-1,920.5,522.5,80.5,219.4,1 395,-1,850.5,515.2,94,231.7,1 395,-1,461.7,71.3,70,189.7,1 395,-1,543.9,66.2,56.6,170.7,1 395,-1,712.4,1.2,51.4,138.5,0.999 395,-1,430.8,80.8,47.4,175.2,0.997 395,-1,980.4,906.3,88.3,174.7,0.993 395,-1,1767.7,425.9,69.4,212.6,0.99 395,-1,709.3,89.9,57.7,176.2,0.986 395,-1,923.5,11,47.9,112.3,0.062 868,-1,1221,29.9,62.2,118.4,1 868,-1,687.1,206.2,79,113.3,1 868,-1,480.6,1.7,49,125.8,1 868,-1,1475.5,74.9,59.5,153,1 868,-1,795,139.4,78.3,174.8,1 868,-1,1087.4,1.1,54.7,138,1 868,-1,1687.4,45.3,53.8,163.8,1 868,-1,991.1,480.5,78.7,225.5,1 868,-1,1574.9,589.9,103.6,235.7,1 868,-1,1721,453.6,78.7,212.8,1 868,-1,557.9,116.6,59.9,174.5,1 868,-1,477.8,158.2,59.4,181.7,1 868,-1,338.5,312.1,82.1,181.2,1 868,-1,276.9,622.1,85.7,259,1 868,-1,300.3,161.5,68.8,193.7,1 868,-1,1578.6,20.7,48.8,143.7,1 868,-1,752.9,70.5,55.1,163.7,1 868,-1,254.6,1,53.9,119.1,1 868,-1,239.3,134.1,52.5,164.3,1 868,-1,1416.6,17.8,50.1,152.4,1 868,-1,906.8,496.1,68.7,224.5,1 868,-1,430.6,294.4,55.7,206.3,1 868,-1,413.5,157.3,58.9,177.8,1 868,-1,359,169.1,34,163.9,0.088 1010,-1,1220.8,30.3,62.7,116.8,1 1010,-1,686.1,206.6,80.4,112.4,1 1010,-1,496.7,281.2,68.6,189.9,1 1010,-1,793.8,140.1,73.8,172.5,1 1010,-1,289.3,126.6,53.2,169.2,1 1010,-1,390,289.6,74.7,197.2,1 1010,-1,1223,144.9,60.9,173.2,1 1010,-1,1719.5,454,83.1,216,1 1010,-1,1470.1,184.2,66.8,164.3,1 1010,-1,1576,590.1,102.8,236.8,1 1010,-1,540.6,120.3,61.6,170.1,1 1010,-1,231.8,138.9,53.5,164,1 1010,-1,929.9,275.9,65.6,209.7,1 1010,-1,1823.7,205.3,59.5,187.4,1 1010,-1,1156.6,620.9,96.4,264.7,1 1010,-1,1689.5,169.1,57.2,173.1,1 1010,-1,751.2,74.2,54.5,161.3,1 1010,-1,844.8,286,65.6,201.7,1 1010,-1,298.3,481.4,88.9,204.3,1 1010,-1,1740.1,678.8,91.7,243.8,1 1010,-1,305.2,291.3,66.7,202.1,1 1010,-1,379.8,466.2,66.2,231.3,1 1010,-1,591.8,551.9,96.9,244.2,1 1010,-1,313.6,2.3,42.5,127.7,1 1010,-1,431.5,167.3,61.7,194.2,1 1010,-1,348.7,887.9,97.9,193.1,1 1010,-1,381.9,173.7,52.5,161.8,0.999 1010,-1,507.9,93.8,52.9,154.4,0.999 1010,-1,434.7,72.1,64,161,0.993 1010,-1,384.4,1,56.4,157.1,0.973 306,-1,1221.7,31.3,61.4,118.5,1 306,-1,1457,12.4,54.2,147.2,1 306,-1,686.8,207,79.2,112.9,1 306,-1,414,33.3,56.6,164.2,1 306,-1,1689.7,43.4,57.3,157.9,1 306,-1,1719.1,458.4,80.1,210.9,1 306,-1,284,577.1,86.6,249.2,1 306,-1,934.9,55.6,65.8,177.9,1 306,-1,354.3,108.9,57.1,178.9,1 306,-1,108.6,351.9,51.9,187.7,1 306,-1,236,388.3,60.6,194.6,1 306,-1,794.1,148.4,61.7,178.2,1 306,-1,454.8,127.7,71.5,201.4,1 306,-1,217,128.9,54.8,167.5,1 306,-1,705.4,1,53.3,158.4,1 306,-1,533.3,449.8,67.6,215.1,1 306,-1,1481.8,596.6,88.7,243.4,1 306,-1,1004.4,80.5,60.9,184.2,1 306,-1,280.4,130.4,54.4,172.4,1 306,-1,1066.8,81.6,53.7,166.8,1 306,-1,887,425.7,71.8,190.6,1 306,-1,825.1,412.5,86.8,214.6,1 306,-1,736.4,100.2,47.1,172.6,1 306,-1,318.8,858.7,99.2,222.3,1 306,-1,388.9,404.9,82.7,229.7,1 306,-1,510.1,102.1,47.8,176.7,0.999 306,-1,454.2,435.6,64.8,230.3,0.999 306,-1,932.8,912.4,71.9,168.6,0.995 306,-1,362.6,781.9,93.8,266.1,0.413 224,-1,1221.7,30.8,60.7,119.7,1 224,-1,686.1,206.5,79.5,113.5,1 224,-1,795.2,145.9,64.1,178.3,1 224,-1,1492.2,68.5,53.7,148.3,1 224,-1,108.7,347.1,51.2,191.2,1 224,-1,399.8,564.4,84.8,243.5,1 224,-1,431.5,188.7,75.1,217.6,1 224,-1,705.4,1,55.1,160.4,1 224,-1,1194.9,129.6,44.9,165.4,1 224,-1,288.5,126.7,55.5,173.4,1 224,-1,356.8,105.8,53.3,180.3,1 224,-1,1356.5,567.4,105.8,244.3,1 224,-1,212.5,126.5,55.3,167,1 224,-1,1721.8,457.2,77.3,211.2,1 224,-1,137.4,672.6,105.8,261.9,1 224,-1,1112.4,129.1,62.6,184.2,1 224,-1,902.5,137.5,77.6,183.9,1 224,-1,518.9,123.3,47.3,174.9,1 224,-1,507.2,336.4,73,221.3,1 224,-1,217.3,500.8,60.3,203.9,1 224,-1,827.3,324.8,73.6,192.3,1 224,-1,767.4,314.9,76.8,202.2,1 224,-1,1572.1,1,54.7,141.1,1 224,-1,982.7,125.7,40.5,154.4,1 224,-1,71.2,628.8,104.1,240,0.999 224,-1,595,347.6,59.2,198.4,0.996 224,-1,939.5,907.1,71.3,173.9,0.994 115,-1,1221.5,30,62.5,119.2,1 115,-1,356.1,105.5,56.3,177.8,1 115,-1,1131.9,148,66.7,172.8,1 115,-1,393.4,792.5,99.5,275.9,1 115,-1,1487.5,68.1,56.2,151.7,1 115,-1,704.8,1,55.1,159.7,1 115,-1,211,129.3,50.9,162.9,1 115,-1,107.3,349.7,50.6,188.4,1 115,-1,930.3,207.9,68,192.2,1 115,-1,289.9,125.5,55.1,170.7,1 115,-1,1358.4,566.4,105.6,245.6,1 115,-1,1722,457.3,76.9,209.6,1 115,-1,426.2,290.3,78.9,226.6,1 115,-1,517.7,237.1,70.5,206.5,1 115,-1,1366.1,183.9,64.6,189,1 115,-1,1246.8,188.2,43.2,162.4,1 115,-1,60.9,675.5,78.7,217.6,1 115,-1,538.9,63.8,49.3,167.6,1 115,-1,480.4,157.1,55,166.2,1 115,-1,103.2,549.2,83.5,243.6,1 115,-1,792.8,206.3,64.3,188.8,1 115,-1,442.9,1,55.3,153.5,1 115,-1,837.8,221.6,55.8,174.5,1 115,-1,376.1,2.4,47.5,156.3,1 115,-1,481.6,40.8,61.8,159.5,0.999 115,-1,1124.8,926.6,84.3,154.4,0.173 545,-1,1221.9,30.7,61.7,119.8,1 545,-1,686.9,206,79.3,114.3,1 545,-1,1490.7,3.9,58.7,142.5,1 545,-1,781,145.9,67.8,170.7,1 545,-1,385.9,214.7,61.7,190,1 545,-1,1667.6,286.2,88.1,207.2,1 545,-1,990.2,1.4,51.9,102.3,1 545,-1,1715.8,456.7,83.6,210.8,1 545,-1,875.7,1.1,53.3,109.3,1 545,-1,1659.8,2.7,53.1,158.6,1 545,-1,289.6,124.7,51.9,171.4,1 545,-1,178.4,306.7,67.3,191.9,1 545,-1,777.4,601.5,92.7,248.7,1 545,-1,1784.4,226.6,66.1,178.9,1 545,-1,526.6,108.4,59.8,175.4,1 545,-1,1596.1,1,55.2,157.1,1 545,-1,454.7,106.9,66.8,182.6,1 545,-1,218.6,135.2,59.1,157.5,1 545,-1,1591.8,586.3,69.4,238.6,1 545,-1,929.3,1.4,54.9,101.4,1 545,-1,256.4,863.6,80.5,217.4,1 545,-1,358.7,116,56.7,168.9,1 545,-1,409.9,46.2,48.4,161.4,0.999 545,-1,132,270.9,54.4,217.3,0.998 545,-1,1069,769.7,89.5,250.1,0.997 545,-1,755.9,84.1,47.2,153.8,0.986 545,-1,992.1,757.9,117.2,253.4,0.911 117,-1,1221.6,30.1,62.4,118.5,1 117,-1,355.9,104.9,57.2,179.8,1 117,-1,1124.9,150.3,72.5,169.2,1 117,-1,394.6,787.5,101.7,277.7,1 117,-1,1488.2,68.5,55.8,150.8,1 117,-1,108,349.5,50.1,189.3,1 117,-1,704.7,1,55.4,158.9,1 117,-1,928.4,206.7,67.9,196,1 117,-1,211.8,128.4,50.6,164.3,1 117,-1,1722,456.5,77,210.5,1 117,-1,1359.2,566.5,104.9,245.5,1 117,-1,288.7,126.1,55.5,169.4,1 117,-1,427.1,288.9,78.2,228,1 117,-1,519.6,242,72.5,201.4,1 117,-1,68.3,670.1,76.8,214.7,1 117,-1,1359.3,182.3,66,186.7,1 117,-1,478.6,164.4,57.4,156.7,1 117,-1,538.8,63.9,49.2,169.2,1 117,-1,1241.2,180.8,44.1,163.6,1 117,-1,790.8,205.9,65.5,189.2,1 117,-1,444.4,1,54.8,150.2,1 117,-1,376.1,1.8,48.8,152.2,1 117,-1,103.6,544.3,84.7,257.1,1 117,-1,836.8,225.2,56.2,176,1 117,-1,482.2,40.4,60.1,162.4,0.999 117,-1,1119.9,929.1,82.3,151.9,0.304 477,-1,1222.2,30.9,62,118,1 477,-1,686.6,206,79.8,113.5,1 477,-1,999.9,1,57.9,148.8,1 477,-1,291.1,202.6,51,168.8,1 477,-1,359.5,107.2,56.6,178.9,1 477,-1,934.3,1,57.1,141.3,1 477,-1,1689.7,456.7,110.5,213.5,1 477,-1,1503.6,1,59,120.8,1 477,-1,876.9,1,53.2,132.5,1 477,-1,451.9,171.4,71.5,194.8,1 477,-1,1787.8,362.7,87.8,212.2,1 477,-1,1723.8,177.7,66.9,162.3,1 477,-1,808.2,590.9,91.1,256.4,1 477,-1,1639.2,338.1,62.7,199.9,1 477,-1,1782.1,152.6,81.9,175.6,1 477,-1,227.9,700.4,88.8,267.3,1 477,-1,1539.1,597,74.7,242.2,1 477,-1,804.1,142.5,47.1,178.8,1 477,-1,217.8,136.1,63.9,163.1,1 477,-1,912.3,632.4,116.2,252.2,1 477,-1,127.1,344.1,58.6,187.3,1 477,-1,320.3,731.8,78.7,253.5,1 477,-1,512.8,86.1,62.7,172.9,1 477,-1,446.7,29.9,72.3,180.9,1 477,-1,1704.4,51.4,52,168.3,1 477,-1,1654.3,41.2,63.1,174.5,1 477,-1,713.8,93.8,54.9,162.1,0.999 477,-1,412.7,5.8,45.8,155.2,0.999 477,-1,752.7,98.9,53.8,141.1,0.998 477,-1,1024,926.8,78.6,154.2,0.921 477,-1,994.4,659.1,71.9,218.1,0.875 477,-1,426.3,148.6,54.6,190.4,0.792 960,-1,686.7,206.3,79.7,112.8,1 960,-1,1220.8,30.3,62.5,119.6,1 960,-1,793.4,141,74.4,172.3,1 960,-1,1764.2,150.6,69.1,176.5,1 960,-1,1470.9,142.8,65.4,161.4,1 960,-1,1153.9,85.5,58.6,167.8,1 960,-1,1575.7,589.5,102.1,235.3,1 960,-1,1645.9,108.9,55.4,171.8,1 960,-1,750.9,70.5,56.1,163.7,1 960,-1,925.5,342.1,76.3,220.2,1 960,-1,420,240.7,69,195.2,1 960,-1,1719.6,456,78.4,210.8,1 960,-1,1224.5,736.5,95.5,272.7,1 960,-1,323.8,781.5,93.8,270.3,1 960,-1,1469.7,1,59,106.7,1 960,-1,440.2,71.9,55.6,181.8,1 960,-1,849.8,355.7,68.5,210.7,1 960,-1,486.9,231.7,61.9,177.9,1 960,-1,229.5,136.9,55.5,166.5,1 960,-1,549.7,118.6,55.9,170.7,1 960,-1,391,407.5,66.8,216.2,1 960,-1,335.9,241.3,65,191.4,1 960,-1,318.8,416.7,84.5,193.6,1 960,-1,1406.6,1.5,47.8,105.7,1 960,-1,1740.6,674.5,93.9,249.2,1 960,-1,289.2,124.5,52.7,172.4,1 960,-1,483.9,52.5,52.9,157.4,1 960,-1,242.3,1.9,51.5,117.1,0.999 960,-1,312.5,1,48.9,131.1,0.996 470,-1,1221.9,30.8,62.3,117.6,1 470,-1,451.6,189.2,71.7,195.8,1 470,-1,686.9,206.4,79.1,112.5,1 470,-1,1005.1,1,54.5,153.2,1 470,-1,934.7,1,57.3,146.4,1 470,-1,1793.1,366.4,90.4,211.3,1 470,-1,359.9,108.4,53.7,178.2,1 470,-1,1703.5,457.5,96.7,210.4,1 470,-1,280.8,210.9,51.7,171.7,1 470,-1,1506.7,1,58.5,113.8,1 470,-1,1642.4,340.9,65.5,204.6,1 470,-1,1541.8,609.6,72.9,239.7,1 470,-1,878,1,52.1,132.1,1 470,-1,803.9,144.2,48.2,174.8,1 470,-1,330.2,717.4,73.8,247.8,1 470,-1,218.5,137.3,63.4,158.4,1 470,-1,235.3,684,92.4,265.4,1 470,-1,120.7,345.7,56,185.8,1 470,-1,515.1,80.3,60.5,173.7,1 470,-1,1665.3,51.5,60.7,171.3,1 470,-1,809.4,585.7,96.1,255.5,1 470,-1,1725.1,167.2,66.2,168.5,1 470,-1,901.5,626.4,113.9,240.9,1 470,-1,446.5,33.9,72.1,181.5,1 470,-1,753.7,97.3,55.3,139.2,1 470,-1,712.4,93.7,54.5,163.9,0.999 470,-1,1723.3,62.7,50.8,161.5,0.999 470,-1,987.3,645.9,82.3,224.4,0.998 470,-1,1761.5,141.7,78.7,174.5,0.998 470,-1,414.4,5.6,45,146.9,0.994 470,-1,1026.4,922.6,83.5,158.4,0.989 470,-1,429.4,139.7,50,180.9,0.837 470,-1,1501.6,572.7,80.1,205.2,0.108 826,-1,1221.1,29.2,62.6,118.3,1 826,-1,687.7,205.4,78,114.4,1 826,-1,1035.1,549,98,241,1 826,-1,1636.5,3.4,56.3,157.4,1 826,-1,274.6,559.6,81.5,237.4,1 826,-1,557.7,115,61.9,175.9,1 826,-1,791.7,134.8,65.9,179.9,1 826,-1,1575.6,589,101,237,1 826,-1,1722.9,452.8,75.5,214.3,1 826,-1,1476.7,43.7,59.1,157,1 826,-1,437.4,257.2,56.1,194.1,1 826,-1,751.3,71.8,57.2,161.7,1 826,-1,1423.9,39.6,50.5,159,1 826,-1,473.9,123.5,60,176.9,1 826,-1,375.1,268.2,71.4,172.8,1 826,-1,288.2,163.4,66.8,196.7,1 826,-1,964.5,566.1,74.4,237.4,1 826,-1,238,134.8,49,168,1 826,-1,423.1,119.4,57.6,173.3,1 826,-1,348,175.3,49.4,174.6,0.997 826,-1,249.7,1.4,55.4,114.4,0.082 431,-1,1221.5,30.3,62.4,118.6,1 431,-1,686.1,206.2,80.2,113.3,1 431,-1,938.8,4.4,63.8,168.1,1 431,-1,843.2,1,53.7,136.5,1 431,-1,358.8,109,54,178.5,1 431,-1,448,229.5,79.3,203.8,1 431,-1,110.8,348.1,54.4,190.4,1 431,-1,1718.5,457.5,80.3,209.3,1 431,-1,1679.5,85.6,65.1,173,1 431,-1,1009.2,21.4,53.7,159.8,1 431,-1,1301.3,514.2,69.2,210.8,1 431,-1,282.9,618.1,92.1,259.2,1 431,-1,1569.7,614.3,90.8,245.9,1 431,-1,1757.3,143.4,56.7,165.3,1 431,-1,534.9,74.2,57.2,165.3,1 431,-1,753.1,561.5,86.7,248.4,1 431,-1,798.4,151.1,53,173.2,1 431,-1,284.5,129.2,54,166.3,1 431,-1,225.9,247.6,50.6,175.9,1 431,-1,379.7,650.7,71.1,238.8,1 431,-1,360.3,1,66.4,128.9,1 431,-1,870.9,567.3,107.5,240.2,1 431,-1,714.2,89.7,62.3,171.9,1 431,-1,429.7,108.6,59.6,173.2,1 431,-1,950.1,577.3,85.4,219.8,1 431,-1,1849.7,419.1,71.3,188.3,1 431,-1,222,137.5,73.9,162.4,1 431,-1,422.7,1,43.3,127.9,0.999 431,-1,1768.6,71.9,93.3,179.7,0.998 431,-1,724.7,1.6,49,108.4,0.988 431,-1,995,932.9,85.2,148.1,0.945 431,-1,755.5,88.3,40.8,150.1,0.477 431,-1,461.4,53.4,59.7,187.1,0.206 636,-1,1221.1,31.5,61.9,116.7,1 636,-1,687.4,206.1,78.9,113.5,1 636,-1,1481.1,6,60.6,142.6,1 636,-1,1708.4,457,100.1,208.4,1 636,-1,800.5,145.7,65.8,170.4,1 636,-1,340.6,308.4,68.9,206.8,1 636,-1,546.7,113.8,63.1,173.7,1 636,-1,358.7,111.2,52,173.1,1 636,-1,1574.8,588.8,96.3,234.4,1 636,-1,497.4,537.9,104.1,243.6,1 636,-1,202.6,228.7,62.6,202.4,1 636,-1,259.1,243.4,60.9,187.5,1 636,-1,1624.3,196.2,68.8,185.7,1 636,-1,417.7,112.3,52.9,155,1 636,-1,752.3,84.5,44.6,151.1,1 636,-1,287.1,125,51.5,168.9,1 636,-1,420.4,2.2,56.3,139,1 636,-1,459.1,98,50.8,167.6,0.999 636,-1,352.6,1,56,127.8,0.999 636,-1,494.3,63.2,47.2,160.5,0.998 636,-1,234.1,138.1,47.3,159.5,0.989 636,-1,1121.6,939.4,97.7,141.6,0.082 636,-1,936.4,925.4,67.8,155.6,0.058 751,-1,1221.4,29.8,61.8,118.8,1 751,-1,686.9,206,78.8,113.9,1 751,-1,1464.1,95.2,54.4,168,1 751,-1,548.9,116.7,61.6,175.6,1 751,-1,261.9,184.5,59.8,201,1 751,-1,303.2,447.4,72,225.6,1 751,-1,1714.4,456.6,89,207.3,1 751,-1,780.5,134.7,60.9,176.2,1 751,-1,1576.2,589.2,98.9,234.1,1 751,-1,464.2,188.5,54.2,187.7,1 751,-1,1594.6,90.1,60.3,181.2,1 751,-1,331.8,199.4,56.3,170.8,1 751,-1,1494.3,16.6,57.2,139.1,1 751,-1,445,59.2,56.8,168,1 751,-1,403.1,199.1,64.9,170.7,1 751,-1,464.6,562.2,102.7,252.1,1 751,-1,749.8,79.1,50.4,154.8,1 751,-1,257.5,1,49.9,123.6,1 751,-1,1110.1,707.8,78.5,262.2,1 751,-1,1176.3,683.9,88.2,259.7,1 751,-1,359,108.6,49.6,174.3,0.999 751,-1,236.5,143,51.3,152.3,0.994 751,-1,394.9,58,56.9,168.9,0.993 751,-1,293.9,135.8,42.2,157.3,0.719 550,-1,1221.4,30.5,62.2,119,1 550,-1,687.1,205.8,78.4,114.4,1 550,-1,1491.1,3.7,58.3,142.9,1 550,-1,383.1,220,62.4,192.9,1 550,-1,784.8,144.7,67.5,175.2,1 550,-1,1662.7,286.3,89.6,205.9,1 550,-1,1790.4,232.1,71.4,182.8,1 550,-1,531.1,108.3,60.6,177.3,1 550,-1,1714.7,456.1,86,211.8,1 550,-1,873.9,1,54.2,108.4,1 550,-1,763.1,595.7,100,255.1,1 550,-1,988.6,2.3,50.7,98.5,1 550,-1,289,122.3,52.1,173.9,1 550,-1,1659.5,2.3,54,155.8,1 550,-1,247.4,878.7,82.4,202.3,1 550,-1,1594.5,583.1,67.5,243.5,1 550,-1,185.8,302.5,68.2,194.1,1 550,-1,1593.8,1,55.3,156.2,1 550,-1,220.1,135.7,57.2,158.6,1 550,-1,456.1,98.6,66.1,183.9,1 550,-1,135,269.5,57.9,219.4,1 550,-1,358.9,109.6,55.6,177.2,1 550,-1,753,84.1,48.4,153,0.999 550,-1,412.1,142.1,47.2,167.2,0.999 550,-1,927.7,1.2,56.2,98.7,0.999 550,-1,1075,781.3,97.7,247.3,0.996 550,-1,1001.3,775.8,107.5,241.5,0.78 550,-1,1029.1,946.5,82.2,134.5,0.086 1008,-1,1221,30.4,62.5,117.4,1 1008,-1,686.4,206.4,80,112.9,1 1008,-1,499.5,280.9,68.2,190.8,1 1008,-1,793.2,140.3,75.2,173.2,1 1008,-1,392.5,287.3,69.8,190.4,1 1008,-1,1217.8,142,62.2,176.1,1 1008,-1,289.5,127.5,53.1,167.9,1 1008,-1,1720,453.6,82.1,216.7,1 1008,-1,1575.2,589.7,103,237.1,1 1008,-1,1471.4,182.8,64.9,164.3,1 1008,-1,231.5,138.6,54.3,164.6,1 1008,-1,1819.6,203.7,62.3,188,1 1008,-1,928.2,277.4,68,209.4,1 1008,-1,539.8,120.7,60.8,170.3,1 1008,-1,1687,166.4,58.4,174,1 1008,-1,296.9,480.3,90.7,201.3,1 1008,-1,843.2,288.3,66.6,204.4,1 1008,-1,381.3,464.8,67.4,229.5,1 1008,-1,751.2,73.1,54.2,162.1,1 1008,-1,307.8,287.3,65,199.7,1 1008,-1,1161.8,627.2,93.3,263.2,1 1008,-1,1739.8,675,93.9,250.1,1 1008,-1,594,551.6,95.1,246,1 1008,-1,348.8,884.2,93.1,196.8,1 1008,-1,314,2.6,42.6,128.5,1 1008,-1,423.8,163.5,61.1,195.8,1 1008,-1,508,87.7,53.9,157.9,1 1008,-1,379,176,51.4,161.5,0.999 1008,-1,436.1,67.6,62.4,167.6,0.999 1008,-1,385.5,1,53.4,155.5,0.967 521,-1,1221.3,30.7,61.3,119.7,1 521,-1,1488.8,1.6,59.2,140.3,1 521,-1,686.7,205.9,80.3,115.2,1 521,-1,994.4,1,54.6,120.6,1 521,-1,1719.5,462.4,80,202.9,1 521,-1,392.4,185.5,58.8,187.9,1 521,-1,1672.3,23.1,53.1,159.3,1 521,-1,162.3,324.6,67,192.3,1 521,-1,289.1,124.3,53.4,172.6,1 521,-1,464.1,128.7,65.3,184.4,1 521,-1,788.2,145.8,55.3,176.4,1 521,-1,1610.2,9.8,56.7,173.4,1 521,-1,825.7,606.3,72.1,259,1 521,-1,929.5,1.5,58.5,117.3,1 521,-1,1748.5,634.4,69.7,222.6,1 521,-1,1572.2,596.9,60.1,241.4,1 521,-1,947.7,714.1,123,264.8,1 521,-1,1858.9,215.7,62.1,190.2,1 521,-1,886.3,1,52.1,118.6,1 521,-1,188.5,781.9,101.4,263.2,1 521,-1,1706.8,311.5,88.1,213.6,1 521,-1,1762.8,207.1,59.3,173.7,1 521,-1,216.4,136.1,64,162,1 521,-1,354.4,164.6,47.8,164,1 521,-1,273.4,810.7,79.6,262.9,1 521,-1,515.1,98.7,58.3,181.1,1 521,-1,737.5,91.1,65.9,172.5,1 521,-1,450.9,3.2,76.1,173.8,1 521,-1,1598.1,294.5,65.3,198.9,1 521,-1,401.7,27.4,46.8,161.5,0.999 521,-1,578.2,72.1,38.4,148.9,0.913 521,-1,1044.4,732.5,70.1,252,0.236 521,-1,1047.3,932,72.3,149,0.064 632,-1,687.4,205.9,79,112.6,1 632,-1,1221.7,30.3,61.5,117.9,1 632,-1,1480.6,6.7,60.1,143.2,1 632,-1,800.6,145.2,66.6,170.6,1 632,-1,1710.8,455.5,94.4,209.3,1 632,-1,503.6,538.2,111,245.3,1 632,-1,341.6,298.5,68.5,208,1 632,-1,1574,589.1,97.2,236.1,1 632,-1,546.2,113.3,62.6,173.6,1 632,-1,358.3,112.6,53.1,172.5,1 632,-1,1627.1,197.3,71.4,186.9,1 632,-1,195.5,227.8,69.7,205.9,1 632,-1,286.8,122.8,52.8,169.9,1 632,-1,255,245.8,59.9,186.9,1 632,-1,753.5,83.2,44.5,150.9,1 632,-1,351.4,1,55.9,127.8,1 632,-1,418.7,103.3,50.6,157.3,1 632,-1,419.8,1,59.2,130.4,1 632,-1,500.4,77.6,45.3,150,1 632,-1,457.8,88.1,47.6,173.5,0.998 632,-1,235.9,133.4,47.2,162,0.996 632,-1,1113.9,927.7,103.7,153.3,0.493 632,-1,1580.2,1.4,55,83.6,0.329 587,-1,1221.9,31.4,61.1,118.5,1 587,-1,687.1,206,79.1,113.7,1 587,-1,1481.6,4.3,60.1,144.5,1 587,-1,1642.9,1,55.2,122.9,1 587,-1,800.8,145.9,64.3,172.5,1 587,-1,1651.1,244.5,78.7,199.9,1 587,-1,374.2,257.5,64.9,197.4,1 587,-1,561.2,112.7,49.7,177.3,1 587,-1,221.2,277.7,64.9,186.6,1 587,-1,357.4,111,54.1,177.2,1 587,-1,1720.2,455.3,81.1,212.3,1 587,-1,214.1,131.6,54.2,166.2,1 587,-1,287.4,126.4,52.1,168.6,1 587,-1,1575.3,588.6,92.5,235.9,1 587,-1,873.9,3.1,49.9,98.4,1 587,-1,467.1,111.5,50.1,165.1,1 587,-1,754.3,80.1,43.1,154.3,1 587,-1,161.9,254.2,58.7,204.6,1 587,-1,1853.3,269.8,67.7,176.9,1 587,-1,1058.6,842.9,125.6,238.1,1 587,-1,428,66.9,45.5,169.7,1 587,-1,1147.1,850.6,90.2,230.4,0.514 989,-1,686.5,206.3,79.6,112.9,1 989,-1,793.2,140.5,73.7,171.5,1 989,-1,1221.8,31,60.8,119.8,1 989,-1,1192.3,125.1,54.5,165.9,1 989,-1,401.6,269.5,70.4,196.7,1 989,-1,1794.3,180.5,69.9,182.4,1 989,-1,496.2,254.9,66.5,189.8,1 989,-1,1468.5,168.2,67.3,168.2,1 989,-1,837.6,313.6,71.8,207,1 989,-1,300.2,455.3,84.5,203.6,1 989,-1,330.8,842.8,93.4,238.2,1 989,-1,1575.1,589.5,103.3,236,1 989,-1,230.2,135.6,55.4,165.2,1 989,-1,751.1,70.4,55.8,164.8,1 989,-1,1720.4,455.5,79.6,211.8,1 989,-1,1672.5,146.5,54,167.9,1 989,-1,544.3,117.8,57.9,169.5,1 989,-1,290.2,125.7,53.1,169.7,1 989,-1,1188.8,663.9,90.1,265.9,1 989,-1,315.8,268.5,62,196.2,1 989,-1,921.5,300.7,69.4,212.4,1 989,-1,389.7,442.3,65.7,219.8,1 989,-1,501.4,74.4,51,154.3,1 989,-1,1739.4,673.9,94.5,249.5,1 989,-1,446.8,62.7,56.3,181.1,1 989,-1,313.8,2.2,45.3,128.8,1 989,-1,1444.8,1,56,88.7,1 989,-1,380.4,165.5,65.1,192.7,0.999 989,-1,381.7,1,52.9,136.9,0.997 989,-1,1384.1,3.5,45.3,85.7,0.947 1015,-1,1221.9,29.7,61.1,117,1 1015,-1,686.4,206.5,80,112.6,1 1015,-1,792.8,141.1,74.6,171.8,1 1015,-1,384.3,295.3,76.4,196.1,1 1015,-1,496.6,286.3,66.3,187.9,1 1015,-1,1230.2,158.4,59.8,165.9,1 1015,-1,289.6,126,53.2,171,1 1015,-1,537.2,120.6,62.8,173,1 1015,-1,1574.9,590.3,103.5,235.8,1 1015,-1,1468.5,185.2,65.1,165.1,1 1015,-1,300.9,297.2,63.1,199.8,1 1015,-1,842.6,280.3,67.7,196.3,1 1015,-1,1830.2,218.4,59.7,185.3,1 1015,-1,231.7,140.8,54.3,161.7,1 1015,-1,294.5,487.5,88.9,209.9,1 1015,-1,1720.4,455.9,79,211.2,1 1015,-1,926.3,270.2,68.5,207,1 1015,-1,1154.9,610.2,92.1,257.9,1 1015,-1,1694.3,178.4,54.2,167,1 1015,-1,751.2,73.7,54.5,162,1 1015,-1,1723.4,680.7,103.6,237.4,1 1015,-1,380.7,472.2,62.9,225.5,1 1015,-1,438.1,166.5,70.8,193.3,1 1015,-1,314.6,2.5,39,128.4,1 1015,-1,587,552.6,85.1,244.1,1 1015,-1,391.2,168.6,54.2,167.6,0.998 1015,-1,356.9,900.8,95.2,180.2,0.997 1015,-1,505.5,109.9,52.9,143.6,0.911 1015,-1,434.8,75.7,62.3,171.7,0.138 884,-1,1221.2,30.1,61.6,118.7,1 884,-1,1090.7,2.2,62.5,158.6,1 884,-1,686.9,206.1,79.5,113.7,1 884,-1,1481.9,91.2,56.8,151.6,1 884,-1,794.7,139.3,73.5,174.6,1 884,-1,1574.9,589.9,104.2,236.8,1 884,-1,335.3,332.7,78.9,183.3,1 884,-1,478.9,172,60.1,183.8,1 884,-1,300.9,160.6,70.7,197.9,1 884,-1,1723.1,454.6,75.5,212.9,1 884,-1,559.2,116.6,58.3,175.7,1 884,-1,474.3,1,48,137.6,1 884,-1,1699.9,59.2,52,166.6,1 884,-1,289.1,648.3,86.2,253,1 884,-1,753.3,71,55.8,164.6,1 884,-1,977.3,452,69.9,225.8,1 884,-1,426.9,316.1,55.2,199.6,1 884,-1,1422.3,4.3,52.5,156.4,1 884,-1,892,470.3,70.9,225,1 884,-1,1580.3,33.5,56.6,152.1,1 884,-1,253.9,1.8,53.1,120.8,1 884,-1,1494.6,1.3,60.2,149.9,1 884,-1,240,131.7,52.3,168.4,1 884,-1,405.5,170.1,57,180.9,1 884,-1,1752.4,683.3,91.5,233.8,1 884,-1,1358.9,943.2,95.1,137.8,0.155 488,-1,1221.5,31.2,61.7,118,1 488,-1,686.1,205.8,80.8,113.6,1 488,-1,1499.2,1,58.2,122.8,1 488,-1,999,1,55.9,141.3,1 488,-1,460.4,160.6,63.3,195.3,1 488,-1,1685.5,458.7,113.4,210.2,1 488,-1,931.1,1,57,135.5,1 488,-1,302.4,194.4,49.2,169.3,1 488,-1,1729.5,178.5,71.5,174.8,1 488,-1,1802.9,171,69,176.3,1 488,-1,801.1,598.9,92.8,259.8,1 488,-1,875.6,1,53.4,131.2,1 488,-1,213.4,717.5,98.6,265,1 488,-1,918.2,651.8,110.4,249.4,1 488,-1,801.7,143.1,51.8,178.2,1 488,-1,136,338.6,62.7,188.2,1 488,-1,411.4,155.2,58.9,182,1 488,-1,219.5,137.9,62.6,159,1 488,-1,358.8,108.4,53.8,175.4,1 488,-1,307.6,751,75.3,253.1,1 488,-1,1537.7,597.9,85.8,243.2,1 488,-1,1695.5,45.7,52.9,164.8,1 488,-1,447,20.7,76.3,181.1,1 488,-1,1769.5,347.3,77.7,218,1 488,-1,504.9,89.7,62.7,172.3,1 488,-1,1630.7,326.2,63.6,193.4,1 488,-1,1637.8,33.8,60.6,176.7,1 488,-1,713.3,93.3,59.6,168.6,1 488,-1,410.9,8.6,46.6,158.3,0.999 488,-1,1003.9,674.5,76.8,228.6,0.988 488,-1,756,99.8,46.9,143,0.986 488,-1,1597,577.2,73.1,210.5,0.962 488,-1,1017.5,933.9,83.4,147.1,0.084 597,-1,1221.8,31,61.1,119,1 597,-1,686.7,206.2,80.1,113.4,1 597,-1,1481.1,4.1,61.1,144.6,1 597,-1,801.3,143.8,63.7,173.5,1 597,-1,367.5,263.7,65.3,202.1,1 597,-1,232.9,268.5,62.3,185.9,1 597,-1,1715.5,455.8,84.2,209.8,1 597,-1,1631.3,1,54.8,115.9,1 597,-1,563.1,112.7,49.3,175.3,1 597,-1,358.5,109.8,53.4,175.7,1 597,-1,1653.5,229.3,73.5,200.3,1 597,-1,1574.1,589.1,95.8,233.1,1 597,-1,429.6,66.8,49.8,174.9,1 597,-1,287.1,127.3,52.1,170.4,1 597,-1,165.4,248,59.8,206.9,1 597,-1,216.1,137,55.8,160.9,1 597,-1,481.5,103.1,49.1,158,1 597,-1,752.8,80.9,44.3,153,1 597,-1,1072.4,859.8,122,221.2,0.999 597,-1,1161.9,873.4,87.6,207.6,0.972 597,-1,1870.4,272.4,50.6,180.5,0.937 597,-1,305.5,908.9,113.3,172.1,0.139 597,-1,393.8,95.5,34.6,138.8,0.078 935,-1,1221.4,30,61.8,119.3,1 935,-1,686.6,206.3,79.9,113.3,1 935,-1,793.3,140,75.1,173.6,1 935,-1,446.1,218.2,67.9,188.6,1 935,-1,1126.8,54.2,62.6,171.4,1 935,-1,1485.9,1,60.9,123.7,1 935,-1,1620.9,84.1,57.9,168.5,1 935,-1,554.2,116.7,59.7,173.9,1 935,-1,1477.6,122.4,59.6,159.3,1 935,-1,1573.5,587.1,105.3,238.6,1 935,-1,1719.4,454.1,79.7,213.9,1 935,-1,750,70.7,56.5,162.5,1 935,-1,474,23.6,56.1,153.2,1 935,-1,328.9,391.6,79.8,188.1,1 935,-1,238.2,135.1,57.7,166.7,1 935,-1,945.1,373.3,74,220.4,1 935,-1,318.8,735.9,92.8,264.3,1 935,-1,1264.5,796,98.5,279.2,1 935,-1,859.7,392.8,64.3,211.3,1 935,-1,1423.2,3.3,45.4,121.1,1 935,-1,1746.1,675.3,91.3,248.3,1 935,-1,361.6,221.6,60.9,179,1 935,-1,1738.2,117.6,56.1,173.6,1 935,-1,399,371.7,64.4,210.1,1 935,-1,303,160.6,69,200.2,1 935,-1,431.2,69,56.7,179.8,1 935,-1,254.8,1,53.4,121.4,1 572,-1,1221.3,30.2,62.1,119.4,1 572,-1,687.2,206.1,79.1,114.3,1 572,-1,1481.1,4.8,59.6,144.7,1 572,-1,378.2,236.7,67.5,195.7,1 572,-1,792.7,147.5,70.1,170.3,1 572,-1,1649.9,1,57.4,137.5,1 572,-1,1713.8,454.2,87.9,211.8,1 572,-1,550.6,114.8,51.9,171.3,1 572,-1,1829.7,254.6,70.2,178.7,1 572,-1,1660.2,259.7,69.8,203.4,1 572,-1,872.2,1,51.3,105.1,1 572,-1,288.8,119.9,51.9,176.5,1 572,-1,218.8,134.7,54.2,163.7,1 572,-1,754.5,80,44.3,155.4,1 572,-1,1584.2,591,83.7,231.9,1 572,-1,147.8,257.3,62.5,212.8,1 572,-1,206.9,281.7,64.9,193.3,1 572,-1,1025.4,811.1,136.4,269.9,1 572,-1,448.3,127.5,51.3,163.2,1 572,-1,465.6,73.4,62.9,177.8,1 572,-1,360.5,110.4,51.4,176,1 572,-1,722.8,583.7,82.4,255.1,1 572,-1,421.7,61.3,46.6,166.8,0.999 572,-1,250.5,918.5,81.9,162.5,0.993 572,-1,1009.8,929.7,72.3,151.3,0.606 572,-1,1572.3,5.6,45.9,128.7,0.32 572,-1,1104.6,827.2,100.1,245.9,0.063 572,-1,982.1,3.4,54.1,77.6,0.055 1023,-1,1221.3,29.8,62.1,119.6,1 1023,-1,686.5,206.6,79.7,113.7,1 1023,-1,793.5,142.2,72.5,169.8,1 1023,-1,375.3,302.6,74.5,200.2,1 1023,-1,289.3,128.7,52.5,166.6,1 1023,-1,1245.6,164.6,61,173.5,1 1023,-1,842,272.6,68.8,197.8,1 1023,-1,492.3,294.7,69.4,194.8,1 1023,-1,929.1,257.2,70,208.6,1 1023,-1,1837.8,228.2,60.8,183.1,1 1023,-1,1146.6,591.5,89.4,257.9,1 1023,-1,232.5,140.4,55.6,162.1,1 1023,-1,1701.8,181.3,57,177.1,1 1023,-1,751,74.9,53.8,161.2,1 1023,-1,1722,455,77,213.4,1 1023,-1,380.1,487.8,63.1,224.6,1 1023,-1,1574.9,589.7,102.7,238.5,1 1023,-1,296.1,302,64.1,204.6,1 1023,-1,289.3,507.2,88.5,203.6,1 1023,-1,538.8,118.8,62.1,173.8,1 1023,-1,1468.7,192.6,64.9,165.6,1 1023,-1,1704.3,685.6,94.7,235.9,1 1023,-1,456.3,165.7,81,193.6,1 1023,-1,581.9,554.4,76.7,235.8,1 1023,-1,313.2,1.8,37.4,131.7,1 1023,-1,410,180.2,58.4,149.7,1 1023,-1,372.4,105.3,57.4,172.4,0.999 1023,-1,362.1,917.5,90.7,163.5,0.219 220,-1,1220.7,30,62.2,120.5,1 220,-1,686.1,206.5,79.7,114.1,1 220,-1,400.6,571.8,88.9,251.3,1 220,-1,705,1,55.6,160.7,1 220,-1,428,191.5,75.6,214.7,1 220,-1,108.8,347.4,51.1,189,1 220,-1,1491.4,68.6,54.4,148.5,1 220,-1,1122.5,129.5,58.6,187.3,1 220,-1,287.9,126.8,56,173.1,1 220,-1,902.4,141,78,186.1,1 220,-1,1720.6,456.7,78.2,212.1,1 220,-1,212.3,127.3,56.2,164.8,1 220,-1,357.7,106.2,52.5,179.9,1 220,-1,1356.6,566.7,104.4,245.9,1 220,-1,1197.2,132.8,42.9,163.9,1 220,-1,794,153.1,60.5,167.7,1 220,-1,518.9,123.9,48.7,175.6,1 220,-1,123.6,670.2,106.4,258.9,1 220,-1,507.7,334.7,72.6,219.1,1 220,-1,216.5,508.1,60.6,203.1,1 220,-1,993.1,124.9,38.9,155.4,1 220,-1,822.5,323.1,75,192.5,1 220,-1,53.2,620.8,107.5,245,1 220,-1,762.9,311,77.9,206.6,1 220,-1,825.4,112.5,68.8,170.8,0.998 220,-1,941.9,910.6,71.6,170.4,0.996 220,-1,594.6,343.3,61.6,199.9,0.948 220,-1,483.6,4.6,35.8,60.2,0.133 78,-1,1221.8,30.4,60.8,118.9,1 78,-1,1239.9,174.8,73.1,156.9,1 78,-1,411.4,330.1,84.5,228.9,1 78,-1,1486.5,69.6,55.8,147.6,1 78,-1,704.3,1,55.9,159.6,1 78,-1,356.8,104,55.1,181.1,1 78,-1,1360,566.9,105.2,244.6,1 78,-1,1721.1,457.4,77.6,209.1,1 78,-1,686.5,206,80.4,116.1,1 78,-1,490.3,202.9,80.2,195.5,1 78,-1,981.3,190.3,71.8,184,1 78,-1,102.8,546.7,84.9,253.6,1 78,-1,1427.7,200.4,73.7,194.4,1 78,-1,11.4,726.6,70.1,232.4,1 78,-1,772,188.7,65.3,184.1,1 78,-1,291.2,125.5,52.4,169.4,1 78,-1,1332.7,203,38.6,164.1,1 78,-1,212.1,131.7,51.1,162.6,1 78,-1,538.9,62.8,48.6,173,1 78,-1,134.1,355.9,47.9,191.6,1 78,-1,841.5,172.9,55.4,185.5,1 78,-1,434.2,24.8,52.9,160,1 78,-1,881.8,192.3,55.2,169.7,1 78,-1,388.8,895.8,97.4,185.2,0.999 78,-1,473.2,120.5,60,158.4,0.999 78,-1,380.2,27.8,55.1,161.6,0.999 78,-1,252.1,94.9,60.6,178.9,0.997 78,-1,1495.4,203.2,46.7,175.6,0.946 1024,-1,1221.8,30.1,61.6,118.5,1 1024,-1,686.8,206.6,79.3,113.4,1 1024,-1,793.2,141.9,72,171.6,1 1024,-1,491.4,297.8,69.3,193.6,1 1024,-1,374.3,303.7,73.7,201,1 1024,-1,1248.6,165.6,61.6,172.8,1 1024,-1,289.1,129.1,52.6,167.3,1 1024,-1,1700.7,182.2,58.8,179.3,1 1024,-1,842.6,269.3,68.2,198.6,1 1024,-1,1146.6,590.4,88.2,257.6,1 1024,-1,929.5,256.9,69.3,208.5,1 1024,-1,232.1,140.4,56.2,161.4,1 1024,-1,538.6,119.3,62.1,175,1 1024,-1,1721.8,455.9,76.8,210.2,1 1024,-1,1468.2,194.8,65.3,163.9,1 1024,-1,751.2,75.1,53.7,159.9,1 1024,-1,1575.1,589.3,102.6,238.2,1 1024,-1,295.8,302.7,66.1,209.2,1 1024,-1,1840.4,228.2,59,185.7,1 1024,-1,380,489.6,62.5,225.3,1 1024,-1,286.6,506.2,90.5,205.9,1 1024,-1,1704.9,685.6,92.9,234.7,1 1024,-1,460.6,164.8,77.1,193.4,1 1024,-1,580.2,549.9,77.6,239,1 1024,-1,413.7,173.2,59.8,159.7,1 1024,-1,374.5,105.3,57.6,173.5,0.999 1024,-1,313,2,36.1,129.7,0.999 1024,-1,361.9,919.1,90.4,161.9,0.106 353,-1,1221.6,30.6,61.8,119.8,1 353,-1,687.5,206.7,77.9,113,1 353,-1,1612.6,1,67.2,145.6,1 353,-1,1008.2,418.4,68.5,196.3,1 353,-1,1746.5,80.1,59.2,155.7,1 353,-1,1442.1,1.2,52,112.2,1 353,-1,1032.9,60.4,54.7,169.5,1 353,-1,287.7,130.5,55.6,173.3,1 353,-1,207.1,138.1,58.6,164.3,1 353,-1,445.6,86.5,70.1,205.9,1 353,-1,431.2,334,77.3,215.8,1 353,-1,1719.9,455.3,78.8,216.6,1 353,-1,364.6,106.2,55.2,180.9,1 353,-1,795.7,150.6,62.2,173.3,1 353,-1,109.6,350.1,52.3,189.7,1 353,-1,965.4,54.4,63.8,176.4,1 353,-1,1825.6,478.6,68.8,208.7,1 353,-1,1554.8,618.9,91.6,246.3,1 353,-1,482.7,577.3,97.9,245.5,1 353,-1,224.1,331.8,55.8,187,1 353,-1,389.4,501.9,83.8,227.8,1 353,-1,842.7,1.6,49.3,96.4,1 353,-1,516.8,92.7,40.9,167.8,1 353,-1,901.7,472.6,76,210.7,1 353,-1,1859.5,57,58.8,169.3,1 353,-1,922.8,16,63.9,160.3,1 353,-1,844.5,457.6,82.1,229.2,1 353,-1,766.2,92.8,41.2,155.7,0.999 353,-1,707.3,91.1,58.6,173.8,0.965 353,-1,952.4,927.4,80.2,153.6,0.768 1032,-1,1221.5,29.6,61.5,119.8,1 1032,-1,687.2,206.7,79.2,113.2,1 1032,-1,793.4,141.1,72.1,171.2,1 1032,-1,1720.3,454.3,81.9,212.9,1 1032,-1,1261.5,179.4,65.3,167.8,1 1032,-1,488.3,306.3,72.7,193.1,1 1032,-1,289.7,128.2,52.6,168.8,1 1032,-1,1700.4,199.5,64.2,181,1 1032,-1,233.9,139.3,57.2,166.6,1 1032,-1,846.2,257.4,65.5,196.7,1 1032,-1,368.1,320.6,72.4,199.3,1 1032,-1,937.3,249.1,64.3,201.8,1 1032,-1,1573.8,588.6,103.3,239.6,1 1032,-1,293.6,315.2,67.1,203.4,1 1032,-1,1137,576.3,86.1,249.2,1 1032,-1,751.1,74.8,54.5,162.4,1 1032,-1,1688.7,682,80.9,238.2,1 1032,-1,289.6,516.5,86.3,212.8,1 1032,-1,373.9,502,66.6,228.4,1 1032,-1,371.5,104.1,60,177.5,1 1032,-1,538.8,122.2,62.1,169.5,1 1032,-1,1849.7,242.3,61.2,192.7,1 1032,-1,432.9,170.8,62.4,169.2,1 1032,-1,1470.1,205.6,69.5,164.1,1 1032,-1,580.8,542.1,70.8,248.2,1 1032,-1,309,2.4,36.7,130.7,1 1032,-1,486.2,163.7,64.9,188.3,1 1032,-1,374.3,940,85.2,141,0.063 146,-1,1221.6,31.5,62,117.2,1 146,-1,356.4,102.8,56.3,181.1,1 146,-1,1035.2,136.8,70.4,170.7,1 146,-1,1487.8,68.4,55.8,150.3,1 146,-1,704.2,1,56.3,157.3,1 146,-1,421.6,258.8,75.5,221.7,1 146,-1,1721.4,457.3,77.9,209.9,1 146,-1,397.2,723.5,93.7,264,1 146,-1,109.8,351.4,47.8,186.4,1 146,-1,287.4,125.3,55.4,171.2,1 146,-1,537.9,63.7,50.4,167,1 146,-1,1357.7,566.5,105.8,245.3,1 146,-1,685.8,205.7,81.6,116.6,1 146,-1,219.2,127.9,51.8,162.3,1 146,-1,867.9,204.9,71.1,194.3,1 146,-1,1175.3,164,50.3,165.7,1 146,-1,808.7,248.6,60.1,183.7,1 146,-1,381.4,1.2,47.4,129.3,1 146,-1,1296.1,174.8,58.2,179.8,1 146,-1,530.8,264.1,59.3,203.3,1 146,-1,483.7,194.9,58.1,170.3,1 146,-1,585.4,256,59.8,191,1 146,-1,100.8,543.9,87.8,255.3,1 146,-1,165.2,627.9,75.9,209.7,1 146,-1,763.7,236.7,63.2,190.1,1 146,-1,468,35.1,49.4,161.4,1 146,-1,1056.9,919.9,72.6,161.1,0.986 146,-1,798.5,151.3,60.4,192.5,0.206 633,-1,1221.8,30.8,61.7,117.8,1 633,-1,687.1,205.7,79.5,113.2,1 633,-1,1480.9,6.6,60.1,143.2,1 633,-1,799.9,146,66.8,170.6,1 633,-1,1712.5,453.2,94.4,210.4,1 633,-1,341.9,300.6,68.1,207.8,1 633,-1,547.5,113,61.8,174.1,1 633,-1,501.2,539.1,111.3,242.9,1 633,-1,1574.7,588.9,96.7,236.6,1 633,-1,359,111.5,51.9,173.7,1 633,-1,1626.3,195.5,72.4,189.1,1 633,-1,197.4,226.8,68.5,207.4,1 633,-1,287,123.3,52.8,170.1,1 633,-1,255.7,245.1,59.3,188.2,1 633,-1,417.2,104.6,52.3,159.2,1 633,-1,352.2,1,55.5,126.5,1 633,-1,752.5,84.1,44.2,150.8,1 633,-1,499.4,74.4,47.3,151.7,1 633,-1,420.9,1,57.8,133.6,1 633,-1,458.4,87.2,48,175.8,0.999 633,-1,235.9,133,47.1,162.3,0.994 633,-1,1583.9,2.4,50.4,81.7,0.963 633,-1,1113.4,929.6,107.5,151.4,0.364 633,-1,945.7,926.6,61.5,154.4,0.096 799,-1,1221.3,29.1,62.1,119.4,1 799,-1,687,205.5,79.3,114.7,1 799,-1,783.3,132.4,51.5,179.4,1 799,-1,288,520.9,77.5,237.5,1 799,-1,1724.3,453.3,74.3,212.7,1 799,-1,548,112.8,63.3,179,1 799,-1,1574.5,590.3,101.7,234.4,1 799,-1,1610.9,1,54.6,125.3,1 799,-1,278.5,166,59.7,197.7,1 799,-1,479.6,91.9,61.3,176.1,1 799,-1,1481.5,29.1,60.5,149.4,1 799,-1,750.4,71.3,55.6,160.3,1 799,-1,232.7,134.4,51.3,166.8,1 799,-1,390.1,240.9,66.2,177.6,1 799,-1,1076.9,592.6,93.2,259.7,1 799,-1,442.2,228.1,55.1,195.2,1 799,-1,254.3,1.2,53,123.1,1 799,-1,1012.2,617.5,79.7,247.9,1 799,-1,346.8,182.6,48.2,179.3,1 799,-1,1441.6,59.7,47.8,155.7,1 799,-1,423,94,55.7,165.4,1 799,-1,609.8,577.6,80.8,243.8,1 799,-1,443.7,1.2,43,87.9,1 901,-1,1221.8,30.2,60.5,118.7,1 901,-1,477.8,190.2,63,182.8,1 901,-1,686.9,206.2,79.2,113.6,1 901,-1,795.2,140.8,74.3,172.1,1 901,-1,296.9,673.3,95.9,258.5,1 901,-1,1430.3,1,50.2,145.8,1 901,-1,1485.8,103.9,57.1,147.1,1 901,-1,559.9,117.1,56.6,172.3,1 901,-1,1597.7,49.9,51.1,160.3,1 901,-1,1574.3,590,103.8,235.9,1 901,-1,1109.4,19.8,55.2,159.6,1 901,-1,1722.5,454.1,76.4,213.5,1 901,-1,391.2,189.7,58.4,176.2,1 901,-1,752.3,71.7,55.6,162,1 901,-1,302.6,163.1,67.8,194.6,1 901,-1,335.2,350.3,78.9,188.3,1 901,-1,1711.1,83.7,54.1,166,1 901,-1,970.2,423,73.8,226.8,1 901,-1,469,3.8,51.1,149.1,1 901,-1,1746,679.5,92.6,239.5,1 901,-1,876.8,442.3,68,219.5,1 901,-1,418.8,333.7,56.9,205.9,1 901,-1,243.3,134.1,56.3,168.1,1 901,-1,313.5,2.8,47.3,126.5,1 901,-1,254.4,1,52.8,118.4,1 901,-1,1501.4,2,58.5,143.2,1 901,-1,418.9,60.8,53,177.9,1 901,-1,1324.5,891.4,93.3,189.6,0.999 376,-1,1222,31.6,60.8,119.2,1 376,-1,686.1,206.2,80.1,113.7,1 376,-1,1082,447.7,68.1,203,1 376,-1,1633.6,15.1,61.3,163.3,1 376,-1,359,106.8,55,178.8,1 376,-1,285.1,130.2,55.2,169,1 376,-1,109.8,350.6,51.3,189.2,1 376,-1,828.7,1.3,55,111.8,1 376,-1,448.3,307.5,71.4,213.3,1 376,-1,453.9,547.8,72.4,232.6,1 376,-1,1718.7,456.4,78.7,213.3,1 376,-1,953.8,40.1,60.5,175.1,1 376,-1,346.6,532.1,88,244.7,1 376,-1,567.3,565.1,97.2,253.2,1 376,-1,445.3,75.7,70,196.3,1 376,-1,795.7,150.6,59.5,172.9,1 376,-1,1590.9,633.2,82.3,241.7,1 376,-1,508.6,86.4,51.4,168.6,1 376,-1,1801.1,450.7,64.7,203.3,1 376,-1,217.5,141.9,58,157.5,1 376,-1,1017.2,52.2,55.2,163.4,1 376,-1,383.4,1.2,46.4,91.3,1 376,-1,1434,2.5,53.5,94.3,1 376,-1,210.6,305.2,54.4,182,1 376,-1,850.6,490,85.3,233.6,1 376,-1,757.3,98.2,47.1,140.6,1 376,-1,910.6,503.6,78.4,210.5,1 376,-1,1766.6,102.4,53.6,155.9,0.999 376,-1,1807.5,69.8,66,166.8,0.999 376,-1,970,915.4,86.2,165.6,0.998 899,-1,1220.8,30.4,62.3,119.2,1 899,-1,686.9,206,79.6,114.5,1 899,-1,298,671.1,94,254.3,1 899,-1,477.8,186.2,65.8,185.5,1 899,-1,793.1,140.4,75.7,171.9,1 899,-1,1428.4,1,51.5,145.7,1 899,-1,1487.6,102.9,56.5,148.5,1 899,-1,1573.7,590.1,104.1,236.4,1 899,-1,560.3,117,56.9,172.2,1 899,-1,1721.9,453.6,77.4,213.8,1 899,-1,1597,49,49.8,160.5,1 899,-1,1710.3,78.1,55.1,171.1,1 899,-1,392.7,188.5,59.2,176.6,1 899,-1,1110.2,22.2,54.2,155.8,1 899,-1,969.4,429.4,78.6,226,1 899,-1,338.6,353.1,75.1,184.3,1 899,-1,304.3,163.3,65.6,190.5,1 899,-1,754,72.2,54,161.3,1 899,-1,468.3,3.7,50.8,150,1 899,-1,419.6,332.6,56.2,203.7,1 899,-1,878.7,446.6,66.7,221.5,1 899,-1,314.3,1.4,47.7,127.8,1 899,-1,1746.1,679.8,92.7,237.7,1 899,-1,254.6,1.1,52.6,118.7,1 899,-1,242.9,133.7,56.7,169.2,1 899,-1,1500.4,1.4,58.4,145.1,1 899,-1,1330,903.9,91.4,177.1,1 899,-1,417.6,57.4,54.1,181.4,1 992,-1,686.5,206.2,79.6,112.9,1 992,-1,1796.7,185.7,71.4,180.9,1 992,-1,793.9,140.3,74.3,172.8,1 992,-1,1220.7,30.4,62.6,121.3,1 992,-1,401.7,275.1,67,197,1 992,-1,1471.6,171.4,63.8,164.6,1 992,-1,499.6,260.9,65.4,186.7,1 992,-1,1195.3,125.1,56,168.9,1 992,-1,838.3,310,69,205.4,1 992,-1,328.5,845.7,96.3,235.3,1 992,-1,1576.1,590.1,102.8,235.8,1 992,-1,1721.3,455.5,78.2,211.9,1 992,-1,289.8,124.2,52.5,170.4,1 992,-1,1671.7,145.6,57.5,172.1,1 992,-1,231,134.7,54.7,166.6,1 992,-1,301.5,458.4,83.4,199.3,1 992,-1,751.7,71.8,55,163.6,1 992,-1,544.2,119.4,58.5,168.5,1 992,-1,919.8,302.8,71.8,209.1,1 992,-1,314.8,272.2,63.2,198.4,1 992,-1,1184.5,660.4,88.4,264.3,1 992,-1,387.5,445.7,66.2,222.6,1 992,-1,444.7,64.8,58,178,1 992,-1,504.5,77.7,51.5,152.5,1 992,-1,314.2,1.6,45,129.5,1 992,-1,1741.9,676.7,93,251.6,1 992,-1,385.4,167.1,63.8,190.7,0.998 992,-1,1440.3,3.1,60.4,80.3,0.9 992,-1,385.4,1.8,50.2,140.5,0.421 1040,-1,1221.5,29.7,62,120.2,1 1040,-1,686.8,206.5,80,114.5,1 1040,-1,793.3,141.1,71.2,173.3,1 1040,-1,479.6,318,77.6,198.3,1 1040,-1,289.2,127.8,52.1,169.9,1 1040,-1,232,138.4,54.8,164.3,1 1040,-1,937.5,237.2,66.1,205.8,1 1040,-1,1720.3,455.1,79.7,216.5,1 1040,-1,1289,190.4,65.2,167,1 1040,-1,1126.9,561.7,89.6,255.3,1 1040,-1,292.6,319.4,70.6,206.8,1 1040,-1,278.5,532.9,96.3,204.1,1 1040,-1,363,327.1,73.4,191,1 1040,-1,751.9,76.3,53.8,159.9,1 1040,-1,1715.5,208.1,58.3,180.6,1 1040,-1,374.4,506.8,67.2,235.9,1 1040,-1,851.4,250.3,62.5,193.5,1 1040,-1,370.9,104.6,58.1,176,1 1040,-1,1468,213.4,75.7,164.3,1 1040,-1,1663.1,675.4,88.4,240.1,1 1040,-1,448.4,168.2,63.5,172.6,1 1040,-1,1573.1,589.7,104.5,240.6,1 1040,-1,1856.7,242.1,64.3,194.3,1 1040,-1,307.9,2.6,36.1,127,1 1040,-1,581.2,536.8,69.1,253.8,1 1040,-1,497.4,168.9,78.1,191.6,1 1040,-1,431.4,66.6,64.2,187.6,0.998 1040,-1,539.7,117.4,59.7,179.8,0.994 142,-1,1221.5,31.5,61.8,117.6,1 142,-1,1040.8,135.9,84.6,175.4,1 142,-1,355.9,103.8,55.7,180.8,1 142,-1,1487.8,68.7,55.7,149.3,1 142,-1,704.4,1,56.1,157.6,1 142,-1,391.3,733.5,98.1,273.8,1 142,-1,421.5,263.9,76.5,225.2,1 142,-1,288.1,126.9,54.5,167.2,1 142,-1,1721.6,456.8,77.8,210.9,1 142,-1,109.5,352.6,48.3,184.1,1 142,-1,1358.7,567.5,105.2,243.1,1 142,-1,538,63.4,50.7,166.6,1 142,-1,686,206.6,81.1,115.8,1 142,-1,1305.9,176.1,56.1,181.1,1 142,-1,1185.8,170.5,51.7,167.2,1 142,-1,219.3,127.9,51.9,162.2,1 142,-1,874.6,207.8,76.1,191.5,1 142,-1,811.8,247.7,56.7,176,1 142,-1,532.5,264.8,56.8,199.7,1 142,-1,479.3,183.7,62.3,179.7,1 142,-1,383.2,1.7,46.2,132.8,1 142,-1,152.9,634,83,216.4,1 142,-1,100.3,549.9,83.7,241.6,1 142,-1,470.4,37.1,54.5,164.7,1 142,-1,579.3,249.9,58.2,193.4,1 142,-1,767.7,235,61.1,183.4,0.999 142,-1,1062.6,922.3,78.8,158.7,0.978 462,-1,1221.7,31,62.5,118.6,1 462,-1,936.1,1,57.9,147.9,1 462,-1,687.3,205.5,78,115.2,1 462,-1,450.2,190.3,67,200.6,1 462,-1,1008,2.1,53.6,156.4,1 462,-1,1729.8,165.1,61,164.6,1 462,-1,871.8,1,56.7,134,1 462,-1,1821.1,374.5,80,215.1,1 462,-1,241.2,675.8,98.6,259,1 462,-1,271.8,213.3,50.4,174.2,1 462,-1,359.3,110.5,54.2,176.5,1 462,-1,337.8,707.5,73.1,251.6,1 462,-1,1705.2,458.9,93.6,207.6,1 462,-1,1507.8,2,56.6,109.5,1 462,-1,115.5,349.3,55.3,188.7,1 462,-1,1650.8,355.2,65.6,195.6,1 462,-1,520.2,77.1,58.4,174.4,1 462,-1,1543.8,609.1,75.3,245.2,1 462,-1,804.1,148.9,45.7,172.5,1 462,-1,1678.7,55.9,70.8,174.4,1 462,-1,808.3,580.5,87.4,252.6,1 462,-1,217.5,137.1,62.3,159.1,1 462,-1,894.3,608.9,111.8,245.9,1 462,-1,753.5,94.6,53.5,146,1 462,-1,285.1,124.9,53.6,170.7,1 462,-1,445,43.2,69.9,187.4,0.999 462,-1,1458.8,559.6,85.4,206.2,0.999 462,-1,979.4,628.5,92.2,222.3,0.999 462,-1,417.5,1.9,42.9,155.8,0.998 462,-1,712.4,93.5,53.3,164.7,0.998 462,-1,1027.9,921.9,83.9,159.1,0.995 317,-1,1221.5,31.1,61.1,119.2,1 317,-1,686.9,207.4,79.1,113,1 317,-1,1456.3,3.9,55.8,146.1,1 317,-1,321.4,584.6,106.1,246,1 317,-1,1704.2,51,58.8,157.6,1 317,-1,109,349.3,51.9,191.2,1 317,-1,1719.8,456.8,79.7,213.8,1 317,-1,357.7,108,57.9,182.1,1 317,-1,796.6,148.4,57.8,175.7,1 317,-1,452.2,116.3,74.9,204.4,1 317,-1,1504.5,600.6,89.2,246,1 317,-1,930.9,49.6,62,173.4,1 317,-1,237.1,374.4,57.7,191.4,1 317,-1,1053.3,77.5,56.2,169.1,1 317,-1,420.3,43.7,55.1,169.6,1 317,-1,705.8,3.1,52,152.7,1 317,-1,996.9,77.9,60.6,177.6,1 317,-1,891.6,437.9,70.2,196.6,1 317,-1,281.3,128.5,53.7,177,1 317,-1,435.3,443,74.1,235.9,1 317,-1,214.4,129.5,54.9,169.1,1 317,-1,524,471.7,65.4,217.6,1 317,-1,827.6,431.7,77,203.9,1 317,-1,351.5,886,95.3,195,0.999 317,-1,729.4,90.8,45.1,185.2,0.997 317,-1,512.2,101.3,41.7,169.3,0.997 317,-1,927,910.4,79.6,170.6,0.997 317,-1,1568.8,3.1,59.5,111.3,0.511 183,-1,1221.5,30.7,62.7,118.1,1 183,-1,211.6,126.3,55.8,168.1,1 183,-1,1489,68.3,55.1,149,1 183,-1,109.1,349.4,49.2,188.8,1 183,-1,357.1,104.2,54.7,179.5,1 183,-1,408.6,38.3,61.8,166.7,1 183,-1,704.9,1,55.1,158.7,1 183,-1,1720.3,457.1,78.7,211.8,1 183,-1,687.4,207.8,78.8,111.8,1 183,-1,1358,567.4,104.8,244.3,1 183,-1,414.2,643.3,91.4,258.8,1 183,-1,290.3,130.1,54,166.4,1 183,-1,540.5,140.8,63.9,170.8,1 183,-1,528.4,299.5,60.1,207,1 183,-1,5.9,617.5,113.9,250.3,1 183,-1,420.2,225.7,77.6,219.1,1 183,-1,235.7,566.7,62.1,213.4,1 183,-1,1091,147.9,48.4,157.9,1 183,-1,925.1,123.6,73.2,170.8,1 183,-1,868.9,174.2,77.2,194,1 183,-1,793.9,151.9,63.4,172.9,1 183,-1,1199.7,152.7,60.6,185.8,1 183,-1,98,549.1,87.4,251.9,1 183,-1,798.7,291.9,71.5,184.2,1 183,-1,745.1,275.6,71.9,203,1 183,-1,1247.9,154.5,47.1,165.7,0.997 183,-1,991.4,915.7,71.7,165.3,0.974 1031,-1,1221.6,30,61.6,119.2,1 1031,-1,687,206.5,79.4,113.9,1 1031,-1,793.3,141.5,71.5,171.5,1 1031,-1,1720.7,455.8,80.4,210.5,1 1031,-1,488,302.5,73.3,194.3,1 1031,-1,1700,197.1,64,182.8,1 1031,-1,1257.1,178.6,66.5,169.1,1 1031,-1,288.6,127.7,53,167.8,1 1031,-1,936,250.2,65.7,202.3,1 1031,-1,370.2,319.7,70.6,200.4,1 1031,-1,234.7,139.3,57.1,166.3,1 1031,-1,845.8,257.3,65.5,198.2,1 1031,-1,1137.1,577,88.6,252.6,1 1031,-1,293.5,314.5,66.3,203.9,1 1031,-1,1573.4,589.6,104.5,240.1,1 1031,-1,750.6,76.5,54.4,159.8,1 1031,-1,1691.9,684.7,79.3,230.2,1 1031,-1,374,499.8,68.9,230.5,1 1031,-1,579.3,549.9,72.7,238.6,1 1031,-1,371.8,103.5,59.1,180.6,1 1031,-1,291,511.9,85.4,212.3,1 1031,-1,539.5,120.8,62.7,170.4,1 1031,-1,1849,242.3,60.9,189.1,1 1031,-1,1471,206.7,68.8,161,1 1031,-1,432.6,171.1,60.7,170.7,1 1031,-1,308.6,2.4,37,130.1,1 1031,-1,485.4,159.7,64.8,194.4,1 1031,-1,374.4,937.7,83.5,143.3,0.08 229,-1,1221.9,30.9,61.5,119.1,1 229,-1,686.1,206.9,80.2,113.2,1 229,-1,1491.9,66.8,53.6,148.6,1 229,-1,383.1,548.6,95.3,241.9,1 229,-1,796.9,149,57.6,180.8,1 229,-1,356.3,105.6,53.5,180.4,1 229,-1,433.8,186.7,76.4,214.6,1 229,-1,705.7,1,55.1,159.6,1 229,-1,108.7,350.9,50.4,190.4,1 229,-1,1185.6,131.1,46.4,154.5,1 229,-1,1577,1,58.9,139.6,1 229,-1,288,126.8,55.9,172.4,1 229,-1,211.7,125.7,55.8,166.6,1 229,-1,1720.5,457.3,78.8,210.6,1 229,-1,1358.4,568.3,104.1,243.6,1 229,-1,517.4,119.9,48.6,177.5,1 229,-1,1104.5,125.4,61.9,184,1 229,-1,152.3,689,104.1,259.6,1 229,-1,832.6,329.3,74.2,194.8,1 229,-1,217.4,495.2,61.4,205.8,1 229,-1,914.9,132,72.3,176.8,1 229,-1,507.4,342.7,70.7,216.9,1 229,-1,775.9,319.5,71.9,205.7,1 229,-1,591.6,350.1,61.4,192.9,1 229,-1,96.6,627.6,93.2,254.2,0.999 229,-1,935.2,901.7,73.2,179.3,0.994 229,-1,958.3,125,49.6,154.6,0.307 985,-1,686.5,206.1,80,113.1,1 985,-1,1221.7,29.8,61.9,120.2,1 985,-1,793.1,140.8,72.2,171.5,1 985,-1,407.3,267,70.8,195.4,1 985,-1,1185.4,119.3,55.6,165,1 985,-1,495.7,248.8,67.2,188.9,1 985,-1,1788.9,176.7,72.1,180.3,1 985,-1,333.8,839,92.9,242,1 985,-1,1574.5,590.6,104.6,234.1,1 985,-1,838.9,316.1,72.1,205.1,1 985,-1,1719,455.5,80.4,211.1,1 985,-1,303.5,452,82.4,203.3,1 985,-1,1469.7,168.2,66.9,168.1,1 985,-1,230.2,137.2,55.5,164,1 985,-1,751.2,72.3,55.3,164,1 985,-1,1668.5,143,54.1,166.3,1 985,-1,1191.7,670.8,89.9,264.4,1 985,-1,317.5,261.3,64.1,198.5,1 985,-1,289.5,125.3,53.1,173.1,1 985,-1,546.6,118.8,54.7,166.9,1 985,-1,920.6,306.7,69.3,206.5,1 985,-1,391.9,435.5,65,216.6,1 985,-1,1739.6,674.2,93.3,249.5,1 985,-1,1451.4,1,55.8,92.2,1 985,-1,314.3,2.8,45.7,127.9,1 985,-1,445.2,63.7,55.9,182.4,1 985,-1,496.6,71.3,53,155.4,1 985,-1,383.2,1.1,53.1,131.7,1 985,-1,369,167.2,64,189,0.999 985,-1,1386.9,3.9,44.2,87.7,0.999 665,-1,1220.8,29.6,61.8,119.1,1 665,-1,686.5,205.8,80.6,113.7,1 665,-1,1480.7,3.6,61.5,144.6,1 665,-1,1711.7,456.9,96.2,207.8,1 665,-1,802.1,143.8,63.4,173.3,1 665,-1,360.9,112.7,49,168,1 665,-1,1131.2,1,66.9,112.5,1 665,-1,1575.4,587.4,96.9,234.6,1 665,-1,557.4,111.7,53,176.8,1 665,-1,318.5,336.8,72.5,207.8,1 665,-1,1617.7,165.9,77.7,185.6,1 665,-1,479.8,114.2,44.2,174.8,1 665,-1,225.4,210.6,59.9,197.8,1 665,-1,750.8,79,47.1,156.7,1 665,-1,426.9,525.6,77.1,249.5,1 665,-1,419.7,122.1,69.6,161.9,1 665,-1,408.5,1,56.1,154.2,1 665,-1,277.4,225.4,56.2,183,1 665,-1,1414.3,891.3,101.7,189.7,1 665,-1,1498.1,164.7,53.2,168.9,1 665,-1,288.6,123.4,51.5,171.6,0.999 665,-1,353.6,3.6,53.8,148.7,0.999 665,-1,1337,909.1,83.2,171.9,0.998 665,-1,867,926.6,73.5,154.4,0.116 671,-1,1221.8,29.5,61.2,118.9,1 671,-1,687.2,206.2,79,113.4,1 671,-1,1481.9,6.8,59.4,142.2,1 671,-1,801.7,144.8,63.8,172.8,1 671,-1,315.7,348.5,70.4,208.4,1 671,-1,480.9,118.2,48,173.7,1 671,-1,1710.2,456.8,98.6,207.5,1 671,-1,359.7,116.9,49.1,165.5,1 671,-1,1118,1.9,58.9,104.5,1 671,-1,559.3,111.3,53.1,176.8,1 671,-1,1575.1,587.6,97.3,236.5,1 671,-1,402.2,528.9,90.1,248.9,1 671,-1,1491.2,161.2,56.1,177.8,1 671,-1,751.4,80.1,47.4,155.1,1 671,-1,415.5,128.3,73.8,162.5,1 671,-1,1623.7,156.2,77.1,190.7,1 671,-1,1400.5,870.3,97.8,210.7,1 671,-1,407.9,4.3,56,155.4,1 671,-1,227.5,208.9,64.3,200,1 671,-1,281.5,223,53.8,180.6,1 671,-1,1319.2,902.1,83.5,178.9,1 671,-1,353.9,3.6,52.8,151.1,0.999 671,-1,289.9,121.3,50,174.7,0.989 671,-1,301.2,3,44.8,135.1,0.763 671,-1,860.4,929.7,71.3,151.3,0.103 179,-1,1220.8,30.9,61.8,117,1 179,-1,109,350.2,49.4,188.4,1 179,-1,411.2,656.5,89.5,247.2,1 179,-1,356.2,103.6,54.5,179.9,1 179,-1,415.3,38.2,59.1,164.1,1 179,-1,932.7,122.2,75.5,171.1,1 179,-1,704.1,1,56,159.5,1 179,-1,1488.9,70,55.3,147.1,1 179,-1,212.1,125.4,54.8,168.9,1 179,-1,1357.4,567.6,105.6,244.2,1 179,-1,1720.6,456.7,78.4,211.7,1 179,-1,687.7,207.4,77.4,112,1 179,-1,289.3,126.9,54.1,170.2,1 179,-1,421.1,228.7,77.6,224.6,1 179,-1,1,616.9,105.7,236.2,1 179,-1,527,292.9,61.6,208.5,1 179,-1,543.9,147.2,66.8,172,1 179,-1,233.3,572.1,63.5,210.9,1 179,-1,866.7,176.3,74.8,193.2,1 179,-1,1103.3,150.4,47.6,163.8,1 179,-1,99.3,548.6,87.7,251.8,1 179,-1,794.1,151.9,62.4,170.8,1 179,-1,796.8,287.6,70.5,185,1 179,-1,1210.2,155.3,58.9,183.3,1 179,-1,745.3,269.3,69.2,202.1,1 179,-1,1251.8,152.9,50.2,172.3,0.998 179,-1,999.3,912.1,65,168.9,0.984 983,-1,1222.1,29.6,62.6,119.8,1 983,-1,686.8,206.1,79.3,113.8,1 983,-1,793.4,141,72.5,171.6,1 983,-1,407.9,268,70.5,190.1,1 983,-1,1181.9,118.6,56.6,162.7,1 983,-1,494.2,248.6,67.7,187.9,1 983,-1,1574.6,589.8,104.2,234.9,1 983,-1,334.7,833.6,94.2,247.4,1 983,-1,1195.1,677,88,258.3,1 983,-1,839.2,318.8,71.9,205.2,1 983,-1,1787.5,174.8,71.1,181.6,1 983,-1,1469.6,166,67.2,165.1,1 983,-1,1720.5,452.4,79.8,216.4,1 983,-1,319.5,259.2,64.2,197.9,1 983,-1,230.9,136.9,54.7,165.8,1 983,-1,305.4,449.7,83.2,204.1,1 983,-1,751.7,72.6,55.3,162.6,1 983,-1,546.2,119.7,54.2,169.6,1 983,-1,1666.1,141.2,55.3,169,1 983,-1,290.1,125.5,52.7,173.2,1 983,-1,922.8,310.6,66.7,207.6,1 983,-1,392.5,434.9,64.7,216.6,1 983,-1,313.8,1.3,47.4,129.5,1 983,-1,1451.5,1,57.1,93.3,1 983,-1,1739.4,674.8,95.7,248.1,1 983,-1,446.4,62.9,55.3,182.9,1 983,-1,382.1,1.3,53.8,133,1 983,-1,1388.7,1.3,46.5,93.2,0.999 983,-1,366,164.9,65.9,200.1,0.999 983,-1,493.3,64,52.4,158.5,0.999 490,-1,1221.6,31,61.9,118,1 490,-1,685.9,205.9,80,113.5,1 490,-1,998.9,1,55.7,140.6,1 490,-1,1499.4,1,57.2,123.6,1 490,-1,1731.6,181,70.6,173.5,1 490,-1,1692.6,459.2,104.9,210,1 490,-1,801.1,601.4,92.3,258.4,1 490,-1,462.9,155.7,65,196.4,1 490,-1,304.1,192.7,49.6,168.9,1 490,-1,875.2,1,53.7,129.2,1 490,-1,931.3,1,56.1,132.3,1 490,-1,1809.7,173.1,70.5,182.2,1 490,-1,802.2,143.9,53.1,176.4,1 490,-1,138.4,340.1,64.9,185.5,1 490,-1,212.7,722.6,100.7,269.2,1 490,-1,410.6,156.1,59.7,185.6,1 490,-1,300.2,757.6,82.3,252.8,1 490,-1,1693.6,42.5,53.2,167.4,1 490,-1,919.8,656.1,111.3,247.4,1 490,-1,357.6,109.6,55.3,174.9,1 490,-1,1539.4,600.7,84.2,239.4,1 490,-1,448.4,20,75.2,181.4,1 490,-1,1635.4,32.8,61.3,174.9,1 490,-1,218.1,136.1,62.9,165.5,1 490,-1,1765.1,347.7,78,213.6,1 490,-1,713.8,93.3,60,165.2,1 490,-1,1629.2,324.6,62.1,196.6,1 490,-1,409.5,8.5,46.6,159.9,0.999 490,-1,503.9,89.4,64.4,174.8,0.999 490,-1,1601.7,582,78.2,226.1,0.999 490,-1,1006.9,674.7,74.2,231.5,0.998 490,-1,753.5,98.8,44.5,142.3,0.733 490,-1,291.3,138.5,47.9,152.5,0.238 68,-1,1222,31,60.8,116.8,1 68,-1,405,334.2,87.3,233.6,1 68,-1,686.6,207,79.5,112.5,1 68,-1,1487.9,70.3,54,145.4,1 68,-1,1276.7,181.2,61.8,161.5,1 68,-1,1362,566.7,104.8,244.4,1 68,-1,356.5,106,56,177.7,1 68,-1,705.1,1,55.3,158.9,1 68,-1,142.3,361.8,57.9,190.8,1 68,-1,1721.9,457,77.3,209.8,1 68,-1,804.6,195,73.9,174.4,1 68,-1,102.6,547,85.7,252.1,1 68,-1,493,193.4,74.9,196.6,1 68,-1,210.8,128.6,51.5,166.3,1 68,-1,993.9,184.8,68.3,180.4,1 68,-1,289,129,52.6,166.7,1 68,-1,889.2,186,56.8,165,1 68,-1,466.5,114.5,55.8,154.1,1 68,-1,1448.7,200.3,70.7,202,1 68,-1,539.2,65.3,46.9,168.4,1 68,-1,9.6,745.3,71,242,1 68,-1,1349.2,204.1,41.5,168.8,1 68,-1,382.5,33.2,53.5,164.4,1 68,-1,437.3,26.6,51.8,160,1 68,-1,254.9,87,52.3,185.1,0.992 68,-1,388.1,915.2,103.2,165.8,0.949 68,-1,489.9,41.8,38.3,163.3,0.053 442,-1,1221.4,30.1,62.3,118.9,1 442,-1,937.2,1.5,59.6,158.8,1 442,-1,1006.7,14.2,56.4,156.5,1 442,-1,687,205.8,78.3,113.1,1 442,-1,448.2,221.1,77.2,199.5,1 442,-1,359.4,107.2,53.8,180.3,1 442,-1,111.8,349.6,53.3,189.4,1 442,-1,1717.5,456,80.9,213.3,1 442,-1,1357.2,531.9,67.6,203.3,1 442,-1,771.7,568.8,77,250,1 442,-1,853.9,1,53.6,138.8,1 442,-1,238.1,236.4,53.8,179,1 442,-1,286.5,127.6,54,169.5,1 442,-1,798.3,151.4,53.2,170.8,1 442,-1,364.6,669.3,75.3,238.9,1 442,-1,1751.8,152.1,65,168.2,1 442,-1,1563.2,617.9,74.4,235.9,1 442,-1,882.3,577.4,112.4,244.2,1 442,-1,1844.4,400.2,76.6,204.9,1 442,-1,269,640.4,87.3,262.7,1 442,-1,1696,99.7,71.3,173.3,1 442,-1,529.8,69.7,53.4,172.1,1 442,-1,423.1,1,43.1,132.7,1 442,-1,430.1,119,58.7,170.2,1 442,-1,220.1,136.3,59,153.6,1 442,-1,362.5,3.1,61.7,130.3,1 442,-1,1677.1,369.2,70.5,198.8,1 442,-1,711.8,88.5,60.9,174,0.999 442,-1,726.8,1,50.7,100.4,0.998 442,-1,960,596.4,83.6,226.2,0.997 442,-1,756.2,87.7,47.4,149.6,0.988 442,-1,1007.2,922.9,89.5,158.1,0.975 950,-1,686.3,206.1,80.4,113.5,1 950,-1,1221.6,29.7,61.8,119.4,1 950,-1,794.1,140.1,73.1,173.2,1 950,-1,1474.8,135.9,63.3,168.1,1 950,-1,1483.3,1,55.8,111.9,1 950,-1,1143.5,71,58.8,171.5,1 950,-1,321.7,764.8,96,273.6,1 950,-1,1574,587.4,104.1,236.6,1 950,-1,750,72,56.6,161.9,1 950,-1,1246.2,761.8,92,269.5,1 950,-1,1637.7,104.4,52.1,167.4,1 950,-1,933.3,354.3,68.9,215,1 950,-1,1722.2,452.5,76.6,215.7,1 950,-1,552.8,117.4,55,169.2,1 950,-1,393.8,386.5,65.5,217.1,1 950,-1,855.1,365.7,67.5,215,1 950,-1,322.4,405.9,80.5,199.2,1 950,-1,428.9,231.4,70,187.7,1 950,-1,1415.3,1,47.8,115.8,1 950,-1,235,134.8,58.3,170.3,1 950,-1,346.2,234.2,62.9,185.1,1 950,-1,1741.9,674.4,95.6,251.4,1 950,-1,436.3,76.4,55.2,175.9,1 950,-1,478.1,37.4,55.5,155.5,1 950,-1,480.1,216.2,62.4,184.9,1 950,-1,1756.7,133.1,62.8,178.7,1 950,-1,249,2.7,54.2,120,1 950,-1,317.6,167.8,59.6,194.6,0.995 950,-1,287.1,126.2,53,164.4,0.992 831,-1,1221,29.6,62.4,119,1 831,-1,687,205.9,78.9,114.4,1 831,-1,1640.4,6.3,59.2,157.1,1 831,-1,273.8,567.6,81.6,245.4,1 831,-1,790.7,135.2,69.1,180.1,1 831,-1,557.9,116.1,61,175.3,1 831,-1,1722.3,452.3,76.5,214.5,1 831,-1,1574.6,589.3,102.5,234.3,1 831,-1,1475.7,47.6,59.1,155.1,1 831,-1,1033.7,541.3,92.4,244.3,1 831,-1,751.8,71.6,57.3,163.2,1 831,-1,1423.5,41,48.6,154.5,1 831,-1,360.4,274.4,85.1,181.5,1 831,-1,292.1,161.9,68.3,200.3,1 831,-1,474.9,125.2,59.5,179.1,1 831,-1,437.7,258.3,54.6,195.3,1 831,-1,957.3,561.4,71.6,236,1 831,-1,239.5,134.4,50.4,162.5,1 831,-1,422.4,122.6,56.6,176.4,1 831,-1,253.2,1,53.5,120.5,0.999 831,-1,350.8,171.3,42.7,175.2,0.894 485,-1,1221.8,30.9,62.2,117.9,1 485,-1,686.7,205.3,79.8,114.7,1 485,-1,998.7,1,56.5,144.2,1 485,-1,1500.2,1,58.5,122.2,1 485,-1,298.8,197.4,51.1,168.6,1 485,-1,1682.8,458.8,118.2,208.8,1 485,-1,456.5,165,69.6,197.1,1 485,-1,931.6,1,56.3,135.4,1 485,-1,1798.7,165.9,68.2,176.3,1 485,-1,876.7,1,53.8,132.4,1 485,-1,134.1,340.8,59.8,188.8,1 485,-1,1729.7,177.4,67,170.6,1 485,-1,803.8,597.6,90.4,256.8,1 485,-1,802.2,142.6,51.1,177,1 485,-1,1700.1,46,49.8,170.1,1 485,-1,1780.4,353.3,73.5,209.7,1 485,-1,359.6,112.2,52.9,172.5,1 485,-1,1539.7,598.2,81,242.5,1 485,-1,217,713.4,96.4,263,1 485,-1,1633.2,329.9,62.9,190.7,1 485,-1,310.5,742.2,75.4,259.5,1 485,-1,220,139.6,62,157.8,1 485,-1,913,649.8,117.6,254.9,1 485,-1,414.2,155.6,55.3,173.6,1 485,-1,446.6,23.6,76.2,179.5,1 485,-1,1643.2,39.6,56.9,174.3,1 485,-1,504.7,87.8,62.6,172.4,1 485,-1,711.6,94,59.9,167.1,0.999 485,-1,410.8,7.2,46.8,157.5,0.999 485,-1,753.2,98.8,51.4,141.6,0.992 485,-1,1001.9,671.9,75.6,227.3,0.949 485,-1,1592.1,577.9,65.2,191.4,0.416 485,-1,1017.4,933,83.1,148,0.174 763,-1,1221.5,29.3,62.3,118.9,1 763,-1,687,205.5,79.1,114,1 763,-1,543.9,114.9,66.2,177.1,1 763,-1,781.4,135.5,63.7,176.9,1 763,-1,1719.7,453.1,80.2,213.1,1 763,-1,1575.2,591.1,100,233.6,1 763,-1,303.2,468,77.4,226.6,1 763,-1,1458.5,83.1,52.9,170.2,1 763,-1,270.9,177.2,56.6,200.6,1 763,-1,456.7,193.6,54,187.8,1 763,-1,329.9,192.6,56.2,180.7,1 763,-1,397.6,209.7,66.8,174.6,1 763,-1,1578.2,84.8,63.8,176.3,1 763,-1,1493.8,15.1,61,148.6,1 763,-1,459.4,63.7,56.4,167.8,1 763,-1,752.3,82.2,49.3,151.5,1 763,-1,257.1,1.5,50.1,121.3,1 763,-1,517.6,566,80.3,252.9,1 763,-1,1147.3,662.5,97.9,266.3,1 763,-1,1083.8,680.3,80.6,256.8,1 763,-1,235.5,134.8,48.8,164.8,1 763,-1,401.9,66.3,56.8,167.4,1 763,-1,359.4,110.8,53,169.6,1 808,-1,1221.5,29.9,62.3,118.6,1 808,-1,687,205.2,79,114.1,1 808,-1,1617.3,1,58.1,140.3,1 808,-1,278.2,528.6,80.7,240.8,1 808,-1,1723.9,452.4,75,215,1 808,-1,787.4,130.8,51,178.6,1 808,-1,549.7,114.6,65.9,178.9,1 808,-1,1574.4,591.6,100.7,232.5,1 808,-1,277,166.7,61.6,196.6,1 808,-1,440.9,234.1,56.6,197.2,1 808,-1,1473.4,34.4,62.4,154.2,1 808,-1,379.7,247.4,73.6,176.2,1 808,-1,476.1,105.6,64.7,179.5,1 808,-1,997.8,599.9,71.5,235.6,1 808,-1,751.3,73.1,56.5,160.8,1 808,-1,1070.1,573.6,75.9,250.9,1 808,-1,345.5,179.8,53.2,174,1 808,-1,234.8,135.9,50.8,163.9,1 808,-1,1435.7,52.9,50.6,159,1 808,-1,422.6,105.2,59.9,168.5,0.999 808,-1,441.4,1,42.4,83.6,0.995 1034,-1,1221.5,29.7,61.5,118.9,1 1034,-1,686.8,206.7,79.4,113.5,1 1034,-1,794,141.1,70.9,171.6,1 1034,-1,1718.8,455.8,82.6,211.6,1 1034,-1,486.3,309.8,73.4,195.6,1 1034,-1,288.8,128,53.1,168.4,1 1034,-1,234,139.3,57.1,165.8,1 1034,-1,1265.4,182.6,65.2,167.9,1 1034,-1,846.6,256.4,65,196.6,1 1034,-1,937,244.7,66,201.7,1 1034,-1,750.9,75.5,54.6,161.6,1 1034,-1,365.1,321.5,75.7,200,1 1034,-1,1573.9,589.9,103.4,239.1,1 1034,-1,1703.6,201.4,62.2,180.5,1 1034,-1,1135.1,570.6,86.9,250,1 1034,-1,295,316.4,67.5,202.8,1 1034,-1,375.3,504.3,64.6,230.1,1 1034,-1,1683.7,682,81.9,237.6,1 1034,-1,288.5,523,87.8,210.9,1 1034,-1,372,105.6,58.2,175.3,1 1034,-1,1849.6,240.4,64,198.1,1 1034,-1,1470.6,208.7,69,162.5,1 1034,-1,581.3,542.4,69.3,247,1 1034,-1,308.5,2.3,36.6,128.8,1 1034,-1,436.4,174.1,61.8,163.5,1 1034,-1,539.6,120.5,61.5,171.9,1 1034,-1,488,164.2,66.6,196.7,0.999 254,-1,1220.5,31.2,63.2,117.7,1 254,-1,1614.1,6.3,61.1,150.4,1 254,-1,686.8,206.6,78.9,114.3,1 254,-1,390.8,505.1,88.4,238.5,1 254,-1,1479.9,55.4,54.2,151.9,1 254,-1,287,128,56.2,171.4,1 254,-1,211.4,126.1,57.3,168.6,1 254,-1,798.2,152,59.6,175.6,1 254,-1,356.8,108.2,52.7,178.2,1 254,-1,1720.4,457.6,78.5,210.7,1 254,-1,108.4,349.6,51.4,192.3,1 254,-1,1385.7,568.2,103.3,240,1 254,-1,704.2,1,54.6,157.8,1 254,-1,1147,109.5,50.2,167.4,1 254,-1,226,456.6,60.9,202.8,1 254,-1,450.4,167.8,76.9,210.6,1 254,-1,937.4,109.4,69.9,182.7,1 254,-1,131.5,572.4,93,231.2,1 254,-1,1067.9,114.7,58.4,180.7,1 254,-1,898.2,107.7,48.5,158.7,1 254,-1,859,356.8,76.9,196.6,1 254,-1,224.7,737.9,91.3,258.9,1 254,-1,793.9,347.6,82.5,206.7,1 254,-1,513.8,118.7,56.1,177.1,1 254,-1,487.7,370.5,74.2,230.1,1 254,-1,580,382.2,64,210.2,1 254,-1,761.9,99.9,50.9,172.5,0.999 254,-1,363.9,1,58.6,166.1,0.997 254,-1,931.1,909.7,76.7,171.3,0.991 939,-1,1221.4,29.9,61.8,119.7,1 939,-1,686.5,206.2,79.8,113.2,1 939,-1,794.4,139.5,73.6,173.4,1 939,-1,1485.6,1,61.1,121.5,1 939,-1,322.7,746.6,90.8,259.4,1 939,-1,443.2,223.4,69.2,189.2,1 939,-1,1476.4,125.6,60.7,157.3,1 939,-1,1128.8,62.1,63.5,169.6,1 939,-1,555.4,116.9,57.4,171.7,1 939,-1,1575.4,588,103.7,237.5,1 939,-1,1624.2,91.7,57.4,170.6,1 939,-1,1721.8,455.4,77.3,211.2,1 939,-1,750,70.8,56.5,162.2,1 939,-1,237.7,134,59.3,169.5,1 939,-1,395.4,376.9,65.3,217.5,1 939,-1,1262.1,787.3,93.6,285.9,1 939,-1,1741,125.2,58.6,177.6,1 939,-1,475.7,28.6,54.1,154.2,1 939,-1,1745.2,675.5,92.2,248.3,1 939,-1,329.4,391.9,80.7,190.1,1 939,-1,858.1,388.1,65.1,212.9,1 939,-1,357.6,225,61.2,183.2,1 939,-1,943.9,369.1,68.8,222.6,1 939,-1,254.6,1,53.2,120.1,1 939,-1,1420,2.9,46,117.4,1 939,-1,307,162,64.7,197.2,1 939,-1,434.8,71.2,54,181.1,1 626,-1,687.2,205.9,79.3,113.1,1 626,-1,1221.3,28.8,63.2,118.8,1 626,-1,1480.8,6.6,60.4,142.6,1 626,-1,346.2,295,68.6,203.8,1 626,-1,800.4,144.3,66.9,172.2,1 626,-1,1624,203.8,78.4,194.8,1 626,-1,1573.5,588.1,99,236.4,1 626,-1,357.3,114,53.6,172.4,1 626,-1,540.2,541.5,85,243.6,1 626,-1,550.9,111.7,58.9,175.8,1 626,-1,184.9,239.7,71.5,201.6,1 626,-1,1712.1,455.9,92,208.6,1 626,-1,288,126.3,52.5,169.6,1 626,-1,498.2,78.6,47.1,158.1,1 626,-1,251.3,248.8,58.6,184.7,1 626,-1,352,1.5,54.9,122,1 626,-1,753.5,78.6,44.5,153,1 626,-1,1589.2,1,54.2,93.2,1 626,-1,233.6,133.7,48.8,162.2,1 626,-1,450.9,84.3,46.8,172,0.999 626,-1,411.3,105,50.9,156.2,0.999 626,-1,421.2,2.8,60.3,122.3,0.999 626,-1,1111.6,921.4,101.1,159.6,0.994 817,-1,1221.2,29.2,62.5,119.3,1 817,-1,687.6,205.8,78,113.8,1 817,-1,790.4,133.8,61.3,176.6,1 817,-1,1723.7,452.6,74.7,214.5,1 817,-1,557.3,115.8,62.2,176,1 817,-1,1626.3,1,55.8,151.3,1 817,-1,1575.1,591.2,100.5,232.4,1 817,-1,275.3,548.6,79.1,240.6,1 817,-1,282.8,164.2,63.9,196.8,1 817,-1,439.7,243.4,55.4,198.2,1 817,-1,376,261.7,73.1,176.5,1 817,-1,474.2,108.5,61.2,180.3,1 817,-1,751.2,72.7,58.7,161.1,1 817,-1,1471.4,36.4,62.9,158.1,1 817,-1,1429.5,48.5,50.9,159.6,1 817,-1,235.6,135.5,50.5,164.4,1 817,-1,981,583.6,74.3,243.9,1 817,-1,1056.3,563.2,71.9,239.1,1 817,-1,348.2,178.7,50.4,167.7,1 817,-1,425.8,109.7,58.1,167.8,0.999 817,-1,443.5,7.7,34.5,69.9,0.12 384,-1,1222.3,31.5,61.8,118.7,1 384,-1,686.1,206.9,80,111.8,1 384,-1,1636.6,23.8,73,172.1,1 384,-1,357.7,106.6,56.2,179,1 384,-1,447.3,291.3,77.4,206.4,1 384,-1,1104.8,455.9,69.5,203.7,1 384,-1,373.1,2.6,58.9,98.6,1 384,-1,827.7,1,54.6,113.4,1 384,-1,108.4,350,52.6,190.8,1 384,-1,332.6,539.7,89.4,245.2,1 384,-1,951.5,30,64,176.7,1 384,-1,1774.2,102.2,64.8,159.7,1 384,-1,446.7,566.4,71.5,235.9,1 384,-1,1599.4,633.9,80.9,244.6,1 384,-1,282.7,127.4,55.1,169.5,1 384,-1,1014.7,48.6,55.7,163.7,1 384,-1,795.9,149.6,59.5,172.8,1 384,-1,1717.4,456.1,77.7,211.6,1 384,-1,208.7,297.8,53.6,184.3,1 384,-1,219.9,138.1,57.7,159,1 384,-1,449.1,73.6,71.8,195.7,1 384,-1,847.4,496.7,90.2,230.6,1 384,-1,1436.5,1,52.5,87.4,1 384,-1,1786.2,437.5,67.5,209.9,1 384,-1,506.4,79.6,50.9,170.2,1 384,-1,913,515,76.1,208.1,0.999 384,-1,755.8,105.1,50.8,135.6,0.999 384,-1,978,907.9,87,173.1,0.995 384,-1,615.6,563.8,82.6,236.7,0.857 759,-1,1221.7,29.7,62.2,119,1 759,-1,686.6,205.8,79.9,113.3,1 759,-1,545.7,116.5,64.8,176.5,1 759,-1,781.1,134.6,65.4,177.1,1 759,-1,1716.9,453.6,82.3,212.5,1 759,-1,304.2,460.1,77.3,226.1,1 759,-1,1463.3,87,52.5,169.2,1 759,-1,1575.1,589.1,100.4,235,1 759,-1,1582.8,89.3,63.5,175.3,1 759,-1,266.8,182.3,57.8,199,1 759,-1,331.4,195.5,54.2,174.4,1 759,-1,458.9,188.3,54.9,189.6,1 759,-1,1495.3,17.1,61.1,146.9,1 759,-1,401.2,202.9,65.2,174.6,1 759,-1,257.6,1,49.7,122.5,1 759,-1,1158.1,667.7,90.9,267.6,1 759,-1,453.6,66.2,57.9,169.2,1 759,-1,505.7,564.8,74.5,250.3,1 759,-1,752.1,80.2,49.1,152.3,1 759,-1,1094.3,689.8,77.7,251.1,1 759,-1,236.3,136.4,48.8,158.7,1 759,-1,398.6,63.7,56.8,167.3,1 759,-1,360.5,110.7,50.5,166.8,0.999 351,-1,1221.9,30.6,61.7,119.5,1 351,-1,687.3,206.6,78.6,113.2,1 351,-1,1741.6,82.2,58.6,151.1,1 351,-1,1609.9,1,64.4,140.4,1 351,-1,1444.2,1,51.4,113.4,1 351,-1,287.8,129.7,54.6,174.2,1 351,-1,445.6,89.4,71.1,203,1 351,-1,1033.3,61.9,54.9,168.2,1 351,-1,434.1,342.2,73.3,213.5,1 351,-1,207.7,138.2,58.1,163.7,1 351,-1,109,349.6,52.4,189.2,1 351,-1,1005.8,414.5,63.9,195.1,1 351,-1,364.5,106.7,54.8,179.9,1 351,-1,1719.2,457,78.9,212.9,1 351,-1,966.5,55.3,63.4,178.4,1 351,-1,1553.9,617.1,94.5,246.2,1 351,-1,226.1,333.9,57.2,189.9,1 351,-1,796.7,153.6,59.2,169.7,1 351,-1,1826.9,480.2,69,212.9,1 351,-1,478.8,576.9,89.7,245.7,1 351,-1,843.7,1,49.6,96,1 351,-1,519.3,95.6,38.5,168.1,1 351,-1,391.4,496.2,85.6,231.5,1 351,-1,902.6,472.1,74.3,206.4,1 351,-1,843.1,455.1,83,228.1,1 351,-1,924.3,17.3,61.7,161.5,1 351,-1,766.7,96.2,40.9,151.5,0.999 351,-1,709.5,91.9,59.7,174.4,0.996 351,-1,1867.2,64.2,53.8,164.2,0.995 351,-1,953.8,929.6,77.4,151.4,0.871 245,-1,1221,30.5,63.1,117.6,1 245,-1,686.8,207.2,79.1,112.7,1 245,-1,108.3,349.6,51.8,191.8,1 245,-1,797.3,151.9,59.3,174.8,1 245,-1,1595.4,4.7,60,146.1,1 245,-1,1482.1,59,54.2,151.5,1 245,-1,391.6,517.5,86.7,239.9,1 245,-1,211.7,124.7,56.3,171.2,1 245,-1,1366.9,567,106.8,244.6,1 245,-1,932,117.4,70.8,178.9,1 245,-1,448.2,175,74.7,209.3,1 245,-1,1720.6,456.5,78.7,212,1 245,-1,704.5,1,54.5,158.2,1 245,-1,1158.8,115.4,52.4,162.8,1 245,-1,222.6,473,60.8,206.3,1 245,-1,287.8,127.5,56.1,172.4,1 245,-1,493.6,358.3,72.2,225.5,1 245,-1,1081.1,118.7,57.8,180.7,1 245,-1,355.9,105.7,53.6,178.2,1 245,-1,202.9,726.5,89,252,1 245,-1,116.4,564.1,86.2,246.4,1 245,-1,847.6,345.7,80.6,196,1 245,-1,516.8,117.5,53,183.4,1 245,-1,787.3,335.2,84.4,204.3,1 245,-1,587.7,369.7,64.1,201.9,0.999 245,-1,930,898.8,73.3,182.2,0.995 245,-1,769.6,103.2,50.4,167.2,0.985 426,-1,1221.8,30.9,61.8,118.8,1 426,-1,686.9,205.4,79,115.1,1 426,-1,940.6,7.8,64,166.6,1 426,-1,358.8,108.7,54.7,177.4,1 426,-1,1672.5,78,63.2,175.3,1 426,-1,449.6,238.9,78.1,200,1 426,-1,109.7,347.3,53.9,193.6,1 426,-1,1718.4,456.6,80.3,209.1,1 426,-1,840.2,1,53,134.2,1 426,-1,1008.8,24,54.6,159.5,1 426,-1,1574.8,616.9,95.2,241.9,1 426,-1,742.9,558.1,80.6,248.3,1 426,-1,1275.2,509.6,76.2,206.6,1 426,-1,542.1,70.4,54.9,163.8,1 426,-1,285.5,130.9,54.7,164.2,1 426,-1,1760.7,143,56.5,158.5,1 426,-1,283,617.8,95.5,249,1 426,-1,798.8,150.2,54.1,173.1,1 426,-1,865.8,554.9,105.1,238.6,1 426,-1,216.4,253.8,53.9,178.8,1 426,-1,220.9,141.4,74.2,159.5,1 426,-1,357.1,2.1,69.7,124.5,1 426,-1,385.7,639.3,73.6,243.8,1 426,-1,430.5,108.6,54.5,164,1 426,-1,713.5,88.8,62,176.7,1 426,-1,944.9,567.9,86.3,223.7,1 426,-1,425.4,1.8,42.1,125.6,1 426,-1,721.1,1,49.5,115.6,0.999 426,-1,1856.7,424.7,64.3,192.2,0.994 426,-1,1791.5,69.3,83.2,179.5,0.993 426,-1,452.5,58.2,71.8,194.2,0.991 426,-1,990.4,932.7,82.4,148.3,0.761 426,-1,753,87.2,41.1,158.8,0.406 999,-1,1221.6,30.7,61.8,119.1,1 999,-1,686.7,206.2,79.3,113,1 999,-1,794,140.6,74.4,171.3,1 999,-1,398.8,289.2,67,189.6,1 999,-1,1473,180.8,65,161.3,1 999,-1,231.8,136.3,54.3,166.1,1 999,-1,1198.7,137.5,64.7,173.1,1 999,-1,1674.6,160.5,62,171.4,1 999,-1,290.8,126,50.4,168.4,1 999,-1,502.9,264.4,64.6,186.2,1 999,-1,1575.9,589.5,102.8,236.2,1 999,-1,1806,194.2,68.9,187.5,1 999,-1,1722.7,452.7,77.8,216.8,1 999,-1,841.6,297.1,65.6,202.6,1 999,-1,923.8,289.9,70.4,208.4,1 999,-1,751.4,71.7,54.3,162.6,1 999,-1,301.3,465.5,85.3,210.8,1 999,-1,541.4,119.3,59.5,169.7,1 999,-1,311.3,277.2,66.5,198.5,1 999,-1,336.3,866.4,89.4,214.6,1 999,-1,1740.4,675.8,93.2,248.1,1 999,-1,1175.8,638.9,87.3,265.2,1 999,-1,314,1,43.7,131.3,1 999,-1,382.2,458.2,68.6,218,1 999,-1,439.8,65.9,60.8,171,1 999,-1,598.6,548,108.2,247.7,1 999,-1,508.2,84.9,53.2,156.2,1 999,-1,390.9,167.2,73.8,185.7,0.999 823,-1,1221.7,29.4,62,118.3,1 823,-1,687.5,205.4,78.3,114.9,1 823,-1,790.9,135.4,64,178.4,1 823,-1,275.6,555.3,79.3,240.7,1 823,-1,556.6,116,63,175.9,1 823,-1,1722.9,453.3,75.4,214,1 823,-1,438.3,253.6,55.6,195.6,1 823,-1,1040.6,547.1,90.2,246.7,1 823,-1,1634.6,3.4,52.3,153.3,1 823,-1,1575.5,589.2,101.1,234.7,1 823,-1,1474.8,41.5,58.8,156.8,1 823,-1,1424.6,42.9,51.1,158.9,1 823,-1,284.9,163.4,68.1,193.7,1 823,-1,375.8,263.3,69.8,175,1 823,-1,752.4,71.1,56.7,162.5,1 823,-1,473.3,120.9,59.5,177.5,1 823,-1,969.5,572.2,73.4,232.9,1 823,-1,237.5,135.9,49.3,165.1,1 823,-1,423.7,116.5,59.6,172.9,1 823,-1,347,174.3,50.9,175.7,1 713,-1,1221.7,30,61.7,118.9,1 713,-1,686.8,206.2,79.5,113.5,1 713,-1,1480.9,8.1,57.6,144.5,1 713,-1,554.5,110.5,59.3,178.8,1 713,-1,1573.6,588.7,101.3,237.6,1 713,-1,1601.6,121.8,65.8,184.8,1 713,-1,1712,455.8,95.8,209.1,1 713,-1,480.7,157.8,50.3,178.3,1 713,-1,412.2,167.4,73.5,163.7,1 713,-1,296.3,399.9,76,215,1 713,-1,1475.3,121.2,51.4,179.1,1 713,-1,1192.8,792.1,89.3,261.7,1 713,-1,360.6,107.7,49.9,177.9,1 713,-1,259.8,195.1,57.2,197.3,1 713,-1,391.9,546,76.7,242.6,1 713,-1,750.1,80.7,49.6,155.7,1 713,-1,1281,772.6,91.3,270.9,1 713,-1,412.3,31.4,62.2,164.9,1 713,-1,800.1,137.3,46.5,171.9,1 713,-1,471,19.9,46.3,145.1,1 713,-1,308,206.9,58.6,177,1 713,-1,233.1,133.4,50.4,167,0.999 713,-1,979.6,1,78.7,81.9,0.599 754,-1,1221.3,29.4,62.2,118.8,1 754,-1,686.7,205.9,79.6,113.6,1 754,-1,546.9,117.8,64.6,173.5,1 754,-1,1463.2,95.4,54.2,163.8,1 754,-1,781.3,134.1,62.7,177.4,1 754,-1,1714.3,455.7,87.5,208.9,1 754,-1,303.5,450.1,74.8,224.9,1 754,-1,263.5,185.4,59.1,200,1 754,-1,1574.9,589.3,100.3,233.2,1 754,-1,479,574.8,94.6,240.8,1 754,-1,331.7,197.2,56,173.5,1 754,-1,462.6,189.5,52.9,188,1 754,-1,1591.2,87.4,62.8,181.1,1 754,-1,401.1,199.1,67.4,174.2,1 754,-1,1495.2,16.7,58.1,139.7,1 754,-1,448.5,63.6,54.9,169.3,1 754,-1,1165.3,677.1,93.7,266.5,1 754,-1,751.2,78.5,49.3,154.9,1 754,-1,258.2,1,49.1,122.2,1 754,-1,1103.7,703.2,78.9,262.2,0.999 754,-1,359.1,107.9,51,175.6,0.999 754,-1,235.9,140.1,50.9,153.2,0.999 754,-1,397.8,61.5,56.2,167.6,0.996 754,-1,293,132,43.3,158.5,0.805 658,-1,1152.5,2.1,68.9,116.2,1 658,-1,687.2,206.1,79.4,113.8,1 658,-1,1220.1,28.8,63.9,120.9,1 658,-1,1481,4.7,60.3,143.4,1 658,-1,1711.9,455.5,96.3,209.8,1 658,-1,551.1,111.1,59.7,175.7,1 658,-1,801.9,144.9,64.9,171.6,1 658,-1,359.5,114.2,50.1,169.6,1 658,-1,327.8,333,70.3,208.1,1 658,-1,1574.8,587.8,96.9,235.9,1 658,-1,1613.1,170.7,76.4,186.7,1 658,-1,751.5,80,46.4,155.2,1 658,-1,409.2,1,57,152.1,1 658,-1,424.7,120.4,59.1,162.4,1 658,-1,472.8,109.4,47.8,174.9,1 658,-1,445.8,530,80.1,249.2,1 658,-1,221.2,218.4,56.9,201.4,1 658,-1,271.7,235.7,58.6,176.9,1 658,-1,286.9,124.8,53.7,172.2,1 658,-1,352.3,1,53.1,142.9,0.999 658,-1,1430.2,908.5,97.3,172.5,0.999 658,-1,1353.7,930.6,89.4,150.4,0.964 71,-1,1221.7,30.6,61.2,117.4,1 71,-1,406.3,331.4,87.1,231.8,1 71,-1,687,206.5,79.4,115.8,1 71,-1,1487.5,69.6,55.2,148.9,1 71,-1,704.5,1,55.8,158.6,1 71,-1,138.2,353.4,58.1,198.6,1 71,-1,1362.3,566.1,104.4,246,1 71,-1,1265.1,176.7,60.1,164.7,1 71,-1,355.5,107,55.9,179,1 71,-1,1722.1,456.3,77.2,210.9,1 71,-1,788,190.2,77.3,182.8,1 71,-1,493.5,197.6,74.9,193.8,1 71,-1,103.3,547.2,85.5,252.4,1 71,-1,11.1,742.6,67.5,231.9,1 71,-1,991,186.2,68.6,179.8,1 71,-1,1438.5,200.3,77.6,198.8,1 71,-1,289.6,128.7,51.2,166.4,1 71,-1,211.5,130.3,51.4,164,1 71,-1,1340.8,206.8,42.1,160.4,1 71,-1,469.3,114.4,57.3,162.4,1 71,-1,539,62.8,47.2,171,1 71,-1,887.6,186,55.9,168.8,1 71,-1,383.8,32.1,51.7,161.4,1 71,-1,436,24.5,53.5,161.2,1 71,-1,257.2,91.5,53.3,174.6,0.994 71,-1,384.7,908.4,105.1,172.6,0.989 71,-1,848.5,165.4,55.8,179.9,0.869 822,-1,1221.4,29.5,62.2,118.7,1 822,-1,687.9,205.4,77.9,114.8,1 822,-1,790.1,136.4,64.8,177.4,1 822,-1,276,553.3,78.2,242.9,1 822,-1,556.1,115.7,62.9,174.9,1 822,-1,1633.4,3.6,53.1,152.5,1 822,-1,1723.6,453.1,74.4,214.4,1 822,-1,438.7,252.4,55.7,195.2,1 822,-1,1575.9,588.9,100.4,235.4,1 822,-1,1043.9,547.9,86.5,247.3,1 822,-1,1425.3,43.1,51.8,158.4,1 822,-1,1475.2,41.6,58.4,157,1 822,-1,284.4,162.9,68.8,196.2,1 822,-1,375.2,263.5,71.4,175.2,1 822,-1,473.9,120.5,59.7,177.9,1 822,-1,751.5,70.9,58.2,163.1,1 822,-1,971.5,575.9,73.1,227.7,1 822,-1,237,135.9,49.7,165.6,1 822,-1,424.7,115.9,59,170.8,1 822,-1,346.7,175,51.2,173.2,0.999 205,-1,1221.5,31,61.7,119.5,1 205,-1,687,206.8,78.6,113.5,1 205,-1,397.4,602.2,89.2,244,1 205,-1,211.6,127,55.5,168.1,1 205,-1,69.6,642.9,115.9,253.6,1 205,-1,1491.5,70.3,53.7,147.8,1 205,-1,705.2,1.1,55,158.9,1 205,-1,108.6,349.5,50.4,187.8,1 205,-1,1721,457.4,78.3,210.4,1 205,-1,288.5,126.6,55.6,171.9,1 205,-1,1209.8,144.2,53.3,167,1 205,-1,1358.2,568.3,104.5,245.4,1 205,-1,508.5,318.7,76.6,216.3,1 205,-1,521.7,132.2,57.9,164.6,1 205,-1,354.8,107.9,55.5,177.7,1 205,-1,797.1,150.8,59.1,173.7,1 205,-1,424.1,206.3,77.5,216,1 205,-1,382.9,39.3,64.7,167.3,1 205,-1,1147.2,139.6,59.8,184,1 205,-1,1030.6,138,48.7,153.3,1 205,-1,894.9,154.2,70.8,187.5,1 205,-1,805.3,310.8,73.4,187.6,1 205,-1,227.9,531,60.4,213.6,1 205,-1,1,605.7,71.2,230.8,1 205,-1,754.9,296.6,69.8,204.9,1 205,-1,964.9,912.7,70.7,168.3,0.975 205,-1,868.5,115.4,47,157.9,0.687 205,-1,471.4,3.4,44.6,80.3,0.299 846,-1,1221.4,29.6,62.3,118.6,1 846,-1,687.9,205.9,78,114.2,1 846,-1,794.7,138.8,79.3,175.8,1 846,-1,557.9,117.2,60.1,174.2,1 846,-1,1721,453,78.8,213.3,1 846,-1,1574.8,591.5,102.8,232.3,1 846,-1,266.1,592.5,80.9,242.3,1 846,-1,1070,1.1,58.3,110,1 846,-1,752.6,71.6,55,162,1 846,-1,1469.3,61.4,60.8,153.5,1 846,-1,295.5,160.2,73.3,197.9,1 846,-1,354.3,287.7,74.1,181.4,1 846,-1,240.5,131.2,52.1,167.6,1 846,-1,1415.4,29.7,54,159.3,1 846,-1,1656.4,22.2,55,161.3,1 846,-1,474,136.6,60,182.5,1 846,-1,436.9,273.1,55.4,201.9,1 846,-1,935,533.7,72.3,240.2,1 846,-1,1019.3,512.1,71.7,238.6,1 846,-1,416.1,139.3,60.7,170.2,1 846,-1,254,1,53.7,121.1,1 1035,-1,1221.4,30.2,61.8,118.2,1 1035,-1,687,206.7,79.2,113.8,1 1035,-1,794.6,141.3,70.4,172.7,1 1035,-1,1719.7,455.4,82.1,213.3,1 1035,-1,1271.7,183.6,61.6,165.5,1 1035,-1,485.4,311.2,74.7,195.4,1 1035,-1,289.5,128.2,52.8,168.1,1 1035,-1,1134,572.5,87.8,243.7,1 1035,-1,233.8,139.3,56.4,165.2,1 1035,-1,847.9,256.7,63.4,195.2,1 1035,-1,751.4,76.6,54.1,160.7,1 1035,-1,936.8,242.6,66.2,203.3,1 1035,-1,364.6,319.4,74.1,199.2,1 1035,-1,286.4,524.4,90.5,212.4,1 1035,-1,295.1,315.3,68.1,205.3,1 1035,-1,1573.3,590.4,103.7,236.5,1 1035,-1,374.2,501.1,65.4,232.9,1 1035,-1,1705.4,202,62.4,179.4,1 1035,-1,1681,682.7,81,231.5,1 1035,-1,1850.1,240.9,64.8,198.1,1 1035,-1,437.5,173.4,62.2,164.1,1 1035,-1,371,104,59.9,176.2,1 1035,-1,1470.3,208.8,69.2,163.6,1 1035,-1,581.7,540.9,68.7,250.7,1 1035,-1,307.8,2.1,36.6,128.6,1 1035,-1,491,164.4,67.7,197.2,1 1035,-1,540.1,119.3,60.2,170.8,0.999 806,-1,1220.9,29.6,62.4,119.2,1 806,-1,687.1,205.8,78.7,114.2,1 806,-1,1615.2,1,57.9,139.6,1 806,-1,278.3,528.5,80.3,240,1 806,-1,549.8,114.4,64.3,177,1 806,-1,786.1,130.9,52.2,179.6,1 806,-1,1723.2,453.1,75,213.4,1 806,-1,1574.5,590.6,101.3,234.2,1 806,-1,278.7,164.8,60.7,200.7,1 806,-1,440.4,232.8,56.7,197.4,1 806,-1,476.3,101.6,65.5,180,1 806,-1,380.6,246,73.8,174.1,1 806,-1,1475.4,33.9,60.9,154.5,1 806,-1,233.4,133.7,52.2,166.8,1 806,-1,1001,602.8,72.9,236.1,1 806,-1,750,72.4,58.1,161.4,1 806,-1,346.2,180.3,52.4,175.5,1 806,-1,1072.9,575.5,78.2,251,1 806,-1,1437.6,52.6,50.4,160.2,1 806,-1,421.9,102.4,58.5,168.2,0.999 806,-1,441.5,1,43.6,83,0.999 806,-1,251.4,3.5,58.8,125.4,0.847 856,-1,1220.9,29.3,63.1,118.9,1 856,-1,687.4,206.4,78.8,112.8,1 856,-1,796.6,139.6,75.7,174.7,1 856,-1,1672.6,32.8,53.1,160.2,1 856,-1,487.6,1,50.8,115.8,1 856,-1,269.4,609.9,82.7,245.1,1 856,-1,1075.2,1,59.9,119.8,1 856,-1,1575.8,590.5,101.5,234.5,1 856,-1,1721,454.2,78.7,211.7,1 856,-1,559.3,116.1,59.5,175.1,1 856,-1,1412,25.7,52.3,154.1,1 856,-1,1471.7,64.4,59.5,158.4,1 856,-1,344.2,295.2,76.5,183.3,1 856,-1,752.9,71.3,54.9,163.6,1 856,-1,433.3,284.4,55,204,1 856,-1,298.1,161.3,72.8,195.6,1 856,-1,254.4,1,54.6,121,1 856,-1,999.6,499,79.9,231.9,1 856,-1,239.7,132.6,54.7,165.6,1 856,-1,473.5,147,60.9,187,1 856,-1,923,512.7,70.3,233.8,1 856,-1,416.1,144.2,61.6,173,1 856,-1,1567.4,14.9,49.1,138.5,0.203 22,-1,687.6,206.3,78.7,113.2,1 22,-1,1487.1,69.6,55.3,148.1,1 22,-1,1206.8,32,70.7,118.6,1 22,-1,492.9,152.6,95.9,189.6,1 22,-1,704.7,1.4,56.3,155.9,1 22,-1,1361.5,567.2,105,244.9,1 22,-1,1009.6,199.4,74.5,184.6,1 22,-1,1724.2,455.7,76.3,211.5,1 22,-1,382,384.3,83.7,242.4,1 22,-1,794.9,149.8,62.7,174.9,1 22,-1,101.8,547,85.8,252,1 22,-1,215.9,131.7,49,160.9,1 22,-1,355.7,102.9,54.3,181.1,1 22,-1,200.1,380.5,67.5,198.5,1 22,-1,1817.7,227.8,65.1,189.8,1 22,-1,1608.4,242.4,59.7,189.3,1 22,-1,284.7,124.1,55.3,170.8,1 22,-1,415.7,79.4,56,164.4,1 22,-1,457.5,61.1,51.9,169.2,1 22,-1,876,140.8,58.8,179.5,1 22,-1,1.8,844.4,49.5,227.9,1 22,-1,1380.3,189.7,53,175.9,0.999 22,-1,917.8,148.4,50.8,161.5,0.998 17,-1,687.9,206.2,78.3,113.5,1 17,-1,498.5,151.2,102.7,191.8,1 17,-1,1486.8,69.8,55.5,148.3,1 17,-1,704.1,1.3,56.8,158.4,1 17,-1,1725.7,457.4,75.6,207.9,1 17,-1,1361.6,567.1,104.6,244.1,1 17,-1,1204.9,34.1,71.7,119.4,1 17,-1,794.3,149.7,62.3,173.9,1 17,-1,380.9,388.9,85.2,240.4,1 17,-1,355.4,104.8,54.2,178.7,1 17,-1,102.1,547.7,84.7,250.7,1 17,-1,1029.1,205.5,74.3,176.3,1 17,-1,1617.3,246.9,59.9,184.8,1 17,-1,217.4,124.2,47.7,168.9,1 17,-1,879.1,133.9,61.7,181.8,1 17,-1,284.6,124.3,55.2,170.3,1 17,-1,206.8,381.7,66,196.1,1 17,-1,417.4,84.2,55.3,166.9,1 17,-1,1811.8,227.5,63.9,184.2,1 17,-1,1430.8,238.9,51,170.5,1 17,-1,460.5,65.2,49.4,174.6,1 17,-1,1393.6,189.8,50.5,177.5,0.999 17,-1,1,841.4,45.4,239.6,0.567 17,-1,244.9,367.8,55.5,198.7,0.45 743,-1,1220.9,30.1,62.9,119,1 743,-1,686.5,205.6,79.9,114.4,1 743,-1,256,183.4,62.9,200.5,1 743,-1,1485.6,12.1,59.6,141.4,1 743,-1,1464.1,105,54.4,158.6,1 743,-1,551.2,115.8,60,175.9,1 743,-1,779.7,136.9,57.7,175.4,1 743,-1,298.2,436.4,74.8,221.1,1 743,-1,1575.1,589.3,100.1,235.1,1 743,-1,1714.3,455.6,92,208.9,1 743,-1,1600.4,102.7,57.2,177.9,1 743,-1,402.2,193.4,71,170.5,1 743,-1,331.2,199.5,56.8,174.1,1 743,-1,471.2,176.2,50.6,185.8,1 743,-1,438.5,52.9,57.8,167.2,1 743,-1,451.6,558.2,85,253.1,1 743,-1,1124.6,725.4,82.1,254.7,1 743,-1,1198.9,706.7,88.2,257.9,1 743,-1,750.1,82.5,50.9,149.8,1 743,-1,358.5,111.4,50,172.6,0.999 743,-1,291.6,127.3,47.7,165.9,0.991 743,-1,258.4,2.4,47.8,118.5,0.881 743,-1,391.3,52.1,49.1,172.5,0.338 743,-1,237.1,152.4,50,153.8,0.236 526,-1,1221.5,30.2,62,119.6,1 526,-1,1486.3,1,58.9,142,1 526,-1,687.1,206.1,77.9,114.4,1 526,-1,1718.8,459.3,80.5,209.1,1 526,-1,994.8,1.8,54.8,117,1 526,-1,1670.8,16,52.8,162.1,1 526,-1,389.6,193.8,60.8,188.4,1 526,-1,165.6,321.4,66.8,192.4,1 526,-1,288,124.3,54.1,172.9,1 526,-1,784.3,143.7,54.9,177.5,1 526,-1,465.2,119.6,63.3,188.6,1 526,-1,928.9,1.6,56.3,112.4,1 526,-1,883.6,2.2,51.4,113.8,1 526,-1,1607.2,3.9,56.8,171.3,1 526,-1,216.9,135.6,62.7,160.7,1 526,-1,821.3,601.9,74.1,259.8,1 526,-1,1576.4,592.1,64.8,247.4,1 526,-1,1769.4,649.3,70.1,226.6,1 526,-1,517.4,99.5,58.6,182.3,1 526,-1,449.6,1.8,72.7,167,1 526,-1,956.4,722.5,120.2,251.9,1 526,-1,195,792.5,93.6,271.8,1 526,-1,1704.1,302.3,79.7,218.2,1 526,-1,1765.2,211.8,65.5,172.7,1 526,-1,267.9,821.4,80.5,259.6,1 526,-1,1596.1,287.7,60.1,201.1,0.999 526,-1,401.2,32.4,47,163.1,0.999 526,-1,746.6,87.3,59.9,171,0.999 526,-1,1866.7,221.5,54.3,198.2,0.992 526,-1,358.7,155.6,48.9,170.6,0.99 526,-1,1047.7,942.7,69,138.3,0.137 180,-1,1220.9,30.7,62.8,117.7,1 180,-1,109.6,349.9,49.1,188.6,1 180,-1,356.3,104.9,54.8,178.4,1 180,-1,412.6,37.5,60.2,165.2,1 180,-1,704.3,1,56,159.7,1 180,-1,1489.3,69.8,54.7,147.5,1 180,-1,929.3,121.7,77.4,174.2,1 180,-1,1357.6,568.1,105.2,244.2,1 180,-1,212.6,125.9,54.7,168.4,1 180,-1,687.5,207.4,77.9,111.9,1 180,-1,1719.6,456.5,79.2,212.5,1 180,-1,411.8,654.5,90.3,248.4,1 180,-1,289,127.6,54.1,167.8,1 180,-1,420.5,228.5,77.9,221.9,1 180,-1,540.6,144.4,67,176.2,1 180,-1,527.4,295.9,61.3,205.2,1 180,-1,1,617.9,109.4,234,1 180,-1,234,568.8,63.8,211.9,1 180,-1,868.4,175.6,73.4,193.8,1 180,-1,1100.1,149.9,48,161.6,1 180,-1,99.1,549.5,87.8,251.9,1 180,-1,794.1,151.6,62,170.9,1 180,-1,797.6,289.3,70.9,186.3,1 180,-1,1207.3,154.6,58.9,185.7,1 180,-1,745.4,271.3,70.2,202.7,1 180,-1,1253.5,153.4,49.8,174.3,0.999 180,-1,996.7,913.9,65.5,167.1,0.991 290,-1,1221.5,31,62.3,120.5,1 290,-1,686.8,207,78.6,113,1 290,-1,1670.5,33.9,57.1,154.3,1 290,-1,1719.7,458.4,79,210.4,1 290,-1,939.5,75.9,61.9,178.3,1 290,-1,353.2,111.1,55.1,177.6,1 290,-1,795.8,149.4,60.5,173.8,1 290,-1,1466.5,26.7,55.5,145.4,1 290,-1,1089.8,92.9,53.4,162.6,1 290,-1,287.2,129.5,54.5,174.7,1 290,-1,456.7,140,72.4,200.8,1 290,-1,108.5,352.2,51.4,187.3,1 290,-1,232,585,85,245.6,1 290,-1,402.9,21.4,56.2,164.6,1 290,-1,385.2,443.3,83.7,219,1 290,-1,1018.3,94.4,59.2,181.5,1 290,-1,704.5,1.1,53.6,156.3,1 290,-1,236.7,409.9,59.5,198.6,1 290,-1,292.5,817.9,96.2,263.1,1 290,-1,221.6,128,53.5,166,1 290,-1,516,105.9,50.6,177.8,1 290,-1,815.3,386.1,92.4,219.5,1 290,-1,1452.9,585.7,94.2,243.4,1 290,-1,542.5,429.2,68.6,213.1,1 290,-1,747.8,104.5,46.2,166.1,1 290,-1,463.5,415.5,65,232,1 290,-1,885.1,401.9,83.1,198.5,1 290,-1,830.5,103.7,60.2,163.2,1 290,-1,939.7,920.7,81.8,160.3,0.986 290,-1,789.9,356.8,71.5,196,0.053 380,-1,1222,31.3,61,118.6,1 380,-1,686.3,206.5,79.9,114.1,1 380,-1,1634.6,17.3,66.3,168.9,1 380,-1,1097.6,453.1,63.5,201.6,1 380,-1,358.4,102.6,55.6,183.2,1 380,-1,450.2,300.3,71.7,208.8,1 380,-1,827.5,1,54.6,112.6,1 380,-1,953.2,36.5,61.6,174.7,1 380,-1,282.8,127.8,55.4,168.3,1 380,-1,109,352.3,52.1,187,1 380,-1,340.3,533.1,84.4,249.4,1 380,-1,795.2,150.1,60.5,175,1 380,-1,217.6,138.7,59,159.2,1 380,-1,1598.5,633.7,78.6,245.5,1 380,-1,1718.5,454.8,78,213.9,1 380,-1,452.6,557.3,70.1,236,1 380,-1,445.3,74.7,71.1,197.1,1 380,-1,379.2,1,52,94.6,1 380,-1,209.8,302.2,53.5,184.3,1 380,-1,1435.6,1,52.8,91.3,1 380,-1,1016.3,49.6,54.2,165.5,1 380,-1,505,83.7,53.1,169,1 380,-1,1793.6,446.9,68.6,202.3,1 380,-1,1772.4,104.1,55.2,154.4,1 380,-1,849.1,492.8,91,236,1 380,-1,756.4,101.2,50.2,137.1,1 380,-1,594.7,561.2,88.2,247.1,0.999 380,-1,975.5,911.2,85.5,169.8,0.998 380,-1,905.7,507.1,76.3,207.7,0.997 380,-1,1795.2,77.4,67.8,159.4,0.627 650,-1,687.4,206.6,78.9,113,1 650,-1,1481.1,4.6,60.3,145.3,1 650,-1,546.1,113.6,64.3,172.8,1 650,-1,1220.5,32,63.4,119.6,1 650,-1,802.1,146.1,64.5,171.3,1 650,-1,456.2,536.6,89,242.9,1 650,-1,1711.4,454.5,96.9,214.4,1 650,-1,359.7,111.2,51.2,173.7,1 650,-1,334.4,324.9,69.4,207.8,1 650,-1,1574.5,588.1,98.5,239,1 650,-1,411,1,58.8,151.1,1 650,-1,1615.7,178.3,68.7,187.1,1 650,-1,751.3,78.3,46.2,156.6,1 650,-1,268.1,236.8,60,182.8,1 650,-1,217.1,222,56.4,198.9,1 650,-1,468.9,103.5,47.4,172.2,1 650,-1,424.7,116.3,55.2,160.2,1 650,-1,288.5,125,50.5,172.3,1 650,-1,1177.5,4.4,73.1,118.9,0.996 650,-1,1465.2,931.3,78.3,149.7,0.859 650,-1,1381.4,948.5,85.9,132.5,0.552 94,-1,1222.3,30.6,61.5,116.8,1 94,-1,704.7,1,55.8,158.6,1 94,-1,400.1,853,102.1,228,1 94,-1,1488.5,70,54,147,1 94,-1,356.8,109.3,54.3,174.8,1 94,-1,421.7,309.7,79.2,229.2,1 94,-1,1193.1,152.6,69.2,175.9,1 94,-1,965.3,197.9,71.3,186.4,1 94,-1,1358.5,565.9,105.8,245.6,1 94,-1,1723,455.7,76.2,212.1,1 94,-1,720.5,192.3,66.5,170.8,1 94,-1,101.8,545.7,87.3,255.7,1 94,-1,115.9,349.4,48.5,195.2,1 94,-1,294.5,126.7,53.4,170.1,1 94,-1,210.1,130.1,50.1,165.9,1 94,-1,502.7,217.5,74.3,194.5,1 94,-1,28.7,700.1,64.5,227.3,1 94,-1,1294.5,202.9,42.6,163.8,1 94,-1,538.1,63.5,48.9,168,1 94,-1,1459.3,190.7,58.1,177.5,1 94,-1,438.6,10.3,52,158,1 94,-1,376.1,18,50.9,158.2,1 94,-1,865.5,207.4,55.7,168.3,1 94,-1,1408.7,193.7,59.7,195.8,1 94,-1,824.1,188,58.7,186.6,1 94,-1,256,91.6,61.1,183.7,0.999 94,-1,482.8,133.9,55.1,157.5,0.999 94,-1,484.2,36.7,56.5,161.7,0.986 94,-1,798.1,155.5,50.9,165.8,0.063 152,-1,1221.2,31.1,62.7,117,1 152,-1,1488.1,68.7,55.7,150.6,1 152,-1,356.5,101.7,54.3,182.3,1 152,-1,704.7,1,55.8,159.1,1 152,-1,1721.7,456.1,77.2,212.4,1 152,-1,1160.4,161.9,50.6,164.3,1 152,-1,109.4,351.1,49.2,185.6,1 152,-1,1278.7,178.6,63,170,1 152,-1,288.2,122.6,55.1,172.6,1 152,-1,421.3,254.5,77.7,221.9,1 152,-1,1359.5,567.1,104.3,244.9,1 152,-1,216,125.6,54,167.2,1 152,-1,687,206.4,79.5,114.5,1 152,-1,539.2,65.2,50.3,163.6,1 152,-1,404.2,711.6,94.1,263.1,1 152,-1,1022.1,132.2,56.1,174.4,1 152,-1,100.8,543.4,87.7,258.7,1 152,-1,591.9,259.5,61,196.7,1 152,-1,457.2,34.2,50.3,164,1 152,-1,531.8,274.4,59.4,201.1,1 152,-1,188.3,613.1,66.3,219.6,1 152,-1,805.2,259.5,64.4,181.7,1 152,-1,756,248.6,71.8,190.4,1 152,-1,859.1,202.5,71.5,198,1 152,-1,488.4,200.7,60.1,168.7,1 152,-1,384.7,1.9,46.4,123.3,1 152,-1,1045.9,911.9,70.6,169.1,0.98 152,-1,792.9,143.7,64.9,190.8,0.923 536,-1,1221.5,30.3,62.3,119.3,1 536,-1,1486.3,1,58.8,141.8,1 536,-1,687.5,206,77.6,114.9,1 536,-1,780.3,144.3,60.3,175.2,1 536,-1,387.6,203.5,62.7,189,1 536,-1,288.2,125.3,54.9,171,1 536,-1,992.6,1.1,54.7,109.3,1 536,-1,172.2,311.3,67.3,192.6,1 536,-1,1690.1,300.1,73.6,199.3,1 536,-1,1716.7,457.4,82.9,209.2,1 536,-1,1660.8,6.1,53.3,164.3,1 536,-1,461.5,113.5,64.9,182.7,1 536,-1,1771.6,223.6,72.5,174.4,1 536,-1,880.3,1.8,52.8,113.8,1 536,-1,519,102.6,62.4,179.2,1 536,-1,803.3,602.8,78,253.4,1 536,-1,1601.1,1,55.9,166.6,1 536,-1,1586.1,590.6,68.7,243.8,1 536,-1,217.6,137.1,62.4,161.6,1 536,-1,263.1,837.6,80,243.4,1 536,-1,928.3,1,57,109.6,1 536,-1,405.1,43.7,49.8,158.3,1 536,-1,969.8,747.2,125.4,257.4,1 536,-1,449.4,1,68.9,166.7,0.999 536,-1,193.1,801.6,98.9,278.6,0.998 536,-1,1873.7,226.1,47.3,207.8,0.348 536,-1,365.6,126.6,46.4,160.7,0.305 392,-1,1222.3,30.8,60.6,118.5,1 392,-1,685.8,206.3,80.1,113.1,1 392,-1,1638.3,29.4,70.7,173.8,1 392,-1,1774.7,112.6,67,163.3,1 392,-1,359.2,105.5,54.2,180.2,1 392,-1,1129.6,472.5,77.1,202.5,1 392,-1,366.1,3.1,62.6,99.3,1 392,-1,446.8,282.7,83.1,211.1,1 392,-1,828.9,1,55.1,120.1,1 392,-1,321.3,556.3,95.4,250.3,1 392,-1,437.2,575,72.1,235.3,1 392,-1,108.9,349.1,52.6,190.8,1 392,-1,950.1,25.7,63.3,173.2,1 392,-1,794.6,152,60,171.8,1 392,-1,218.7,141.9,61.2,155.4,1 392,-1,459.9,73.5,68.5,192.3,1 392,-1,282.6,127.6,55.5,167,1 392,-1,206.9,287.8,54,183.7,1 392,-1,1593.9,626,89.2,252.3,1 392,-1,1011.3,41.4,56,162.8,1 392,-1,919.2,525.1,79.1,213.8,1 392,-1,1719.9,455.7,79,214.5,1 392,-1,849.6,508.6,87,232.4,1 392,-1,1770.9,432.6,74.8,208.5,0.998 392,-1,709.3,1,54.6,147.6,0.995 392,-1,978.3,905.4,89.7,175.6,0.993 392,-1,541.7,65.4,51.4,168.7,0.989 392,-1,434.1,82.2,44.9,172.1,0.903 392,-1,713.9,92.4,52,169.8,0.597 392,-1,758.4,108.1,41,135.5,0.329 392,-1,925,10.7,46.6,113.3,0.064 634,-1,1221,30.4,61.9,118.3,1 634,-1,687,205.8,79.7,112.7,1 634,-1,1481.4,7.2,59.8,142.7,1 634,-1,800.7,145.7,66.6,170.1,1 634,-1,1711.2,453.9,96.3,210.3,1 634,-1,342,303.4,67.2,206.6,1 634,-1,547,113,62.5,173.1,1 634,-1,1574.4,588.5,96.7,235.9,1 634,-1,358.8,109.8,51.3,175.2,1 634,-1,499.2,539,109.3,243.3,1 634,-1,198.5,228,66.6,206.7,1 634,-1,1626.2,194.9,70.9,189,1 634,-1,255.7,245.9,60.9,186.3,1 634,-1,416.3,106.5,53,159.7,1 634,-1,287,122.8,52.3,170.8,1 634,-1,751.9,84.3,44.8,149.4,1 634,-1,351.4,1,56.5,126.9,1 634,-1,420.7,1,57.3,132.9,1 634,-1,458.8,89.9,49.2,174.6,0.999 634,-1,498.6,73.9,45.8,149.6,0.999 634,-1,234.7,135.4,47.7,160.8,0.992 634,-1,1580.4,2,52.5,82.6,0.571 634,-1,1125.3,937.4,89.9,143.6,0.189 775,-1,1221.5,29.3,62.3,118.7,1 775,-1,687.5,204.8,79.4,114.8,1 775,-1,546.4,116,62,175.2,1 775,-1,783.4,133.8,60.5,173.5,1 775,-1,1723.2,453.1,76.1,213.3,1 775,-1,1575.5,589.1,100.3,235.5,1 775,-1,1490.7,17.8,59.9,149,1 775,-1,293.3,479,77.5,229.4,1 775,-1,542.7,573.2,90.2,251,1 775,-1,1446.2,78,54.1,170,1 775,-1,450.6,205.5,54.3,188.4,1 775,-1,1572.4,74.6,60,175.8,1 775,-1,389.8,213.9,72.5,175.4,1 775,-1,233.3,135,51.8,164,1 775,-1,277.4,173.4,56.2,195,1 775,-1,749.9,75.2,53.3,156.6,1 775,-1,329.1,189.2,56.8,176.9,1 775,-1,1054.7,657.3,79.8,250.2,1 775,-1,467.6,78.5,61.9,169.6,1 775,-1,1128.3,634.7,80.1,256.6,1 775,-1,255.5,1.4,51.3,118.6,1 775,-1,413,78.8,59,167,0.999 775,-1,356.4,109.4,53.1,176.9,0.997 35,-1,686.9,205.8,79.1,113.7,1 35,-1,1208.2,30.8,74.6,120.1,1 35,-1,388.6,370.5,89.3,237.7,1 35,-1,1362.6,566.9,105,245.1,1 35,-1,1486,69.9,56.5,149.5,1 35,-1,704.2,1.8,55.9,157.4,1 35,-1,1722.4,456.1,76.4,211.5,1 35,-1,185.8,370,68.6,197,1 35,-1,215.2,126.8,48.3,165.4,1 35,-1,483.8,162.7,89.4,197.5,1 35,-1,795.1,150.3,61.3,173.4,1 35,-1,102.8,547.9,84.8,250.8,1 35,-1,952.2,197.6,77.6,179.7,1 35,-1,356.1,107.8,54.8,176.4,1 35,-1,449,56.8,52.5,171.1,1 35,-1,283.7,123.1,53.8,173.5,1 35,-1,1010.8,159.5,77.2,177.9,1 35,-1,1839.4,251.1,68.3,191.6,1 35,-1,867,140.8,56.3,184.5,1 35,-1,2.1,811.2,62,246.4,1 35,-1,1357.1,188.3,50.7,165.3,1 35,-1,1586.7,233.6,53.5,171.8,0.996 35,-1,912.8,158.9,43.3,168.7,0.993 35,-1,406.7,75.9,43.4,162.2,0.97 361,-1,1221.9,31.4,60.8,118.2,1 361,-1,687,206.3,79.1,113.5,1 361,-1,1433.6,2.9,51.5,104.7,1 361,-1,1619.7,1,71.1,161.1,1 361,-1,1026.8,58.1,55,169,1 361,-1,208.1,142.1,58.4,159.5,1 361,-1,1844.6,62.7,54.6,164.8,1 361,-1,428.4,327.7,84.2,213.6,1 361,-1,1755.1,92.2,61.6,159.2,1 361,-1,109.5,351.1,52.5,188.3,1 361,-1,795.9,149.9,60.7,172.6,1 361,-1,287.1,130.9,54.3,170.8,1 361,-1,1035.1,432.6,67.3,196.8,1 361,-1,1719.2,456,79.2,212.9,1 361,-1,442.7,85.4,73,203,1 361,-1,501.1,572.8,109,248.2,1 361,-1,1817.4,470.6,68.5,206.2,1 361,-1,511.6,92.2,47,164.8,1 361,-1,364,110.6,54.5,175.2,1 361,-1,958.6,53,62.6,173.4,1 361,-1,837,1.2,51.9,104.5,1 361,-1,220.1,319.9,55.7,186.5,1 361,-1,378.7,511.1,84.4,239.8,1 361,-1,1570.5,625.3,82.8,249.9,1 361,-1,908.4,482.6,82.7,210.9,1 361,-1,841.3,473,88,224.8,1 361,-1,925.1,4,61.6,156,0.999 361,-1,765.2,94.5,41,145.7,0.999 361,-1,383,2,39.4,84.5,0.972 361,-1,475.7,525.7,72.5,242.2,0.972 361,-1,955.7,923.2,81.2,157.8,0.888 361,-1,492.7,929.4,94.9,151.6,0.753 1049,-1,1222.2,30.2,61.1,118.7,1 1049,-1,687.1,206.5,79.5,114.7,1 1049,-1,794.2,141.6,71.8,172.5,1 1049,-1,476.3,325.2,75.1,197.2,1 1049,-1,287.9,126,54.1,172.6,1 1049,-1,1720.5,456.3,79,214.1,1 1049,-1,356.7,337.3,75.1,204.8,1 1049,-1,276.7,544.2,90.8,211.6,1 1049,-1,934.4,229.7,65.9,195.1,1 1049,-1,229.1,139.5,54.5,161.3,1 1049,-1,851.5,236.8,67.2,192.7,1 1049,-1,1648.6,673.4,94.6,239,1 1049,-1,374,520.9,68.3,238.5,1 1049,-1,1315.4,203.1,54.8,162.4,1 1049,-1,751.4,75.6,53.8,161.8,1 1049,-1,373.3,98.9,59.4,179.6,1 1049,-1,1725.1,221.9,56.8,173.4,1 1049,-1,1115.8,547.7,85,241.9,1 1049,-1,288.5,335.3,72.7,207.7,1 1049,-1,308,2.5,39.5,129.2,1 1049,-1,1474.8,221.6,70.6,164.8,1 1049,-1,512.7,173.2,75.7,190,1 1049,-1,472.8,169.3,55.4,173.4,1 1049,-1,1572.8,590.2,101.6,242.5,1 1049,-1,583.9,536.3,63.6,253.8,1 1049,-1,432.8,66.8,63.4,176.7,0.999 1049,-1,1865.9,262.9,55.1,202.5,0.989 1049,-1,875.8,928.1,69.9,152.9,0.06 931,-1,1221.2,30,62,119.4,1 931,-1,686.5,206.2,80.2,113,1 931,-1,793.3,139.1,76.1,173.8,1 931,-1,450.8,212.1,69.9,191.6,1 931,-1,1127.9,49.6,58.7,169.3,1 931,-1,1486.1,1,61.9,124.3,1 931,-1,1576.6,592.1,101.4,236.2,1 931,-1,1476.1,120.8,61.3,158,1 931,-1,1720.5,455.3,78.2,211.5,1 931,-1,556.6,116.6,57.8,172.2,1 931,-1,1425.7,1.8,47.4,125.8,1 931,-1,750.1,70.6,56.9,162.3,1 931,-1,1271.5,810.2,96,270.8,1 931,-1,862.8,403.1,62.5,210.3,1 931,-1,1620.2,77.6,56.3,167.1,1 931,-1,945.2,384.2,78.4,224,1 931,-1,315.3,730.5,86.2,261.4,1 931,-1,239.1,133.3,55.5,167.5,1 931,-1,300.8,161.3,68.9,198.7,1 931,-1,473,23.7,54.8,153.3,1 931,-1,329.7,375.4,79.5,202.2,1 931,-1,400.7,371.3,65.2,208.3,1 931,-1,1734.3,114.7,54.2,174.8,1 931,-1,1747.5,675.3,93.6,247.1,1 931,-1,364.3,215,65.6,185.8,1 931,-1,253.4,1,54.9,120.8,1 931,-1,427.2,66.2,62.2,182.2,1 931,-1,315.2,2.4,44.9,127.1,0.897 616,-1,1221,30.3,62.8,120,1 616,-1,687.3,205.9,78.4,113.4,1 616,-1,1480.1,4.3,60.3,144.1,1 616,-1,1631.6,208.7,75.4,194.2,1 616,-1,358.2,288.9,65.8,199,1 616,-1,800.8,145.4,67.7,170.2,1 616,-1,1710.8,456.5,92,209.8,1 616,-1,358.2,115.7,52.3,173.2,1 616,-1,1575.6,589,95.3,235.9,1 616,-1,575.8,548.9,84.6,236.2,1 616,-1,174.1,240.1,67.5,204.3,1 616,-1,245,257.1,60.3,183.8,1 616,-1,556.8,113.1,53.4,174.9,1 616,-1,288,128.2,51.3,169.6,1 616,-1,1605.7,1.3,52.6,98.5,1 616,-1,224.9,136.3,53.4,161.4,1 616,-1,753.9,82,43.4,152.9,1 616,-1,495.3,92,46.6,156,1 616,-1,443.5,79.7,48.4,167.5,1 616,-1,1103.9,899.1,111,181.9,0.999 616,-1,400.8,93,52.5,166.2,0.998 616,-1,354.1,2.1,51.6,115.9,0.997 316,-1,1221.4,31.2,61.5,119.2,1 316,-1,686.7,207.2,79.8,113.5,1 316,-1,317.8,582.4,108,246.7,1 316,-1,1456.5,4.9,55.9,146.1,1 316,-1,1702.4,49.2,58.9,159.5,1 316,-1,108.9,349.2,51.5,191.8,1 316,-1,1720.3,455.3,78.6,215,1 316,-1,931.4,49.3,63.4,173.7,1 316,-1,418.8,42,56.6,170,1 316,-1,1501.7,599.4,90.4,247.6,1 316,-1,798,147.1,57.1,177.7,1 316,-1,357.4,108.7,57.8,181,1 316,-1,452.8,118.9,73.9,201.1,1 316,-1,889.6,436.2,71.3,199.2,1 316,-1,998.5,78,61.1,178.8,1 316,-1,1054.1,77.3,55.7,168,1 316,-1,705.7,3.7,52.7,150.9,1 316,-1,434.8,441.8,76.3,233.3,1 316,-1,281.3,128,54.3,177.7,1 316,-1,237.1,375,58.9,191.3,1 316,-1,526.3,471.2,64.4,218,1 316,-1,214.7,130.1,55.5,170.3,1 316,-1,828.3,427.4,76.8,208.8,1 316,-1,348.1,886.3,96.1,194.7,0.999 316,-1,730.9,94.7,44.5,181.2,0.999 316,-1,511.6,101.4,42.6,170.5,0.997 316,-1,926.7,909.5,79.8,171.5,0.995 316,-1,1566.2,4.1,60.5,109,0.089 296,-1,1221.1,32.2,61.9,118,1 296,-1,1676.8,43.1,57.7,154.2,1 296,-1,686.2,206.7,80.1,113.4,1 296,-1,937.1,64.8,65,177,1 296,-1,1463.7,21,53.4,148.4,1 296,-1,241.3,577.9,100.8,254.8,1 296,-1,236.5,400,60.8,191.4,1 296,-1,1720.1,458.6,79.3,210.2,1 296,-1,795.5,146.4,61.1,177.8,1 296,-1,704,1,55.2,156.6,1 296,-1,353.9,109.5,54.4,177.7,1 296,-1,406.8,24.5,55.6,168.5,1 296,-1,452.4,132.3,76.1,203.2,1 296,-1,109.1,351,51.2,188.6,1 296,-1,1010.7,90.4,59.2,181.4,1 296,-1,283.7,130,53.8,170.9,1 296,-1,383.5,433.4,83.8,226.3,1 296,-1,1081.8,87.8,52.6,165.3,1 296,-1,219,130.5,58.4,166.5,1 296,-1,537.5,436,67.8,219.2,1 296,-1,816.2,386.9,94,225.4,1 296,-1,1464.1,589.8,92.9,245.2,1 296,-1,302.4,838.3,95.1,242.7,1 296,-1,886.1,406.8,76.5,200.2,1 296,-1,513.1,105.7,48.7,175.1,1 296,-1,462.1,420.8,64.1,228.6,1 296,-1,744.2,102.3,45.1,174.1,0.999 296,-1,939.2,916.1,70.9,164.9,0.985 296,-1,830.5,110.7,49.7,150.8,0.908 955,-1,686.4,206.2,80.1,112.9,1 955,-1,793.2,140.7,73.9,172,1 955,-1,1221.4,30.2,61.5,119.1,1 955,-1,1471,137.8,65.9,163.8,1 955,-1,1477.5,1,55.7,109.5,1 955,-1,1641.3,110,54.3,167.4,1 955,-1,927.2,344.6,75.6,222.4,1 955,-1,1575.4,588.6,102.5,234.6,1 955,-1,750.7,72.1,56.3,161.7,1 955,-1,1720.8,454.3,78.1,212.9,1 955,-1,852.6,362,67.7,210.7,1 955,-1,1149.1,80.7,58.1,167.8,1 955,-1,320.4,771.6,96.8,270.5,1 955,-1,1411.7,2.4,46.3,110.6,1 955,-1,551.7,115.4,55.8,172.7,1 955,-1,1760.9,142.5,65.3,177.4,1 955,-1,391.8,394.6,67.1,218.3,1 955,-1,423.7,235.7,68.5,193.2,1 955,-1,320.1,410.4,79.7,195.7,1 955,-1,231.7,136.3,56.8,166.4,1 955,-1,436.9,75.2,55.7,176.4,1 955,-1,1235.4,746.8,94.4,272.5,1 955,-1,340.1,237.6,64.1,185.9,1 955,-1,481.7,223.6,61.6,180.8,1 955,-1,1742.3,677.2,94,250.3,1 955,-1,480.5,44.6,54.8,159.2,1 955,-1,243.4,3,54.2,124,1 955,-1,288.5,128,53.1,168.7,0.999 955,-1,322.1,170.7,50.5,195,0.902 955,-1,313.3,1,45.1,134.5,0.478 458,-1,1221.7,31.1,62.3,118.6,1 458,-1,445.7,198.1,71.6,197.6,1 458,-1,936.2,1,58.8,152,1 458,-1,686.9,205.8,79.2,114.6,1 458,-1,1009.2,5.2,53.3,154.8,1 458,-1,358.6,104.6,55,183,1 458,-1,1738.8,167.6,58.2,159.9,1 458,-1,1706.9,458.4,93.4,207.9,1 458,-1,870.3,1,55.9,137.3,1 458,-1,1829.4,383.9,78.1,207.7,1 458,-1,114.4,347.1,55.5,193.6,1 458,-1,266.2,219.6,50.6,177.6,1 458,-1,522.3,74.9,54.8,170.3,1 458,-1,1545.3,610.2,76.4,245.7,1 458,-1,802.4,151.7,47.1,172.1,1 458,-1,1435.4,546.2,87.7,221.8,1 458,-1,244.3,667.9,99.7,262.9,1 458,-1,285.7,127.8,54.9,167.2,1 458,-1,1658.5,362.2,63,191.2,1 458,-1,341.6,697.6,73.3,248.5,1 458,-1,218.9,138,59.2,159.5,1 458,-1,799.9,582.4,89.3,247.5,1 458,-1,895.1,607.5,108.4,238.3,1 458,-1,1695.8,54.8,64,186.8,1 458,-1,1506.7,1,56.1,109.7,1 458,-1,754.2,95.5,52.5,145.4,1 458,-1,976.9,621.1,88.9,227.5,0.999 458,-1,417.3,1.6,45,150,0.999 458,-1,1026.3,921.5,86.3,159.5,0.997 458,-1,441.9,43.8,74.6,186.8,0.997 458,-1,713.4,95,51.1,162.1,0.968 458,-1,362.2,11.7,52.9,148.4,0.062 1003,-1,1221.2,29.9,61.9,118.9,1 1003,-1,686,206.1,80.4,113.2,1 1003,-1,793.7,139.7,75.1,173.4,1 1003,-1,1204.8,141.2,65.3,172.7,1 1003,-1,503.7,272,65.5,191,1 1003,-1,395.3,288.2,71.8,190.4,1 1003,-1,1474.6,186.1,62.3,155.1,1 1003,-1,231.6,136.1,55,167.9,1 1003,-1,290.9,126.3,51.1,168,1 1003,-1,1575.2,590.8,103.4,236.2,1 1003,-1,1677.8,164.8,60.4,173.4,1 1003,-1,1810.8,203.1,67.2,184.2,1 1003,-1,1722.1,452.7,77.9,217.7,1 1003,-1,926.9,281.5,67.9,210.2,1 1003,-1,310.4,279.3,65.5,200.4,1 1003,-1,540.5,120.2,60.4,171.4,1 1003,-1,842.2,294.5,65.6,203.1,1 1003,-1,300.5,473,87,207.8,1 1003,-1,750.7,73.4,55.1,161.5,1 1003,-1,1171.5,631.7,88.1,261.1,1 1003,-1,1740.4,674.7,92.3,250.1,1 1003,-1,381,459.5,68.7,221.6,1 1003,-1,342.9,877.7,88.7,203.3,1 1003,-1,596.5,550.5,104.7,246.5,1 1003,-1,314.1,1.7,42.8,129.2,1 1003,-1,437.9,65.1,61.6,174,1 1003,-1,509.1,86.6,52.1,151.6,0.999 1003,-1,402.5,171,70.5,182.7,0.998 1003,-1,381.9,1,54.1,150.3,0.171 578,-1,1221,30.7,62.4,119.1,1 578,-1,686.5,205.6,79.7,113.7,1 578,-1,1480.9,4.9,60.3,144.2,1 578,-1,800.3,146.2,62.1,170.2,1 578,-1,1649.1,1,55.3,134.9,1 578,-1,377,243.1,67.7,200.2,1 578,-1,1715.2,456.3,85.4,209.7,1 578,-1,213,274.4,62.2,195.3,1 578,-1,1576,588.8,92.6,234.4,1 578,-1,554.8,112.8,51.7,172.5,1 578,-1,289.2,124.1,51.7,170,1 578,-1,1652.8,246.8,75.7,204,1 578,-1,218.1,135,51.3,160.5,1 578,-1,455.9,118.1,49.8,159.8,1 578,-1,874.7,2,51.4,102.3,1 578,-1,754.3,79,43.9,156.2,1 578,-1,1838.4,257.7,71.2,180.1,1 578,-1,155.5,252.5,61.6,212.1,1 578,-1,358.1,109.4,53.1,175.1,1 578,-1,710.8,576.8,84.1,252,1 578,-1,1042.6,821.6,126.9,259.4,1 578,-1,422.7,58.3,47.3,168.8,0.999 578,-1,1006.7,938.3,74.2,142.7,0.696 578,-1,1128,834.4,84.6,246.6,0.225 578,-1,293.3,865.8,104.2,215.2,0.062 594,-1,1221.9,30.5,61.1,119.1,1 594,-1,687.5,206.1,78.5,113.6,1 594,-1,1481.2,4.4,60.4,144.5,1 594,-1,801,142.4,63.1,176.3,1 594,-1,228.5,269.9,64.8,186.6,1 594,-1,1635.5,1,54.5,117.5,1 594,-1,366.8,259.9,68,199.2,1 594,-1,562.3,112.1,49.3,174.7,1 594,-1,360,110.1,53.3,170.7,1 594,-1,1719.2,456.2,80.7,211.2,1 594,-1,1654.6,233.3,75.7,200.2,1 594,-1,287.7,126.5,51.9,170.1,1 594,-1,164.7,249.8,58.8,203.6,1 594,-1,1575.3,590.1,93.1,232.3,1 594,-1,478.3,105.6,50.1,157.8,1 594,-1,753.8,83.1,43.4,152.4,1 594,-1,212.8,136.8,57.9,161.6,1 594,-1,428.8,68.7,50.6,170.3,1 594,-1,1072,852.6,121.5,228.4,1 594,-1,1867.1,272.5,53.9,172.4,0.992 594,-1,1155.6,861.7,90.9,219.3,0.695 594,-1,309.1,909.2,98.9,171.8,0.537 594,-1,871.7,4,54.4,87.4,0.325 594,-1,995.1,928.1,70.9,152.9,0.065 607,-1,1221.5,31.1,62.1,119.3,1 607,-1,686.9,205.9,79.5,114,1 607,-1,1481.1,3.1,60.4,145.5,1 607,-1,801,146.8,65.6,171.1,1 607,-1,364.2,276,66.1,199.7,1 607,-1,1708.7,457.1,93.7,209.8,1 607,-1,239.2,262.1,62.3,186,1 607,-1,1615,3.4,54.4,105.5,1 607,-1,171.2,244.8,59.8,201.2,1 607,-1,1574.1,589.8,97.2,233.4,1 607,-1,1644.3,225.9,69.1,195.5,1 607,-1,561.2,111.8,50.8,177.8,1 607,-1,491.7,91.5,45,157.8,1 607,-1,286.8,125.6,51.8,174.3,1 607,-1,219.9,134.7,55.7,162.5,1 607,-1,435.9,74.4,47.9,166.9,1 607,-1,752.9,83.8,43.1,154,1 607,-1,359.9,110.3,49.9,179.9,1 607,-1,1091.4,883.3,123,197.7,1 607,-1,607.3,549.5,89.8,251.3,0.999 607,-1,394.1,89,53.3,164.5,0.986 975,-1,686.2,206.2,80.3,113,1 975,-1,1221.4,30.9,61.4,119.5,1 975,-1,794.4,140.5,72.7,171.5,1 975,-1,1778.2,164.8,68.9,183.6,1 975,-1,1655.3,126.1,58.8,172.8,1 975,-1,1166.6,105.2,59.9,165.5,1 975,-1,305.7,433.5,86.2,198.1,1 975,-1,1470.8,152.8,67.5,167.3,1 975,-1,411.1,255.1,72,197.6,1 975,-1,492.9,243.8,68,189.4,1 975,-1,846,335.4,66.3,207.4,1 975,-1,1576.4,589.2,101.9,237.3,1 975,-1,928.3,321,67.8,213.3,1 975,-1,1720.6,455.2,79.1,211.9,1 975,-1,333,809,94.7,272,1 975,-1,230,138.6,56,161.4,1 975,-1,751.6,71.1,55.6,164.5,1 975,-1,328,249.9,61.1,204.6,1 975,-1,550.6,119,52.1,169.2,1 975,-1,391.1,424.6,68.6,220.6,1 975,-1,1202.5,702,93.3,272.5,1 975,-1,1454.3,1,59.9,101.6,1 975,-1,1739.9,672.7,95.5,251.5,1 975,-1,314.9,1,45.8,129.9,1 975,-1,448.7,64.5,54.6,181.6,1 975,-1,1395.1,1.9,45.5,96.2,1 975,-1,288.9,128.9,54.8,171.4,1 975,-1,343.5,165.2,65.9,184.8,0.999 975,-1,381.2,1,54.7,126.7,0.999 975,-1,485.9,61.8,55.4,155.9,0.999 857,-1,1221.3,29.3,62,118.8,1 857,-1,687,206.1,79.6,113.3,1 857,-1,797.6,139.7,75.6,175.1,1 857,-1,1674.1,32,54,162.5,1 857,-1,487.4,3.9,47.2,113.5,1 857,-1,269.7,609.8,84.1,247.2,1 857,-1,1472.2,66.6,60.2,156.9,1 857,-1,1574.6,589.8,103.8,235.1,1 857,-1,1721.6,453.8,78.3,212.2,1 857,-1,343.4,296.4,77.2,184,1 857,-1,1412.7,24.3,52.5,155.6,1 857,-1,432.7,286.3,56.2,203.8,1 857,-1,560,117.2,58.3,173.1,1 857,-1,1076.4,1,58.7,120.7,1 857,-1,752.9,70,55,165.1,1 857,-1,297.4,161.7,73.7,195.6,1 857,-1,254.3,1.2,54.4,121.6,1 857,-1,239.9,131.6,54.8,165.6,1 857,-1,997.4,496.8,85.4,237.7,1 857,-1,474.8,146.6,60.9,187.7,1 857,-1,921.5,512.4,71.2,232.2,1 857,-1,416.5,144.5,61.2,176.5,1 857,-1,1568.4,11.6,49.8,142.8,0.96 510,-1,1221.9,30.2,61.4,119.2,1 510,-1,1493.4,1,60.1,132.7,1 510,-1,686.4,206.9,80.9,114.4,1 510,-1,997.4,1,55.3,125.4,1 510,-1,398.7,181.9,63.1,185.3,1 510,-1,152.1,331.5,68.5,187.9,1 510,-1,1689.8,622.5,87,210.8,1 510,-1,1676.5,24.7,55.9,171.7,1 510,-1,333.3,172.1,50.8,169.6,1 510,-1,1720.2,460.8,80.4,205.6,1 510,-1,932.5,1,54.8,120.3,1 510,-1,459,137.2,75.2,193.6,1 510,-1,882.3,1.7,50.8,123.1,1 510,-1,790.3,142.9,58.6,178.9,1 510,-1,1559.4,599.7,72.3,237.5,1 510,-1,1616.2,16,54.9,174.9,1 510,-1,937,692,125.2,256,1 510,-1,1712.8,330.8,97.6,192.2,1 510,-1,826.9,609,73.2,255.5,1 510,-1,1613.5,302.5,63.1,196.3,1 510,-1,216.6,135.2,63,162,1 510,-1,1842.7,190.1,73.7,200.9,1 510,-1,203.1,761.7,93.9,277.2,1 510,-1,288.1,120.5,53.7,174.8,1 510,-1,287.1,793.5,76.4,261.2,1 510,-1,514,91.8,57.3,175.4,1 510,-1,725.2,95.7,69.7,162.1,1 510,-1,449.6,5.6,73.7,182.8,1 510,-1,1747.5,198.7,60.9,177.1,0.999 510,-1,397.9,21.6,48.5,160.7,0.997 510,-1,362.4,107.2,46.9,182.5,0.559 510,-1,1035.9,719,69.8,237.1,0.476 510,-1,1037.8,936,81.4,145,0.101 61,-1,1221.3,30.4,61.3,116.6,1 61,-1,686.3,206,80.1,114.1,1 61,-1,1487.2,70.5,54.8,151.2,1 61,-1,1362,566.8,105.4,245.5,1 61,-1,403.2,343.7,83.5,235.1,1 61,-1,489,184.7,82,197.7,1 61,-1,704.8,1,55.5,158.4,1 61,-1,1721.8,456.7,77.3,211.2,1 61,-1,1001.3,183.9,70.1,174.2,1 61,-1,355.6,109.7,53.8,174.9,1 61,-1,103.5,546.3,84,253.4,1 61,-1,149.3,362.8,54.8,188.9,1 61,-1,832.4,196.1,87.5,179.9,1 61,-1,212.4,128.9,49.1,164.6,1 61,-1,1363.2,209.3,42.4,169.4,1 61,-1,285.5,126.8,55.2,168.8,1 61,-1,10.4,755.8,69.2,237.7,1 61,-1,1299.2,179.8,60.1,170.3,1 61,-1,1466.3,208.1,63.8,196,1 61,-1,453.7,113.7,50.8,147.7,1 61,-1,540.9,62.4,44.5,165.5,1 61,-1,385.1,38.3,52.4,168.5,1 61,-1,794.9,146.7,62.6,179.9,1 61,-1,484.8,41.2,57.3,165,0.999 61,-1,887.8,182.4,57.2,175.2,0.994 61,-1,435.6,30.2,52.8,161.3,0.989 61,-1,1874,289.5,47,195.4,0.85 61,-1,261.5,102.5,48.7,172.2,0.686 61,-1,238.2,108.9,42.8,167,0.114 622,-1,686.8,205.8,79.9,113.2,1 622,-1,1221.2,28.8,62.4,120.2,1 622,-1,1480.9,5.4,61.1,144.5,1 622,-1,1623.3,208.9,80.9,194.3,1 622,-1,351.1,294.2,67.9,201.7,1 622,-1,800,146.2,67.2,170.2,1 622,-1,1712.3,457,90.3,208.8,1 622,-1,1574.1,588.7,96.4,236.1,1 622,-1,358.3,114.4,53,173.6,1 622,-1,554.7,112.4,54.2,174.6,1 622,-1,288.3,127.8,51.5,167.7,1 622,-1,496.4,83,46.8,160.9,1 622,-1,352.2,1,53.4,121.5,1 622,-1,176.9,237.8,75.8,202.5,1 622,-1,560.6,541.6,76.3,242.5,1 622,-1,1595.7,1.3,53.5,95.1,1 622,-1,246.6,249.1,61.6,189.1,1 622,-1,753.2,82.6,43.4,150.9,1 622,-1,230.8,134.2,51.1,164.8,1 622,-1,406.8,100.4,52.9,159.7,0.998 622,-1,446.8,83.1,46.5,167.2,0.998 622,-1,1114.3,916.2,99.2,164.8,0.991 662,-1,1220.7,29.5,61.8,119.6,1 662,-1,686.8,205.9,80,114,1 662,-1,1481.1,4.3,60.9,144,1 662,-1,1711.2,456.2,96,208.2,1 662,-1,801.5,144.6,64.4,172.7,1 662,-1,323.1,333.4,70.1,208.4,1 662,-1,360,113.7,49.8,169.3,1 662,-1,554.3,111.1,57,176.6,1 662,-1,1574.8,587.6,99,237.5,1 662,-1,1137.9,2.2,73.1,114,1 662,-1,438.3,528.2,74.7,245.6,1 662,-1,1614.9,169.1,77.7,184.4,1 662,-1,475.9,110.7,48,179.7,1 662,-1,750.9,77.5,47.1,158.4,1 662,-1,223.6,212,58.9,202.8,1 662,-1,408,1,57.6,155.3,1 662,-1,424.3,124.8,61.2,159.2,1 662,-1,276.7,229.9,55.9,180.3,1 662,-1,1420.3,902.6,101.7,178.4,1 662,-1,288.4,123.1,52.4,170.8,0.999 662,-1,353.1,2.3,53.5,146.4,0.999 662,-1,1343.9,919.3,83.7,161.7,0.993 662,-1,1502.6,163.6,47.4,175.3,0.741 1,-1,687.5,206.1,78.8,114.1,1 1,-1,705.1,1,55.6,156.8,1 1,-1,1361.4,566.9,107,245.5,1 1,-1,1487,70,55.6,148.5,1 1,-1,512.3,141.1,96.1,185.1,1 1,-1,1733.4,456.6,76.6,215.1,1 1,-1,1033.2,130.8,80.4,186.7,1 1,-1,1790.4,204.6,68.8,184,1 1,-1,1636.2,263.5,65.7,180.6,1 1,-1,796.5,147.5,61.1,175.5,1 1,-1,286.7,124.7,55.1,170.5,1 1,-1,102,545.7,86.7,255,1 1,-1,1198,37.6,71.5,113.3,1 1,-1,1103.9,209,63.6,185.9,1 1,-1,372.2,408.6,84.4,244.8,1 1,-1,1040.4,1,47.9,86.3,1 1,-1,221.6,129.2,49,163.8,1 1,-1,355.5,104.9,54.1,177.2,1 1,-1,414.8,93,54.8,170.6,1 1,-1,870.9,121.3,61.2,178,1 1,-1,463.1,78.6,55.3,177.1,1 1,-1,226.8,395.6,63.7,201.9,1 1,-1,1448.7,252.1,55.4,170.6,1 1,-1,265.3,363.5,64.2,229.4,0.998 1,-1,908.6,125.1,48.9,167.6,0.918 1,-1,997,2.9,49.2,79.2,0.575 304,-1,1222,31.9,61,118,1 304,-1,1458,15.3,52.9,147.2,1 304,-1,268.2,577.9,101.5,257.9,1 304,-1,686.9,206.5,79.1,113.8,1 304,-1,1687.4,44.1,57.5,154,1 304,-1,108.7,350,52.2,190.9,1 304,-1,413.3,32.1,55.5,164.3,1 304,-1,935.2,58.2,67.1,177.3,1 304,-1,1718.8,457.7,80,211.8,1 304,-1,354.3,109.3,56.1,178.4,1 304,-1,236.4,390,60.5,197.4,1 304,-1,795.9,148.8,60.5,176.8,1 304,-1,454.4,127.1,71.8,204.1,1 304,-1,705.5,1,53.1,156.8,1 304,-1,1006.6,82.2,58.9,181.3,1 304,-1,1478,595.5,91.4,246.2,1 304,-1,533.1,450.7,68.1,207.6,1 304,-1,281.4,130.9,54.6,171.9,1 304,-1,217.5,129,54.6,167.1,1 304,-1,386.3,415.1,82,227.3,1 304,-1,1072,84.4,51.1,163,1 304,-1,886.6,422.7,73.1,196.1,1 304,-1,821.1,409.2,87.2,218.9,1 304,-1,310.8,851.6,101.8,229.4,1 304,-1,738.5,99,45.4,176,1 304,-1,455.6,432.8,65,233.6,0.999 304,-1,510,102.2,47.6,172.2,0.999 304,-1,934.2,912.1,70.6,168.9,0.994 308,-1,1221.1,31.3,61.6,118.2,1 308,-1,686.5,206.4,79.4,114,1 308,-1,1457.2,10.8,54.4,148,1 308,-1,415.2,35.1,57.5,162.6,1 308,-1,1692.5,46.4,57.5,158.5,1 308,-1,1719.8,457,79.1,212.8,1 308,-1,934.2,54.2,65.3,173.2,1 308,-1,356.3,110.4,56.1,177.4,1 308,-1,235.9,386.2,59.8,191.4,1 308,-1,108.5,352.7,52,187,1 308,-1,295.7,579.3,86.6,247.3,1 308,-1,795.5,147.2,59.4,180.2,1 308,-1,453.7,125.3,73.5,204.3,1 308,-1,1485,597.5,89.4,244.3,1 308,-1,278.4,129.3,55.5,175.5,1 308,-1,705.3,1,53.2,158.2,1 308,-1,531.5,453.2,67.5,213,1 308,-1,217.1,128.2,54.9,166.8,1 308,-1,1003.1,79.1,61.9,185.2,1 308,-1,325.6,869.5,88,211.5,1 308,-1,1061.1,80.8,55.1,167.6,1 308,-1,887.1,427,72.5,192.5,1 308,-1,829.5,415.4,83.2,214.3,1 308,-1,734.9,99.4,46.3,168.4,1 308,-1,448.6,436.9,67.2,230.9,0.999 308,-1,390,403,86,232.7,0.999 308,-1,511.3,101.5,45,173.9,0.999 308,-1,369.7,790.2,96,267.4,0.998 308,-1,930.2,909.9,76,171.1,0.994 191,-1,1221.6,30.5,61.5,119.5,1 191,-1,109.1,346.8,49.6,192.2,1 191,-1,1489,68.4,55.8,150,1 191,-1,212.1,127.1,55.1,167.6,1 191,-1,686.8,207.6,78.5,111.1,1 191,-1,1358.3,567.4,105,246.3,1 191,-1,704.8,1,55.6,158.9,1 191,-1,35,623.1,120.1,251.5,1 191,-1,357.1,105.5,54,178.4,1 191,-1,416.3,631.9,88.2,250.9,1 191,-1,1720,457.7,78.6,210.6,1 191,-1,289.2,127.7,55.5,170.1,1 191,-1,398.3,39.4,65.3,166.6,1 191,-1,873.7,169.6,80.5,190.7,1 191,-1,1170.1,148,69.2,183.9,1 191,-1,524.2,307.3,65.3,209,1 191,-1,232.5,552.2,63,211.4,1 191,-1,1069.1,142.1,53.3,161.5,1 191,-1,421.2,219.8,75.3,217.8,1 191,-1,800.8,297.6,69.5,185.3,1 191,-1,534,139.4,59.7,158.5,1 191,-1,795.5,150.2,61.8,174,1 191,-1,1236.3,145.6,47.1,168.8,1 191,-1,747.9,278.8,70.6,202.9,1 191,-1,457.4,2.3,53.6,91.5,0.991 191,-1,978.9,916.6,74.3,164.4,0.978 352,-1,1221.9,30.7,61.6,119.5,1 352,-1,687.2,207,78.4,112,1 352,-1,1610.5,1,66,143.4,1 352,-1,1744,81.6,58.2,153.7,1 352,-1,1442.2,1,52.4,114.1,1 352,-1,481.9,579.3,96.2,240.8,1 352,-1,287.7,130.7,54.5,173.4,1 352,-1,207.7,138.4,57.9,164.3,1 352,-1,434.5,338.9,71.9,212,1 352,-1,1033.4,61.6,54.6,167.3,1 352,-1,446,88.2,70.1,205.4,1 352,-1,1008.7,415.3,65.1,195.4,1 352,-1,108.8,349.5,52.8,189.7,1 352,-1,966.4,54.6,62.2,176.7,1 352,-1,1720.3,455.9,78.3,214.8,1 352,-1,1825.3,478.9,69.1,210.9,1 352,-1,364.7,106.5,55.5,180.5,1 352,-1,795.9,149.8,61.7,172.8,1 352,-1,1554.9,617.9,93,247.9,1 352,-1,226,333.2,56.8,189.1,1 352,-1,389.6,494.8,86.3,236.7,1 352,-1,843.5,1,49.2,99.3,1 352,-1,518.9,94.3,37.8,167.7,1 352,-1,901.1,471.9,76.1,209,1 352,-1,844.6,456.1,82.2,227.4,1 352,-1,924.3,16.3,62.1,159.8,1 352,-1,765.1,94,43.5,155.7,0.999 352,-1,1863,60,58,166.8,0.998 352,-1,708.7,92.3,59.2,173.9,0.994 352,-1,953.4,927.6,78.8,153.4,0.859 244,-1,1220.7,30.6,63.7,119.2,1 244,-1,686.4,207.2,79.8,112.2,1 244,-1,796.9,151.2,59.1,174.4,1 244,-1,1595.9,3.7,57.1,146.1,1 244,-1,108.1,350.2,51.7,191.3,1 244,-1,1482.1,58.6,54,153,1 244,-1,1365,567.4,109.4,245.3,1 244,-1,929.7,118.1,70.3,184.8,1 244,-1,211.7,125.4,56.4,171.6,1 244,-1,391.9,520.9,85,235.9,1 244,-1,1159.8,116.2,53.3,164,1 244,-1,1720.6,457.7,78.3,210.2,1 244,-1,287.8,127.5,56.2,172.4,1 244,-1,705.3,1,54,159.7,1 244,-1,446.6,175.2,76.4,210.2,1 244,-1,355.1,106.3,54.3,178.2,1 244,-1,222.1,473.6,62.2,206.5,1 244,-1,1082.3,119.4,58.2,181.3,1 244,-1,493.6,358,72.8,224.6,1 244,-1,197.8,721.8,87.3,252.6,1 244,-1,847.6,344.1,80.3,193.5,1 244,-1,516.9,117.9,52.8,182.6,1 244,-1,114.4,559.9,86.8,251.4,1 244,-1,786.3,334.3,83.7,205,1 244,-1,588.9,368.3,63.1,198.7,0.999 244,-1,930.6,897.8,72.2,183.2,0.994 244,-1,772.4,106.7,47.8,165.7,0.593 244,-1,159.1,661.3,63.9,193.1,0.213 585,-1,1221.5,30.6,61.4,119.5,1 585,-1,686.7,206,79.9,113.9,1 585,-1,1480.9,4.3,60.7,144.7,1 585,-1,801.5,145.4,63.3,173.4,1 585,-1,375.6,256.4,65.7,197.5,1 585,-1,1644.6,1,56.2,125.5,1 585,-1,1649.1,245.8,80.9,199.7,1 585,-1,559.7,112.6,51.2,174.7,1 585,-1,874.1,3.1,49.9,99.3,1 585,-1,220.6,277.1,63.2,188.4,1 585,-1,1575.3,589.3,93.1,233.7,1 585,-1,357.9,108.9,54.1,177.3,1 585,-1,287.6,124.9,52.5,170.3,1 585,-1,1719.6,453.5,81.3,214.5,1 585,-1,215.4,134.8,51.8,160.5,1 585,-1,463.8,116.2,50.4,159.1,1 585,-1,754.3,80.1,43.6,154.9,1 585,-1,159.8,254.8,59.4,207.8,1 585,-1,1850.3,266,70.7,178.5,1 585,-1,426.8,57.8,46.6,175.6,1 585,-1,1052.4,840,126.7,241,0.999 585,-1,1138.4,845.6,91.2,235.4,0.083 585,-1,692.2,565.5,88.2,253.3,0.073 282,-1,1221.4,31.5,62.5,119.2,1 282,-1,1025.9,99,61.6,183.6,1 282,-1,687.6,207.7,77.4,112.7,1 282,-1,1654.1,27.4,57.2,156.2,1 282,-1,287.4,128.9,56.2,174.1,1 282,-1,399.3,20.7,56.5,163.8,1 282,-1,353.8,110.9,53.2,174.3,1 282,-1,454.5,145.3,76,207.5,1 282,-1,1471.1,33.4,54.2,148.6,1 282,-1,940.9,80.8,65.1,177.8,1 282,-1,1720.2,458.4,78.4,210.4,1 282,-1,108.3,351,51.3,189.8,1 282,-1,796,149.6,60,172.6,1 282,-1,210.2,579.6,82.9,249.8,1 282,-1,704.1,1.3,54.8,158.4,1 282,-1,391.5,462.5,83.2,223.1,1 282,-1,223.8,130.9,52,162.7,1 282,-1,1103.7,93.4,49.7,161.8,1 282,-1,754.9,343.6,67.4,188.8,1 282,-1,1437.5,578.3,96.6,245.4,1 282,-1,232.6,417.5,58.6,195,1 282,-1,553.9,419.8,65.6,213.3,1 282,-1,279.9,799.5,93.1,278,1 282,-1,750.5,104.7,47.9,166.7,1 282,-1,883.2,394.1,77.7,197.5,1 282,-1,514.6,108.6,52.1,179.7,1 282,-1,845.8,112.5,46.4,153.7,1 282,-1,466.7,401.9,67,225.6,1 282,-1,810.3,376.8,93.6,210.3,1 282,-1,944.5,920.5,86.5,160.5,0.885 904,-1,1221.5,30,61.4,119.4,1 904,-1,686.7,205.8,79.8,113.6,1 904,-1,475.9,190.3,66.6,188.5,1 904,-1,794.7,140.2,75.2,173,1 904,-1,302.2,680.4,94.2,258.4,1 904,-1,1431.6,1,49.9,147.1,1 904,-1,1483.6,105,58.2,149.7,1 904,-1,1722.8,453.7,76.1,213.9,1 904,-1,1573.7,590.4,105.2,234.6,1 904,-1,1596.9,53.5,53,163.7,1 904,-1,558,115.6,57.7,173.3,1 904,-1,1712.7,83.1,55.9,168.8,1 904,-1,1110.5,23.3,58.7,159.2,1 904,-1,330.8,353.1,82.6,183.5,1 904,-1,302.4,162.9,68.7,197.1,1 904,-1,387.6,190.5,58.8,179.2,1 904,-1,753,73.6,54.5,159.6,1 904,-1,470.4,3.3,50,150.8,1 904,-1,971.6,417.7,67.8,227.6,1 904,-1,874.5,437.2,67.8,225.2,1 904,-1,418.3,338.1,57.1,207.6,1 904,-1,1746.2,679.9,94.4,242.1,1 904,-1,254.1,1.2,53.8,119,1 904,-1,312.6,1.4,47.1,131.1,1 904,-1,243.4,134.1,56.7,167.5,1 904,-1,1503.3,3.1,56.6,138.8,1 904,-1,1317.5,884.9,95.9,196.1,1 904,-1,421.3,63.2,52.3,177.8,1 248,-1,1221.3,31.1,62.4,117.1,1 248,-1,686.5,207.1,79,113.3,1 248,-1,1599.2,9.3,64.1,142.7,1 248,-1,797.4,153.4,59,174.1,1 248,-1,392.6,514.9,89.4,245.7,1 248,-1,211.6,126.8,56.7,165.7,1 248,-1,223,468,58.1,199.5,1 248,-1,1154.2,113.1,52.9,165.8,1 248,-1,109,349.7,51.2,190.7,1 248,-1,1480.7,57.6,54.7,152.6,1 248,-1,1720,457.1,79,211.6,1 248,-1,1373.6,568.5,103.5,242.1,1 248,-1,287.9,128.6,54.9,170.1,1 248,-1,355.3,106.3,55,179.6,1 248,-1,449,174.2,76,208.3,1 248,-1,704.3,1,54.7,157.2,1 248,-1,934.4,112.3,71.4,179.2,1 248,-1,1077.1,116.7,58.9,180.2,1 248,-1,211,731.9,90.6,255.9,1 248,-1,491.3,360.4,73,228.1,1 248,-1,852.4,348.6,81.3,198.6,1 248,-1,515.4,117,54.8,183.4,1 248,-1,121.5,561.2,83.5,251.2,1 248,-1,584.8,375.2,64.8,203.6,1 248,-1,788.6,337.6,84.6,211.6,1 248,-1,766.4,101.4,53.2,165.6,0.999 248,-1,930.3,902.4,73.7,178.6,0.997 987,-1,686.6,206.5,80,112.5,1 987,-1,793.5,140.1,72.6,172.2,1 987,-1,1222.2,30.5,61.2,120.3,1 987,-1,1190.4,122.5,55.5,163.5,1 987,-1,403.1,266.7,71.8,196.9,1 987,-1,1793,177.5,69,185.5,1 987,-1,496.2,250.3,67.6,191.9,1 987,-1,837.8,313.9,72.7,209.1,1 987,-1,1575.4,589.9,103,236.3,1 987,-1,1468.8,167.2,67.6,169.1,1 987,-1,302,453.4,81.8,204.5,1 987,-1,331.8,840.7,94,240.3,1 987,-1,1719.5,454.8,79.4,213,1 987,-1,1671,145.3,53.8,166.7,1 987,-1,751.1,72,55.9,164.3,1 987,-1,230.1,135.4,56.1,167.1,1 987,-1,290,126,52.2,170.6,1 987,-1,1189.3,667,91.2,265.3,1 987,-1,316.8,264.1,63.7,198.8,1 987,-1,546.2,118.2,55.4,168.3,1 987,-1,920.2,301.4,69.7,210.5,1 987,-1,390.9,438.4,65.6,216,1 987,-1,1740,674.4,92.8,249,1 987,-1,499.4,73.3,52.4,154.7,1 987,-1,314.5,2.5,45.6,129,1 987,-1,446.1,65.9,59,176.8,1 987,-1,1450.1,1,54,90,1 987,-1,1386.2,2.2,44.5,89.2,0.999 987,-1,376.9,166,63.2,192.3,0.999 987,-1,382.1,1,52.7,135.6,0.998 104,-1,1221.4,30.4,62,119.1,1 104,-1,390.2,819.6,102.2,261.4,1 104,-1,1164.8,155.4,78.8,169.3,1 104,-1,704.3,1,56.6,158.6,1 104,-1,108,350.7,50.9,190.2,1 104,-1,356.3,105.7,55.5,178.3,1 104,-1,426.2,301.5,78.9,228.6,1 104,-1,1487.1,69.2,55.6,150.5,1 104,-1,1721.5,457.1,77.7,210.5,1 104,-1,507.9,228.1,72.1,194.4,1 104,-1,1358.5,566.2,105.4,245.7,1 104,-1,209.1,130.3,50.1,166.7,1 104,-1,947.8,202.5,71.4,188.4,1 104,-1,292.1,126.2,57.5,172.3,1 104,-1,102.9,550.5,84.4,246.4,1 104,-1,36.7,687.7,71,218.5,1 104,-1,807.5,194.6,64.3,192.1,1 104,-1,703.1,182.9,58.6,168,1 104,-1,1266.2,189.4,46,170,1 104,-1,439.4,3.9,53.6,153.2,1 104,-1,538.2,64.9,49.2,165.8,1 104,-1,1434.3,187.9,60.3,179,1 104,-1,481.8,40.5,60.1,160.5,1 104,-1,375.2,7,49.7,163.2,1 104,-1,853.1,218,57,166.1,1 104,-1,1387.7,186.6,60.7,188.1,1 104,-1,483.2,147.6,52.7,166.1,0.998 104,-1,259.2,88.4,57.8,178.2,0.967 104,-1,1149,936.7,75.3,144.3,0.091 416,-1,1222,30.2,60.9,120,1 416,-1,686.3,205.6,79.2,114.3,1 416,-1,551.3,70.7,56.5,166,1 416,-1,453.7,247,80.6,205.1,1 416,-1,358.8,110.7,54.5,174.5,1 416,-1,1660.3,64.3,75.1,174.6,1 416,-1,944.7,15.7,61.8,168.6,1 416,-1,1719.7,459.9,79,203.8,1 416,-1,110,349,52.1,188.9,1 416,-1,1769.2,129.5,55.6,162.2,1 416,-1,1006.2,30.1,55.1,162,1 416,-1,286.9,130,54.3,164.8,1 416,-1,1583,621.2,99.5,237.8,1 416,-1,358.6,1,68.5,116.2,1 416,-1,834.4,1.2,51.8,131.5,1 416,-1,1231.2,501,71.1,203.8,1 416,-1,796.2,149.3,57.6,173.8,1 416,-1,209.3,264.2,54.7,179,1 416,-1,859.9,540.7,109.7,245.6,1 416,-1,398.5,623,78.1,233,1 416,-1,220.2,141.9,71.3,157.4,1 416,-1,290.4,594.2,89.7,249.3,1 416,-1,1832.6,76.3,79.4,177.3,1 416,-1,425.3,98.1,53.6,168.8,1 416,-1,717.7,1,51.9,126.2,1 416,-1,713.7,556.9,87.3,246.6,1 416,-1,461.4,66,69.4,194,1 416,-1,424.7,1.1,46,117.4,0.999 416,-1,712,88.8,62.8,176.4,0.999 416,-1,937.1,554.8,80.3,217.9,0.998 416,-1,982.3,925.9,80.6,155.1,0.59 916,-1,1221.7,30.2,61.9,119.6,1 916,-1,686.5,206.3,79.5,112.8,1 916,-1,794,140.5,75.9,172.8,1 916,-1,1114.6,31.6,62.3,167,1 916,-1,1433,3.3,47.6,133.9,1 916,-1,1476.3,107,62.7,156.1,1 916,-1,463.5,202.7,68.7,188.7,1 916,-1,1573.8,589.4,105,236.5,1 916,-1,558.1,116.8,57.9,172,1 916,-1,1606.2,65.2,54,161.2,1 916,-1,326.6,369.5,84.3,190.5,1 916,-1,1722.6,453.1,77.5,214.6,1 916,-1,306.8,700.3,89.8,269.1,1 916,-1,1296.5,851.4,95.2,229.6,1 916,-1,301.9,162.3,69.2,199.1,1 916,-1,1720.6,94.5,56.1,171.7,1 916,-1,867.8,423.2,64.8,221.8,1 916,-1,959.3,404.3,67.5,219.7,1 916,-1,751.9,75.5,55.3,157.8,1 916,-1,410.7,349.9,58.6,208.4,1 916,-1,375.9,202.2,57.8,177,1 916,-1,240.5,134.6,54.9,164,1 916,-1,469.6,16.1,51.8,148.3,1 916,-1,422.6,65.6,60.9,176.4,1 916,-1,1498.1,1.5,58.8,132.4,1 916,-1,253.9,2.2,54.8,120.4,1 916,-1,1749.4,686.7,92,237.7,1 916,-1,312.4,1,47.3,133.9,1 390,-1,1222.3,30.9,61.4,118.4,1 390,-1,686.3,206,79.6,114.3,1 390,-1,366.2,1.5,65.1,102.7,1 390,-1,1636.4,29,74.1,174.4,1 390,-1,1122.2,466.5,75.2,201,1 390,-1,358.5,106.9,54.8,178.7,1 390,-1,446,285.6,83.1,211.7,1 390,-1,1773.7,105.6,68.2,166.6,1 390,-1,438.9,572.1,73,235.3,1 390,-1,828.9,1,54.7,118.9,1 390,-1,322.8,551.9,97.2,251.1,1 390,-1,457.5,71.7,68.7,195.4,1 390,-1,795.5,151,59.8,171.6,1 390,-1,108.8,350,53.3,191.6,1 390,-1,949.3,25.5,63.7,175.7,1 390,-1,282.5,127.4,55.2,166.9,1 390,-1,219.3,142.3,60.4,155.1,1 390,-1,207.6,289.5,54.3,184.3,1 390,-1,1595.1,627.5,87.2,249.7,1 390,-1,1013.7,41.5,54.3,164,1 390,-1,1719.3,453.7,77.2,214.9,1 390,-1,916.2,522,81.6,212.6,1 390,-1,849.6,508.2,85.6,228.8,1 390,-1,1775.7,430.2,70.5,210.9,0.999 390,-1,978.5,906.6,90.2,174.4,0.995 390,-1,707.4,1,53.6,145.5,0.983 390,-1,757.4,107.9,45.3,136.8,0.888 390,-1,1436.8,4.8,53,75.5,0.785 390,-1,434.1,79.2,46.9,174,0.687 390,-1,524,89.5,32.5,152.5,0.186 390,-1,711.7,87.2,56.1,179.4,0.17 390,-1,923.9,9.7,48.8,117.1,0.118 1042,-1,1221.3,29.6,62.1,120.4,1 1042,-1,687.3,206.6,79,114.8,1 1042,-1,794.1,141,70.9,173.2,1 1042,-1,288.6,127.3,52.8,171.8,1 1042,-1,477.1,321.2,79.2,196.8,1 1042,-1,274.8,534.8,98.5,203.2,1 1042,-1,1720.7,454.8,80.2,216.3,1 1042,-1,1124.1,560.3,87.6,252.7,1 1042,-1,1291.2,193.2,65.9,165.5,1 1042,-1,230.6,138,55.4,165.7,1 1042,-1,937.7,235.8,65,204.7,1 1042,-1,1656.1,680.1,95,233.1,1 1042,-1,751.5,75.1,53.5,161.7,1 1042,-1,363.5,325,72.6,202.6,1 1042,-1,374.2,511.7,68,236.1,1 1042,-1,851.8,247.3,63.6,190.6,1 1042,-1,292.4,321.2,71.3,210.6,1 1042,-1,373.2,103.8,57.4,176.5,1 1042,-1,1718.2,213.3,57.6,176.2,1 1042,-1,1470.4,213.8,72.6,167.5,1 1042,-1,307.9,3.1,37.2,126,1 1042,-1,1573.2,589.4,103.4,241.3,1 1042,-1,1858.2,247.7,62.8,198.3,1 1042,-1,582.2,536.2,64.8,254.4,1 1042,-1,502.7,167.8,73.4,195.6,1 1042,-1,455.9,176.2,59.9,164.4,1 1042,-1,433.1,65.8,62.3,176.8,0.999 1042,-1,543.9,114.6,54.8,172.9,0.474 882,-1,1221.2,29.7,62.1,118.3,1 882,-1,1088.3,1.1,63.2,155.8,1 882,-1,686.8,206,79.7,113.7,1 882,-1,1480.3,87.6,58.1,153.2,1 882,-1,795.7,140.2,71.2,173.9,1 882,-1,474.9,2,48.7,135,1 882,-1,1574.6,589,104,238.7,1 882,-1,302,161.4,70.2,197.5,1 882,-1,1722.3,453.9,77.5,214.3,1 882,-1,287.2,646.5,85.6,250.4,1 882,-1,333.7,327.4,81.1,186.5,1 882,-1,479.3,171.7,60.2,181.6,1 882,-1,1696.2,54.3,55.1,170.8,1 882,-1,558.6,116.5,58.3,177,1 882,-1,753.1,72.6,55.5,162.8,1 882,-1,1578,33.8,57.6,152.2,1 882,-1,893.9,473.8,70,230.3,1 882,-1,980.6,457,69.2,230.7,1 882,-1,1421.7,4.3,52,155.3,1 882,-1,253.5,1.1,53.7,122.2,1 882,-1,427.3,309.9,56.7,203.6,1 882,-1,406.8,168.4,57.6,179.4,1 882,-1,240.3,131.8,51.2,167.1,1 882,-1,1752.9,681.7,93,232.9,1 882,-1,1495.5,2.5,57.9,148.9,1 725,-1,1221.3,29.4,62.3,119.1,1 725,-1,686.6,205.7,80.3,114.2,1 725,-1,550.3,113.3,60.5,177.3,1 725,-1,1480,8.1,58.9,143.6,1 725,-1,1472.9,110.8,52,172.2,1 725,-1,1712,455,95.9,208.6,1 725,-1,261.8,191,54.9,200.1,1 725,-1,414.2,178.5,66.8,165,1 725,-1,1574.5,590.3,99,232.8,1 725,-1,316,200.7,63.9,180,1 725,-1,397.7,553.9,95.1,245.3,1 725,-1,478.2,158.4,49.3,184.3,1 725,-1,1599.4,115.1,58.8,180.6,1 725,-1,301.1,413.6,73.7,219.3,1 725,-1,786.8,139.4,50.4,177.1,1 725,-1,749.6,81.8,50.1,152.1,1 725,-1,1236.2,741.7,100.9,272.4,1 725,-1,361.1,107.8,47.8,173.8,1 725,-1,420.6,41.7,61.4,162.7,1 725,-1,1168.4,771.4,82.1,251.5,1 725,-1,466.3,10.9,45.3,141.8,0.999 725,-1,236.3,135.4,51.8,166.5,0.999 725,-1,321.1,1,50.9,134.8,0.995 554,-1,1221.1,30.7,62.5,120.4,1 554,-1,687.3,206,78.7,114.6,1 554,-1,1489.8,3.5,59.4,145,1 554,-1,535,111.5,61.3,175.2,1 554,-1,380,221.5,63.3,193.2,1 554,-1,786.9,142.6,65.3,179.3,1 554,-1,1659.6,280,88.6,203.7,1 554,-1,1799,234,72.2,182,1 554,-1,193.5,297.2,63.4,194.9,1 554,-1,1716.5,455.5,84.9,209.4,1 554,-1,1589,2.9,55.2,146.5,1 554,-1,873.3,1,53.4,109.6,1 554,-1,757.8,594.5,95.6,257.5,1 554,-1,288.8,122.4,53.1,174.9,1 554,-1,1658.8,1.5,54.2,150.4,1 554,-1,986.3,1.6,52.8,96.1,1 554,-1,219.2,137.9,57.5,157.7,1 554,-1,246,882.2,81.5,198.8,1 554,-1,1595.2,584.4,70.8,244.4,1 554,-1,139.8,268.7,51.8,213.9,1 554,-1,752.9,81,48,155.4,1 554,-1,417.3,139.4,51.6,162.5,1 554,-1,457.3,93.2,65,181.1,1 554,-1,359.4,111.9,54,170.1,1 554,-1,1091.9,793.3,86.5,247.4,0.992 554,-1,1010.6,780.5,121.5,247.7,0.972 554,-1,929.1,1.4,57.8,95.8,0.952 554,-1,1025.2,947.4,78.7,133.6,0.107 427,-1,1221.3,30.5,62.5,119.2,1 427,-1,940,6.3,64.2,167.4,1 427,-1,686.4,205.4,79.7,115.2,1 427,-1,358.9,110.3,54.2,175.5,1 427,-1,449.1,237,78.6,201.1,1 427,-1,109.5,347.1,54.7,194.6,1 427,-1,1672.2,79.6,64.7,176.4,1 427,-1,1717.3,456.9,81.8,209.1,1 427,-1,840.5,1,52.8,134.9,1 427,-1,1008.9,23,55,159.6,1 427,-1,283.2,617.8,95.4,250.8,1 427,-1,746.1,557.5,79,253.2,1 427,-1,540.9,71.6,55.7,166.5,1 427,-1,1281.5,508.7,71.8,205.7,1 427,-1,1760.4,142.3,56.8,162.2,1 427,-1,285.7,130.4,53.8,165.2,1 427,-1,1573.9,615,94.9,243.9,1 427,-1,797.9,150.7,54.3,173.7,1 427,-1,218.9,251.7,53.2,179.1,1 427,-1,357.4,2.2,69.9,126.5,1 427,-1,384,642.7,71.3,240.3,1 427,-1,868.9,557.8,102.3,236.7,1 427,-1,220.8,139.8,74.9,162.3,1 427,-1,431.1,107.9,55.4,164.9,1 427,-1,944.5,569.4,88,223.9,1 427,-1,714.7,88.4,61.8,175.7,1 427,-1,424.5,1.1,42.5,127.7,0.999 427,-1,722.2,1.4,49.8,114.8,0.999 427,-1,1790,72.5,80.7,176.5,0.997 427,-1,1855.5,421.3,65.5,192.8,0.997 427,-1,453.3,55.1,68.2,194.5,0.935 427,-1,990.2,931,82.1,150,0.789 57,-1,1221.2,29.8,61.5,117.1,1 57,-1,686.8,206,79.4,114,1 57,-1,1487.3,70,55.4,151.6,1 57,-1,488,187.6,85.2,186.8,1 57,-1,401.7,348,82.7,231.2,1 57,-1,1362.1,566.8,103.8,245.2,1 57,-1,704.7,1,55.8,157.7,1 57,-1,1723,455.4,74.9,212,1 57,-1,1002,177.3,73.4,179.1,1 57,-1,354.9,112.2,54.8,174,1 57,-1,212.6,130.5,49.6,164,1 57,-1,794.8,147.1,62.6,182.2,1 57,-1,443.5,107.1,55.1,152.8,1 57,-1,102.3,545.4,85.5,254.4,1 57,-1,8.6,771.3,67.6,232,1 57,-1,284,126.5,55.3,169,1 57,-1,154.4,362.9,58.3,187.9,1 57,-1,849.5,194,78.6,178.4,1 57,-1,1309.9,175.5,58.1,169.4,1 57,-1,385.7,44.3,55.8,166.2,1 57,-1,1369.6,211.4,41.7,169.2,1 57,-1,485.2,43.8,55.8,160.7,1 57,-1,1474.6,215,60.8,192,0.999 57,-1,540.8,63.2,43.3,166.8,0.999 57,-1,1869.5,279.2,51.5,205.6,0.984 57,-1,904,185.6,43.1,169.6,0.744 624,-1,686.9,206.1,79.7,112.9,1 624,-1,1221.5,29,62.1,118.1,1 624,-1,1480.9,5.2,60.5,143.2,1 624,-1,347.9,294.9,68.5,203.3,1 624,-1,1623.3,207.2,79.9,197.1,1 624,-1,801.1,144.7,65.7,171.7,1 624,-1,1711.5,456.9,91.2,210.3,1 624,-1,1574.3,588.7,96.6,236.9,1 624,-1,358.4,114.8,53.1,171.5,1 624,-1,552.3,111.5,57.3,176.4,1 624,-1,288.2,127.2,52.3,168.4,1 624,-1,181.2,236.4,70.5,203.3,1 624,-1,498,83.6,45.6,154.6,1 624,-1,248.9,247.6,61.1,189.8,1 624,-1,352.5,1,54.2,123.8,1 624,-1,754,80.7,43.7,151.8,1 624,-1,550.2,537.5,81.9,253.3,1 624,-1,1593,1,52.9,92.4,1 624,-1,233.3,134.3,49,163.2,1 624,-1,448.6,83.5,49.4,169.9,0.999 624,-1,409.1,102.5,52.8,157.2,0.999 624,-1,1112.6,920.5,98.7,160.5,0.997 624,-1,423.3,3.3,58.9,126.5,0.453 624,-1,1204.8,947.1,69.3,133.9,0.08 366,-1,1221.8,31.5,61.6,118.5,1 366,-1,686.4,206.4,79.8,112.9,1 366,-1,438.1,315.9,74.2,214,1 366,-1,367.3,518.1,85.9,234.4,1 366,-1,1431.5,2.3,52.6,102.6,1 366,-1,1625.4,2.9,58.5,162,1 366,-1,443,82.8,71.1,202.4,1 366,-1,209.5,141.4,59.7,161.4,1 366,-1,1021.9,57.1,55.5,166.4,1 366,-1,1756.8,95.2,62.1,158.6,1 366,-1,1053.5,434.3,67,197.2,1 366,-1,512.6,91.3,46.7,164.4,1 366,-1,1837.4,71,55.6,155.5,1 366,-1,1718.8,455.8,79.8,215.6,1 366,-1,286.7,131.2,53.7,170.2,1 366,-1,109.1,352.3,52,187.8,1 366,-1,956,46,62.6,175.1,1 366,-1,215.6,315.1,55.1,190.6,1 366,-1,362.4,113.7,54.3,171.8,1 366,-1,796.5,150.1,59.4,174.9,1 366,-1,833.4,1,54,108.7,1 366,-1,1815,460.9,61.6,206.1,1 366,-1,1576.4,626.9,83.1,246.4,1 366,-1,909.9,486.4,79.9,210.7,1 366,-1,531.5,568.8,97.2,252.1,1 366,-1,469.2,536.9,65.8,230.7,1 366,-1,760.7,95.8,43.8,143,1 366,-1,381,3,45.1,86.3,1 366,-1,845.5,475.6,84,231.7,0.999 366,-1,962.1,922.2,77.4,158.8,0.993 366,-1,928.9,3.8,58.4,151.4,0.977 65,-1,1221.7,31.1,60.7,117.1,1 65,-1,686,206.4,80.5,112.5,1 65,-1,404.8,338,84.4,234.9,1 65,-1,1361.2,566.6,104.7,244.9,1 65,-1,1487.2,70.2,55.2,149.6,1 65,-1,355.7,105.6,54.8,179,1 65,-1,704.5,1,55.6,158.3,1 65,-1,1721.7,457.6,77.4,209.4,1 65,-1,489.6,190.7,78.2,194.9,1 65,-1,820.8,196,71.5,180.9,1 65,-1,103.1,546.3,84.3,253.2,1 65,-1,1286.7,181.7,59,165.4,1 65,-1,211.6,128.4,49.7,165.8,1 65,-1,995.2,187,70,174.1,1 65,-1,10.1,750.1,69.9,239.4,1 65,-1,287.6,125.3,53.8,170.7,1 65,-1,1458.1,202.8,68.9,200.8,1 65,-1,147.7,357.3,57.1,196.1,1 65,-1,893.3,183.7,54,167.2,1 65,-1,461.1,116.6,54.4,146.8,1 65,-1,540.1,63.8,46.1,165.3,1 65,-1,1354,205,40.2,172.5,1 65,-1,383.4,34.6,52.8,165,1 65,-1,437.7,29.2,52.1,156.8,0.999 65,-1,486.5,37.2,56.7,173,0.993 65,-1,255.9,90.7,48.9,181.3,0.957 65,-1,1874.7,289.3,46.3,192.5,0.275 65,-1,388.1,927.3,101.9,153.7,0.062 891,-1,1220.9,29.6,62.5,119.7,1 891,-1,687.1,206,79.5,114,1 891,-1,1103,7.9,54.8,158.8,1 891,-1,1482.6,94.4,58.2,153.8,1 891,-1,794.3,138.4,74.8,174.1,1 891,-1,1706.3,62,52.8,170.2,1 891,-1,1576.4,594.4,101.9,234.7,1 891,-1,332.8,337.8,81.6,181.2,1 891,-1,480.4,182.5,61.2,182.1,1 891,-1,1721,453.7,79,214.3,1 891,-1,558.6,117.4,58.9,173.9,1 891,-1,297.4,664,82.5,249.4,1 891,-1,301,160.7,70.8,194.7,1 891,-1,470.2,1,51.1,141.5,1 891,-1,753.6,70.2,54.4,164,1 891,-1,1425.8,2.6,51.2,153.7,1 891,-1,422.7,326.5,57.6,204.8,1 891,-1,1590.9,43.1,49.8,153.4,1 891,-1,885.6,458.6,71.7,225,1 891,-1,970.9,447.2,77.7,221.8,1 891,-1,239.9,132.1,55.4,170.4,1 891,-1,254,1.4,53.9,120,1 891,-1,1747.6,682.7,89.9,233.1,1 891,-1,403,172.8,56.2,181,1 891,-1,1492.9,1,64.3,149.5,1 891,-1,314.4,1.2,47.3,125.5,1 891,-1,409.1,54.4,58.3,175.4,0.999 891,-1,1348,923.3,90.9,157.7,0.982 891,-1,353.7,166.9,42.2,172.5,0.386 497,-1,1221.3,30.4,62.5,118.4,1 497,-1,685.5,206.2,80.9,112.7,1 497,-1,1497.1,1,58,128.4,1 497,-1,1818.2,175.5,84.2,190.5,1 497,-1,998.6,1,55.7,132.4,1 497,-1,795,140.5,59.9,179.1,1 497,-1,1734.9,190.6,67.5,173.4,1 497,-1,931.4,1,56.3,129.9,1 497,-1,465.8,153.9,65.2,192.6,1 497,-1,813.9,607.7,86.4,259.4,1 497,-1,1641.9,596.2,72.7,219.5,1 497,-1,141.5,336.6,64.2,188.5,1 497,-1,213.1,734.8,95.8,270.5,1 497,-1,1720.6,458.3,80.3,208.4,1 497,-1,877.6,1,51.9,126.3,1 497,-1,298.9,770.6,77.9,263.4,1 497,-1,1542,598.5,88.3,242.9,1 497,-1,1687,42.1,53.6,164.5,1 497,-1,407.9,164.7,59.5,186,1 497,-1,1625.6,29.4,60.1,174.9,1 497,-1,923.1,671,114.3,254.3,1 497,-1,217.2,135,64.1,164.2,1 497,-1,316.1,190.7,48.9,164.8,1 497,-1,1753,341,75.4,216.7,1 497,-1,715.9,93.4,60.6,164.5,1 497,-1,449.6,17.2,74.4,178.3,1 497,-1,1625.3,325.8,58.3,190.7,1 497,-1,360.6,112.1,53.3,173.5,1 497,-1,285.3,125.6,56.1,170,0.999 497,-1,507,95.5,60.5,171.6,0.999 497,-1,403.1,15.8,47.9,163.9,0.999 497,-1,1013.9,688.4,78.7,227.1,0.998 497,-1,753.4,100.3,46.7,140.2,0.171 497,-1,1020.3,936.3,84.6,144.7,0.063 44,-1,686,206,79.9,113.9,1 44,-1,1213.4,31.1,71.6,118.6,1 44,-1,393.8,365.1,85.1,235.4,1 44,-1,1486.8,70.3,55.2,148.4,1 44,-1,1362.1,566.5,105.1,245.3,1 44,-1,485.6,169.7,94.3,196.2,1 44,-1,704.5,1.8,55.7,156.7,1 44,-1,903.9,194.8,91.7,182.7,1 44,-1,1721.6,457.2,77.1,209,1 44,-1,213.6,127.6,49.9,164.6,1 44,-1,170.9,369.1,68.7,190.6,1 44,-1,352.7,106.5,55.4,177,1 44,-1,1008.8,159.5,80,187.3,1 44,-1,102,548.9,85.7,249.6,1 44,-1,283.8,126.4,54,169.5,1 44,-1,795.3,148.6,62.1,175.4,1 44,-1,2,794.6,68.5,235.3,1 44,-1,860.9,149.1,61.2,183.3,1 44,-1,1340,186.3,51.7,162.9,1 44,-1,404.7,88.7,52.3,160.9,1 44,-1,1847.5,263.7,73.5,195.5,1 44,-1,1492.1,219.3,60.6,199.7,1 44,-1,443.7,43,55.1,169.4,0.999 44,-1,486.1,43,54.7,155.5,0.988 44,-1,541.7,61.3,41.9,178.7,0.959 44,-1,1392.3,220.6,41.6,164.5,0.061 467,-1,1221.9,30.8,61.8,117.4,1 467,-1,687,205.8,78.5,113.7,1 467,-1,935.2,1,57.4,148,1 467,-1,1006.5,1,53.8,154.1,1 467,-1,452.9,192.3,69.1,195.8,1 467,-1,276.9,210.8,52.7,175.2,1 467,-1,358.8,109.3,55.9,177.6,1 467,-1,1804.6,364.6,86.1,215.2,1 467,-1,1704.6,457.5,95.4,210,1 467,-1,238.8,681.1,93.3,259.3,1 467,-1,117.2,345.3,59.1,188.1,1 467,-1,1506.6,1.3,58.1,111.7,1 467,-1,803.9,145.4,47.1,174.9,1 467,-1,1649.5,345.5,61.7,198.8,1 467,-1,1729,167.8,63.7,162.5,1 467,-1,878.1,1,51.7,134.9,1 467,-1,333.6,715.7,73.2,247.1,1 467,-1,218.9,137.4,61.7,159.1,1 467,-1,516.6,81.4,60.9,173,1 467,-1,1543.2,609.1,72.8,241.6,1 467,-1,809.3,583.9,95.5,253.3,1 467,-1,1671.4,53.5,61.3,173.8,1 467,-1,753.7,94.3,54,141.8,1 467,-1,898.6,620.9,116.3,249.5,1 467,-1,1489,564.4,75.1,190.1,0.999 467,-1,983.6,639.6,88.2,222.6,0.999 467,-1,447,36.9,72.9,182.9,0.999 467,-1,413.7,3.2,44.6,154.3,0.999 467,-1,715.4,90.2,51,165.8,0.997 467,-1,428.9,142.2,48,160.2,0.994 467,-1,1729.7,64.8,50.6,161.1,0.993 467,-1,1025.5,921,87,160,0.991 467,-1,288.7,129.8,50.5,168.7,0.982 467,-1,1763.2,148.3,65.4,159.5,0.714 944,-1,1221.3,29.3,62.8,120.2,1 944,-1,686.8,206.4,79.8,112.8,1 944,-1,793.3,140,75.8,173.4,1 944,-1,1485.7,1,59.7,115.3,1 944,-1,1132.7,67.4,65.3,170.5,1 944,-1,1476.3,128.1,61.3,162.3,1 944,-1,1576.3,590.8,102,238.9,1 944,-1,323,754.1,97.1,267.9,1 944,-1,749.5,70.3,56.6,163.6,1 944,-1,437.7,227.6,66.5,192.1,1 944,-1,1627.9,94.8,56.9,167.7,1 944,-1,554,116.6,57.8,173.5,1 944,-1,351.2,226.5,61,180.7,1 944,-1,1720.6,453.8,77.8,213.6,1 944,-1,1252,780.4,93.2,285,1 944,-1,237.2,133.2,58,171.1,1 944,-1,1417.9,1,46.9,118.4,1 944,-1,940.3,364.4,66.6,219.1,1 944,-1,325.7,396.6,81.9,196.4,1 944,-1,858.9,381.5,63.5,215.5,1 944,-1,253.7,1,52.9,119.2,1 944,-1,1745.8,133.4,60.6,172.5,1 944,-1,395.5,383.9,64.2,217.3,1 944,-1,1744.8,679.7,90.7,246,1 944,-1,434.6,74.9,56.9,177.5,1 944,-1,476.7,37.7,53.1,151.2,1 944,-1,309.6,163.8,61.8,195.3,1 944,-1,478.5,213.8,58.7,182.1,0.998 951,-1,686.1,206.2,80.4,113.4,1 951,-1,1221.4,29.5,62.3,118.8,1 951,-1,794.1,139.8,73.7,173.1,1 951,-1,1474.4,138,63.3,167.6,1 951,-1,1482.1,1,55.1,111.4,1 951,-1,1144.3,72.3,58.9,172.1,1 951,-1,1245,759.7,90.9,269.1,1 951,-1,322.9,766.1,94.2,274,1 951,-1,749.9,71.4,56.7,162.6,1 951,-1,1574.5,588.1,103.3,236,1 951,-1,931.7,353.3,70.3,213.4,1 951,-1,1720.9,452.2,78.4,214.7,1 951,-1,1638.2,103.7,52.8,170,1 951,-1,852.2,364.7,69.8,212.2,1 951,-1,392.2,387.1,66.6,214.1,1 951,-1,553.1,115.4,55.1,171,1 951,-1,428.3,233.2,68.9,186.7,1 951,-1,322.6,408.3,79.8,196.8,1 951,-1,345.3,235.1,61.5,183.9,1 951,-1,435.9,76.5,55.5,174.2,1 951,-1,1756.2,131.9,65.1,182.4,1 951,-1,233.8,134.8,58,170.9,1 951,-1,1416.4,1.4,46.5,114,1 951,-1,479.6,217,63.6,184.2,1 951,-1,479.1,37.8,55.6,155.8,1 951,-1,1742.6,674.5,93.8,251.7,1 951,-1,248.6,2.3,54.5,120.1,1 951,-1,288.4,125.7,53.8,168.6,0.997 951,-1,317.1,171.7,57.3,183.3,0.994 684,-1,1222.1,29.5,61.6,120.9,1 684,-1,687,206.8,79.7,113.3,1 684,-1,1480.6,5,60.7,146.8,1 684,-1,1489.4,154.3,52.5,171.3,1 684,-1,364.5,530.2,107.7,251,1 684,-1,486.9,131.6,45.7,176.3,1 684,-1,1708.9,457.1,99.8,208.9,1 684,-1,1069.1,1,74.8,99.1,1 684,-1,803.4,145.9,58.4,173.5,1 684,-1,563.4,112.8,51,177.5,1 684,-1,312.1,358.2,70.2,216.7,1 684,-1,1617.6,150.4,72.9,190.8,1 684,-1,417.1,139.9,67.1,165,1 684,-1,360.7,113.3,49.9,172.5,1 684,-1,750.1,79.5,49.6,158.1,1 684,-1,1574.1,589.5,97.6,234.6,1 684,-1,1270.1,867.2,91.8,213.8,1 684,-1,239.6,203.9,62.6,199,1 684,-1,1359.8,844.9,94.3,236.1,1 684,-1,404.4,15.4,56,158.5,1 684,-1,294.9,219.3,59,178.5,1 684,-1,482.9,38.2,46.8,142.3,1 684,-1,832.3,922.1,75.8,158.9,0.943 684,-1,226.7,129.4,45.9,168.1,0.865 197,-1,1221.3,30.6,61.1,120.4,1 197,-1,49.6,637.5,118.8,248.6,1 197,-1,211.5,127.5,56.1,167,1 197,-1,687.2,207,78.5,112.1,1 197,-1,1490,69,54.2,149.9,1 197,-1,108.4,347.1,50.6,191.2,1 197,-1,704.8,1,55.8,159,1 197,-1,526.7,137.9,61.2,159.6,1 197,-1,403.9,612.9,94,247.3,1 197,-1,1720.9,456.6,78.2,211.4,1 197,-1,289.4,126.3,54.6,171.8,1 197,-1,1358.7,566.7,103.1,246.9,1 197,-1,355.9,104.9,54.7,179.8,1 197,-1,420.6,213.8,77.5,219.6,1 197,-1,516.1,307.1,74.7,216.7,1 197,-1,881.1,161.6,78.5,187.4,1 197,-1,1049.2,140,51.3,157.1,1 197,-1,796,151.2,59.6,173.1,1 197,-1,393.7,39.5,63.6,167.8,1 197,-1,802.3,304.2,70.4,186.4,1 197,-1,1222.2,144.8,52.1,171.8,1 197,-1,1162.4,144.4,64,186.1,1 197,-1,230.1,542.9,62.7,214.5,1 197,-1,751.2,289.1,70.3,206.2,1 197,-1,970.7,914.5,76.1,166.5,0.927 197,-1,466.3,8.8,46.5,86,0.644 506,-1,1221.4,29.9,62.5,118.9,1 506,-1,686.6,205.8,80.1,115.2,1 506,-1,1496.1,1.6,58.3,133.5,1 506,-1,998.7,1,54.2,129.3,1 506,-1,786.6,142.1,64.8,181.4,1 506,-1,149.1,332.2,66.7,189.9,1 506,-1,401.3,175,62.3,185.5,1 506,-1,881.9,1,51.9,124.2,1 506,-1,1679.4,26.3,56,169.2,1 506,-1,464.8,143.3,67.8,192.6,1 506,-1,932.8,1,55.6,122.1,1 506,-1,326.5,179.9,49.2,165.6,1 506,-1,823.2,608.9,77.1,251.8,1 506,-1,1740.8,194.4,66,176.2,1 506,-1,1676.2,609.6,79.7,219.1,1 506,-1,1726.1,459.1,74.9,206.7,1 506,-1,1616.6,19.7,57.5,177.8,1 506,-1,1729.7,333.7,83,200.2,1 506,-1,931.6,688,118.5,254.8,1 506,-1,290.9,786.2,77.9,253.4,1 506,-1,1615.5,306.1,65.4,193,1 506,-1,207.5,749.2,90.7,277.1,1 506,-1,1836,189.8,80.2,197.4,1 506,-1,217.4,133.2,63.7,163.3,1 506,-1,1553.1,598,75.5,238.6,1 506,-1,513.8,93.6,58,175.8,1 506,-1,288.3,124.6,54.5,170.3,1 506,-1,449.2,7.9,74.1,180.1,1 506,-1,360.4,104,53.5,189.6,0.999 506,-1,719.2,96.4,64.5,165.9,0.999 506,-1,400.1,18.6,48.1,163.1,0.998 506,-1,1024.8,707.3,73.9,242.7,0.721 456,-1,1221.6,31.6,62.5,118,1 456,-1,936.7,1,58.1,154.3,1 456,-1,686.8,206,79.4,114.1,1 456,-1,444.8,205.3,72.4,195.9,1 456,-1,358.4,104,55.9,183.8,1 456,-1,1008.5,8.3,53.3,156.4,1 456,-1,1709.1,455.5,90.9,211.4,1 456,-1,1738.9,154.3,62.3,172.8,1 456,-1,113.7,348.7,55.2,191.4,1 456,-1,247.1,670.9,96.3,249.6,1 456,-1,1425.1,547.7,86.9,214.5,1 456,-1,262.1,224.9,54.7,174.5,1 456,-1,523.1,76.1,56,171.2,1 456,-1,867.1,1.5,55.9,138.1,1 456,-1,1549.5,611.7,75.1,244.1,1 456,-1,890,601.3,110.9,239.7,1 456,-1,802.2,151.2,46.3,170.7,1 456,-1,286.2,128.1,54.3,167.9,1 456,-1,1829.7,389.2,84.1,206.1,1 456,-1,1660.6,359.2,65,196.8,1 456,-1,343.3,689,73.2,250.5,1 456,-1,220.2,138.1,58.7,159.6,1 456,-1,798,578.2,87.9,250.4,1 456,-1,753.2,94.4,53.4,151.2,1 456,-1,1508.8,1,54.5,108.1,1 456,-1,974.9,617.9,85.9,227.6,0.999 456,-1,418.9,1,44.3,155.7,0.999 456,-1,445.9,37.7,71.1,197.4,0.998 456,-1,1026.6,922.1,83.6,158.9,0.998 456,-1,714.1,93.2,50.9,166.8,0.982 456,-1,429.5,135.7,48,157.7,0.953 456,-1,1709.3,58.1,59.6,199.6,0.459 456,-1,362.2,9.8,54.1,134.6,0.138 656,-1,687.1,206.6,79.4,113.2,1 656,-1,1481,4.5,60,144.7,1 656,-1,1158,1,69.3,119.2,1 656,-1,548.9,110.7,61.6,174.5,1 656,-1,801.7,145.6,64.5,170.7,1 656,-1,1222.3,28.5,62.4,122.7,1 656,-1,1713.4,459.9,93.5,202.9,1 656,-1,359.3,114.3,50.9,170.3,1 656,-1,330.4,332.5,68.7,207.1,1 656,-1,1575.6,588,96.7,236.3,1 656,-1,448.8,536.5,81.2,241.8,1 656,-1,1613.1,171.4,75.4,187.3,1 656,-1,271.7,236.8,60.6,178.2,1 656,-1,751.8,80.2,46,155.6,1 656,-1,409.2,1,58.3,155.2,1 656,-1,472.2,106.7,47.5,175.8,1 656,-1,424.6,119.5,57.8,162,1 656,-1,220.9,218.9,55.2,201.9,1 656,-1,287.4,124.6,52,171.1,0.999 656,-1,1439.3,909.4,93.4,171.6,0.999 656,-1,352.4,1,53.5,143,0.998 656,-1,1360.8,934.5,85.7,146.5,0.931 168,-1,1221.3,30.9,61,116.9,1 168,-1,1489.4,68.9,54.4,148.6,1 168,-1,973.9,124.9,59.3,170.6,1 168,-1,400.7,674.7,98.2,261.5,1 168,-1,109.2,349.8,48.7,189.2,1 168,-1,356.5,103.3,55.6,179.5,1 168,-1,703.7,1,56.5,159.8,1 168,-1,212.4,126,54.9,167.7,1 168,-1,1359.3,567.6,104.3,244.8,1 168,-1,1720.8,456.6,78.3,212.7,1 168,-1,687.7,207.8,77.7,111.2,1 168,-1,288.7,127.1,54.5,168.9,1 168,-1,1128.3,154.8,47,160.2,1 168,-1,432.6,40.7,56.6,162.7,1 168,-1,100.4,548,87.6,253,1 168,-1,422,239.4,77.2,221,1 168,-1,528.8,278.9,63.5,218.7,1 168,-1,538.4,65.4,51.9,165.4,1 168,-1,558.4,157.6,66.2,170.3,1 168,-1,220.2,589.1,68.6,217.5,1 168,-1,855.4,192.8,75.5,185.5,1 168,-1,1236,164.8,59.3,174.6,1 168,-1,795.3,147.7,62.1,174,1 168,-1,798.5,276.1,62,177.3,1 168,-1,747.8,263,67.2,199.5,1 168,-1,502.4,213.6,59.1,180.5,0.999 168,-1,1274.2,166.2,52.4,166.1,0.986 168,-1,1020.2,905,72.4,176,0.978 907,-1,1221.7,30.2,60.9,118.8,1 907,-1,686.8,205.8,79.6,113.7,1 907,-1,473.7,193.1,68.6,187.6,1 907,-1,794,140.3,74.8,172,1 907,-1,1109.5,28.3,63.3,160.4,1 907,-1,1432.3,1,48.7,145.2,1 907,-1,1484,103.9,58.8,152.4,1 907,-1,306.8,688.8,91.2,259.2,1 907,-1,1715.1,84.3,54.1,175.5,1 907,-1,1722.6,452.6,76.8,215.1,1 907,-1,1574.4,591,104.2,233.7,1 907,-1,557.4,115.8,57.7,174.2,1 907,-1,1597.1,60.9,54,160,1 907,-1,383.1,191.6,57.5,178,1 907,-1,327,351.5,85.9,188.8,1 907,-1,872.6,435.4,66.7,221.6,1 907,-1,301.8,162.7,69.9,198.6,1 907,-1,751.8,74.3,55.7,159.3,1 907,-1,469.7,6.6,50.1,151.8,1 907,-1,1744.9,681.3,97.8,239.1,1 907,-1,1310.2,880.4,96.5,200.6,1 907,-1,416.1,344.8,58.8,204.5,1 907,-1,242.5,134.4,56.9,165.5,1 907,-1,969.9,414.6,64.9,228.4,1 907,-1,1503.3,3.2,56.6,135.7,1 907,-1,312.2,1,47.6,132.3,1 907,-1,253.7,1,54.7,119.1,1 907,-1,422.4,64.1,51.3,177,1 64,-1,1221.5,30.6,61,117,1 64,-1,685.9,206.6,80.5,112.7,1 64,-1,404.9,337.8,83.7,236.8,1 64,-1,1361.2,566.5,106.1,245,1 64,-1,705,1,55.6,158.7,1 64,-1,1487.4,70.5,54.7,148,1 64,-1,1721.5,456.6,77.8,210.2,1 64,-1,488.2,188.5,80.8,196.5,1 64,-1,356.3,108.1,54.6,177.6,1 64,-1,995.7,185.4,73.4,172.6,1 64,-1,102.8,546.2,84.6,253.2,1 64,-1,823.8,195.6,73,182.4,1 64,-1,211,129.3,50.5,165.5,1 64,-1,1289.5,179.7,61.3,164.8,1 64,-1,287.5,125.8,54.2,170,1 64,-1,147,356.6,56.1,197.1,1 64,-1,9.9,752,71.9,240,1 64,-1,1460.7,203.8,66.2,200.8,1 64,-1,894.8,184.6,52.5,163.2,1 64,-1,383.8,37.8,53.9,164.7,1 64,-1,459.7,118.5,51.2,145.2,1 64,-1,541.8,63.4,44.4,166.2,1 64,-1,1356,205.9,42.6,174.8,1 64,-1,438.3,31,51.6,152.6,0.998 64,-1,485.1,37.1,56.8,172.5,0.996 64,-1,797.6,146.7,62.3,187.5,0.971 64,-1,256.2,91.7,47.1,178.8,0.934 3,-1,687.6,206.2,78.4,113.8,1 3,-1,1486.7,70.2,55.5,148,1 3,-1,1361.6,567.5,106.5,244.8,1 3,-1,508.3,140.3,98.9,185.2,1 3,-1,704.5,1,56.1,156.9,1 3,-1,1091,212.5,70.1,181.8,1 3,-1,1731.6,456.8,76.9,215.1,1 3,-1,795.6,147.6,62.3,175.5,1 3,-1,286.5,125.4,56,170.8,1 3,-1,1198.7,37.6,71.8,113.5,1 3,-1,1793,204.9,68.1,185.9,1 3,-1,1034.3,134.3,79.5,183.6,1 3,-1,102.2,545.3,85.8,254.6,1 3,-1,1633.8,262.3,66,188.4,1 3,-1,373.1,407.3,84.5,244.6,1 3,-1,221.7,128.3,48.1,163.6,1 3,-1,872.4,125,61.5,175.8,1 3,-1,355.5,103.2,53.6,179.9,1 3,-1,414.7,89.5,56,174.3,1 3,-1,1038.9,1.6,48.6,83.7,1 3,-1,224.4,391.7,63.1,206.3,1 3,-1,1446.1,248.5,56.6,174.4,1 3,-1,464.5,79.5,52.1,174,1 3,-1,261.3,363.6,64,228.8,0.996 3,-1,913.1,127.8,44.8,161.3,0.504 3,-1,1001.5,2.6,47.4,77.3,0.283 266,-1,1221.4,31.3,61.8,118.9,1 266,-1,687.9,206.5,77.6,111.6,1 266,-1,288.4,129.7,57,170.3,1 266,-1,454.4,157,73.3,211.4,1 266,-1,1479.2,48.8,51.4,147.5,1 266,-1,1631.7,20.6,63.5,147.3,1 266,-1,376.4,481,95.7,236.7,1 266,-1,108.5,352.9,50.7,186.3,1 266,-1,356.3,105.7,52.3,179.1,1 266,-1,1721,456.6,77.6,212.7,1 266,-1,796.5,153.1,59.2,171.2,1 266,-1,1125.2,98.8,55.7,168.8,1 266,-1,376.2,9.2,59,158.3,1 266,-1,704.7,1,54.8,158,1 266,-1,217.4,127.3,54.9,165.6,1 266,-1,938.1,92.1,69.4,182.9,1 266,-1,231.7,439.6,60.9,195.7,1 266,-1,1049.7,106.2,61.4,184.4,1 266,-1,1407.6,565.4,97.8,248.1,1 266,-1,248.8,761.7,90.8,278.3,1 266,-1,698.5,325,65,184.8,1 266,-1,871.3,369,78.7,202.9,1 266,-1,481.3,386.5,74.7,218.1,1 266,-1,802.5,355.2,86.9,212.2,1 266,-1,512.5,118.1,56,172.9,1 266,-1,162.6,567.8,88.8,250.4,1 266,-1,874.4,109.8,45.5,151.7,1 266,-1,568.6,396.8,65.1,213.3,1 266,-1,755.1,101.8,48.1,169,0.999 266,-1,939,916.3,84.8,164.7,0.931 430,-1,1221.7,30.1,62.3,118.8,1 430,-1,938.6,4,63.9,168.2,1 430,-1,686.6,205.9,79.6,113.7,1 430,-1,358.9,109,53.7,178.1,1 430,-1,448.5,232.2,79,201.2,1 430,-1,842.4,1,53.3,136.2,1 430,-1,1676.5,85.4,65.2,171.4,1 430,-1,1298.8,512.1,66.3,207.8,1 430,-1,1717.5,458.7,81.1,206.8,1 430,-1,109.9,348.1,54.1,190.7,1 430,-1,1009.4,21.8,53.6,161.4,1 430,-1,752.6,562.6,81.9,247,1 430,-1,282.6,617.4,93.4,258.4,1 430,-1,535.7,73,55.8,163.1,1 430,-1,223,248.2,52.9,179.2,1 430,-1,284.9,129.4,54.2,167.1,1 430,-1,1572,614.4,90.5,245.5,1 430,-1,798.9,151.3,52.5,172.4,1 430,-1,1758.6,143.3,55.6,162.6,1 430,-1,380.8,649.6,70.6,236.1,1 430,-1,868.8,563.7,107.3,242.1,1 430,-1,359.6,1,67.3,128.2,1 430,-1,430.1,106.8,57.9,172.2,1 430,-1,1850.8,420.1,70.2,187,1 430,-1,714.9,90,61.3,173,1 430,-1,221.8,138.3,74.2,160.1,1 430,-1,947.7,575,87.5,222.2,1 430,-1,423.1,1,42.9,128.7,0.999 430,-1,1780.2,75,81.5,174.7,0.997 430,-1,725,1.6,49.9,112.7,0.995 430,-1,992.3,931.5,88.1,149.5,0.859 430,-1,458.3,55.1,67,184.4,0.599 430,-1,752.3,86.6,41.9,155.5,0.549 827,-1,1221,29.7,62.3,118.3,1 827,-1,686.9,205.8,79.6,114.5,1 827,-1,1036.4,548.3,95.5,242.3,1 827,-1,1637.3,3,56.2,158.4,1 827,-1,1577.7,593.4,98.2,233.7,1 827,-1,274.1,561.5,81.8,236.7,1 827,-1,557.4,115.6,62.9,176.1,1 827,-1,792,134.6,65.6,180.4,1 827,-1,1723,453.3,75.4,213.5,1 827,-1,1476.8,43.9,59.1,156.8,1 827,-1,437.8,257.2,55.9,193,1 827,-1,751.2,71.9,56.9,163.1,1 827,-1,473.9,124,59.5,175.4,1 827,-1,373.2,271.2,74.7,170.5,1 827,-1,1423.5,40.1,50.7,157.2,1 827,-1,962.8,565.7,73.7,236.9,1 827,-1,238.3,133.6,50,166.6,1 827,-1,289.7,162.9,66.3,197.6,1 827,-1,423,120.8,57.9,173.6,1 827,-1,348.2,172.1,47,178.4,0.999 827,-1,250.3,1,55.7,117.1,0.729 156,-1,1221.4,30.4,62.4,119.5,1 156,-1,1487.8,68.2,55.9,150.8,1 156,-1,356.1,104.5,54.6,180,1 156,-1,999.3,130.5,72.7,168.4,1 156,-1,445,36.9,58.1,163.1,1 156,-1,109.4,350.8,49.7,187.7,1 156,-1,704.8,1,55.8,158.6,1 156,-1,539,63.6,50.6,167,1 156,-1,1721.2,456.1,77.4,211.9,1 156,-1,287.8,122.6,55.4,174.4,1 156,-1,1358.6,567.8,105.3,243.8,1 156,-1,686.8,206.1,79.5,114.8,1 156,-1,214.4,124.1,54.6,168,1 156,-1,1153.5,159.7,47.2,157.7,1 156,-1,420.4,250.3,78,223.9,1 156,-1,407.9,705.8,93.4,267.8,1 156,-1,101.2,544.5,85.7,255.3,1 156,-1,196.7,611.5,65.4,213.2,1 156,-1,1264.3,173.8,61.3,168.7,1 156,-1,591.3,264.1,63.1,197.8,1 156,-1,531,270.7,62.2,207.6,1 156,-1,387.4,4.7,45,114.9,1 156,-1,857.3,202.3,71.8,194.1,1 156,-1,800.7,260.3,64.1,183.4,1 156,-1,492.9,201.1,58.6,167.6,1 156,-1,755.3,252,69.2,185.2,1 156,-1,793.3,148,63.6,181.4,0.999 156,-1,1037.3,912.5,70.4,168.5,0.994 515,-1,1221,30.3,62.2,119.6,1 515,-1,1490.9,1,60.5,138.2,1 515,-1,686.4,207.2,80.3,113.9,1 515,-1,996,1,54.9,122.4,1 515,-1,1674.4,23.7,54.1,165.7,1 515,-1,159.5,327.8,66.2,188.3,1 515,-1,393.6,185,62.8,188.3,1 515,-1,789.9,142.7,55.3,178.8,1 515,-1,340.2,171.1,50.7,168.5,1 515,-1,883.3,1.1,53.3,121.8,1 515,-1,1561.5,600.8,71.3,235.6,1 515,-1,930.2,1.7,57.3,120.1,1 515,-1,459.5,139,72.3,185.1,1 515,-1,1613.5,14.9,54.7,175.1,1 515,-1,1718.8,624.7,78.1,216.4,1 515,-1,944.7,700.5,118.8,263.5,1 515,-1,827.3,606.5,74.7,258.3,1 515,-1,1718.8,459.2,79.6,209.9,1 515,-1,287.2,126.4,53.5,173.1,1 515,-1,1605.6,300.6,62.8,203,1 515,-1,1849,207.4,72,191.5,1 515,-1,217.1,135.9,63.6,162.5,1 515,-1,198.8,769,90.2,272.5,1 515,-1,732.2,97,64.7,161.6,1 515,-1,451.3,4.2,74.7,183.1,1 515,-1,515.8,94.8,56.2,176.6,1 515,-1,1710.8,325.8,91.4,197.4,1 515,-1,1756,206.2,58.8,171.2,0.999 515,-1,277.7,800.8,80.8,265.5,0.999 515,-1,398.7,24.3,46.8,161,0.996 515,-1,570.2,69.6,44.1,156.6,0.851 515,-1,1044.6,931.5,75.8,149.5,0.122 337,-1,1221,30.9,62.4,119.1,1 337,-1,687.3,206.5,78,113.1,1 337,-1,1448.1,1.1,57.1,127.8,1 337,-1,1592.2,1.5,56,126.6,1 337,-1,404.1,578.2,104.9,249.2,1 337,-1,448.5,105.3,73.1,195.7,1 337,-1,1726.8,71.7,57.3,152.8,1 337,-1,1721.2,457.5,77.8,212.8,1 337,-1,108.7,349.6,51.7,189.6,1 337,-1,285.8,131.1,54.6,173.8,1 337,-1,231.9,349.4,58.5,191.9,1 337,-1,900.3,453,70.3,208.3,1 337,-1,361.8,107.5,57.3,177.6,1 337,-1,960.4,396.3,64.7,193.5,1 337,-1,979,65.5,63.8,179.2,1 337,-1,797.7,156.2,58,168.2,1 337,-1,926.5,22.5,66.2,176.4,1 337,-1,1540.2,611.6,81.7,247.1,1 337,-1,1830.8,501.9,68.7,207,1 337,-1,211.7,140.3,55.4,162.2,1 337,-1,1038.6,72.3,52.9,161.9,1 337,-1,521.4,98.7,40.2,170.6,1 337,-1,505.1,493.1,67.5,223.9,1 337,-1,839.6,444.7,84,219.4,1 337,-1,719.1,95.8,53.4,168.9,0.999 337,-1,774.9,96.5,42.2,158.1,0.999 337,-1,418.5,49.8,58.4,170.2,0.997 337,-1,418.6,365.1,78.5,207.9,0.997 337,-1,943,918.8,68.8,162.2,0.975 337,-1,428.9,876.6,109.6,204.4,0.124 337,-1,852,1,43.5,86.8,0.12 259,-1,1221.4,31.5,61.7,118.5,1 259,-1,686.8,205.9,79.5,113.9,1 259,-1,1623.9,13.1,60.9,148,1 259,-1,287.5,130.5,55.4,168.8,1 259,-1,356,104.6,53.7,181.2,1 259,-1,107.8,352,52,188.9,1 259,-1,797,153.7,59.6,173.7,1 259,-1,1480.5,51.1,52.9,147.1,1 259,-1,213,126.5,55.8,167.3,1 259,-1,1720.4,457.6,78.5,211,1 259,-1,451.8,159.2,75.9,212.7,1 259,-1,937.7,102.7,72.8,183.6,1 259,-1,387.2,493.5,85.7,231.9,1 259,-1,1396.9,565,100.3,249.5,1 259,-1,704.5,1.1,54.8,157.4,1 259,-1,227.4,453.8,61.2,200,1 259,-1,1060.9,109.2,60.7,184.8,1 259,-1,1140.9,102,50.3,165.9,1 259,-1,240.2,747.6,88.1,278.3,1 259,-1,866.5,361.6,77.8,191,1 259,-1,887.1,110.9,49.3,156.6,1 259,-1,797.6,350.2,85.3,209.4,1 259,-1,487.9,374.2,70.3,227.9,1 259,-1,148,569.1,84.1,247.8,1 259,-1,371.2,5.6,56.1,157.5,1 259,-1,514.1,118.1,55.2,173.4,1 259,-1,575.6,384.1,64.6,213.2,1 259,-1,758.5,101.4,50.6,173,1 259,-1,936,914.4,78.7,166.6,0.995 259,-1,678.3,313.9,54.9,168.2,0.436 234,-1,1221.7,30.3,62.4,119.3,1 234,-1,685.9,207.1,80.3,112.6,1 234,-1,1489,64.5,55.1,152.1,1 234,-1,380.3,543.5,95.4,239.6,1 234,-1,1093.4,125.8,66.2,182.1,1 234,-1,796.6,152,58.6,176.4,1 234,-1,1581.2,1,58.5,144.8,1 234,-1,438.2,180.6,78.7,215.1,1 234,-1,288.3,126.6,56.1,172.5,1 234,-1,356,106.5,53.8,178.6,1 234,-1,705.7,1.1,55.1,159.7,1 234,-1,1174.2,127.4,52.7,160.4,1 234,-1,211.7,125.3,56.2,169.1,1 234,-1,1720.8,456.6,78.7,212.4,1 234,-1,1360.2,569.3,103.9,241.5,1 234,-1,108.5,350.2,49.9,187.3,1 234,-1,516.1,121.3,50.6,179,1 234,-1,220.9,486.1,58.6,204,1 234,-1,922.8,126.3,70.3,184.9,1 234,-1,168.2,696.8,97.3,261.3,1 234,-1,505.6,350.4,71.7,216.3,1 234,-1,836.2,336.1,78.7,194.3,1 234,-1,780.2,327.3,75.8,207,1 234,-1,590.3,357.3,61.2,198.6,1 234,-1,117.8,639.7,86,246.3,0.999 234,-1,933.2,900.9,73,180.1,0.994 965,-1,685.9,206.5,80.2,113.7,1 965,-1,1768.5,152.1,67.8,178,1 965,-1,793.4,140.5,72.8,173.1,1 965,-1,1221.3,31,61.4,119.7,1 965,-1,926.1,331.8,73.7,216.3,1 965,-1,1153.4,87.8,64.2,172.9,1 965,-1,328.9,796.8,89.1,272.1,1 965,-1,1646.9,115.8,58.6,172.5,1 965,-1,1573.6,588.8,104.7,236.6,1 965,-1,847,346.1,67.7,203.1,1 965,-1,1471.5,149.5,65.9,163.3,1 965,-1,1402.4,2.1,47.8,103.3,1 965,-1,416.8,245.4,71.4,197.8,1 965,-1,1720.9,454.4,78.3,212.9,1 965,-1,751.7,72.1,55.1,163.6,1 965,-1,229.5,137.3,55.3,165.2,1 965,-1,1459.8,1,63.1,104.7,1 965,-1,488.7,232,63.5,179.8,1 965,-1,333.1,242.5,63.8,191.7,1 965,-1,441.6,74.3,54.3,179.8,1 965,-1,311.5,423.4,85.4,197.9,1 965,-1,1217,723.8,93.5,267.8,1 965,-1,549.5,118.1,55.7,172.2,1 965,-1,392.6,415.9,65.4,214,1 965,-1,1741.1,674,94.6,251.5,1 965,-1,289.7,124.2,53.7,172,1 965,-1,313.1,1,48.5,129.3,0.999 965,-1,483.2,51.7,54.6,162.4,0.999 965,-1,433.2,3,51.4,141.9,0.996 965,-1,383.4,2,52.8,120.7,0.565 398,-1,1222.2,30.2,61.1,117.9,1 398,-1,686.3,206.2,79.4,113.5,1 398,-1,1639.9,42.9,61.9,168.1,1 398,-1,1771.9,115.1,66.7,165.3,1 398,-1,946.8,24.5,64.6,171.7,1 398,-1,453.1,270,77,206.7,1 398,-1,358.4,107.1,55.2,178.5,1 398,-1,365.5,1,62.2,104.8,1 398,-1,312.1,563.5,93.6,249.4,1 398,-1,219.1,140.7,62.8,156,1 398,-1,828.3,1,56.1,121.4,1 398,-1,284.7,127.6,55,168.1,1 398,-1,1158,473.7,69,199.7,1 398,-1,1716.8,460.5,81,208.3,1 398,-1,795.6,152.1,58.6,171.1,1 398,-1,109,349.4,52.1,189.9,1 398,-1,431.2,588.8,70.8,242.7,1 398,-1,466.3,73.4,67.7,187.1,1 398,-1,549.1,68.5,56.9,170.9,1 398,-1,1008.9,40.9,55.4,159.9,1 398,-1,1596,625.4,88.8,249.4,1 398,-1,203.7,281.4,55.7,182.9,1 398,-1,852.2,518.3,95.2,231.6,1 398,-1,921.8,530.1,80.2,214.6,1 398,-1,714.5,1,51.8,140.6,1 398,-1,427.4,86.6,48.7,170.1,0.999 398,-1,709.8,87.5,61.1,178.3,0.996 398,-1,979.8,908.5,89.1,172.5,0.991 398,-1,1766.8,428.4,61,204.6,0.634 29,-1,686.7,205.8,79.9,113.8,1 29,-1,1207.3,30.1,72.2,120.5,1 29,-1,385.3,376.3,86.8,242.4,1 29,-1,703.7,1.9,56.7,156.8,1 29,-1,1486.9,69.7,55.4,148.5,1 29,-1,1361.6,566.7,105.2,245.5,1 29,-1,1723.7,457.1,75.9,210,1 29,-1,1828.2,244,65,187.5,1 29,-1,795.1,149.5,62.4,174.9,1 29,-1,492.6,163.4,86.5,190.7,1 29,-1,981.5,198.8,76.2,179.6,1 29,-1,102.4,547.3,85.2,252.6,1 29,-1,193.8,374,68,197.1,1 29,-1,216,128.4,47.8,163.3,1 29,-1,356,104.6,53,181.5,1 29,-1,412.5,82.5,53.9,160.9,1 29,-1,284.8,124.7,53.4,170.5,1 29,-1,1,825.8,58.6,237,1 29,-1,1596.9,236.6,57.4,187.6,1 29,-1,872,137.2,54.5,185.1,1 29,-1,1370.5,189.5,46.3,171.2,1 29,-1,456.8,58.3,46.1,161.5,1 29,-1,914.9,153.3,51.3,163.8,1 29,-1,1017,154,71.2,187.6,0.9 653,-1,687.4,206.7,78.9,113.1,1 653,-1,1480,2.8,61,146.2,1 653,-1,546.7,111.6,63.9,175.5,1 653,-1,1711.8,456.3,95.2,209.9,1 653,-1,1221.1,29.7,63.3,122.1,1 653,-1,801.2,144.1,65.9,174.2,1 653,-1,359.7,112.2,50.7,172.5,1 653,-1,450.5,535.7,87.3,244.2,1 653,-1,333.3,329.4,68.7,205.5,1 653,-1,1576.6,588.5,95.1,237.3,1 653,-1,1614.6,172.9,71.7,187,1 653,-1,751.6,83,46,151.4,1 653,-1,269.2,236.4,61,182.5,1 653,-1,409.4,1,59.5,155.3,1 653,-1,217.4,220.4,56.1,202.9,1 653,-1,424.2,118.5,56.2,160.1,1 653,-1,471.4,104.8,47.1,173.9,1 653,-1,1171.5,1,69.8,123.2,1 653,-1,287.5,125.9,51.9,170.8,0.999 653,-1,1449.6,921.4,88.4,159.6,0.996 653,-1,354.6,2.2,48.1,137.2,0.873 653,-1,1367,937.8,90.8,143.2,0.102 579,-1,1221,30.2,62.4,120.1,1 579,-1,686.5,205.6,79.8,113.9,1 579,-1,1480.8,5.5,60.3,143.9,1 579,-1,1648.4,1,54.9,134.1,1 579,-1,377.3,246.3,67.7,197.2,1 579,-1,800.2,146.3,63.4,171.1,1 579,-1,212.9,272.7,63.7,195.6,1 579,-1,1716.1,455.7,85.8,210.8,1 579,-1,1574.8,587.9,93.2,234.7,1 579,-1,288.9,124.8,52,169.3,1 579,-1,1651.6,245.9,77.5,206,1 579,-1,216.7,137.1,51.8,160,1 579,-1,555.2,111.7,52,175.6,1 579,-1,1840.9,258.8,70,179.4,1 579,-1,874.4,1.9,51.9,101.5,1 579,-1,754.5,79.6,44,155.8,1 579,-1,457.6,119.4,50.1,154.4,1 579,-1,357.9,108.5,54,176.9,1 579,-1,155.1,251.6,61.4,210.2,1 579,-1,707,575.2,84.5,248.9,1 579,-1,1042,823.7,133,257.3,1 579,-1,422.9,58.1,46.5,168.5,0.999 579,-1,1006.1,938.2,78.5,142.8,0.263 579,-1,1123.9,836.1,87.7,240.3,0.184 436,-1,1222,29.7,62,119.2,1 436,-1,938,5.1,63.1,165.2,1 436,-1,687.1,206.3,78.3,112.8,1 436,-1,1008.3,20.2,53.7,156.3,1 436,-1,359.1,110.3,53.9,177,1 436,-1,1323.4,526.4,72.9,198.7,1 436,-1,450.2,229.9,76.7,199.2,1 436,-1,846.7,1,54,135.3,1 436,-1,111.3,352.8,53.2,187.2,1 436,-1,1717.5,458,80.8,210,1 436,-1,1687.1,86.2,67.4,177.8,1 436,-1,230.4,242.6,52.7,177.6,1 436,-1,285.2,130.3,55.1,167.1,1 436,-1,274,625,91.5,259.5,1 436,-1,1752.6,144.7,62.2,169.5,1 436,-1,373.8,654,71.4,243.5,1 436,-1,798.1,151.1,53.1,172.7,1 436,-1,762,566.1,81.6,246.4,1 436,-1,1847.1,416.2,73.9,189.6,1 436,-1,1566.5,613.8,83,244.1,1 436,-1,535.9,72,54.6,168.1,1 436,-1,876.5,571.4,108.5,243.6,1 436,-1,361.9,1,62.7,129.5,1 436,-1,431.8,114.1,57.3,171.2,1 436,-1,420.9,1,45.9,129.1,1 436,-1,953.8,587.4,84.8,220.5,1 436,-1,220.3,138.4,65.3,152.9,0.999 436,-1,714.6,86.4,57.5,179.2,0.999 436,-1,727.1,2,46.5,105,0.999 436,-1,756.5,82.9,44.8,160.3,0.99 436,-1,1000.3,928.4,83.5,152.6,0.974 436,-1,1774.4,71.7,69,166.5,0.505 189,-1,1221.9,30,61.5,120.1,1 189,-1,212,126.3,54.9,167.6,1 189,-1,1489.5,67.8,55.2,150.4,1 189,-1,686.7,207.4,79.4,111.7,1 189,-1,108.8,347.1,49.9,191,1 189,-1,417.1,637.4,89.4,254.9,1 189,-1,1357.9,567.5,104.6,245.7,1 189,-1,704.9,1,55.3,159,1 189,-1,870.1,171.9,86.1,189.7,1 189,-1,356.4,106.4,54.8,178.8,1 189,-1,288.9,127.8,55.7,169.7,1 189,-1,1720.4,456.9,78.4,212.1,1 189,-1,399.9,39.6,65.1,163.8,1 189,-1,525.4,310.4,63.1,202.9,1 189,-1,1177.3,148.6,65.1,182.9,1 189,-1,26.8,621.8,117.2,245.2,1 189,-1,420.5,220.1,76.7,218.6,1 189,-1,233.9,555.5,61.4,210.1,1 189,-1,795.2,150.9,61.9,174.3,1 189,-1,1240.1,146.5,44.5,167,1 189,-1,798,295.2,71.5,185.2,1 189,-1,537.3,141.1,58.4,159.6,1 189,-1,1074.9,143.4,51.3,163,1 189,-1,747.4,278.2,70.4,201.6,1 189,-1,96.2,548.9,85.7,246.2,0.995 189,-1,981.1,919.6,74.9,161.4,0.993 189,-1,452.1,4.5,57.4,82.7,0.829 558,-1,1221.3,30.5,62.3,119.7,1 558,-1,687.1,206.1,78.7,114.5,1 558,-1,1488.2,4,59.2,146.3,1 558,-1,537,113.6,61,173.5,1 558,-1,1584.8,3.5,54.9,141.8,1 558,-1,788.4,146,65.3,175.5,1 558,-1,377.9,222.8,64.1,194,1 558,-1,1664.1,274.5,80.3,199.8,1 558,-1,1720.5,454.4,81.3,211.7,1 558,-1,195.1,294.9,67.5,193.3,1 558,-1,1658.7,1.4,54.1,148.1,1 558,-1,872.4,1,53.6,109.4,1 558,-1,1808.3,234.6,71,183.2,1 558,-1,751.1,592.5,89.6,256.4,1 558,-1,288.8,121.3,52.1,173.1,1 558,-1,422.1,143.4,51.9,155.4,1 558,-1,985.8,2.8,52.4,93.7,1 558,-1,219.6,136,56.7,160.1,1 558,-1,1596.6,589.6,71,239.1,1 558,-1,140.6,265.1,52.3,212.3,1 558,-1,753.3,79.4,48.2,156.8,1 558,-1,358.7,109,53.8,170.5,1 558,-1,461.5,87.9,64.4,185.9,1 558,-1,242.8,894.8,82.7,186.2,1 558,-1,1014.8,783.3,116.2,255.3,0.999 558,-1,413.8,43.7,50,184.1,0.996 558,-1,1097.1,796.3,86.1,244.3,0.964 558,-1,929.8,2.4,55.9,93.6,0.841 558,-1,1025.6,952.5,75.4,128.5,0.294 457,-1,1221.8,30.8,62.1,118.7,1 457,-1,936.6,1,58.5,152.5,1 457,-1,686.8,205.9,79.4,113.9,1 457,-1,444.8,201.8,73.1,198.2,1 457,-1,1008.7,6.7,53.4,155.6,1 457,-1,359,105.2,55.9,182.4,1 457,-1,1707.9,456.1,92.6,211.6,1 457,-1,1738.8,161.1,60,164.3,1 457,-1,1428.7,546.9,85.1,209.2,1 457,-1,869.2,1,55.9,137.6,1 457,-1,522.5,74.4,55.8,172.7,1 457,-1,1830.4,384.7,79.9,210.2,1 457,-1,264.6,220.5,52.1,177.7,1 457,-1,113.9,348.7,55.7,191.6,1 457,-1,1547.9,610.9,75.4,246.8,1 457,-1,286.6,126.8,54.4,170.2,1 457,-1,890.9,603,111.7,237.4,1 457,-1,244.6,662.7,98.1,261.2,1 457,-1,802.7,151,46.1,175.2,1 457,-1,219.5,137.6,59,159.2,1 457,-1,1659.6,360.7,63.8,195.5,1 457,-1,342.6,695.2,73.1,247.4,1 457,-1,800.3,579.4,86.9,250.1,1 457,-1,1508.2,1,54.3,108.6,1 457,-1,753.6,94,53.2,146.4,1 457,-1,418,1,45,154.7,0.999 457,-1,446,40.4,70.4,189.2,0.999 457,-1,974.9,619.2,86.9,228.7,0.998 457,-1,1026.8,921.3,85,159.7,0.998 457,-1,1702.7,54,62.7,192.2,0.997 457,-1,711,92.4,53.2,168.8,0.993 457,-1,429.2,139,48.1,155.3,0.933 457,-1,359.2,12.4,59.2,151,0.088 400,-1,1222.5,30.3,61.1,118.3,1 400,-1,686.4,206,79.2,114.2,1 400,-1,1642.6,46.2,61.9,167.4,1 400,-1,364.4,1,63.9,107.8,1 400,-1,357.9,106.6,56,178.8,1 400,-1,944.7,22.6,64.6,172,1 400,-1,455,267.6,78.2,209.8,1 400,-1,1771.9,116.7,64.3,165.2,1 400,-1,827.1,1,56.5,123.6,1 400,-1,309.9,565.5,88.6,248.1,1 400,-1,1720.7,459.7,77,208.4,1 400,-1,218,141.1,64.5,156.8,1 400,-1,795.9,152.6,59.3,171.6,1 400,-1,468.1,70.7,65.8,190.7,1 400,-1,550.2,66.4,57.8,173.1,1 400,-1,284.8,130.3,54.2,164.7,1 400,-1,108.9,348.9,52.5,191.5,1 400,-1,1007.5,39.7,55.8,160,1 400,-1,1167,474.8,66.4,203.3,1 400,-1,428.6,590.9,70.9,241.3,1 400,-1,204.1,278.2,55,182.7,1 400,-1,1593.1,621,93.9,252.9,1 400,-1,851.5,519.1,97.9,233.8,1 400,-1,924.6,532.4,81.1,217.4,1 400,-1,426.3,87.5,49.1,171.8,1 400,-1,716.6,1,51.5,139.2,1 400,-1,709.1,90.4,63.3,174.7,0.999 400,-1,979.9,909.9,88.2,171.1,0.989 400,-1,428.2,5.8,22.2,87.3,0.067 663,-1,1220.8,29.4,61.8,119.7,1 663,-1,686.9,205.6,79.9,114,1 663,-1,1480.6,3.7,61.1,143.9,1 663,-1,1711.5,457,94.4,207,1 663,-1,801.5,144.4,63.3,172.2,1 663,-1,554.1,110,58.1,177.9,1 663,-1,360,114.1,49,168.2,1 663,-1,1616.5,167.8,76.9,183.8,1 663,-1,1575.4,587.7,97.5,235,1 663,-1,1136.1,1.5,68.9,112.1,1 663,-1,434.1,527.8,76.9,244.8,1 663,-1,321.9,332.8,70.5,211.9,1 663,-1,476.9,111.4,47.9,179.7,1 663,-1,750.7,77.9,47.2,158.3,1 663,-1,224.4,212.4,58.7,200.1,1 663,-1,421.7,122.6,64.2,160.8,1 663,-1,407.5,1,57.5,154.7,1 663,-1,277.6,228.6,55.1,181.3,1 663,-1,1420.1,897.8,101.1,183.2,1 663,-1,287.6,123.8,53.4,171.5,1 663,-1,352.2,1.8,54.1,147.8,0.999 663,-1,1342,914.8,86.4,166.2,0.996 663,-1,1501.4,163.3,50,171,0.968 428,-1,1221.5,30.8,62.1,118.7,1 428,-1,940.1,5.4,63.6,167.6,1 428,-1,686.8,205.8,79.1,114.4,1 428,-1,358.6,109,54.6,178.1,1 428,-1,448.1,233.6,80.9,203.2,1 428,-1,109.4,349.6,54.7,190.6,1 428,-1,1673.9,81.8,64.1,174.7,1 428,-1,841.2,1,53,135.8,1 428,-1,1718.8,457.1,79.1,210.1,1 428,-1,1286.8,507.8,72.5,208.1,1 428,-1,749.1,557.6,77.1,255.6,1 428,-1,283.5,616.9,95,255.1,1 428,-1,1009.2,22.9,54.7,161.7,1 428,-1,538.2,71.3,57.8,167.2,1 428,-1,285.5,129.9,53.9,165.4,1 428,-1,1573.9,614.9,91.5,245.6,1 428,-1,798.2,150.3,54,173.9,1 428,-1,1759.3,137.6,57.1,167.8,1 428,-1,220.5,250.3,53,181.4,1 428,-1,382.3,644.4,71.5,241.4,1 428,-1,869.6,558.3,103.8,240.6,1 428,-1,431.2,107.7,55.9,165.3,1 428,-1,357.5,1.9,69.3,127.1,1 428,-1,220.4,138.1,75.3,164.4,1 428,-1,715.3,89.6,62,175.2,1 428,-1,946.1,571.6,86.5,223.3,1 428,-1,424,1.2,43,127.8,0.999 428,-1,1854.1,422,66.9,187.6,0.999 428,-1,722.9,1.5,50.4,112.5,0.999 428,-1,1788.8,71.7,79.6,178.5,0.998 428,-1,988.6,930.4,83.7,150.6,0.911 428,-1,455.2,58.4,65.6,187.5,0.611 465,-1,1222,31.2,62.2,118,1 465,-1,687.2,205.7,78.8,113,1 465,-1,934.9,1,58.3,148.7,1 465,-1,1007.3,1,53.7,157.9,1 465,-1,451.7,190.4,69.5,198,1 465,-1,240,680.7,96.4,254.9,1 465,-1,1809.4,368.4,84.4,215.1,1 465,-1,1650.5,349,61,195,1 465,-1,1705.9,456.9,93.8,210.7,1 465,-1,274.8,207.8,52.7,178.9,1 465,-1,359.1,110.2,54.2,177.6,1 465,-1,1731.4,170,62.7,160.5,1 465,-1,876.2,1,54,131.9,1 465,-1,803.9,147.8,47.2,173.5,1 465,-1,1673.6,52.9,65.9,174.6,1 465,-1,334.9,713.6,74.1,247.1,1 465,-1,518.1,77.5,59.2,175,1 465,-1,1506.9,2.7,57.9,108.6,1 465,-1,1541.8,607.2,77.3,244.4,1 465,-1,808.9,583.9,91.7,249.9,1 465,-1,217.8,136.2,62.2,160.2,1 465,-1,118.7,347.7,53.3,185.7,1 465,-1,753.8,94.4,52,144,1 465,-1,897.9,617.6,111.4,246.2,1 465,-1,981.1,633.9,88.1,223.5,0.999 465,-1,1474.4,564.9,82.1,205.6,0.999 465,-1,446.1,41.3,73,184.4,0.999 465,-1,416.3,2.4,43.8,155.2,0.999 465,-1,713.7,89.8,51.9,167,0.997 465,-1,286.2,127.3,52.3,163.4,0.997 465,-1,1027.1,922.9,85.9,158.1,0.996 465,-1,431.7,141.9,49.2,176.3,0.391 465,-1,1732.9,71.5,51.7,160.4,0.164 639,-1,1220.7,31.9,62.3,117.5,1 639,-1,687.7,205.9,78.5,114.2,1 639,-1,1481.3,5.3,60.2,143.4,1 639,-1,801,145,64.5,172.9,1 639,-1,340.7,314.3,67,203.5,1 639,-1,546.4,114.4,63.5,172.4,1 639,-1,1708.1,454.9,100.2,213.8,1 639,-1,359.1,110.1,51.8,174.8,1 639,-1,494.2,538.5,96,244.6,1 639,-1,1574.4,589.1,95.8,235.3,1 639,-1,262.8,241.8,58.3,188.7,1 639,-1,1622.2,195.1,68.9,187.2,1 639,-1,206.2,229.3,61.4,200.2,1 639,-1,752.5,81.7,44.7,155.2,1 639,-1,419.5,115.8,55.5,156.5,1 639,-1,287.5,126.4,50.6,170.5,1 639,-1,417.3,2,59.9,146.1,1 639,-1,460.5,92.2,50.2,178.1,0.999 639,-1,354.6,1,56.3,131.7,0.999 639,-1,489.8,57.7,47.1,162.1,0.994 639,-1,236.5,135.2,43,165.9,0.951 639,-1,1504.6,960.9,78.1,120.1,0.246 605,-1,1221.6,30.5,61.5,119.5,1 605,-1,687.1,205.8,79.2,114,1 605,-1,1480.9,3.6,61,145.4,1 605,-1,801.1,145.7,64.5,170.1,1 605,-1,363.7,275.6,66.2,198,1 605,-1,1619.5,2.5,55.8,107.6,1 605,-1,237.7,263.8,63.4,188.2,1 605,-1,1709.3,457.6,94.9,208.9,1 605,-1,1646.8,226.3,69.7,197.2,1 605,-1,1573.9,588.6,97.7,235.8,1 605,-1,169.6,244.3,59.5,205.5,1 605,-1,561.5,111.9,51.5,176.7,1 605,-1,287.2,126.4,52,173.1,1 605,-1,488.8,93.4,45.9,161.5,1 605,-1,359.3,113.1,51.8,175.7,1 605,-1,219.4,137,54.4,160.1,1 605,-1,433.3,71.7,50.2,170.1,1 605,-1,1084.6,879.9,123.4,201.1,1 605,-1,752.6,80.4,43.7,156.2,1 605,-1,395.1,90.7,50.9,160.5,0.957 605,-1,619.4,551.8,96.7,256.1,0.22 1014,-1,1221.7,30.2,62.1,116.2,1 1014,-1,686.7,206.4,79.8,113,1 1014,-1,792.3,140.6,75.4,172,1 1014,-1,496.3,286.3,69.3,188.1,1 1014,-1,289.9,126.5,53,170.9,1 1014,-1,384.3,291.1,79.3,199.7,1 1014,-1,1229,154.2,59.7,169.3,1 1014,-1,1575.4,590.6,102.3,235.9,1 1014,-1,842,281.4,67.6,197.6,1 1014,-1,537.6,122,62.6,169.6,1 1014,-1,1828.1,212.8,60.1,189.6,1 1014,-1,1156.1,614.4,89.2,262.1,1 1014,-1,1468.5,185.5,66.2,164.7,1 1014,-1,302.1,297.3,62.7,199,1 1014,-1,231.4,141.4,54,160.1,1 1014,-1,293.2,489.8,92.1,208.5,1 1014,-1,927.5,270,68.2,207.4,1 1014,-1,1720.2,455.5,79.1,210.4,1 1014,-1,751.6,72.7,54.2,162.6,1 1014,-1,1692.7,177.7,55.5,166.7,1 1014,-1,1727.6,675.1,101.9,244.9,1 1014,-1,380.6,471,63.3,225,1 1014,-1,437.4,166.7,67.8,195.5,1 1014,-1,313.7,2.7,40.3,128.2,1 1014,-1,588.1,552.4,87.9,243.1,1 1014,-1,355.3,898.5,96.3,182.5,0.999 1014,-1,390.6,169.8,53,166.4,0.997 1014,-1,503.5,104.9,52.7,143.8,0.98 1014,-1,434.7,74.7,63.7,166.5,0.162 1014,-1,385.7,1,58.2,154.3,0.158 434,-1,1221.8,30.4,61.6,118.7,1 434,-1,938.4,5.3,62.5,165.1,1 434,-1,686,205.8,80.5,113.2,1 434,-1,1318.2,521.4,69.9,202.5,1 434,-1,358.6,107.4,52.9,179.6,1 434,-1,449.1,226.7,78.8,201.9,1 434,-1,1714.9,460,82.2,205.7,1 434,-1,1009,21.6,54.1,158,1 434,-1,845.4,1,53.9,135.1,1 434,-1,110.7,350.7,53.8,188.6,1 434,-1,1682.1,86.6,67.1,177.4,1 434,-1,279.8,623.8,89.8,253,1 434,-1,759.9,561.5,81.1,256.2,1 434,-1,284.9,129.2,54.3,166.7,1 434,-1,1756.2,145.7,60.8,166.1,1 434,-1,798.2,150.5,53.6,173.1,1 434,-1,228.8,245,52,174.9,1 434,-1,378.6,651.6,69.2,243.2,1 434,-1,1567.5,614,86.5,245.6,1 434,-1,1848.1,416.4,72.9,192.1,1 434,-1,534.7,72.1,54.8,165.7,1 434,-1,873.3,570.4,106.6,242.2,1 434,-1,361.7,1,64.3,129.3,1 434,-1,421.3,1,45.5,128.1,1 434,-1,431.6,110.6,57.1,172.2,1 434,-1,954.4,582.6,84.8,218.8,1 434,-1,221.8,138.2,71.1,158.2,1 434,-1,713.4,87.2,58.8,178,0.999 434,-1,726.4,2.5,47.9,107.6,0.991 434,-1,759.4,83.7,42.3,156.7,0.99 434,-1,1762.5,73.5,83.9,175.4,0.988 434,-1,997.6,929.8,83.8,151.2,0.94 434,-1,462,53.3,57.5,187.7,0.218 34,-1,1207.4,29.7,74.4,120.2,1 34,-1,686.5,205.8,80.1,113.8,1 34,-1,388.1,372.4,90.6,236.6,1 34,-1,1362.3,566.6,104.6,245.2,1 34,-1,1486.3,69.7,56.4,149.7,1 34,-1,704.2,1.8,56,158,1 34,-1,1723.4,457,75.3,210.4,1 34,-1,957.4,198.5,77.8,181.1,1 34,-1,187.6,371.1,68.5,199,1 34,-1,215.1,126.1,48.5,166.2,1 34,-1,485.2,164,88.7,193.1,1 34,-1,795,149.9,61.5,174.1,1 34,-1,102.8,548.7,84.3,250.4,1 34,-1,283.9,124.3,54,171.1,1 34,-1,356.2,108.1,54.8,175.6,1 34,-1,1836.2,249.9,68.5,190.5,1 34,-1,868.2,141.4,56,183.6,1 34,-1,1010.1,157.8,79.5,180.4,1 34,-1,1.9,814.9,61.5,235.9,1 34,-1,1359.1,185.8,50.6,164.8,1 34,-1,451.5,58.2,48.9,168.9,1 34,-1,916,156,45.6,166.6,0.999 34,-1,1588.1,232.6,55.9,176.6,0.999 34,-1,410,79.7,49.3,158.4,0.99 896,-1,1221.4,30.2,61.7,118.5,1 896,-1,687.2,205.9,78.9,114.4,1 896,-1,793.3,138.9,76.5,173.8,1 896,-1,1485.3,102.6,58,147.6,1 896,-1,479.4,186.9,63,181.5,1 896,-1,300.4,668.6,87.8,253.1,1 896,-1,1107,17.2,54.1,154.9,1 896,-1,1426.9,1,51.5,150.9,1 896,-1,1574.8,590.6,103.8,235.6,1 896,-1,558.9,116.1,58.9,174.8,1 896,-1,338.9,347,78.8,184.2,1 896,-1,1722.5,454.3,76.3,213,1 896,-1,302.9,161.5,67.3,191.9,1 896,-1,1594.8,47.5,50.2,157.5,1 896,-1,882.2,453.2,67.3,227.7,1 896,-1,468.1,1.6,52.1,151,1 896,-1,753,70.6,54.7,163.2,1 896,-1,421.9,331,55.3,201.9,1 896,-1,1708.1,70.1,55.3,174.9,1 896,-1,965.1,436.2,86.7,231.6,1 896,-1,397.3,184,58.8,177.4,1 896,-1,241.2,133.2,57.5,170.1,1 896,-1,1748.3,679.2,89.6,237,1 896,-1,254.1,1.5,53.4,118.6,1 896,-1,313.4,1.2,48.5,128.5,1 896,-1,1498.3,1,61.2,145.3,1 896,-1,414.9,56.3,55.9,177.4,1 896,-1,1333.5,916,95.6,165,0.999 896,-1,355.3,171.2,40.4,167.1,0.074 786,-1,1221,29,62.8,119.8,1 786,-1,687,204.5,80.1,114.6,1 786,-1,1723.7,453.1,75,212.9,1 786,-1,547.4,113.1,62.1,178.8,1 786,-1,1575.9,589.5,99.5,233.8,1 786,-1,1486.6,24.6,58.9,147.6,1 786,-1,292,499,78.5,232,1 786,-1,476.2,82.5,60.8,177,1 786,-1,781.8,128.5,55.1,180,1 786,-1,278.2,170.2,58.9,192.8,1 786,-1,1442.2,66.8,50.7,163.2,1 786,-1,447.2,223.2,54.1,186.8,1 786,-1,749.9,72.6,54.4,161,1 786,-1,391.5,226.4,67.4,178.1,1 786,-1,336.4,190.4,50.7,173,1 786,-1,234.2,134.3,50,164.1,1 786,-1,581.6,575.5,70.5,250.7,1 786,-1,254.3,1,52.3,120.2,1 786,-1,1038.8,641.2,75.9,250.6,1 786,-1,1102,617.6,78.6,244.4,1 786,-1,424.2,83.8,55.5,167.4,1 786,-1,451.9,3.5,43.2,94.2,0.137 491,-1,1221.2,31.1,62.7,117.2,1 491,-1,686.2,205.7,79.9,113.8,1 491,-1,999.2,1,55.6,139.8,1 491,-1,1498.8,1,57.6,124.7,1 491,-1,1733.1,181.5,68.7,174.2,1 491,-1,1695.2,458.4,102.2,210.4,1 491,-1,801.2,602.6,93.2,257.9,1 491,-1,1811.7,172.5,70.8,182.8,1 491,-1,305.6,192.4,49.3,169.3,1 491,-1,461.7,155.7,66.7,195.5,1 491,-1,874.7,1,53.7,128.8,1 491,-1,931.5,1,55.9,132.3,1 491,-1,801.2,143.2,54.1,176.1,1 491,-1,138,338,65.9,188.3,1 491,-1,409.4,160.7,59.5,180.9,1 491,-1,215.2,723,98,268.8,1 491,-1,301.6,757.8,79.8,259.3,1 491,-1,920.4,657.5,112.2,248.6,1 491,-1,1539.9,600.5,85.1,241.3,1 491,-1,1692.6,43.5,52.4,165.7,1 491,-1,359.3,109,54.5,177,1 491,-1,218.3,136,62.4,164.9,1 491,-1,1635.1,31.1,59.9,175.5,1 491,-1,1762.4,346.6,79,214.9,1 491,-1,448.6,19.8,76,181.9,1 491,-1,714,94,59.6,165.4,1 491,-1,1628.5,326.3,60.8,193.5,1 491,-1,503.9,91.4,64.7,170.7,0.999 491,-1,1611,588.4,74,221.4,0.999 491,-1,409.6,9.3,45.5,163.2,0.999 491,-1,1009.9,674.4,72.2,232.6,0.993 491,-1,753.5,98.8,47.7,141.9,0.916 491,-1,289.5,134.3,49,160.2,0.811 932,-1,1221.4,29.7,61.8,119.6,1 932,-1,686.8,205.8,79.8,113.4,1 932,-1,793.6,140.1,75.4,173.5,1 932,-1,449.3,214.1,69.9,190.8,1 932,-1,1127.8,48.7,58.7,170.9,1 932,-1,1485.8,1,61,123.9,1 932,-1,1576.4,591.5,101.8,237.2,1 932,-1,555.9,116.1,58.5,174.8,1 932,-1,1477.6,117.9,60,163.2,1 932,-1,1269.6,806,96.6,275,1 932,-1,1719.7,455.2,80.4,211.2,1 932,-1,1424.8,1.7,47,125.8,1 932,-1,750.4,71.4,56.2,161.2,1 932,-1,861.7,401.4,62.3,209.7,1 932,-1,946.5,382.4,76.1,220.5,1 932,-1,239,133.2,56.2,167.5,1 932,-1,1620.3,79.1,56.1,166,1 932,-1,315.2,730.9,89.2,262.9,1 932,-1,1734.9,113.2,56,175.3,1 932,-1,473.8,24.1,54.6,151.1,1 932,-1,330.8,380.4,78.4,196.5,1 932,-1,401.9,373.6,62.1,206.8,1 932,-1,1747.4,675.2,92.6,246.5,1 932,-1,302.6,161.4,67,199.8,1 932,-1,252.9,1,55.3,120,1 932,-1,365.1,215.6,64.4,185.6,1 932,-1,427.7,66.3,61.4,181,1 932,-1,316.3,4.4,40.9,122.3,0.347 233,-1,1221.6,30.4,63.2,118.7,1 233,-1,685.8,207.4,81,111.9,1 233,-1,1489.9,64.9,54.6,151.6,1 233,-1,380.1,545.9,96.4,238.6,1 233,-1,705.4,1,55.3,159.6,1 233,-1,798.2,153.4,57,172.6,1 233,-1,1580.4,1.4,58,142.6,1 233,-1,107.7,350.3,52.2,189.5,1 233,-1,1177.4,127.7,51.8,159.3,1 233,-1,437.2,186.5,78.8,208.7,1 233,-1,1095,125.8,66.1,182.2,1 233,-1,288.3,125.8,56,173.1,1 233,-1,355.8,106,54.5,179.3,1 233,-1,210.9,125,57,168.9,1 233,-1,1721.1,456.6,78,212.3,1 233,-1,1359.4,569.5,105.1,239.7,1 233,-1,516.5,121.4,50.5,178.1,1 233,-1,505.4,348.7,72.5,215.9,1 233,-1,922.6,126.8,71,184.2,1 233,-1,220.6,488.2,58,207,1 233,-1,836.5,333.9,77.5,195.1,1 233,-1,168.5,697.4,97.6,260.1,1 233,-1,779.9,326.8,75.9,207,1 233,-1,590.7,355.8,60.7,196.3,1 233,-1,113.5,634.7,87,252.7,0.999 233,-1,934.5,900.3,72.2,180.7,0.992 125,-1,1221,30.1,62.9,119.9,1 125,-1,356.5,105.1,55.9,179.9,1 125,-1,1102.6,145.4,68.3,171.7,1 125,-1,1487.7,69.1,56.2,149,1 125,-1,108.6,350.7,49.8,187.3,1 125,-1,399.3,776.3,97.8,274.2,1 125,-1,704.3,1,56.4,158.4,1 125,-1,425,282.9,77.6,220.5,1 125,-1,288.9,127.3,54.3,169.2,1 125,-1,1721.3,456.7,77.2,211.1,1 125,-1,1358.8,567.1,105.1,244.9,1 125,-1,215.5,125.2,51.7,169.1,1 125,-1,912.9,211.2,72.3,190.1,1 125,-1,539.4,63.7,50.1,170.3,1 125,-1,1343.1,180,59,187.6,1 125,-1,523.8,245.8,74.3,202.4,1 125,-1,1222.4,176.6,43,167.8,1 125,-1,782.3,215.1,64.9,189.3,1 125,-1,478.2,168.8,58.4,163.5,1 125,-1,102.1,657.4,64,223.7,1 125,-1,447.8,1,52.7,145.1,1 125,-1,377.7,2.3,47.3,146,1 125,-1,479.4,41.1,59.3,163.7,1 125,-1,831.6,233.2,54,173,1 125,-1,694.9,204.2,69.7,112.7,0.999 125,-1,107.6,553.5,75.5,227.3,0.92 125,-1,1095.9,928.9,83.2,152.1,0.822 779,-1,1220.8,28.7,62.9,118.6,1 779,-1,687.7,204.5,78.7,115.2,1 779,-1,545.9,114.9,62.8,174.6,1 779,-1,782.4,134.7,57.8,172.9,1 779,-1,1723.6,452.2,76,214.4,1 779,-1,1489.8,15.9,59.8,151.6,1 779,-1,1575.5,590.2,100.9,235.1,1 779,-1,291.9,486.6,77.3,229.5,1 779,-1,1445,74.1,52.3,168,1 779,-1,448.7,209.2,54.4,191.3,1 779,-1,390.1,220.3,71.4,177.4,1 779,-1,276.6,171.2,56.2,194.3,1 779,-1,330.7,188.7,56.4,175.6,1 779,-1,473.2,79.3,59.4,166.7,1 779,-1,1572.7,77.2,59.8,171.5,1 779,-1,749.9,74.2,54,159.3,1 779,-1,234.3,134,51,165.1,1 779,-1,255.3,1.1,51.8,119.7,1 779,-1,1048.4,646.8,78.9,254.9,1 779,-1,562.9,571.2,75.9,253.8,1 779,-1,1118.6,633.8,82.5,253.1,1 779,-1,418,78.1,55.3,169.7,1 779,-1,357.9,104.6,48.3,193.5,0.709 274,-1,1222.1,31.8,62.2,117.6,1 274,-1,687.2,206.9,78.3,111.1,1 274,-1,387.9,15.6,61.3,157.1,1 274,-1,1641.5,21.7,57.9,153.7,1 274,-1,290.4,130,54.5,169.9,1 274,-1,455,152.2,75.2,204.4,1 274,-1,354.9,107.4,53.2,177,1 274,-1,1035.8,102,65.9,184.8,1 274,-1,1720.9,456.8,78,212.7,1 274,-1,108.3,349,50.7,190,1 274,-1,942.1,87.2,67.9,181.7,1 274,-1,1110.4,96.3,58.2,168.4,1 274,-1,703.9,1.8,54.5,156.9,1 274,-1,795.7,150.6,61.1,171,1 274,-1,219.8,130.6,54.4,161.5,1 274,-1,389.2,464.4,82.4,232.7,1 274,-1,1472,39.8,54.8,152.7,1 274,-1,190.6,574.5,88.7,250.9,1 274,-1,231.6,431.8,61.5,199.7,1 274,-1,265,781.4,88.5,272.9,1 274,-1,807.5,367.7,88,215.2,1 274,-1,1421.2,572.6,101.5,248.5,1 274,-1,725.6,337.8,67.1,181,1 274,-1,861.9,110.8,43.5,153.7,1 274,-1,876.9,383.8,77.2,190.9,1 274,-1,564.3,405.4,63.5,216.2,1 274,-1,752.4,101.5,47.2,172.9,1 274,-1,473.3,394.5,71,222.8,1 274,-1,514.1,114,51.2,176.5,1 274,-1,944.6,919.9,83.1,161.1,0.946 284,-1,1221.4,31.5,62.5,118.8,1 284,-1,687.1,207.2,78.3,112.2,1 284,-1,1022,98.7,61.6,182.8,1 284,-1,353,109.8,53.9,177.2,1 284,-1,287.5,128.9,56.1,174.5,1 284,-1,1100.2,93.7,51.1,164.1,1 284,-1,456.1,143.7,72.3,207.7,1 284,-1,1720,459.3,78.7,208.7,1 284,-1,941.1,81.1,63.6,175.7,1 284,-1,1657,28.3,57.3,155.8,1 284,-1,1469.3,30.9,54.9,150.4,1 284,-1,400,21.5,55.8,163.4,1 284,-1,390.6,452.6,83.6,229.7,1 284,-1,108.4,351.9,50.4,189,1 284,-1,704.3,1,54.9,158,1 284,-1,214.2,578.9,87.4,252.4,1 284,-1,796,149.1,61.2,174.1,1 284,-1,1440.8,582.9,94.7,244.2,1 284,-1,222.9,130.8,52.7,162.1,1 284,-1,282.8,802.5,95.6,278.5,1 284,-1,234.6,415.7,58.3,190.8,1 284,-1,885.1,398.7,76.3,197.5,1 284,-1,515,108.6,51.9,178.1,1 284,-1,551.8,423.8,66.8,211.6,1 284,-1,750.9,105.7,48.2,165.5,1 284,-1,841.6,110.9,51,155.8,1 284,-1,813,378.4,86.4,217.7,1 284,-1,764.1,348.9,67.8,181.8,1 284,-1,465.8,404.1,65.8,228.3,1 284,-1,943.4,921.2,85.5,159.8,0.953 455,-1,1221.8,30.9,61.6,118.2,1 455,-1,936.3,1,58.4,155,1 455,-1,445.5,209.3,72.3,192.6,1 455,-1,686.4,206.3,80.4,113.5,1 455,-1,358.5,104.8,55.7,183.5,1 455,-1,1009.3,9.5,52.8,155.6,1 455,-1,113.3,349.4,55,189.4,1 455,-1,1709.8,455.9,90.5,211.1,1 455,-1,1415.3,546.6,93.9,222.6,1 455,-1,1738.8,158.6,62.3,168,1 455,-1,523.1,74.9,55.2,173.3,1 455,-1,286.8,127.3,54.9,169.6,1 455,-1,1551.5,612.5,74.6,243.5,1 455,-1,261.9,224.2,52.9,176.5,1 455,-1,345.7,685.8,71.3,250.5,1 455,-1,1833.6,388.8,81.1,205.9,1 455,-1,889.2,600.5,114.5,241.4,1 455,-1,866.4,1.1,55,138.5,1 455,-1,1660.4,360.1,67.4,194.8,1 455,-1,802.3,151.2,45.6,171.9,1 455,-1,247.2,658.6,96.8,262.2,1 455,-1,797.7,577.7,87,249.6,1 455,-1,219.8,138.2,58.8,160.4,1 455,-1,753.7,93.8,53.4,153.4,1 455,-1,1508,1,55.1,107.1,1 455,-1,974.6,615.8,83.6,227.5,0.999 455,-1,419.7,1,44.1,153.3,0.999 455,-1,446.3,37.3,71.3,198.7,0.998 455,-1,1026.1,921.3,84.8,159.7,0.997 455,-1,427.6,133.9,51.5,152.7,0.98 455,-1,714.5,92.2,50,169.7,0.976 455,-1,358.9,8.3,60.3,140.4,0.494 455,-1,1712.9,55.4,59.4,219.9,0.445 455,-1,737.7,4.2,46.7,78.7,0.071 270,-1,1221.4,31.1,62,118.9,1 270,-1,381.4,9.7,61.6,159.9,1 270,-1,687.4,206.5,78.5,112.5,1 270,-1,290.6,128.4,55.8,171,1 270,-1,1635.4,19.5,61,150.1,1 270,-1,381.1,477.1,88.8,234.5,1 270,-1,455.8,154.4,74.4,211.4,1 270,-1,940.6,90.8,69.2,182.7,1 270,-1,355.1,106.5,53.7,179.1,1 270,-1,1118.8,98.6,56.7,169.5,1 270,-1,108.5,351.1,51.1,189.4,1 270,-1,1721.2,456.5,77.3,212.4,1 270,-1,796,150.6,61,173.2,1 270,-1,1476.1,43.7,53.7,149.3,1 270,-1,704.7,1,54.2,156.9,1 270,-1,1043.9,103.5,62.1,185.2,1 270,-1,218.4,126.7,55.5,166.5,1 270,-1,1412.2,565.7,101,251.4,1 270,-1,709.8,329.6,66.8,192.3,1 270,-1,234,434,60.4,199.5,1 270,-1,179.4,571.5,87.7,249.2,1 270,-1,251.7,772.6,95.6,268,1 270,-1,805.6,361.1,87.7,219.2,1 270,-1,874.7,375.6,75.2,198.1,1 270,-1,512.5,116.8,53.7,172.4,1 270,-1,564.6,403.7,66.2,210.1,1 270,-1,866.1,109.5,44,152.9,1 270,-1,477.3,390.2,73,226.8,1 270,-1,755.2,103.8,46.3,170,0.999 270,-1,943,915.8,83.5,165.2,0.829 280,-1,1221.9,31.5,61.5,118.3,1 280,-1,686.9,207.8,78.7,112.1,1 280,-1,1650.6,27.4,57,154.1,1 280,-1,397.7,20,57.9,161.5,1 280,-1,1028.1,99.6,62.6,186.2,1 280,-1,391.9,464.6,84,224.1,1 280,-1,288,129,55.8,173.1,1 280,-1,454.7,146,75.5,207.5,1 280,-1,354.8,110.1,52.7,176.5,1 280,-1,1721.2,457.7,77.7,211.6,1 280,-1,1471,34,54.2,148.1,1 280,-1,108.4,351.2,50.6,188.5,1 280,-1,941.6,82.9,65.2,176.2,1 280,-1,704.6,1,54.1,157.6,1 280,-1,794.6,148,61.5,174.3,1 280,-1,749.7,338.7,64.5,192,1 280,-1,1432.4,583.6,97.4,242.1,1 280,-1,223,132.2,53.1,160.9,1 280,-1,1106.3,94.5,51.1,163.5,1 280,-1,232.8,420.3,59.7,199.3,1 280,-1,555.8,414.6,65.6,213.7,1 280,-1,203.1,578.4,83.2,251.4,1 280,-1,851.3,113.8,45.7,155.6,1 280,-1,274.3,806.2,93.1,259.8,1 280,-1,882.7,390,75.2,196.6,1 280,-1,809.1,373.3,88.7,214.5,1 280,-1,751.4,105.8,46.4,166.2,1 280,-1,515,110.2,51.8,177.2,1 280,-1,468.5,399.5,67.3,226.5,1 280,-1,945.3,919.8,85.7,161.2,0.704 548,-1,1221.5,30.8,61.7,118.8,1 548,-1,687.2,206,78.7,114.5,1 548,-1,1491,4.5,58.2,142,1 548,-1,384.2,219.2,62.4,192.1,1 548,-1,782.4,144.3,67.9,174.5,1 548,-1,1715.2,455.2,86.1,211.1,1 548,-1,1787.9,230.2,68.4,180,1 548,-1,1664.8,286.6,90.1,208.3,1 548,-1,875.5,1,53.7,108.8,1 548,-1,988.6,1.4,51.3,98.6,1 548,-1,289.1,122.2,52,173.6,1 548,-1,529.3,108.1,59.9,177.1,1 548,-1,768.2,597.8,98.6,253.1,1 548,-1,1659.5,2,53.2,157.4,1 548,-1,181.8,307,71,188.9,1 548,-1,1594.7,1,55.4,156.5,1 548,-1,251.3,873.9,81.7,207.1,1 548,-1,454.2,102.3,65.2,185.3,1 548,-1,218.9,135.3,58.3,159.3,1 548,-1,1594.6,583.7,68.8,240.6,1 548,-1,359.4,108.1,55.6,179.6,1 548,-1,928.6,1.4,56.9,99.4,0.999 548,-1,132.6,270.3,58.8,218.7,0.999 548,-1,753.2,83.9,49.1,154.8,0.999 548,-1,1070,775.5,94.4,244.6,0.998 548,-1,413,39.1,48.6,181.6,0.993 548,-1,1002.1,770.9,110.7,235.3,0.529 548,-1,414.3,140,42.2,162,0.358 256,-1,1221.5,30.8,61.7,118.6,1 256,-1,686.8,206.3,79.5,114.2,1 256,-1,1619.7,8.6,59.2,151.7,1 256,-1,287.9,129.9,56.6,170.2,1 256,-1,357.6,107.9,51.9,177.8,1 256,-1,390.2,499.5,88.4,233.6,1 256,-1,211.4,125.9,57.8,167.6,1 256,-1,1479.7,53.9,54.7,153.5,1 256,-1,108.4,351,50.8,191.2,1 256,-1,798.3,152.3,59.8,174,1 256,-1,936.8,107.3,71.2,184.6,1 256,-1,1721.5,458.4,77.3,210.7,1 256,-1,1388.4,567.6,104.3,244.1,1 256,-1,451,164.7,76.1,211.1,1 256,-1,704.3,1.1,54.7,157.5,1 256,-1,227.8,456.1,60.2,200.2,1 256,-1,1143.9,106,51.5,168.6,1 256,-1,1066,113.4,58.5,181.8,1 256,-1,863.1,356.9,77,193.7,1 256,-1,894,110.9,47.5,152.2,1 256,-1,795.6,348.8,84.1,207.4,1 256,-1,229.8,740.4,91.1,270.7,1 256,-1,512.4,118,56.1,174.7,1 256,-1,139,568.4,88.1,243.8,1 256,-1,488.1,371.6,72.9,230.3,1 256,-1,577.3,382.1,65.4,212.6,1 256,-1,760.3,100.2,50.7,174.7,0.999 256,-1,368.5,2.4,55.9,161.3,0.999 256,-1,933.1,911.6,77.5,169.4,0.994 627,-1,1221.6,29.1,62.8,118.8,1 627,-1,687.2,206.2,79.2,112.9,1 627,-1,1480.8,6,60.4,142.8,1 627,-1,800.2,144.1,66.9,173.2,1 627,-1,344.8,294.1,69.2,205.9,1 627,-1,356.5,113.9,53.4,171.8,1 627,-1,1574.3,588.1,97.1,236.2,1 627,-1,1711.9,455.9,92.4,209.7,1 627,-1,1623.9,201.6,77.4,199.1,1 627,-1,549.2,110.9,60.5,176.2,1 627,-1,184.5,232.2,72.2,207.2,1 627,-1,287.4,126.1,53.1,168.8,1 627,-1,533.2,543.6,92.5,239.6,1 627,-1,500.3,76.3,46,155.7,1 627,-1,351.8,1,55.4,124.2,1 627,-1,754.1,79.6,44.6,152.8,1 627,-1,252.3,248.4,59.4,185,1 627,-1,413.3,105.8,50.4,154.6,1 627,-1,421,1.9,59.7,124.4,1 627,-1,234.2,134,48.7,161.3,0.999 627,-1,451.9,85.3,46.9,172.3,0.999 627,-1,1587.1,1,55.6,92.6,0.999 627,-1,1111.6,921.2,100.6,159.8,0.994 627,-1,955.3,936.7,70.6,144.3,0.096 305,-1,1221.6,31.8,61.5,118.5,1 305,-1,1457.4,15,53.6,146.1,1 305,-1,687.1,206.5,78.4,113.5,1 305,-1,276.3,582.5,94.9,248.1,1 305,-1,1688.8,44.7,57.1,154.6,1 305,-1,413,33.2,57.1,165,1 305,-1,1719.3,458.4,80,211.2,1 305,-1,934.7,57.4,66.5,176.7,1 305,-1,108.5,351.4,52.2,189.2,1 305,-1,354.9,109.2,55.8,178.4,1 305,-1,236.4,389.2,60.6,196.4,1 305,-1,794.4,148,61.5,179.7,1 305,-1,453.5,127.4,72.4,202.5,1 305,-1,705.3,1,53.6,158.2,1 305,-1,217.6,128.8,54.6,166.8,1 305,-1,533.4,448.9,67.9,215.1,1 305,-1,1479.9,595.5,91.3,245.8,1 305,-1,1005.4,81.4,60.7,182.6,1 305,-1,281.3,131.7,53.7,171.2,1 305,-1,1069,82,52.5,165.8,1 305,-1,822.3,412,87.9,218.3,1 305,-1,737.9,100.7,45.4,170.8,1 305,-1,886.6,423.8,71.6,192.8,1 305,-1,315.7,855.9,98.5,225.1,1 305,-1,388.9,409.4,83,226.9,1 305,-1,453.7,432.2,65.3,233,0.999 305,-1,510,101.2,46.5,177.8,0.999 305,-1,934,911.9,71.9,169.1,0.992 303,-1,1221.9,32.5,60.5,117,1 303,-1,262.1,581.8,106.3,252.9,1 303,-1,1685.7,43.8,56.6,153.7,1 303,-1,686.9,206.4,79.6,114.4,1 303,-1,1459.1,16.9,52.1,148.1,1 303,-1,935.9,59.8,67,176.9,1 303,-1,1719.5,457.8,80,211.7,1 303,-1,108.6,349.2,51.7,192.2,1 303,-1,412.2,32.1,55.1,164.5,1 303,-1,236.7,391.3,61,196.8,1 303,-1,794.6,149.6,61.4,177.4,1 303,-1,354.2,110.1,56.3,178.6,1 303,-1,453.5,127.9,73.7,203.7,1 303,-1,705.8,1.2,52.6,157,1 303,-1,1007.1,83.1,59.2,180.2,1 303,-1,218.1,130.7,55.4,165.6,1 303,-1,1475.7,597.4,90.4,243.5,1 303,-1,282,131.7,54,170.8,1 303,-1,532.7,449.7,68.2,207.9,1 303,-1,1074.1,84.1,50.6,163.6,1 303,-1,821.7,404.8,88.7,221.2,1 303,-1,310.4,849.6,100.7,231.4,1 303,-1,387,420.3,79.9,223.8,1 303,-1,738,101.4,48,172.8,1 303,-1,887.6,417.5,72.6,201.3,1 303,-1,456.8,427.8,65.5,234.8,0.999 303,-1,510.9,102.4,46.9,172.4,0.999 303,-1,935.6,912.3,68.3,168.7,0.994 995,-1,686.7,205.9,79.7,113.5,1 995,-1,792.9,140.5,75,172.3,1 995,-1,1221.3,30.5,62.3,121.6,1 995,-1,1799.7,184,71.2,188.3,1 995,-1,1471.6,176.5,65.1,162.8,1 995,-1,400.6,281.4,67.3,195.7,1 995,-1,1195.1,126.9,61.5,175.7,1 995,-1,502.9,264.1,64.8,184.5,1 995,-1,1673.3,151,58.8,174.2,1 995,-1,290.1,124.5,51.6,170.1,1 995,-1,1577.2,590.2,102.5,236.9,1 995,-1,838.8,306.2,68.5,197.6,1 995,-1,231,134.8,54.4,166.6,1 995,-1,329.8,851.4,95.8,229.6,1 995,-1,751.9,72,54.9,162.8,1 995,-1,1721,453.3,78.6,215.8,1 995,-1,300.6,461.2,84.5,202.4,1 995,-1,920.5,298.9,72.4,207.2,1 995,-1,543.6,118.3,57.9,171.9,1 995,-1,1179.8,654.4,88.7,266.1,1 995,-1,386.6,449.1,66.1,221.7,1 995,-1,312.9,276.6,65.6,196.3,1 995,-1,503.5,80.9,56.4,158.5,1 995,-1,314.1,1.4,46,129.5,1 995,-1,1739.2,674.4,95.2,247.7,1 995,-1,440.9,68,59.4,172.2,1 995,-1,386.2,166.9,70.4,188.9,0.999 995,-1,1438.4,3.2,57.5,78.6,0.88 995,-1,602.9,567.4,106.6,222.3,0.369 544,-1,1221.8,30.6,61.7,119.6,1 544,-1,686.9,205.8,78.9,114.3,1 544,-1,1490.1,3.6,58.8,142.4,1 544,-1,1670.4,285.8,83.7,206.1,1 544,-1,781.4,142.9,66.8,174.8,1 544,-1,387.4,213.7,60.8,187.7,1 544,-1,990.8,1.4,52.4,104.1,1 544,-1,1715.5,457.4,84.6,209,1 544,-1,1659.9,2.3,53.8,158.9,1 544,-1,876.5,1.7,53.1,108.8,1 544,-1,289.7,125.6,51.7,170,1 544,-1,1782,227.3,67.6,178.3,1 544,-1,177.9,307.1,66.7,192.2,1 544,-1,783.7,596.2,88.1,257.5,1 544,-1,526.2,107.9,60.2,175.5,1 544,-1,1596.4,1,54.6,155.7,1 544,-1,452.4,104.5,69.3,183.6,1 544,-1,218,135.2,59.6,158.4,1 544,-1,1591,584.2,70.4,239.3,1 544,-1,256.5,861,79.9,220,1 544,-1,359,115.1,54.2,169,1 544,-1,929,1.2,55.5,101.9,1 544,-1,410,45,47.3,161,0.999 544,-1,129.8,271.5,55.4,217.1,0.998 544,-1,1067.4,769.1,91.4,249.7,0.993 544,-1,752.9,83.7,46.2,150.5,0.991 544,-1,991.2,756.7,118.7,261.7,0.805 544,-1,1029,943.8,76.9,137.2,0.094 703,-1,1222,30.5,61.5,117.5,1 703,-1,686.8,206.4,79.7,113,1 703,-1,1482.3,6.1,58.5,148.1,1 703,-1,562.4,108.1,53.8,180.2,1 703,-1,1712.1,456.8,95.1,206.7,1 703,-1,1603.4,140.2,69.4,182.4,1 703,-1,1476.4,130.6,51.3,174.9,1 703,-1,414.8,151.1,74.2,165.3,1 703,-1,484.8,140.9,47.6,182.1,1 703,-1,1574.2,587.8,97,235.8,1 703,-1,476.1,23.7,44.6,140.1,1 703,-1,359.7,108.9,50.6,174.2,1 703,-1,296.9,381.5,75.1,215.1,1 703,-1,1223.6,817.7,92.3,261.5,1 703,-1,1308.9,789.6,92,271,1 703,-1,802.7,139.2,47.2,176.7,1 703,-1,750.2,81,50.1,155.1,1 703,-1,385.3,542.4,68,246,1 703,-1,1014,1,61.7,88.4,1 703,-1,256.2,199.1,59,196.2,1 703,-1,408.8,24.6,58.2,164,1 703,-1,304.5,209.7,58.5,184.1,1 703,-1,227.8,133.7,52.7,166.1,1 703,-1,837.7,929.7,77.5,151.3,0.427 238,-1,1220.8,30.9,63,120,1 238,-1,686.1,207.6,79.7,111.9,1 238,-1,794,151.9,62.4,175.3,1 238,-1,1485.5,62.5,54.8,153,1 238,-1,1587,3,57.7,140.6,1 238,-1,1089.3,121.3,62,185.9,1 238,-1,381.6,537.5,90.8,235,1 238,-1,212,126.4,55.1,167.8,1 238,-1,704.5,1,55.8,159.4,1 238,-1,108.6,348.2,51.3,192.1,1 238,-1,288.2,126.9,56.4,172.6,1 238,-1,442.9,182.4,76.7,206.2,1 238,-1,356.2,106.8,53.7,179,1 238,-1,1720.5,461.4,78.1,206.5,1 238,-1,1362.2,567.5,107.1,243.5,1 238,-1,1170.3,125.2,51.8,162.1,1 238,-1,926.7,121.4,68.6,188.9,1 238,-1,179.4,703.4,87.7,256.9,1 238,-1,516.5,119.5,50.9,179.9,1 238,-1,223.4,479.3,57.5,202.4,1 238,-1,499.8,353.7,74.5,221.5,1 238,-1,841.7,339.2,76.9,193,1 238,-1,783.6,329.6,79.8,208.7,1 238,-1,589.8,362.3,63.3,203.7,1 238,-1,931.3,900.3,74.2,180.7,0.996 238,-1,138.4,661.1,81.6,229,0.992 238,-1,110.5,564.7,87.9,237.7,0.827 447,-1,1221.6,30.9,62.2,118.6,1 447,-1,937.2,1,59,157.6,1 447,-1,448.6,213.8,71.7,197.3,1 447,-1,687,206,78.8,113.6,1 447,-1,1006.4,13,55.1,158,1 447,-1,359.1,107.5,53.1,179,1 447,-1,1719,453.5,81.1,214.3,1 447,-1,112.4,352.1,54.1,186.9,1 447,-1,1372.6,541.9,90.1,203.9,1 447,-1,860.7,4,51.5,136.6,1 447,-1,287.2,125.9,53.4,171.1,1 447,-1,1745.5,155.9,67.3,167.9,1 447,-1,1558.1,613,74.7,242.8,1 447,-1,800.1,152.2,50.1,170.8,1 447,-1,249.8,222.5,50.7,187.2,1 447,-1,1672.4,362.3,68.1,193.7,1 447,-1,884.3,587.6,115.7,247.8,1 447,-1,258.7,650.6,89.6,251.7,1 447,-1,356.1,677.7,73.1,245.9,1 447,-1,221.9,138.2,56,157.1,1 447,-1,1841.9,394.6,79.1,205.3,1 447,-1,528.1,72.3,53.7,169.9,1 447,-1,422.5,1,44.8,136,1 447,-1,785.2,573.6,77.9,248.9,1 447,-1,427.3,121.7,61.3,167.4,1 447,-1,730.6,1,48.7,93.7,0.999 447,-1,1702.6,105.7,70.8,174.7,0.999 447,-1,756.5,86.6,46.7,152.4,0.999 447,-1,359.4,4,63.9,130.5,0.999 447,-1,708.7,88.2,60.5,174.7,0.998 447,-1,962,604.1,82.1,218.4,0.992 447,-1,1017.6,919.7,86.5,161.3,0.987 447,-1,1508,1,60.4,98.3,0.476 447,-1,459,39.5,57.4,190.7,0.305 138,-1,1221.5,30.7,62,118.4,1 138,-1,1052.2,135.3,82.5,179.5,1 138,-1,1487.9,68.4,55.9,150.2,1 138,-1,357,103.5,55.5,182.8,1 138,-1,703.9,1,56.4,158.5,1 138,-1,389.5,744.9,101.5,270.5,1 138,-1,288,125.5,54.6,169.9,1 138,-1,1721.7,457.4,77.9,210.9,1 138,-1,537.7,65.1,50.7,163.7,1 138,-1,1359.2,567.1,104.6,244.4,1 138,-1,882.6,209.2,80,193.1,1 138,-1,687.4,206,79.7,115.8,1 138,-1,108.7,351.8,48.9,186,1 138,-1,423.2,269.1,75.9,224.3,1 138,-1,477.9,179.2,60.8,172.5,1 138,-1,1193.6,169,51.3,163.4,1 138,-1,219.9,129.6,50.9,159.7,1 138,-1,1318.4,181.4,52.8,179.8,1 138,-1,380.8,1.1,48,133.4,1 138,-1,814,244.2,56.2,174.7,1 138,-1,143,638.9,77.9,210.2,1 138,-1,532.5,260.4,56.9,207.1,1 138,-1,473.4,44.5,54,160.6,1 138,-1,773.7,230.9,58.8,185.3,1 138,-1,576.4,248.2,57.6,193,0.999 138,-1,97.5,544.4,86.8,255.8,0.998 138,-1,1068,924.8,82,156.2,0.958 512,-1,1221.2,29.8,62.1,119,1 512,-1,1493.3,1,60.2,134,1 512,-1,686.2,207.2,80.8,113.5,1 512,-1,997.8,1,54.6,123.6,1 512,-1,157.1,329.6,65.3,188.5,1 512,-1,397.7,183.6,63.1,186,1 512,-1,337,169.2,51.2,172.3,1 512,-1,1674.7,24.9,55.5,169.5,1 512,-1,1694.8,624.2,90,212.6,1 512,-1,931,1,56.3,120,1 512,-1,790.3,140.7,57,178.6,1 512,-1,883.9,1,52.3,123.3,1 512,-1,460.4,139.8,70.3,188.4,1 512,-1,1614.6,14.8,55.2,175.9,1 512,-1,1610,302.5,61.9,196.1,1 512,-1,939.2,692.4,122.5,262.8,1 512,-1,1559.9,599.5,70.9,238.1,1 512,-1,1713.8,329.2,93.9,195.1,1 512,-1,1718.6,459.7,81.7,210.4,1 512,-1,828,608.7,73.4,257.7,1 512,-1,285.3,797.3,79.1,262.5,1 512,-1,216.7,133.8,62.6,163.2,1 512,-1,289,118.5,52.6,178.2,1 512,-1,1843.4,197,75.1,198,1 512,-1,451.5,6.5,72.6,180,1 512,-1,725.9,95.3,69.1,164.2,1 512,-1,516.6,93.1,56,173.5,1 512,-1,203,769.4,89.1,271.7,1 512,-1,1751.1,201.8,59.2,176.6,1 512,-1,398.2,23.6,47,160.2,0.994 512,-1,1035.3,722,71.9,233.7,0.418 512,-1,363.2,106.3,46.5,190.8,0.126 512,-1,1042.6,937.5,77.5,143.5,0.096 731,-1,1221.5,30.2,62.1,118.9,1 731,-1,687.1,205.6,78.9,114.5,1 731,-1,1479.7,5.7,59.6,148.2,1 731,-1,1470.4,111.4,52.3,167.7,1 731,-1,259,188.4,56.7,201.6,1 731,-1,1710.4,457.4,97.1,206.6,1 731,-1,551.7,112.8,59.6,181,1 731,-1,408.8,186.7,69.6,163.2,1 731,-1,298.8,422.4,75.2,223.3,1 731,-1,1574,589.3,99.5,234.1,1 731,-1,783.6,138,55,176.3,1 731,-1,476,166.8,50.2,183.9,1 731,-1,412.2,552.9,93.1,249.8,1 731,-1,1597.7,106.6,58.6,181,1 731,-1,321.1,197.8,61.9,180.3,1 731,-1,1225.7,735,96.3,269.2,1 731,-1,749.6,83.2,51,151.5,1 731,-1,428.5,42.5,58.6,166.5,1 731,-1,361.5,108.6,47.2,176.4,1 731,-1,1154.4,752,82.3,259.4,0.999 731,-1,319.2,1,49.7,133,0.999 731,-1,237.2,139.5,53.7,164.8,0.994 981,-1,686.5,206.4,79.7,112.1,1 981,-1,1221.5,29.9,62.5,120.9,1 981,-1,793.3,140.3,72.6,172,1 981,-1,408.6,267.1,69.3,188.3,1 981,-1,1178.9,115.6,57.1,163.3,1 981,-1,492.6,249.7,68.7,186.2,1 981,-1,335,825.8,94.5,255.2,1 981,-1,1574.5,589.6,103.5,235,1 981,-1,841.4,323,70.2,201.6,1 981,-1,1469.5,160.7,68.6,168.2,1 981,-1,1720.1,452.9,79.8,214.6,1 981,-1,1786.5,170.2,69.4,178.8,1 981,-1,751.8,72.9,56.5,162.3,1 981,-1,321.4,258.6,62,194.6,1 981,-1,230.1,138.2,55,162.9,1 981,-1,305.7,441.1,84.9,211,1 981,-1,546.9,120.4,54.8,167.5,1 981,-1,1665,139.3,54.5,167.2,1 981,-1,1738.8,673.9,95.3,249.4,1 981,-1,924.6,312.6,66.5,213.3,1 981,-1,290.4,125.8,52.4,175.9,1 981,-1,1196.1,684.9,89,265.8,1 981,-1,393.8,433.9,63.5,214.6,1 981,-1,446.2,58.1,55.2,188,1 981,-1,313.7,1.1,47.6,130.1,1 981,-1,1452.8,1,56.8,95.2,1 981,-1,363.1,168.2,66.4,188.2,1 981,-1,381.9,1,53.8,132.9,1 981,-1,1389.1,1.8,47.9,95.6,1 981,-1,491.7,62.6,51.9,157.2,0.999 95,-1,1221.6,30.4,61.5,117,1 95,-1,400.4,846.8,100,234.2,1 95,-1,1487.8,69.7,54.5,147.8,1 95,-1,357.3,107.5,53.6,176.4,1 95,-1,704.9,1,55.5,159.6,1 95,-1,423.7,308.3,78.1,230.5,1 95,-1,1190.6,154.5,70.7,173,1 95,-1,1722.1,456.8,76.4,210.1,1 95,-1,1358,565.5,105.5,245.8,1 95,-1,963.6,197.8,71.6,186.4,1 95,-1,718.3,191.2,63.5,169.7,1 95,-1,114.3,350,49.1,194.5,1 95,-1,101.6,546.4,87.3,255.1,1 95,-1,503.6,218.7,71.4,195.6,1 95,-1,293.9,126.5,53.1,170.2,1 95,-1,209.9,130.1,50.2,165.7,1 95,-1,1289,198.4,45.7,168.7,1 95,-1,29.4,698.7,63.9,227.4,1 95,-1,538.3,64.2,48.4,167.5,1 95,-1,1455.1,189.4,60.4,178.9,1 95,-1,864.8,209.2,54.2,166.3,1 95,-1,438.4,11.7,52.1,158,1 95,-1,376.9,19.3,50.5,159.7,1 95,-1,819.6,181.8,62,193.6,1 95,-1,1406.7,192.8,59,194.6,1 95,-1,255.9,90.8,61.8,184,0.999 95,-1,482.4,135.4,56,159.8,0.999 95,-1,483.3,37.7,57.7,158.6,0.99 1005,-1,1221.3,30.2,61.1,118.5,1 1005,-1,685.8,206.2,80.3,113.3,1 1005,-1,794.7,138.9,73.7,173.8,1 1005,-1,1210.3,142.6,63.1,173.7,1 1005,-1,395.8,285.1,70.6,192.5,1 1005,-1,502.2,274,66,192.9,1 1005,-1,290.4,126.5,51.9,168.7,1 1005,-1,1811.7,203.8,68.3,183,1 1005,-1,1473.7,183.8,63.8,156.9,1 1005,-1,230.8,137.2,55.3,167,1 1005,-1,1720.8,452.6,80.5,219.1,1 1005,-1,1575.4,590.1,102.6,236.3,1 1005,-1,927.6,279.4,68.1,208.8,1 1005,-1,309.9,282.1,65.6,201,1 1005,-1,1681.7,166.1,59.1,174,1 1005,-1,750.8,73.7,55.4,160.9,1 1005,-1,842.7,293,65.3,204,1 1005,-1,299.3,476.6,87.6,202.6,1 1005,-1,541.3,121.2,59.6,170.7,1 1005,-1,380.3,461.7,69.6,225.1,1 1005,-1,1169.1,628.7,88.9,261.3,1 1005,-1,594.7,552.1,103,244.7,1 1005,-1,345.2,882.2,89.5,198.8,1 1005,-1,1742.3,675.4,92,249.3,1 1005,-1,313.6,2,42.3,128.6,1 1005,-1,507.7,86.2,52.6,156.1,1 1005,-1,437.2,66.6,61.6,171.5,0.999 1005,-1,412.7,165.5,65.5,196.6,0.998 1005,-1,377.4,171.6,49.5,174.3,0.987 1005,-1,384,1,54,155.9,0.208 771,-1,1221.2,29.3,62,118.7,1 771,-1,687.6,205,78.1,114.9,1 771,-1,546.5,116.1,62.4,174.2,1 771,-1,783,134.7,62.3,173.7,1 771,-1,1723.1,452.4,75.9,215.5,1 771,-1,1576,590.4,100.5,233.6,1 771,-1,294.8,475.1,78.6,227.1,1 771,-1,1450,76.9,54.2,170.2,1 771,-1,466.6,70.3,61.2,175.5,1 771,-1,1492.5,18.2,58.9,147.9,1 771,-1,394,211.3,70.1,171.1,1 771,-1,274.7,173.3,58,194.4,1 771,-1,527.9,573.5,97.5,246.1,1 771,-1,1065.1,668.6,81.3,253.2,1 771,-1,453,205.1,53.8,186.5,1 771,-1,750.7,74.4,51.9,160,1 771,-1,328.8,191,57.4,175.4,1 771,-1,255.8,1.2,51.3,120.5,1 771,-1,1572.7,77.3,62.4,176,1 771,-1,1134.4,641.6,85.4,263.6,1 771,-1,233.2,139,49.7,159,1 771,-1,358.3,108.9,52.5,177.3,0.999 771,-1,410.4,74,55,166.3,0.999 164,-1,1221.6,29.9,62.2,119.5,1 164,-1,1489.2,68.6,55.4,150.3,1 164,-1,979,127.4,72.7,175.2,1 164,-1,211.8,125.1,55,168.1,1 164,-1,109.1,347.6,50,191.1,1 164,-1,356.4,104.9,54.9,179.1,1 164,-1,288.2,126.7,55.5,172.4,1 164,-1,703.9,1,56.3,159,1 164,-1,1358.7,568.1,104.4,244.5,1 164,-1,687.2,207.7,78.7,111.3,1 164,-1,1721.7,457.3,77.6,211.7,1 164,-1,432.8,38.2,62,167.7,1 164,-1,403,681.2,95.2,256.5,1 164,-1,417.9,241.8,83.6,221.2,1 164,-1,101.1,547.3,85.8,253.5,1 164,-1,537.9,65.2,51.2,169.9,1 164,-1,1138.3,156.8,48,159.8,1 164,-1,212.1,594.6,66.4,213.7,1 164,-1,528,277.8,64.3,215.6,1 164,-1,564.9,157,66,173.8,1 164,-1,801,276,63.6,173.6,1 164,-1,750.2,257.8,67.1,198.8,1 164,-1,393.2,7,47,112.4,1 164,-1,797.6,149.6,60.6,172.9,1 164,-1,854.4,192.8,71.4,186.7,1 164,-1,499.4,210,56.5,172,1 164,-1,1282.4,167.4,55.5,168.7,0.998 164,-1,1249.1,169.5,54.8,160.8,0.997 164,-1,1025.6,904.8,72.4,176.2,0.982 164,-1,600.8,270.1,54.1,189.3,0.889 964,-1,686,206.3,80.4,113.3,1 964,-1,792.9,140.5,72.9,171.5,1 964,-1,1766.6,150.3,70.4,179.8,1 964,-1,1220.9,30.7,61.7,119.4,1 964,-1,926.2,335.4,74.7,215.4,1 964,-1,327.6,796.9,89.9,266.2,1 964,-1,1403.1,2,48.9,103.5,1 964,-1,1646,112.8,59.3,174.1,1 964,-1,1154.7,86.3,61.9,172,1 964,-1,1471.1,148.9,65.7,162.7,1 964,-1,1574.2,588.5,105,237.1,1 964,-1,1721,453.7,79,213.8,1 964,-1,751.4,69,55.5,165.8,1 964,-1,848.1,348.4,66.3,204.7,1 964,-1,417.9,247.6,70.8,195,1 964,-1,487.7,231.8,64.3,177.9,1 964,-1,1218,727.9,94.8,267.3,1 964,-1,1460.8,1,62.7,103.9,1 964,-1,392.9,415.6,65.6,214,1 964,-1,443.8,74.6,52.1,179.7,1 964,-1,333,243.6,64.6,189.2,1 964,-1,229.9,138.5,55,164.3,1 964,-1,549.4,119.1,55.5,170.2,1 964,-1,314.6,421.9,82.7,202.3,1 964,-1,1742,676.2,95.4,250.4,1 964,-1,290,124.9,53.5,173.8,1 964,-1,313.3,1,48.6,129.2,1 964,-1,483.4,52.5,55.3,161.6,0.999 964,-1,433.7,3,49,140.9,0.997 964,-1,237.8,5.2,52.3,118.6,0.278 964,-1,385.1,2.2,49.7,119.8,0.203 675,-1,1222.2,29.7,61,119.8,1 675,-1,687.5,206.6,79.2,113.6,1 675,-1,1481,5.7,60.2,143.8,1 675,-1,482.2,126.1,47.7,173.8,1 675,-1,564.6,111.1,49.6,178.1,1 675,-1,360.7,116.2,49.3,164.9,1 675,-1,315.1,354.3,69.7,210.3,1 675,-1,801.9,144.8,63.2,173.4,1 675,-1,388.4,529,96,252.6,1 675,-1,1574.6,589.5,98.1,234.4,1 675,-1,1709.7,455,100.8,213.4,1 675,-1,1492.4,161.1,53.3,174.2,1 675,-1,1622.7,154.4,75.9,190.9,1 675,-1,416.5,136.8,72.4,161.8,1 675,-1,750.7,79.9,48.5,156.1,1 675,-1,1103.3,1.1,62.7,104.6,1 675,-1,406.6,6.4,56.1,156.5,1 675,-1,230.4,211.6,64.3,197.2,1 675,-1,1388.4,864.7,97,216.3,1 675,-1,284.7,224.5,55.9,174.6,1 675,-1,1301.4,890.7,87,190.3,1 675,-1,296.6,1,53.9,134.6,0.999 675,-1,352.8,7,53.2,151.7,0.998 675,-1,850.7,924.7,64.6,156.3,0.208 675,-1,290.7,118.7,48.5,173.5,0.191 961,-1,686.3,206.2,80,113.4,1 961,-1,1221.4,31.4,62.6,119,1 961,-1,793.1,141.7,72.8,170.6,1 961,-1,1765.4,152.2,69.6,177,1 961,-1,1473.4,149.8,62.8,159.6,1 961,-1,1645.4,108.4,56.8,172.5,1 961,-1,419.7,242.5,69.1,195.8,1 961,-1,924.4,341.3,77.4,218.2,1 961,-1,1574.5,589.4,104.7,235.6,1 961,-1,1223.8,735.9,93.2,266.8,1 961,-1,751.1,70.1,56.2,165.2,1 961,-1,1153.3,84.5,60.3,168.2,1 961,-1,323.2,784.2,93.4,270.1,1 961,-1,1721,453.9,78.1,213.2,1 961,-1,1467.7,1,58.6,105.5,1 961,-1,442.2,74,54,180.8,1 961,-1,1406.3,2.1,47.9,104.5,1 961,-1,229.6,136.5,55.3,167.9,1 961,-1,391.1,408.9,67.9,215.9,1 961,-1,847.9,353.8,70,209.5,1 961,-1,334.5,241.8,65.2,192.6,1 961,-1,486.6,231.5,62.4,179.1,1 961,-1,318.8,419,82.7,193.8,1 961,-1,549.7,118.1,56.2,172.8,1 961,-1,1741.2,675,92.9,248.7,1 961,-1,484.1,50.4,53.9,160.9,1 961,-1,289.3,124,53,171.8,1 961,-1,312.6,1,48.8,130.6,0.999 961,-1,240.2,1.7,50.8,117.5,0.996 961,-1,432.4,11.6,49.3,127.8,0.17 452,-1,1221.4,31.1,62.2,119.3,1 452,-1,936.9,1,58.2,157.4,1 452,-1,445.2,210.8,72.9,195,1 452,-1,687.3,206.3,78.2,112.6,1 452,-1,359.2,107.7,53.6,178.3,1 452,-1,1007.7,12.2,53.7,154.7,1 452,-1,1713.9,454.3,85.9,212.8,1 452,-1,111.3,352.6,55.7,186.8,1 452,-1,1392.2,553.2,100.9,198.8,1 452,-1,1745.4,155.2,57.9,169.2,1 452,-1,1553,610,75.5,245.5,1 452,-1,287.5,126.8,53.6,169.6,1 452,-1,524,75.1,57,173.3,1 452,-1,256.3,223.8,52.3,177,1 452,-1,864.1,1.8,54.8,137.4,1 452,-1,1834.7,390.1,86.1,204.9,1 452,-1,346.6,682.7,73.5,247.7,1 452,-1,800.2,153.1,48.5,165.7,1 452,-1,1664.3,359.4,67,199.1,1 452,-1,889.9,598.7,112.4,245,1 452,-1,251.4,653.1,94.3,256.2,1 452,-1,792.1,576.6,87.3,247.9,1 452,-1,754.9,90.8,51.8,153.6,1 452,-1,219.6,138.4,59.1,159.4,1 452,-1,419.7,1,44.7,142.9,1 452,-1,426.2,129.2,57.5,160.2,1 452,-1,968.7,610.4,84.3,226.1,0.999 452,-1,1508.3,1,55.9,103.8,0.999 452,-1,359.9,5.2,62.3,134.4,0.998 452,-1,1023.5,921.1,85.3,159.9,0.998 452,-1,714.7,92.1,50.6,169.3,0.989 452,-1,446.7,31.4,72.1,205.3,0.91 452,-1,1717.4,126,56.7,163.4,0.221 405,-1,1222,30.3,61.8,118.5,1 405,-1,686.3,205.7,79.4,114.8,1 405,-1,1646.3,50.4,65.8,173.1,1 405,-1,357.9,103.4,55.2,181.7,1 405,-1,458.3,267.2,75.2,207.4,1 405,-1,1770.6,118.4,65.7,171.5,1 405,-1,945.9,18.9,62,172.2,1 405,-1,304.2,577.8,84.9,246.3,1 405,-1,362.1,1,65.1,113.8,1 405,-1,1718.6,458.8,80.8,206.3,1 405,-1,549.6,68.4,59.6,171.7,1 405,-1,828.9,1.3,56.7,128.1,1 405,-1,219.2,141.7,64.6,155.5,1 405,-1,796.5,151.7,59.1,171,1 405,-1,1589.1,618.6,98.3,248.7,1 405,-1,420.7,601.1,71.4,234.1,1 405,-1,110.8,347.4,51.7,194.6,1 405,-1,282.6,129,56.5,165.8,1 405,-1,1006.1,33.7,55.9,160.5,1 405,-1,466.7,69,64.9,190.2,1 405,-1,855.3,522.6,100.8,239.6,1 405,-1,425,90.1,51,172.4,1 405,-1,205.9,269.6,53.1,184.2,1 405,-1,1189.9,484.1,61.4,207.6,1 405,-1,928.7,541.9,79.7,222.9,1 405,-1,717.5,1,51.7,134,1 405,-1,710,91.5,63.3,170.1,0.999 405,-1,682.2,560,90,239.6,0.999 405,-1,425.8,1,44.1,107.8,0.995 405,-1,978,918.4,85.6,162.6,0.977 250,-1,1221,30.4,62.8,118.1,1 250,-1,686.7,207.1,78.8,113.2,1 250,-1,1602,7.6,66.6,147.3,1 250,-1,796.7,153.3,59.1,172.5,1 250,-1,392.3,513.3,89.7,245.1,1 250,-1,211.8,127.8,56,163.5,1 250,-1,288.1,126.9,54.2,170.2,1 250,-1,355.5,104.9,55.3,182,1 250,-1,1480.9,57,53.6,152.3,1 250,-1,224.6,464.1,59.4,196,1 250,-1,1152.3,112.6,51.6,166.5,1 250,-1,108.1,349.9,50.9,191,1 250,-1,1721,456.7,77.7,211.4,1 250,-1,1378.2,566,103,244,1 250,-1,704.4,1.1,54.2,157.8,1 250,-1,450.2,172.7,75.1,210.4,1 250,-1,1075.2,115,58.3,182.6,1 250,-1,935,110.3,71.8,182.3,1 250,-1,488.6,363.8,75.2,227.1,1 250,-1,219.3,735.1,88,255.6,1 250,-1,515.8,117.1,54.2,181.7,1 250,-1,790.3,346.7,82.2,206.4,1 250,-1,126.7,567.4,81.5,245,1 250,-1,855,353.9,79.2,195.1,1 250,-1,583,377.6,64.3,207,1 250,-1,764.9,99.1,52.6,170.6,0.999 250,-1,928.7,904.7,76.5,176.3,0.997 250,-1,908.3,115.4,46.1,146.1,0.816 625,-1,687.2,206,79.2,113,1 625,-1,1221.7,29.3,62.5,118.1,1 625,-1,1481.3,5.7,60.2,142.7,1 625,-1,347.4,295.7,67.8,201.8,1 625,-1,1624,205.8,78.5,196.2,1 625,-1,802.4,145.6,63.7,170.5,1 625,-1,1711.5,454.7,92.9,210,1 625,-1,1573.9,588.5,97.3,236,1 625,-1,357.5,113.7,53.3,172.5,1 625,-1,552.3,110.9,57.7,175.6,1 625,-1,288.1,127.2,52.4,169.1,1 625,-1,545,542.2,84.3,243.6,1 625,-1,182.2,234.6,72.5,205.3,1 625,-1,497.2,80.7,46.5,155.8,1 625,-1,352.7,1,54.1,122.5,1 625,-1,249.7,248,59.3,187.5,1 625,-1,753.9,79.7,43.2,153.2,1 625,-1,1590.7,1,53.4,93.7,1 625,-1,233.7,133.7,49.2,163.1,1 625,-1,409.8,105.2,51.4,156.7,1 625,-1,450.4,83.9,47.3,170.9,0.999 625,-1,1113.7,921.6,98.4,159.4,0.996 625,-1,421.9,3.1,60.3,121.6,0.943 625,-1,1200.8,944.2,70.6,136.8,0.063 859,-1,1221.3,29.4,62.5,119.5,1 859,-1,687.1,206.4,79.2,113.2,1 859,-1,271.7,614.9,85.1,240.9,1 859,-1,1677.5,34.3,53.8,158.8,1 859,-1,797.4,139.5,75,175.9,1 859,-1,1472.3,68.9,61,157.3,1 859,-1,486.7,2.1,49.3,114.2,1 859,-1,1575.3,590.6,102.3,234.7,1 859,-1,342.5,300,77.5,180.2,1 859,-1,559.6,116.7,59.2,173,1 859,-1,1720.5,453.6,79,212.7,1 859,-1,1078.2,1,57.4,121.4,1 859,-1,1413.4,21.6,51.5,154,1 859,-1,752.8,70,54.8,165.3,1 859,-1,297.5,160.4,73.9,197.6,1 859,-1,475.2,148.7,58.9,184,1 859,-1,994.6,496.6,86.2,239.4,1 859,-1,254.1,1.2,54.4,121.1,1 859,-1,434.1,293.9,54.3,195.3,1 859,-1,240.2,134.2,53.3,163.7,1 859,-1,415.9,146.9,62,175.9,1 859,-1,918.2,508.4,70.8,235,1 859,-1,1571.8,13.5,49.8,142.4,1 609,-1,1221.4,30.7,62,118.9,1 609,-1,686.9,205.7,79,113.8,1 609,-1,1481.3,3.8,60.1,144.5,1 609,-1,801.3,146.2,65.3,169.3,1 609,-1,363.2,278.2,66.7,198.4,1 609,-1,1613.2,2.7,54.1,103.5,1 609,-1,1707.4,457.3,95.7,209.9,1 609,-1,241,261.9,61.3,183.3,1 609,-1,1573.7,589.9,98.7,235.9,1 609,-1,1641,221.3,71.5,198.5,1 609,-1,172.3,243.8,59.5,198.8,1 609,-1,594.9,556.7,97.6,228.4,1 609,-1,560.6,109.3,50.8,179.1,1 609,-1,358.7,111.7,51.9,175.9,1 609,-1,288,125.8,51.1,172.5,1 609,-1,492,93,44.9,155.5,1 609,-1,220.6,137.1,56.6,159.9,1 609,-1,437.7,77.7,49.5,164.8,1 609,-1,753.1,82.7,43.2,154,1 609,-1,1092.4,885.2,124.9,195.8,1 609,-1,394.8,88.9,53.6,161.5,0.986 162,-1,1221.6,30.3,61.4,119.3,1 162,-1,983,129.6,78.2,171.7,1 162,-1,212.3,124.2,54.7,170.2,1 162,-1,1488.9,68.6,55.1,150,1 162,-1,434.2,38.7,63.4,166.6,1 162,-1,288.7,126.9,54.9,170,1 162,-1,356.8,105.1,54.4,178.3,1 162,-1,109.4,348.9,50.5,189.4,1 162,-1,407,696.7,92,248,1 162,-1,1721.6,456.6,77.5,212.4,1 162,-1,704.7,1,55.7,158.7,1 162,-1,1358.5,567.1,105.3,245.2,1 162,-1,687,207.1,78.9,111.9,1 162,-1,539.4,66,49.6,163.4,1 162,-1,419.4,244,81.9,221.6,1 162,-1,101.5,546.4,85.3,254.5,1 162,-1,208.8,600.9,65.5,214.1,1 162,-1,528.4,276.3,64.5,213.9,1 162,-1,389.3,4.7,48.5,115.1,1 162,-1,1140.1,156.5,48.8,165.3,1 162,-1,798.9,272.9,63,181,1 162,-1,750.6,256.6,71.1,197.4,1 162,-1,797.5,150.8,60.5,170.8,1 162,-1,497.9,208.6,56.5,168.9,1 162,-1,597.2,269.6,59.2,191.2,1 162,-1,1252.5,169.9,55.7,167.5,1 162,-1,852.4,194,73,190.1,0.999 162,-1,1028.1,903.6,73.3,177.4,0.986 162,-1,1286.3,171.8,55.6,170.9,0.975 162,-1,566.1,154.3,64.9,186,0.915 556,-1,1221.2,30.3,62.3,120.8,1 556,-1,687,205.6,78.6,114.7,1 556,-1,1489.2,3.6,59.2,146.1,1 556,-1,536.1,112.5,62,174.6,1 556,-1,378.1,220.5,64.5,194,1 556,-1,787.6,145.7,65.9,175.1,1 556,-1,1586.6,4.1,55.2,143.1,1 556,-1,1803.8,234.1,71.6,181.3,1 556,-1,1662.8,278.2,81.5,195.6,1 556,-1,1719.5,455.6,81.4,209.4,1 556,-1,194.5,296.7,64.9,191.9,1 556,-1,1658.2,1,55.4,150.4,1 556,-1,873.1,1,53.4,110.2,1 556,-1,754.3,592.6,90.7,258.2,1 556,-1,288.6,121.4,52.2,174,1 556,-1,217.7,137.1,58.7,158.1,1 556,-1,140.5,265.8,53.2,213,1 556,-1,1595.9,588.1,70,241.1,1 556,-1,986,2,53.1,95,1 556,-1,245.6,887.8,81.5,193.2,1 556,-1,753.9,82.1,47.2,154.1,1 556,-1,358.8,110,55.1,170.7,1 556,-1,457.8,87.7,66.2,191,1 556,-1,423.1,141.1,49.4,157.7,0.999 556,-1,1011.7,781.1,127.1,256.5,0.997 556,-1,413.9,49.4,49.7,184.2,0.99 556,-1,1092.6,797.1,84.7,243.1,0.972 556,-1,929.5,1.5,58.7,95.8,0.917 556,-1,1026.9,952.8,75.4,128.2,0.129 556,-1,1878.9,709.2,42.1,212,0.09 19,-1,687.8,206.2,78.6,113,1 19,-1,496.4,150.7,99.3,190.6,1 19,-1,1486.9,69.8,55.4,148.3,1 19,-1,704.1,2,56.6,157.2,1 19,-1,1360.7,566.9,106,244.7,1 19,-1,1203.7,34.4,73,118.3,1 19,-1,1725,456.8,76.2,210.3,1 19,-1,794,149.5,63,175.8,1 19,-1,380.4,386.8,86.4,241.3,1 19,-1,354.6,103.6,56.2,181.9,1 19,-1,1024.2,201.2,67.5,183.1,1 19,-1,101.6,546.3,86.5,254.9,1 19,-1,204.3,380.9,67.4,199,1 19,-1,216.5,128.2,47.6,164.7,1 19,-1,1615,243.2,57.2,190.2,1 19,-1,284.1,125,55.9,170.2,1 19,-1,878.2,138.5,60.3,179.4,1 19,-1,1814.2,227.9,64.1,188.4,1 19,-1,418.6,81.9,53.5,164.5,1 19,-1,458.6,64.2,50,171.1,1 19,-1,1388,190.5,52.3,176.2,0.998 19,-1,1,846.1,46.7,234.9,0.997 19,-1,1427.7,237.3,49.8,180.3,0.987 19,-1,918.9,144.1,44.2,158.8,0.207 830,-1,1221.2,29.2,62.4,118.7,1 830,-1,687.2,206,78.6,113.8,1 830,-1,1639.9,4,57.6,158.4,1 830,-1,791.2,134.5,68.1,181.8,1 830,-1,557.5,116.6,62,176.3,1 830,-1,273.7,565,82.4,245.5,1 830,-1,1034.1,544.6,95.6,243.4,1 830,-1,1575,588.1,102.5,236.6,1 830,-1,1476.4,45.3,59.3,157.3,1 830,-1,1722.4,452.8,76.3,213.9,1 830,-1,752.3,71.5,57.3,162.7,1 830,-1,362.5,272,86.4,179.5,1 830,-1,1424.3,39.9,48.9,155.1,1 830,-1,239,133.9,50.7,163.8,1 830,-1,437.6,258,54.9,193.8,1 830,-1,291.1,161.7,68.1,199.7,1 830,-1,958.6,561.8,73.1,236.4,1 830,-1,474.3,125.4,59.4,177.7,1 830,-1,422.6,122.8,56.9,175.3,1 830,-1,252.3,1,54.9,120.1,0.992 830,-1,349.9,171.1,45.3,178.3,0.987 135,-1,1221.9,30.7,62.2,117.5,1 135,-1,1488.1,68.7,55.5,147.8,1 135,-1,356.8,103.4,55.6,182,1 135,-1,1721.1,456,78,212.6,1 135,-1,392.5,747.1,99.4,270.5,1 135,-1,108.6,350.3,49.9,187.2,1 135,-1,704,1,55.9,157.4,1 135,-1,287,126.5,55.2,169.3,1 135,-1,536.7,63.3,51.2,165.4,1 135,-1,888.9,209.5,78.3,194.1,1 135,-1,687.9,205.7,78.1,116.5,1 135,-1,1067.5,139.6,69.3,177.1,1 135,-1,1359.1,566.9,104.4,244.8,1 135,-1,423.5,273.8,76.5,223.6,1 135,-1,220.2,128,50.3,162.4,1 135,-1,1200.4,171.5,50.3,165.9,1 135,-1,477.9,177.3,60.6,171.2,1 135,-1,379.4,1,49.1,135,1 135,-1,815.3,243.5,59.8,173.9,1 135,-1,530.4,255.9,63.1,210.3,1 135,-1,1323.3,185.7,56.3,176.9,1 135,-1,476.2,47.6,55.8,156,1 135,-1,772.7,228.6,61.4,187.5,1 135,-1,131.5,639.7,71.1,214.9,0.999 135,-1,571.7,242.6,57.6,196,0.997 135,-1,100.3,546.9,82.5,253.9,0.995 135,-1,451.1,3.1,49.3,131.4,0.976 135,-1,1071.9,925.3,83.9,155.7,0.975 815,-1,1221.3,29.7,62.5,118.5,1 815,-1,687.9,205.6,77.6,114.4,1 815,-1,789.4,135.2,58.7,176.8,1 815,-1,1723.3,452.6,74.9,215,1 815,-1,555.9,117.2,62.5,173.6,1 815,-1,1624.7,1,56.7,147.1,1 815,-1,1575.3,589.4,101,235.1,1 815,-1,276,541.8,78.4,242.5,1 815,-1,281,165.7,63.8,197.6,1 815,-1,440.4,239,54.2,195.9,1 815,-1,473.1,108.8,63.5,178.5,1 815,-1,376.5,259.7,75,178.2,1 815,-1,1471.3,34.4,64.6,158.4,1 815,-1,751.3,73.2,57.4,159.8,1 815,-1,234.8,135.6,51.5,165.7,1 815,-1,986.9,585.9,71.4,245.5,1 815,-1,1431.5,50.6,51.4,159.5,1 815,-1,347.3,178.7,52.4,170.8,1 815,-1,1061.8,562.9,69.8,244.7,1 815,-1,426.6,109.1,58.6,166,0.998 805,-1,1221.3,29.6,62.2,118.9,1 805,-1,687.1,205.8,79,114,1 805,-1,1615.1,1,58.7,137.1,1 805,-1,1723.1,452.6,75.2,214.1,1 805,-1,279.5,528.3,80.3,239.5,1 805,-1,547.7,114.8,65.9,177,1 805,-1,1574.6,590.4,101.1,235.8,1 805,-1,786.3,129.4,51.9,180,1 805,-1,278,165.5,60.6,199.2,1 805,-1,477.3,101.8,65.5,178.8,1 805,-1,381.7,244,73.7,175.9,1 805,-1,440.4,233.8,56.8,196,1 805,-1,233,134,52.4,166,1 805,-1,1075.2,575.4,77.8,255,1 805,-1,1475.8,32.8,60.9,153.2,1 805,-1,1002.9,604.3,72.6,236.1,1 805,-1,346.2,181.1,51.5,174.5,1 805,-1,751.3,72.6,56.9,161.5,1 805,-1,1438.4,54.1,50.7,158.2,1 805,-1,422.2,100.6,58.9,170.9,1 805,-1,253.8,2.3,54.2,123.9,0.997 805,-1,442,1.1,41.3,82.6,0.997 813,-1,1221.8,29.6,62.5,118.4,1 813,-1,687,205.6,78.8,114,1 813,-1,789.1,132.2,56.6,179.6,1 813,-1,1621.2,2.3,60.2,145.6,1 813,-1,1723,452.6,75.5,215.4,1 813,-1,554.3,117.4,62.9,174.2,1 813,-1,1576.1,589.8,99,235,1 813,-1,276.7,534.7,77.4,244.2,1 813,-1,279.1,165.4,63.5,198.1,1 813,-1,441,237.9,54.6,195.1,1 813,-1,1472.4,33.5,63.3,157.1,1 813,-1,378.6,257.9,73.9,178,1 813,-1,475.8,108.2,62.2,177.2,1 813,-1,751.4,73.4,57.8,160.7,1 813,-1,233.9,133.1,51.5,168.8,1 813,-1,347.2,180.5,53,170.6,1 813,-1,989.5,588,70.9,248.8,1 813,-1,1062.5,565.7,74.3,250.4,1 813,-1,1432.8,53.5,49.8,156,1 813,-1,425.6,108,60.9,169.8,0.998 852,-1,1221.2,29.7,62.3,119.1,1 852,-1,687.2,206.1,79.1,113.5,1 852,-1,795.6,139.8,78.3,173.9,1 852,-1,1721.4,452.8,78.3,213.7,1 852,-1,490.6,1,49,113.8,1 852,-1,560.3,116.4,58.5,175,1 852,-1,1574.8,590.6,103.8,234.4,1 852,-1,1071.4,1.2,60.7,117.3,1 852,-1,1470.8,61.1,59.9,157.3,1 852,-1,345,298,77.8,176.2,1 852,-1,266.1,602.9,82.4,243.5,1 852,-1,753.2,71.7,54,161.8,1 852,-1,297.1,160.3,73.5,198.9,1 852,-1,1413.7,29.5,53.6,153.6,1 852,-1,1667,30.8,51.5,160.3,1 852,-1,253.2,1,55,121.9,1 852,-1,928.1,523,71.9,225.9,1 852,-1,238.8,131.5,54.7,165.5,1 852,-1,472.3,141.9,60.7,183.6,1 852,-1,1008.2,498.9,74.3,239.7,1 852,-1,435.7,281,53.9,199.7,1 852,-1,416,140.5,60.6,170.2,1 43,-1,1212.5,31.1,72.1,117.5,1 43,-1,686.2,206.3,79.6,113.8,1 43,-1,391.9,364.8,86.9,237.2,1 43,-1,1487.2,69.7,55.4,149.6,1 43,-1,483.3,166.8,96.6,197.9,1 43,-1,1362.2,566.5,104.2,245.6,1 43,-1,704.1,1,56.1,158.6,1 43,-1,1723.1,455.9,75.1,211.9,1 43,-1,905.2,192.4,95.5,185,1 43,-1,352.5,105.4,54.5,177.6,1 43,-1,213.3,128.2,49.8,163.8,1 43,-1,1010.4,159.6,80,186.1,1 43,-1,102.3,548.1,85.5,250.5,1 43,-1,172.5,368.7,68,191.9,1 43,-1,283.8,126.4,53.6,169.3,1 43,-1,795.2,148.7,61.7,174.5,1 43,-1,1339.7,188.5,53.3,165.9,1 43,-1,861.5,148.7,60.5,181.1,1 43,-1,1,797.5,67.8,237.3,1 43,-1,401.5,86.1,54.1,161.3,1 43,-1,1845.2,260.9,75.4,197.9,1 43,-1,1493.8,220.8,59,196.4,1 43,-1,446.3,44.6,53.9,169.7,0.999 43,-1,489,42.8,48.8,152.2,0.918 43,-1,543.1,61,40.1,179,0.747 43,-1,1392.3,219,40.9,167.1,0.187 368,-1,1222,31.8,61.1,118.2,1 368,-1,686.6,206.3,79.6,113.2,1 368,-1,443.7,82.8,68.9,197.9,1 368,-1,441.4,312.2,72.8,216.3,1 368,-1,1059.9,434.4,65.3,198.2,1 368,-1,362.7,524.3,86,228.4,1 368,-1,1627.1,7.8,57.1,161.5,1 368,-1,1431.7,2.3,53.3,100.3,1 368,-1,1021.1,56.8,54.3,165.3,1 368,-1,1828.1,74.1,62,156.7,1 368,-1,210.1,140.9,60.4,160.8,1 368,-1,1758.9,99.8,59.1,154.5,1 368,-1,109.7,351,52,188.8,1 368,-1,511.6,89.9,48.3,166.2,1 368,-1,361.8,111.8,54,172.7,1 368,-1,1719.1,455.9,80.1,214,1 368,-1,832.4,1,53.9,110.1,1 368,-1,286.6,130.7,53.6,169.5,1 368,-1,955.6,44.2,63.2,175.7,1 368,-1,796.3,150.8,59.4,173.1,1 368,-1,1809.8,457.9,65.6,208.3,1 368,-1,214,312.8,54.9,186.1,1 368,-1,1578.6,628.5,83.7,245.5,1 368,-1,911.4,491.8,77.1,207.1,1 368,-1,537.9,570.4,99.7,247.1,1 368,-1,466.3,540.7,67.3,228.7,1 368,-1,760.2,95.4,44.3,143.9,1 368,-1,848.4,478,84.6,229.1,1 368,-1,380.8,2.9,44.7,87.5,1 368,-1,964.1,920.3,78.7,160.7,0.995 368,-1,927.8,1.8,59.3,153,0.971 845,-1,1221.5,29.6,62.1,119.2,1 845,-1,687.7,206.1,78.3,113.6,1 845,-1,793.9,138.7,79.4,175.4,1 845,-1,1721.6,453,77.6,213.6,1 845,-1,557.9,116.6,60.3,175.5,1 845,-1,1575,589.7,102.2,234.8,1 845,-1,1469.4,61.4,60.5,154.1,1 845,-1,265.5,587.7,83.7,245.3,1 845,-1,1069.9,1,58.1,108.1,1 845,-1,752.7,70,54.7,164.2,1 845,-1,1654.4,20.4,55.3,159.6,1 845,-1,296.1,161.3,71.4,196,1 845,-1,1415.1,29.6,54.3,159,1 845,-1,240.8,130.1,52.4,168.5,1 845,-1,354,285.8,76.4,182.1,1 845,-1,473.9,137.7,60.6,181,1 845,-1,436.8,270.7,54.7,204.5,1 845,-1,936.4,534.1,71.4,240.9,1 845,-1,253.9,1,53.9,121.6,1 845,-1,415.1,138.8,59.4,170.2,1 845,-1,1021.4,514.5,71.6,239.4,1 18,-1,688.3,206.1,77.7,113.7,1 18,-1,497.4,151.4,102.1,191.1,1 18,-1,1486.4,70,55.7,148.1,1 18,-1,1204.4,33.5,72.4,119.7,1 18,-1,704.4,2,56.4,156.7,1 18,-1,1360.8,566.1,105.7,245.8,1 18,-1,794.8,149.9,61.4,174.1,1 18,-1,1725,456.9,76,210.6,1 18,-1,380.2,387.6,86.2,241.6,1 18,-1,102.1,547.6,85,251.1,1 18,-1,216.5,127.6,47.6,165.3,1 18,-1,355.4,103.8,54.8,180.7,1 18,-1,1026.4,202.1,70.7,183.6,1 18,-1,1615.8,245.9,58.8,185.3,1 18,-1,205.4,380.8,67.2,198.8,1 18,-1,416.7,86.2,55.6,163.2,1 18,-1,877.5,136,60.8,181.5,1 18,-1,283.4,124.7,55.9,170.7,1 18,-1,1814,227.3,63.4,185.9,1 18,-1,459.3,66.6,48.7,168.7,1 18,-1,1429,237.2,50.1,169.3,0.999 18,-1,1391.2,190.9,52,173.2,0.999 18,-1,1,839.8,45.4,241.2,0.916 18,-1,919.9,143.3,44,158.9,0.155 18,-1,246.4,370.6,48.7,191,0.069 737,-1,1221.7,30.2,62,118.3,1 737,-1,686.8,205.9,79,114.3,1 737,-1,1480.9,8.6,61.2,145.1,1 737,-1,256.8,189.8,58.4,191.9,1 737,-1,781.1,137.6,55.2,177.2,1 737,-1,295.8,426.4,76.8,220.4,1 737,-1,551.6,111.7,59.3,178.8,1 737,-1,1465.5,109.6,53,168.1,1 737,-1,401.5,186.9,76.4,162.4,1 737,-1,476,170,49.3,183.1,1 737,-1,1713.1,456.4,94.3,209.6,1 737,-1,1575.5,589.6,99.3,235.4,1 737,-1,432.4,554.9,83.9,248.1,1 737,-1,328.2,197.7,58.4,178.9,1 737,-1,1600.1,103.4,58.7,179.4,1 737,-1,433.9,47.2,58.2,168.6,1 737,-1,1218,714.7,85.3,263.4,1 737,-1,1138.3,741.8,86.1,261.7,1 737,-1,750.4,84.4,50.7,149.5,1 737,-1,359.7,109.7,49.8,174.5,1 737,-1,290.7,130.6,46.7,162.1,0.945 737,-1,316.6,2.7,46.2,129.8,0.367 600,-1,1221.2,30.8,62.1,120,1 600,-1,687,205.7,79.1,113.2,1 600,-1,1480.8,3.7,61.4,144.4,1 600,-1,801.8,143.9,63.2,172.8,1 600,-1,367.5,271.2,63.2,196.4,1 600,-1,1710.7,455.4,92.1,212,1 600,-1,1652.1,226,73.4,200.9,1 600,-1,235.1,266.6,63.3,186.4,1 600,-1,1627.5,1.4,54.9,113.5,1 600,-1,561.9,111.1,50.5,180.4,1 600,-1,1574.9,589.3,96.7,235,1 600,-1,430.7,72.6,47.4,169.3,1 600,-1,360.2,107.9,52.4,178.5,1 600,-1,165.9,245.1,61.1,208.7,1 600,-1,286.6,126.4,52.3,170.7,1 600,-1,483.9,103.3,48.3,155.8,1 600,-1,216.4,138.5,54.8,157,1 600,-1,752.7,80,44.4,154.4,1 600,-1,1076.8,868.1,123.6,212.9,1 600,-1,395.8,95.4,36.9,147.8,0.873 600,-1,1876.5,278.6,44.5,184.2,0.634 600,-1,1167.7,885.5,84.7,195.5,0.236 807,-1,1221.3,29.6,62.2,119.6,1 807,-1,687.4,205.6,78.8,114.4,1 807,-1,1616.7,1,58.2,140.5,1 807,-1,787.2,130.5,51.1,180.6,1 807,-1,1723.2,453.9,75.4,212.7,1 807,-1,278.2,528.7,80.3,239.9,1 807,-1,549.6,113.5,64.9,178.9,1 807,-1,1574.8,591.3,100.7,232.4,1 807,-1,276.8,167.1,61.7,197.2,1 807,-1,475.9,103.9,65.4,180,1 807,-1,440.7,235.3,57.3,195.5,1 807,-1,1474.5,34,61.4,153.7,1 807,-1,380,245.4,74.6,176.7,1 807,-1,234.4,135.2,50.8,165.2,1 807,-1,998.6,598.5,72.7,239,1 807,-1,750.7,73.1,56.7,159.1,1 807,-1,345.9,180.4,52,174.6,1 807,-1,1071.6,574.3,77.2,251.8,1 807,-1,1436.9,52.3,50.9,159.3,1 807,-1,422,104.5,59.3,167.6,0.999 807,-1,440.8,1,42.8,83.4,0.999 867,-1,1221.4,29.7,62,118.9,1 867,-1,687.2,206.3,79.1,113.2,1 867,-1,481.5,1.3,49.2,124.8,1 867,-1,795.8,138.7,78.2,176.5,1 867,-1,1474.3,73.6,60.9,152.7,1 867,-1,1086.7,1,56,134.8,1 867,-1,989.5,479.5,82,235.8,1 867,-1,1687,44.3,52.5,163.7,1 867,-1,1575.2,590.6,103.2,234.4,1 867,-1,1720.5,454,79.4,212.7,1 867,-1,477.1,155.7,60.4,182.4,1 867,-1,275,620.5,87.1,255.7,1 867,-1,557.8,116,59.8,177,1 867,-1,339.3,310.6,81.2,180.9,1 867,-1,299.7,160.6,69.9,195.6,1 867,-1,752.5,69.9,55,164.5,1 867,-1,1578.8,19.1,47.8,142.9,1 867,-1,239.6,135.2,52.1,163.3,1 867,-1,430.4,295.7,55.7,201.7,1 867,-1,1415.8,17.3,50.2,153.5,1 867,-1,254.4,1,54.2,120.6,1 867,-1,907.4,497.3,70,228,1 867,-1,414.1,156.8,59,177.7,1 867,-1,357.6,167.7,34.9,166.2,0.061 226,-1,1221.1,30.7,61.4,119.5,1 226,-1,685.7,206.9,80.6,113.2,1 226,-1,796,146.6,61.9,177.3,1 226,-1,389,555.8,95.1,242.7,1 226,-1,1492.3,67.3,53.2,149.2,1 226,-1,432.2,187.9,76.6,215,1 226,-1,705.2,1,55.5,159.5,1 226,-1,1190.1,128.9,45.9,161.1,1 226,-1,356.6,105.8,53.4,179.3,1 226,-1,287.9,127.1,56.3,172,1 226,-1,211.2,126,56.3,167.8,1 226,-1,110,350.8,48.4,188.8,1 226,-1,1357.1,567.9,105.8,244.7,1 226,-1,1721.5,456.2,77.9,212.2,1 226,-1,517.9,121.6,48.7,175.3,1 226,-1,147.1,681,102.1,258.9,1 226,-1,1108.2,127.8,63.1,184.2,1 226,-1,904.8,136.5,77.9,182.3,1 226,-1,1575.3,1,55.5,141.6,1 226,-1,508,341.5,70.9,215.6,1 226,-1,215,500.7,61.7,202.2,1 226,-1,829.7,328,72.6,188.9,1 226,-1,771.2,315.5,74.3,201.7,1 226,-1,80,628.8,99.1,247.3,1 226,-1,592.6,345.2,62.1,200.3,0.999 226,-1,976.5,125.7,42,155.3,0.999 226,-1,936.7,905.8,72.4,175.2,0.994 499,-1,1221,30.1,63.2,119.5,1 499,-1,686.6,205.9,80.5,115.1,1 499,-1,999.2,1,54.9,131.9,1 499,-1,1496.1,1.3,58.6,131,1 499,-1,1823.6,178.9,80.1,190.2,1 499,-1,793.2,141.1,61.7,180.5,1 499,-1,1652.2,602.2,68.7,207,1 499,-1,468.3,156.1,62.4,190.6,1 499,-1,931.7,1,55.4,128.3,1 499,-1,1545.1,598.7,85.1,241.3,1 499,-1,1733.9,191,70.6,174.6,1 499,-1,211.4,740.5,94.6,264.7,1 499,-1,1684.8,38.7,56.3,166,1 499,-1,405.7,166.8,60.6,186.3,1 499,-1,818,607,83,258.5,1 499,-1,878.3,1.3,52,125.8,1 499,-1,923.7,675.7,119.7,253.4,1 499,-1,143.1,335.1,63.5,189.4,1 499,-1,298.7,772.5,76,261.6,1 499,-1,317.3,192.7,48.8,161.5,1 499,-1,1624.1,29.1,58.2,174.7,1 499,-1,1725.4,453.1,75.5,212.6,1 499,-1,1623.4,319.9,61.7,192.6,1 499,-1,217.3,133,64.7,165.7,1 499,-1,1746.2,336,79.5,218.7,1 499,-1,507.5,96.2,61,175.9,1 499,-1,716,92.9,59.9,166.5,1 499,-1,359.9,112.2,54.8,174.1,1 499,-1,449.1,15.1,75.8,182.2,1 499,-1,403,16.4,47.9,160.2,0.999 499,-1,286.9,126.2,52.9,171.8,0.999 499,-1,1012.7,691.4,83.3,229.4,0.999 499,-1,757.2,103.1,42.2,138.4,0.125 898,-1,1221.2,30.1,61.8,119.1,1 898,-1,686.7,206,79.8,114.9,1 898,-1,296.8,670.4,93.6,253.6,1 898,-1,479,189.6,63.8,180,1 898,-1,793.8,140.3,75.3,171.4,1 898,-1,1486.7,101,57,150.3,1 898,-1,1428.1,1,51.1,147,1 898,-1,1596.6,49.1,49.8,159.6,1 898,-1,560.5,116.9,56.9,173.7,1 898,-1,1574.4,590.6,103.2,235.1,1 898,-1,1721.8,454.3,77.2,213.2,1 898,-1,1109.3,19.7,54.7,157.5,1 898,-1,968.1,435.6,82.8,223,1 898,-1,392.6,188.5,62,173.9,1 898,-1,302.4,161.9,66.2,191.3,1 898,-1,338.5,350.6,77.2,185.7,1 898,-1,419.6,330.9,57,205.2,1 898,-1,880.1,450.2,67.1,223,1 898,-1,1710.7,75.7,55,170.5,1 898,-1,468.5,3.7,51,149.4,1 898,-1,754,73.5,53.8,160.4,1 898,-1,313.3,1.7,49.1,127.2,1 898,-1,1747.6,679.3,90.5,237.5,1 898,-1,242.3,133.6,57.3,170.1,1 898,-1,254.3,1.2,53.2,118.9,1 898,-1,1499.7,1.2,59.8,144.7,1 898,-1,1328.7,906.1,94.9,174.9,1 898,-1,417.9,57,54.7,180.1,0.999 72,-1,1221.6,31.1,61.4,117.4,1 72,-1,407.1,330.9,86,231.4,1 72,-1,687.2,206.5,78.9,115.4,1 72,-1,1487.3,69.3,55.5,148.9,1 72,-1,704.5,1,55.9,159.3,1 72,-1,1361.5,566.1,105.7,246.6,1 72,-1,136.4,355,58.1,195.9,1 72,-1,356.3,106.3,55.3,179.6,1 72,-1,1262.2,176.6,60.7,168.4,1 72,-1,490.1,201.2,78,189.7,1 72,-1,1722.1,455.4,77.2,212.1,1 72,-1,784.3,190.2,79.6,181.6,1 72,-1,11.2,740.7,67.6,229.7,1 72,-1,103.3,546.6,85,253.2,1 72,-1,1436.4,199.8,77.4,196,1 72,-1,989.6,185.2,69.3,183.2,1 72,-1,211.4,130.3,51.7,164.4,1 72,-1,289.4,128.3,52.7,167.7,1 72,-1,538.3,63.7,47.8,169.2,1 72,-1,1340.9,208.4,38.5,159.2,1 72,-1,887.2,187,57,168.8,1 72,-1,468.7,115.5,59.2,165.4,1 72,-1,435.9,24.2,53.1,161.3,1 72,-1,383.1,31.5,52.1,161,1 72,-1,386.4,909.2,102.7,171.8,0.996 72,-1,257.2,91.6,53.1,173.1,0.994 72,-1,852.8,163.9,52.4,179.3,0.896 877,-1,1221.7,29.5,61.7,118.6,1 877,-1,687,206.1,79.7,113.1,1 877,-1,1479.8,85.5,59.7,156,1 877,-1,1085.9,1.3,62.5,151.2,1 877,-1,794.8,139.5,75.2,174.1,1 877,-1,477.4,1.2,48.2,130.2,1 877,-1,283,639.3,84.5,258.9,1 877,-1,1722.2,454.4,77.6,212.5,1 877,-1,1575.4,589.4,103.3,236.6,1 877,-1,300.9,162.8,69.9,194,1 877,-1,335.6,318.2,81.1,182.6,1 877,-1,478.8,166.8,62.6,184.6,1 877,-1,897.9,479.8,71.3,235.3,1 877,-1,558.9,116.3,58.7,176.4,1 877,-1,1575.6,31.3,57.4,152.2,1 877,-1,1694,51.1,51.2,169.4,1 877,-1,1420.7,7.4,50.8,152.3,1 877,-1,752.9,70.2,55.4,164.6,1 877,-1,986.8,465.2,68.4,231.7,1 877,-1,253.3,1.1,54.5,121.7,1 877,-1,409.4,163.7,57.7,172.2,1 877,-1,429.8,308.6,56.2,201.6,1 877,-1,240.4,131.7,50.8,166.5,1 877,-1,1761.6,685,95.1,234.2,0.999 877,-1,1501.1,8.4,54.1,153.5,0.288 877,-1,907.3,937.6,76.6,143.4,0.128 750,-1,1221.1,29.7,62.2,119.6,1 750,-1,686.8,206.1,79.1,112.6,1 750,-1,548.9,115.9,62.7,175.4,1 750,-1,1463.1,95.4,54.7,167.7,1 750,-1,780.4,135.3,60.6,176.5,1 750,-1,260.6,186.5,59.1,199,1 750,-1,1715.5,455.8,88.4,208.9,1 750,-1,1575.9,589.4,100.1,234.9,1 750,-1,303.1,446.5,71,224.6,1 750,-1,461.2,562.5,100.2,247.1,1 750,-1,1594.2,92.8,60.5,181.3,1 750,-1,332.6,199.1,56.3,173.8,1 750,-1,1493.5,15.9,58,140.1,1 750,-1,465.5,188.1,54.5,185.9,1 750,-1,444.3,58.8,57.7,168.2,1 750,-1,404.1,198.6,65,174.1,1 750,-1,750.2,80.7,50.2,153.2,1 750,-1,1110.4,708.4,81.2,264.2,1 750,-1,257.6,1,49.7,122.3,1 750,-1,1178.3,690.9,89,263.4,1 750,-1,359.3,111.1,49,166.7,0.999 750,-1,394,56.4,57.7,170.7,0.987 750,-1,237.6,143.1,50.4,155.3,0.985 750,-1,291.7,130.8,44.2,161.2,0.958 712,-1,1221.7,30,61.6,119,1 712,-1,686.6,206.1,80.1,113.4,1 712,-1,1480.9,7.5,57.5,144.6,1 712,-1,554.6,111.5,59.4,178.1,1 712,-1,1197.2,795.9,86.5,261.6,1 712,-1,1600.9,123.2,67.5,184.4,1 712,-1,1712.1,454.7,96.1,210.9,1 712,-1,481.6,156.8,50.2,177.4,1 712,-1,1573.6,589.3,101.9,237.4,1 712,-1,412.1,166.9,74.2,163.5,1 712,-1,1475.4,121.3,52.6,179.1,1 712,-1,360.4,110.4,50,174,1 712,-1,295.8,397.6,76.8,218.7,1 712,-1,259.6,195.6,56.7,195.9,1 712,-1,749.7,80.6,49.8,155.5,1 712,-1,1284.6,772.9,89.6,274.4,1 712,-1,391.1,546.2,74.7,241,1 712,-1,800.5,138.4,46.6,171,1 712,-1,412.2,32.4,62.7,161.7,1 712,-1,307.1,207.2,59.4,177,1 712,-1,471.8,21.9,46,144.2,1 712,-1,233.2,134.3,50.2,165.8,0.999 712,-1,982.1,2.8,78.7,82.4,0.863 469,-1,1222,30.7,61.9,117.8,1 469,-1,687.1,206.1,78.8,114,1 469,-1,453.7,190.6,68.9,194.4,1 469,-1,935,1,57.5,146.8,1 469,-1,1005.8,1,54.1,153.8,1 469,-1,1794.8,366.2,92.3,214.2,1 469,-1,279.6,211.1,51.5,172.8,1 469,-1,1505.6,1.1,58.3,114.1,1 469,-1,359.6,107,55.9,179.9,1 469,-1,1701.4,457.8,97.6,210.2,1 469,-1,877.4,1,52.4,132.8,1 469,-1,1644,343.3,62.4,202.8,1 469,-1,1542.8,611.8,73.2,237.6,1 469,-1,804.7,144.8,46.7,176,1 469,-1,236.6,682.7,93.1,262,1 469,-1,330.6,717.3,75.1,245.6,1 469,-1,1725.6,167.2,66.6,167.5,1 469,-1,217.7,137.8,64.4,159.5,1 469,-1,1667.1,51.2,61.8,173,1 469,-1,515.2,81,60.8,173.9,1 469,-1,120.4,345.6,55.3,186.5,1 469,-1,899.8,625.8,113.1,241,1 469,-1,809.5,584.7,97.7,256,1 469,-1,445.4,33.6,73.9,184,1 469,-1,985.3,644.1,84.7,219.5,0.999 469,-1,753.3,98.3,54.2,138.6,0.999 469,-1,713,93.9,54.7,162.4,0.999 469,-1,1726,64.3,52.3,158.5,0.997 469,-1,413,4.7,45.1,153.4,0.996 469,-1,1500,568.1,71.5,202.7,0.992 469,-1,1027.1,922.6,83.5,158.4,0.992 469,-1,428.6,145.1,49.3,160.8,0.987 469,-1,1769,138.7,70.9,170.1,0.984 469,-1,288.3,130.4,51.3,168.5,0.478 1012,-1,1221.2,30.1,62.2,115.9,1 1012,-1,686,206.5,80.8,112.8,1 1012,-1,792.5,140.8,74.6,170.8,1 1012,-1,494.2,285.9,70.8,186.9,1 1012,-1,289.5,126.2,53.3,170.9,1 1012,-1,1225.1,149.4,60.2,170,1 1012,-1,387.2,292.9,77.5,195.2,1 1012,-1,1825.3,208.6,62.8,188.1,1 1012,-1,1576.4,590.6,101.9,234.4,1 1012,-1,1154.4,617.8,91.9,255.9,1 1012,-1,540.1,121.5,60,167.8,1 1012,-1,844.4,285.4,63.9,194.6,1 1012,-1,1720.1,455.9,79.7,211.1,1 1012,-1,1469.4,187.4,65.3,160.8,1 1012,-1,928.9,273.7,66.9,206.7,1 1012,-1,751.1,73.5,54.3,161.7,1 1012,-1,232.3,140.7,52.8,160.6,1 1012,-1,1733.2,678,96.9,242.5,1 1012,-1,297.3,485.1,91.4,206.4,1 1012,-1,304,294.2,64.5,201.3,1 1012,-1,1691.8,172.8,55.9,170.3,1 1012,-1,379.7,468.4,63.7,225,1 1012,-1,435,165.9,63.1,192.5,1 1012,-1,312.7,1.7,42.7,129.3,1 1012,-1,587.9,551.7,93.3,242.8,1 1012,-1,352,892.3,97.3,188.7,0.999 1012,-1,383.9,175.5,50.6,156.2,0.999 1012,-1,504.6,99.7,55.9,150.4,0.996 1012,-1,434,72,62.6,173.8,0.846 862,-1,1221.5,29.8,61.8,118.8,1 862,-1,687.3,206.4,79.2,112.7,1 862,-1,485.5,1,50.3,119.7,1 862,-1,271.9,612,87.3,250,1 862,-1,795.1,139.8,77.3,174.8,1 862,-1,1680.8,35.7,53.4,163.8,1 862,-1,1473.2,71.3,60.9,154.1,1 862,-1,341.9,302.5,78.5,183.8,1 862,-1,1720.2,452.8,80.1,213.1,1 862,-1,1575,590.4,102.5,234.1,1 862,-1,1081.2,1.1,57.3,124.5,1 862,-1,557.9,116,60,173.7,1 862,-1,297.3,159.4,74.1,199,1 862,-1,753.1,69.5,55,165.6,1 862,-1,254.3,1,54,120.9,1 862,-1,476.1,151.9,59.6,183.1,1 862,-1,994.1,492.9,83.7,237.7,1 862,-1,240.3,131.9,52.2,166.2,1 862,-1,1413.5,20.8,51.4,152.6,1 862,-1,432.2,295.8,54.3,195.2,1 862,-1,416.4,151.5,61,176.6,1 862,-1,1575.8,16.3,48.3,141.7,1 862,-1,914.3,506.7,72.4,235.4,1 476,-1,1221.9,30.7,62.6,118.2,1 476,-1,686.6,206.2,79.2,112.9,1 476,-1,1000.2,1,58.1,149.9,1 476,-1,289.6,204.7,51.2,167.9,1 476,-1,450.9,175.7,73.4,193.1,1 476,-1,359.8,111.2,55.8,173.3,1 476,-1,934.1,1,57.2,142.5,1 476,-1,1691.8,456.9,108.2,212.8,1 476,-1,1504.2,1,58.2,119.8,1 476,-1,876.9,1,52.9,132.1,1 476,-1,1787.8,362.9,89.7,212.9,1 476,-1,1724.5,176.6,65.9,164.2,1 476,-1,229.5,699.6,88.4,267.6,1 476,-1,1535.7,596.4,76.6,244,1 476,-1,1639.4,339.8,61.7,199,1 476,-1,217.7,136,64.3,161.2,1 476,-1,803.9,142.5,46.9,178.4,1 476,-1,810.3,590.5,90.5,258.9,1 476,-1,126.5,344.2,57.9,186.8,1 476,-1,1780.2,151.4,79.1,174.5,1 476,-1,322,729.5,78.1,254.2,1 476,-1,910.3,630.7,114.5,250.9,1 476,-1,446.6,30.5,72.4,180.6,1 476,-1,513.4,85.9,61.7,173.4,1 476,-1,1657.4,41.4,60.6,173.8,1 476,-1,1706.6,52.6,52.4,167,1 476,-1,713.1,93.4,55.3,164.1,0.999 476,-1,752.4,99,53.2,140.7,0.998 476,-1,413.9,6.5,45.6,152.5,0.997 476,-1,1023.4,926,81.3,155,0.955 476,-1,991.3,656.3,75.7,224.4,0.944 476,-1,427.7,150.8,57.3,186.8,0.661 158,-1,1221.6,30.9,62.2,117.2,1 158,-1,992,131,78.7,168.6,1 158,-1,1488.4,67.8,55.6,150.6,1 158,-1,356.4,104.2,54.7,180.5,1 158,-1,109.5,349.8,49.8,189.2,1 158,-1,288.7,125.1,55.2,172.9,1 158,-1,704.6,1,55.7,159.2,1 158,-1,213.4,123.8,55,170.1,1 158,-1,439.1,36.3,61.7,165.6,1 158,-1,1358.6,566.9,105.4,245.5,1 158,-1,1721.1,457,77.7,210.8,1 158,-1,686.4,206.2,80,114.7,1 158,-1,538.8,64.1,50.1,165.1,1 158,-1,420.9,249.1,78.4,224.6,1 158,-1,408.8,700.8,91.6,264.9,1 158,-1,101.7,545.6,84.7,253.5,1 158,-1,1149.9,160.1,45.6,157.7,1 158,-1,592.5,264.3,61.2,195.5,1 158,-1,1258,170.4,64,176.7,1 158,-1,801.4,265.5,65.8,178.2,1 158,-1,202.4,609.1,62.9,214.9,1 158,-1,530.6,271.8,61.8,209,1 158,-1,389.2,1.7,45.2,121.2,1 158,-1,492.9,204.3,60.7,168.9,1 158,-1,752.9,253.7,69.6,187,1 158,-1,855.4,201.3,72.1,190.8,1 158,-1,795.8,147.4,61.6,181.6,0.999 158,-1,1034.3,907.9,72.2,173.1,0.988 158,-1,1297.4,175.9,46,171.3,0.211 216,-1,1220.9,30.3,62.1,119.3,1 216,-1,686.7,206.8,79,113.3,1 216,-1,212.3,126.3,55.3,168,1 216,-1,402.3,578.6,88.9,251.2,1 216,-1,705.8,1.5,54.7,158.8,1 216,-1,1492.7,69.6,53,148.4,1 216,-1,108.8,348.2,50.6,188.1,1 216,-1,356.7,105.8,52,178.5,1 216,-1,900.3,144.5,73.2,181.1,1 216,-1,288.9,126.9,55.1,173.4,1 216,-1,109.5,663.5,103.9,258.6,1 216,-1,1129.6,132.3,59.8,189.7,1 216,-1,1721.6,457.6,77.2,210.9,1 216,-1,1357,566.5,103.9,245.3,1 216,-1,427.5,199.8,74.1,214.9,1 216,-1,1201.8,138.6,44.1,164.1,1 216,-1,505.7,327,74.9,220.1,1 216,-1,795.7,154.2,59.3,172.1,1 216,-1,1002.1,132.2,45.9,157.1,1 216,-1,520.2,122.2,50.7,180.4,1 216,-1,220.2,516.1,62.6,205.9,1 216,-1,815.4,322.1,75.4,191.5,1 216,-1,833.6,108.6,65.5,175.3,1 216,-1,36,613.6,106.8,243.4,1 216,-1,570.6,266.6,54,174.1,0.999 216,-1,759.3,308.8,77.6,205.4,0.999 216,-1,946.2,912.9,70.1,168.1,0.994 668,-1,1221.3,29.3,61.6,119.6,1 668,-1,687,206.1,79.5,112.9,1 668,-1,1480.9,5.6,60.7,142.4,1 668,-1,1710.9,457.1,97,207.2,1 668,-1,801.7,144.3,63.5,171.8,1 668,-1,316.4,343.5,71.5,207.5,1 668,-1,360.5,116.6,49.2,165.2,1 668,-1,1123,1,65.3,108,1 668,-1,1574.7,588.9,98,235.4,1 668,-1,559.1,109.7,52.2,176.9,1 668,-1,481.5,114.3,47.7,175.2,1 668,-1,1493.1,165.7,56.7,172.5,1 668,-1,1621,160.9,76.3,185.1,1 668,-1,752,80.5,46.4,154.6,1 668,-1,415.8,124.7,73.9,160,1 668,-1,408.7,2.6,55.9,156.5,1 668,-1,226.4,209.3,60.8,203.6,1 668,-1,278.1,222.9,55.2,186.3,1 668,-1,416.9,524.9,79.3,253.8,1 668,-1,1405.8,881.7,101.7,199.3,1 668,-1,1328.9,903.2,82.8,177.8,1 668,-1,353.6,4.3,53,150.9,0.999 668,-1,289.2,124.7,50.6,169.1,0.999 668,-1,863.5,930.4,71.2,150.6,0.144 668,-1,307.8,9.6,34.3,123.6,0.099 145,-1,1221.4,31.4,62,117.5,1 145,-1,1037.3,136.9,73.2,170.8,1 145,-1,356.5,102.7,56.2,180.1,1 145,-1,1488.1,68.6,55.7,149.3,1 145,-1,108.8,352.5,48.5,185.8,1 145,-1,420.4,259.9,78.1,221.9,1 145,-1,704.3,1,56,157.1,1 145,-1,288.3,126.5,54.4,170.1,1 145,-1,1721.9,456.6,76.9,211.7,1 145,-1,394.4,724.3,95.3,267.4,1 145,-1,538,64.7,50.5,166.1,1 145,-1,1358,566.9,106.3,245.1,1 145,-1,686.4,205.9,80.5,115.8,1 145,-1,1176.7,166.1,51.1,162.4,1 145,-1,218.6,127.6,51.7,162.2,1 145,-1,1298.1,175.6,59,180.2,1 145,-1,868.3,205.5,73.2,191.7,1 145,-1,807.8,246.5,62.2,184.8,1 145,-1,531.3,263.8,58.5,201.5,1 145,-1,383.7,2.1,46.9,131,1 145,-1,99.7,544.3,87.9,254.9,1 145,-1,481.8,191.3,60,173.2,1 145,-1,469.2,35.3,50.3,160.4,1 145,-1,585.3,252.8,58.8,194.3,1 145,-1,762.7,235.5,65,192,1 145,-1,162.9,629.4,75.6,211.9,1 145,-1,1057.7,919,74.8,162,0.969 176,-1,1221,30.4,62.2,118.6,1 176,-1,108.1,351,49.7,187.4,1 176,-1,1489.5,69.6,54.4,147,1 176,-1,356.2,104.8,54.9,177.3,1 176,-1,703.9,1,56.6,159.5,1 176,-1,212.3,125.4,54.9,168.3,1 176,-1,1358.6,567.6,104.8,244.1,1 176,-1,406.4,660.5,93.1,257.4,1 176,-1,419.9,39.1,57.8,163.2,1 176,-1,289.3,126.2,54.1,170.7,1 176,-1,942.3,123.6,72.3,172.5,1 176,-1,1721.4,457.4,77.2,211.1,1 176,-1,687.7,207.7,77.5,111.7,1 176,-1,421.2,232.5,77.5,221.2,1 176,-1,231.1,580.2,65.5,212.6,1 176,-1,547.2,150.5,66.6,172.7,1 176,-1,527,285,61.1,213.9,1 176,-1,1,611.8,91.8,233.7,1 176,-1,99.8,548.6,87.2,251.7,1 176,-1,863.4,182.2,75.1,189.7,1 176,-1,1215.2,160.4,56.5,178.2,1 176,-1,794.2,150.4,62.5,170.5,1 176,-1,797,278.9,64.9,188,1 176,-1,744.9,266.3,66.5,198.4,1 176,-1,1112.5,151.6,44.5,161.4,1 176,-1,1259.8,160.4,49.9,160.7,0.999 176,-1,1005.1,911,68.8,170,0.963 176,-1,537.4,67.5,51,161.5,0.462 790,-1,1221.2,29.1,62.1,119.3,1 790,-1,687.1,205.3,79.2,113.9,1 790,-1,547.8,115,61,176.5,1 790,-1,1723.2,451.9,76.8,215.2,1 790,-1,477.4,90.5,60.6,175,1 790,-1,291.7,504.5,79.9,229,1 790,-1,1575,593,99.9,231.1,1 790,-1,1486.5,27.7,59.4,148.3,1 790,-1,277.2,168.7,57.5,195.6,1 790,-1,782.8,127.2,50.4,182.5,1 790,-1,1442,65.9,49.9,164,1 790,-1,446.2,226.5,53.9,186.5,1 790,-1,749.8,71.1,54.7,160.7,1 790,-1,388.8,228.8,69,177.5,1 790,-1,233.3,134.2,50.3,165.2,1 790,-1,339.7,187.1,48.9,176.8,1 790,-1,1093.5,605.3,88.6,255,1 790,-1,253.7,1.2,52.6,122.7,1 790,-1,591.9,581.8,70.9,240.3,1 790,-1,422.9,91.1,56.6,164.8,1 790,-1,1031,633.9,77.3,235.5,1 790,-1,449.5,4,44.8,90.5,0.236 350,-1,1221.5,30.2,62,119.9,1 350,-1,686.8,206.6,79,113.1,1 350,-1,1740.6,83.4,56.7,148.1,1 350,-1,1610.6,1,60.6,137.8,1 350,-1,445.3,91.8,71.6,201.6,1 350,-1,1444.6,1,51.9,113.1,1 350,-1,287.4,129.8,54.8,173.6,1 350,-1,1033.1,62.8,55.1,169.3,1 350,-1,1003,412.8,65.6,197.6,1 350,-1,108.9,348,52.4,191.1,1 350,-1,968.6,54.6,61.7,177.9,1 350,-1,207.7,138.6,59,163.5,1 350,-1,1719.9,457.2,78.2,212.6,1 350,-1,364.3,105.5,55.2,181.4,1 350,-1,435.7,344.6,72.4,212,1 350,-1,1552.9,615.9,92.2,244.1,1 350,-1,795.6,150.2,61.2,172.1,1 350,-1,1827.5,480.9,68.6,210.9,1 350,-1,475.5,574.9,87.6,247.2,1 350,-1,226.3,335.1,58.3,190.3,1 350,-1,519.5,97.6,38.3,167,1 350,-1,390.2,494.6,89.2,230.4,1 350,-1,901.1,471.6,75,204.5,1 350,-1,844.5,1,48.2,96.3,1 350,-1,926.1,17.1,59.4,163.3,1 350,-1,843.4,455.7,83.4,225.9,1 350,-1,767.8,93.6,41.6,154,0.999 350,-1,710.1,96,59.3,170.3,0.998 350,-1,1868.1,64.7,52.9,162.4,0.996 350,-1,953.2,928.5,76.2,152.5,0.763 821,-1,1221.7,29.5,62.6,118.7,1 821,-1,688,205.6,77.3,114.8,1 821,-1,276.5,552.8,77.7,244.7,1 821,-1,790.8,136.3,63.5,176.4,1 821,-1,439.3,253.9,55,193.7,1 821,-1,556.7,115.8,62.8,174.8,1 821,-1,1632.1,2.2,53.4,152.6,1 821,-1,1724.2,452.8,74.3,214.8,1 821,-1,1578.1,593.7,97.5,234.5,1 821,-1,1045.2,553.8,84.4,241.1,1 821,-1,284.2,163.8,67.7,193.1,1 821,-1,376.1,264.6,70,173.5,1 821,-1,1427,45.4,51.2,156.9,1 821,-1,1473.8,43.4,58.5,153.1,1 821,-1,475.1,116.8,60.3,180.2,1 821,-1,751.8,71.5,57.6,162.9,1 821,-1,236.1,135,50.2,165.1,1 821,-1,972,580.2,76.4,227.5,1 821,-1,424.6,113.9,58.6,174.9,1 821,-1,346.7,174.8,50.9,172.7,0.999 595,-1,1221.8,30.5,61,119.2,1 595,-1,687,206,79.5,113.6,1 595,-1,1480.9,3.6,60.7,144.3,1 595,-1,801.7,143.9,61.8,174.1,1 595,-1,231.4,269.7,62.9,184.7,1 595,-1,1633.8,1,54.7,116.5,1 595,-1,366.9,261.1,67,203,1 595,-1,1717.9,456,82.5,210.1,1 595,-1,359.5,109.6,53.3,174.5,1 595,-1,562,112.6,49.2,175.1,1 595,-1,164.4,249,60.5,205.1,1 595,-1,287.4,126.2,52,172,1 595,-1,1574.5,588.9,94.1,233.2,1 595,-1,1654.8,232.3,73.5,199.5,1 595,-1,479.8,103.6,49.9,160.2,1 595,-1,753.7,82.5,43.6,152.1,1 595,-1,213.7,137.8,56.7,162.5,1 595,-1,429,67.6,50.8,171.7,1 595,-1,1073.5,855.1,119.2,225.9,0.999 595,-1,1868.3,269.9,52.7,179.1,0.967 595,-1,1157.4,866.9,91.7,214.1,0.932 595,-1,993.7,928.7,72,152.3,0.083 595,-1,308.1,908.1,103.3,172.9,0.082 148,-1,1221.3,31.4,62.4,117.9,1 148,-1,1032.1,135.7,65.4,169.3,1 148,-1,1488.2,68,55.6,149.8,1 148,-1,356.5,102.8,55.7,179.5,1 148,-1,704.6,1,55.6,157.1,1 148,-1,421.5,259.4,75.4,219.2,1 148,-1,109,351.3,48.6,185.8,1 148,-1,401.8,724.1,91.2,255.6,1 148,-1,1722.4,457.4,76.4,210,1 148,-1,1359.7,566.3,105,245,1 148,-1,288.1,122.6,54.4,174.6,1 148,-1,537.9,65.2,50.8,165.1,1 148,-1,685.4,206.5,82.9,114.1,1 148,-1,218.6,127.3,52.1,162.4,1 148,-1,809.5,254.6,62,181.1,1 148,-1,864.9,203.8,70.9,194.2,1 148,-1,382.9,1.5,47.8,126.1,1 148,-1,530.6,266.6,59.5,203.4,1 148,-1,1290.1,174.4,59,178.6,1 148,-1,486.3,194.6,57.6,170.6,1 148,-1,100.1,542.7,89.2,260.8,1 148,-1,1170.7,163.6,49.2,164.9,1 148,-1,589,260.4,57.2,191.1,1 148,-1,760.2,243.9,68.3,190.2,1 148,-1,172.8,619.5,73.5,213,1 148,-1,464.5,34.5,48.8,162.9,1 148,-1,1053.7,918.6,70.8,162.4,0.974 148,-1,796,146.3,62.1,196.6,0.22 791,-1,1221.1,29.2,62.5,119.7,1 791,-1,687,205.6,79.6,113,1 791,-1,1723.1,452.4,76.6,215.1,1 791,-1,549,115.7,60,176.9,1 791,-1,782.5,128.1,51.9,182.8,1 791,-1,476.9,92.8,61.7,177.3,1 791,-1,1574.6,591.9,101,234.3,1 791,-1,1486.2,27.7,59.2,145.3,1 791,-1,291.5,505.8,78.7,229,1 791,-1,278.2,167.1,57.9,197.2,1 791,-1,1441.7,66.1,50.1,163.3,1 791,-1,232.7,132,51,167.2,1 791,-1,750,71.4,54.7,160.2,1 791,-1,445.5,227.6,54,185.2,1 791,-1,390.9,229.6,66.2,178.4,1 791,-1,1089,604.2,92.9,258.5,1 791,-1,340,188,48.2,175.5,1 791,-1,1028.7,632.1,77.4,241.2,1 791,-1,253.6,1.3,52.7,122.9,1 791,-1,594.3,581.3,72.5,242.8,1 791,-1,423.3,92.6,55.4,164.1,1 791,-1,449.3,2.2,44.9,92,0.882 1018,-1,1221.2,29.4,62.2,119.1,1 1018,-1,686.4,206.7,80,113.6,1 1018,-1,1236.5,161.3,61.2,171.6,1 1018,-1,380.5,300.3,77,193.7,1 1018,-1,791.7,140.8,75,173.3,1 1018,-1,928.1,264.8,67.5,203.5,1 1018,-1,494.8,287.9,68.4,191.8,1 1018,-1,299.3,297.4,62.9,202.8,1 1018,-1,289.6,128.1,52.7,167.2,1 1018,-1,1468.2,185.5,64.8,165.9,1 1018,-1,231.3,140.7,55.1,162,1 1018,-1,538,121,62.7,171.1,1 1018,-1,296.4,495.4,83.5,212.5,1 1018,-1,841.3,276.3,70.3,200.7,1 1018,-1,1576,590.4,102.1,237.7,1 1018,-1,1153.3,601.8,88.1,251.3,1 1018,-1,1721.4,457.6,78.1,206,1 1018,-1,1699.6,178.3,54.8,170.4,1 1018,-1,1833.7,221.4,60.7,190.4,1 1018,-1,750.9,75,54.5,160.9,1 1018,-1,380.2,477.7,64.9,227.1,1 1018,-1,1713,684,102.9,233.8,1 1018,-1,443.9,167.1,77.4,193,1 1018,-1,585.6,555.2,81,238.8,1 1018,-1,314.6,2,36.8,129.6,0.999 1018,-1,399.6,173,53.3,159.4,0.997 1018,-1,372.6,103.2,59,180.1,0.974 1018,-1,359.4,910.7,93.5,170.3,0.966 1018,-1,501.2,119.2,43.4,129.6,0.696 970,-1,686.3,206.4,79.6,112.5,1 970,-1,793.5,141,73.5,171.9,1 970,-1,1221.6,31.2,61.1,119.5,1 970,-1,1156.9,101.9,63.6,165,1 970,-1,414.4,250,71.6,190.3,1 970,-1,1471.5,152,65.8,163.8,1 970,-1,1650.6,125.1,59.3,173,1 970,-1,1772.4,157.9,66.9,185.5,1 970,-1,492.1,237.2,66,183.1,1 970,-1,1575.1,589.7,102.8,234.8,1 970,-1,330.2,802,91.5,277.4,1 970,-1,928.7,324.1,69.4,214.7,1 970,-1,1719.9,456.1,79.4,209.4,1 970,-1,550.2,119.1,53.2,169.9,1 970,-1,1399.7,1.4,46.9,101.9,1 970,-1,751.8,73,55.6,161.8,1 970,-1,446,67.8,56.7,182.5,1 970,-1,229.4,140,55.8,159.9,1 970,-1,329.4,247.2,64.9,198.6,1 970,-1,309.3,430.4,86.4,199.4,1 970,-1,847.3,338.7,65,211.3,1 970,-1,1211.3,710.4,91.8,268.9,1 970,-1,1455.3,1,63.2,104.1,1 970,-1,389.3,413,68.5,221.3,1 970,-1,1742.4,676.5,95.3,250.9,1 970,-1,290.6,126.1,53.6,170.3,1 970,-1,313.7,1.1,48.1,130.8,1 970,-1,484,54.5,54.6,159.1,0.999 970,-1,381.1,1,53.7,127.5,0.997 538,-1,1221.6,29.9,61.8,120,1 538,-1,1487.1,1.8,58.3,142.5,1 538,-1,687.1,206.4,77.9,114.1,1 538,-1,779.1,146.1,63,172.4,1 538,-1,387.3,202.8,63.7,191.3,1 538,-1,1685.8,296.8,73.8,201.3,1 538,-1,288.9,123.9,54,172.8,1 538,-1,992.8,1.6,53.5,107.5,1 538,-1,1717.5,457.1,82.3,210,1 538,-1,173.2,309.9,66.7,195.6,1 538,-1,879.4,2,52.4,113.3,1 538,-1,1773,225.4,70.2,176.5,1 538,-1,1660.8,3.6,53.7,162.2,1 538,-1,461.1,109.3,65.4,182.2,1 538,-1,520.4,102.1,60.5,179.8,1 538,-1,1601.1,1,55.3,163.2,1 538,-1,800,598,79.4,265.1,1 538,-1,216.5,136.1,62.4,163,1 538,-1,928.7,1.3,56.6,108.9,1 538,-1,1588.7,591.4,66,239.2,1 538,-1,262.8,843.4,78.3,237.6,1 538,-1,405.4,47.2,49.4,155.2,0.999 538,-1,192.5,798.9,98.3,282.1,0.999 538,-1,974.1,750.1,126.9,256.2,0.999 538,-1,449.1,1,70.1,168.1,0.997 538,-1,361.8,115.5,51.7,170.8,0.994 538,-1,134.1,276.1,44.3,206.6,0.271 538,-1,1063.2,767.4,77.9,251.4,0.131 215,-1,1220.9,30.2,61.7,120.2,1 215,-1,686.9,206.9,78.8,113.1,1 215,-1,212.4,126.7,55,166.1,1 215,-1,108.8,349,50.1,187.6,1 215,-1,705.3,1,55.1,159.9,1 215,-1,356.6,105.5,51.8,179.1,1 215,-1,288.9,128.2,54.9,171.6,1 215,-1,1492.7,69.5,52.8,148.5,1 215,-1,403.9,579.1,86.1,248.7,1 215,-1,1721,457.3,77.8,211.6,1 215,-1,1357.5,567.1,102.5,245.5,1 215,-1,109.2,664.4,100.4,253.2,1 215,-1,899.9,143.1,73.8,185.4,1 215,-1,1130.2,132.8,62.5,189.8,1 215,-1,425.5,199.6,75.1,215,1 215,-1,795.7,154.4,59.7,168.9,1 215,-1,1004,132,46.8,158.1,1 215,-1,505.5,326,74.5,218.9,1 215,-1,520.6,123.9,50.7,177.2,1 215,-1,1201.9,136.7,45,163.6,1 215,-1,223.3,517.6,59.3,207.1,1 215,-1,813.6,322.2,74.2,189.8,1 215,-1,838.8,111.2,64.2,170.3,1 215,-1,29.7,611.8,101,232.1,1 215,-1,567.3,266.2,58.4,175.3,1 215,-1,758.2,306.8,76,206.1,0.999 215,-1,947.1,911.9,69.6,169.1,0.992 215,-1,104.1,556.1,64.4,194.7,0.158 173,-1,1221,30.9,62,117.3,1 173,-1,108.3,350,50.5,189.3,1 173,-1,355.7,104.1,55.8,178.7,1 173,-1,1489.4,68.9,54.6,148.9,1 173,-1,703.8,1,56.1,158.6,1 173,-1,212.4,125.8,54.3,167.2,1 173,-1,1721.1,456.5,77.9,212.1,1 173,-1,402.9,667.3,96.4,260.2,1 173,-1,289.2,126.9,54,170.4,1 173,-1,1357.8,567.4,105.3,245,1 173,-1,688,208.8,76.4,111.3,1 173,-1,427.4,41.3,56.2,160.1,1 173,-1,420.9,235.3,79.8,222.6,1 173,-1,98.1,550.2,89.2,251.8,1 173,-1,960,123.5,56.4,174.4,1 173,-1,550.1,152.5,64.9,171.3,1 173,-1,228.4,584.5,66.3,212.1,1 173,-1,1,600.8,69.3,249,1 173,-1,1218.9,164,62,176.9,1 173,-1,795.5,148.9,61.5,171.8,1 173,-1,1117,151.7,44.8,159.3,1 173,-1,529.6,285.9,59.2,215.6,1 173,-1,857.6,188.3,78.6,187.2,1 173,-1,796.9,278.5,63.8,176.3,1 173,-1,746,262.1,65.8,200.3,1 173,-1,537.3,65.7,52.3,166.3,1 173,-1,1263.7,163.4,51.6,159.1,0.997 173,-1,1008.2,911.3,75.4,169.7,0.986 173,-1,510.8,223.7,50.6,161.2,0.981 755,-1,1221.1,29.3,62.8,119.8,1 755,-1,686.9,205.7,79.1,114.1,1 755,-1,547.9,117.6,63.7,173.6,1 755,-1,1715.4,455.7,85.1,209.6,1 755,-1,781.1,133.6,63.7,178.1,1 755,-1,1462.4,95.1,53.8,165.5,1 755,-1,303,451.2,76.5,225.4,1 755,-1,1575.7,589.9,99.3,232.9,1 755,-1,483.9,567.8,91.2,248.5,1 755,-1,263.1,185.4,58.4,200.1,1 755,-1,462.4,187.2,52.4,190.9,1 755,-1,330.9,197,56.4,174.9,1 755,-1,399.7,199.3,66.9,175,1 755,-1,1495,17.2,59.1,140.6,1 755,-1,1589.7,87.2,62.9,179.7,1 755,-1,449.9,64.1,55.1,168,1 755,-1,258.5,1,49.2,122.7,1 755,-1,1164.8,672.7,92.3,265.2,1 755,-1,751.3,78.7,49,153.9,1 755,-1,1103.1,703,78.7,255,0.999 755,-1,359.8,108.4,49.1,170.1,0.999 755,-1,237.1,138.6,50.6,154.7,0.999 755,-1,397.2,62.5,59,171.8,0.998 755,-1,291.1,126.8,44.5,169.4,0.868 523,-1,1221.4,30,62,120.3,1 523,-1,1487.1,1,59.2,140.3,1 523,-1,687,206.4,79.3,113.5,1 523,-1,1720.7,460,78.5,208.3,1 523,-1,994.8,1.6,53.4,119.3,1 523,-1,1671.1,18.3,53.3,163.3,1 523,-1,163.4,322.9,65.5,195.1,1 523,-1,392.3,187.2,58.5,190,1 523,-1,288.1,123.2,54.1,174.8,1 523,-1,928.6,1.5,57.2,117.4,1 523,-1,465.5,124.8,64.2,184.3,1 523,-1,1609,5.8,56.5,172.8,1 523,-1,786.9,142.5,57.5,179.6,1 523,-1,1707.1,308.9,83.3,212.5,1 523,-1,823.5,606.9,73.4,258.3,1 523,-1,216.5,135,63.8,162,1 523,-1,1571.6,593.4,64.9,246.1,1 523,-1,270.3,811.9,80.9,267.8,1 523,-1,515.1,99,59.7,183.9,1 523,-1,356.5,157.8,51,175.8,1 523,-1,1758.9,643.2,68.2,216.1,1 523,-1,1763.8,209.6,61.7,168.9,1 523,-1,192.3,784.1,95.1,271.6,1 523,-1,951,720.3,120.4,257.7,1 523,-1,450.9,2.3,74.2,170.1,1 523,-1,886.2,1,50.5,115.4,1 523,-1,1862.3,216.5,58.7,196.3,1 523,-1,743.6,89.1,59.3,168.3,1 523,-1,400.8,32.2,47.4,163.1,0.999 523,-1,1599,289.4,60.7,197.3,0.999 523,-1,1042.6,737.1,72.9,244.7,0.37 523,-1,1046.2,934.7,72.3,146.3,0.064 494,-1,1221.2,30.8,62.7,119.2,1 494,-1,686.1,206.1,80.3,113.8,1 494,-1,999.4,1,55,133.5,1 494,-1,1497.9,1,57.8,127.3,1 494,-1,1734.7,187.4,68.5,172.5,1 494,-1,1815.3,174,76.7,186.6,1 494,-1,1708.1,459,91.6,207.8,1 494,-1,930.9,1,56.2,131.9,1 494,-1,875.7,1,52.9,127.6,1 494,-1,805.9,606,90.8,256.2,1 494,-1,464.4,151.6,64.8,200,1 494,-1,800.1,143.1,54.4,174.1,1 494,-1,213.8,729.2,98,271.2,1 494,-1,407,163.8,62.4,185.2,1 494,-1,1691.3,42.2,54.4,167.3,1 494,-1,301.6,763.6,77.2,262.4,1 494,-1,138.8,337.3,66.4,189.7,1 494,-1,1538.9,598.6,89.1,240.3,1 494,-1,921.2,663,115.8,251.1,1 494,-1,309.2,186.1,49.6,170.5,1 494,-1,1627.1,593.2,71,208.3,1 494,-1,217.2,135.5,63.8,164.8,1 494,-1,1625.3,326.2,62.9,192,1 494,-1,449.9,18.7,73.2,179.6,1 494,-1,1631.5,29.6,57.9,172.9,1 494,-1,714.2,93.2,60.5,165.2,1 494,-1,1759.8,343.9,74.7,214.2,1 494,-1,405.5,10.4,47.8,163.8,1 494,-1,360.5,107.9,55.2,180.9,1 494,-1,503.5,93.3,62.5,170.9,1 494,-1,286.3,125.3,53.7,175,0.999 494,-1,1008.7,681.7,81.7,232.2,0.998 494,-1,750.3,97.6,46.6,144.2,0.564 842,-1,1221.6,29.7,62.2,118.8,1 842,-1,687.4,206.3,78.9,113.2,1 842,-1,794.2,138.1,75.7,177.6,1 842,-1,556.4,116.8,61.8,173.4,1 842,-1,1649.1,15.8,58.6,160.5,1 842,-1,1721.5,453.4,78.7,212.3,1 842,-1,266.4,585.8,82.8,245.6,1 842,-1,1574.6,589.5,102.3,234.9,1 842,-1,1069.2,1,55.6,105.1,1 842,-1,752.1,70.6,56.5,163.6,1 842,-1,1469.1,61,61.4,153.1,1 842,-1,240.4,129.1,50.8,171.7,1 842,-1,296.5,161.7,69.7,194.6,1 842,-1,1416.4,30.4,53.1,158.7,1 842,-1,356.4,282,78.1,179.5,1 842,-1,474.9,136.1,59.8,181.2,1 842,-1,437,268.3,55.4,205.3,1 842,-1,254.2,1,53.9,121.5,1 842,-1,940.5,537.1,70.9,241.3,1 842,-1,1025.8,515.4,74.1,244,1 842,-1,414.9,133,60.4,174.8,1 972,-1,686.2,206.5,79.4,112.8,1 972,-1,1221.8,31.2,61.4,120.3,1 972,-1,794.3,141.6,70.8,171.2,1 972,-1,1775,161.7,67.8,184.8,1 972,-1,1471.1,151.6,65.8,163.3,1 972,-1,414.1,252.7,70.8,190.2,1 972,-1,1159.3,103.8,65.2,168.5,1 972,-1,490.6,238.1,68.7,188.4,1 972,-1,1651.5,126.5,60.1,172.1,1 972,-1,307.5,433,87.2,194.1,1 972,-1,1574.5,589.3,103.1,236.4,1 972,-1,334,804.9,90.1,275.3,1 972,-1,329.2,250.4,63.6,197.8,1 972,-1,928.9,322.2,68.9,214.3,1 972,-1,1722.3,453,76.7,214.5,1 972,-1,230.2,137.7,55.5,163,1 972,-1,751.6,72.1,55.7,162.9,1 972,-1,846.8,339.8,64.9,206,1 972,-1,550.5,118.6,52.9,171,1 972,-1,390.1,420.3,69.3,220.4,1 972,-1,1398.1,2.1,46.7,99.4,1 972,-1,446.6,68.3,56.1,179.3,1 972,-1,1206.5,706.5,92.8,269.2,1 972,-1,1452.7,1,63.2,101.3,1 972,-1,1739.1,673.5,97.4,251.8,1 972,-1,290,127,54,170.6,1 972,-1,314.6,1,45.8,129.6,1 972,-1,486.1,58.4,54.5,158.4,0.999 972,-1,381.2,1,53.6,126.5,0.999 972,-1,339.8,168.3,61.7,173.8,0.072 412,-1,1222,30,61.8,119.1,1 412,-1,685.7,205.4,80.3,115.1,1 412,-1,456.6,254.8,79.4,205.6,1 412,-1,1655.5,59.4,71,169.9,1 412,-1,358.6,108,54.6,178,1 412,-1,551.8,69.7,56.9,169.9,1 412,-1,109.4,347.1,53.1,191.7,1 412,-1,1719.8,453.7,78.7,210.9,1 412,-1,1771.5,124.1,60.1,170.3,1 412,-1,406.2,613.4,75.6,242.1,1 412,-1,286.7,129.4,54.7,166.2,1 412,-1,947.7,17.2,60.5,171.3,1 412,-1,831.6,1.1,54.9,130.9,1 412,-1,1005.6,30.3,55,163.2,1 412,-1,795,151.3,59.3,171.7,1 412,-1,1582.8,615.6,104.1,243.7,1 412,-1,359,1,66.5,111.5,1 412,-1,205.2,266.2,55.7,185.1,1 412,-1,220.6,142.9,66.3,154.8,1 412,-1,297.4,587.6,84.8,253.3,1 412,-1,1220.9,492.4,60.8,207.2,1 412,-1,859,535.9,104.3,242.9,1 412,-1,461.2,69.7,69.6,192.5,1 412,-1,705.3,557,90.7,244.4,1 412,-1,426.5,92.4,53.3,172.7,1 412,-1,712.1,90.9,63.6,170.9,1 412,-1,717.9,1,52.4,132.3,1 412,-1,1851.5,69.3,69.5,178.6,1 412,-1,931.3,549.7,84.2,221.7,0.999 412,-1,425.9,1.8,41.1,111.7,0.984 412,-1,979.8,924,81.8,157,0.916 372,-1,1222.1,31.9,61.3,118.1,1 372,-1,686.4,206.3,79.7,112.9,1 372,-1,1068.1,440.9,70.9,200.3,1 372,-1,1630.4,13.8,58.9,160.9,1 372,-1,444.6,310.8,70.6,216,1 372,-1,285.8,131.5,53.9,169.6,1 372,-1,1430.8,1,54.7,99.6,1 372,-1,359.3,112.8,54.8,173.7,1 372,-1,548.1,570.6,105.4,247.6,1 372,-1,443.1,79.7,69.6,195.3,1 372,-1,109.4,350.7,52.9,190.4,1 372,-1,510.2,89.8,49.2,166.8,1 372,-1,351.9,524.1,91.6,246.1,1 372,-1,1019.2,54.3,55.4,166.1,1 372,-1,1763,98,56.6,160.1,1 372,-1,1719.6,454.8,78.6,214.5,1 372,-1,460.4,542.9,67.2,230.5,1 372,-1,213.6,143.3,57.9,156.7,1 372,-1,1584.5,629.7,82.6,245.8,1 372,-1,797.2,150.6,57.8,171.7,1 372,-1,831.6,1.1,56.4,111.2,1 372,-1,954.6,40.7,62.4,176.9,1 372,-1,1806.2,451.9,63.4,212.6,1 372,-1,1820,70.7,61.5,160.6,1 372,-1,381.1,1.5,45.8,92,1 372,-1,213.7,307.8,52.7,181.5,1 372,-1,912.9,497.8,73.4,206.5,1 372,-1,758.6,97,44.5,142,1 372,-1,848.3,482.1,86.4,234.6,1 372,-1,966.5,917.4,83.8,163.6,0.997 372,-1,926.7,5.5,56.1,142.1,0.062 171,-1,1221.1,31.2,61.4,116.7,1 171,-1,109.1,350.7,49.5,187.7,1 171,-1,1489.1,68.9,54.9,148.3,1 171,-1,356.3,103.8,55.3,178.6,1 171,-1,212.4,125.8,54.5,168.5,1 171,-1,401.7,670.1,98.1,264.7,1 171,-1,1720,456.2,79.4,213.1,1 171,-1,704.5,1,56.4,159.5,1 171,-1,687.7,207.7,76.8,111.6,1 171,-1,1358.5,567.8,104.2,245.2,1 171,-1,288.4,126.8,54.8,170.3,1 171,-1,966.9,123.6,53.1,177.7,1 171,-1,100.2,548.3,88.2,252.3,1 171,-1,429.1,36.9,58.8,165.3,1 171,-1,421.5,236,77.7,224.2,1 171,-1,553.8,154.7,65.3,173.8,1 171,-1,529.3,283.3,60.7,217,1 171,-1,1122.3,152.1,45.9,159,1 171,-1,225.5,588.1,68,213.7,1 171,-1,856.1,191.8,78,186.1,1 171,-1,795.2,148.6,61.4,172.7,1 171,-1,1222.8,166.4,59.1,172.5,1 171,-1,799.3,277.7,62,173.1,1 171,-1,536.8,65.8,53.2,168,1 171,-1,746.7,262.1,64.8,200.8,1 171,-1,504.6,215.2,56.8,168.8,0.999 171,-1,1268,167.1,49.1,159.2,0.999 171,-1,1012.8,909.2,76.2,171.8,0.982 106,-1,1221,30.2,62.9,118.7,1 106,-1,704.8,1,55.5,159.1,1 106,-1,389.6,818.1,102.2,262.9,1 106,-1,1163.3,155.4,65.9,167.2,1 106,-1,356.6,106.7,56,177.6,1 106,-1,1487.3,69,55.9,149.5,1 106,-1,108.8,351.1,48.8,188.4,1 106,-1,943.9,205.2,71.8,186.9,1 106,-1,425.5,296.8,79.4,225.7,1 106,-1,1358.2,567.1,105.2,244.3,1 106,-1,209.9,129.8,49.9,164.7,1 106,-1,1721.5,457.7,77.6,209.5,1 106,-1,508.3,230.4,72.4,196.8,1 106,-1,292,126.1,57,172.6,1 106,-1,102.7,547.2,84.6,250.9,1 106,-1,1263.4,191.3,44.7,165.8,1 106,-1,701,183.3,58.8,166.3,1 106,-1,39.9,684.9,75.9,218.3,1 106,-1,805.2,196,64.2,188.3,1 106,-1,538.5,64.8,48.1,169.1,1 106,-1,440.2,4.1,53.6,151.8,1 106,-1,851.1,220,55.4,164.8,1 106,-1,375.9,7.5,49.2,159.9,1 106,-1,479,153.3,59.7,161.9,1 106,-1,1383.5,184.5,63.5,188.9,1 106,-1,482.1,40.3,59.5,159.9,0.999 106,-1,1429.6,185.3,54.3,177.3,0.994 106,-1,255.9,86.5,63.5,183.2,0.958 106,-1,1146.2,935.4,74.8,145.6,0.164 28,-1,686.6,205.8,79.9,113.4,1 28,-1,1206.5,30.9,72.4,119,1 28,-1,1361.7,567,104.7,244.6,1 28,-1,704.2,2.1,56.3,156.5,1 28,-1,1486.9,69.5,55.6,149,1 28,-1,384.9,381.6,84.6,240.2,1 28,-1,984,198,78.3,180.9,1 28,-1,1723.9,456.6,76.1,210.6,1 28,-1,794.7,149.6,62.4,174,1 28,-1,491.5,160.5,87,191.1,1 28,-1,102.5,547.5,84.6,251.9,1 28,-1,1826.9,240.4,65.2,188.3,1 28,-1,194,374.6,68.6,199.2,1 28,-1,355.4,103.6,53.5,181.2,1 28,-1,215.5,128.9,48.7,163,1 28,-1,283.4,124.9,55.8,169.1,1 28,-1,872.6,139.6,56.5,181.8,1 28,-1,415.6,82.6,52.2,157.4,1 28,-1,2,826.6,56.4,238.5,1 28,-1,1599.3,237.5,57.4,188.5,1 28,-1,455.3,58.4,48.4,165.8,1 28,-1,916.3,152.5,50.6,163.6,0.999 28,-1,1373.3,186.2,46.2,171.8,0.999 28,-1,1022.4,154.6,65.9,192.1,0.546 895,-1,1221,30.2,61.8,118.2,1 895,-1,687.1,205.8,79.3,114.4,1 895,-1,793.9,139.1,75.9,173.5,1 895,-1,1483.4,99.7,59.2,150,1 895,-1,480,188.2,62.2,178.2,1 895,-1,1576.3,596.2,101.2,232,1 895,-1,1106.3,16.2,55,155.4,1 895,-1,300.3,668.1,85.2,251.2,1 895,-1,1721.1,454.2,78.6,212.5,1 895,-1,558.4,115.7,59.6,175.4,1 895,-1,1426.9,1,51.3,153.1,1 895,-1,337.1,344.1,81.2,184.5,1 895,-1,302.3,161.8,66.9,192.8,1 895,-1,469.1,1.1,51.5,150.4,1 895,-1,965.7,437.7,86.9,232.8,1 895,-1,883.4,453.5,65.8,228.8,1 895,-1,753.2,71.6,54.8,162.9,1 895,-1,421.9,330.6,55.7,201.3,1 895,-1,1708.2,68,54,176,1 895,-1,1594.2,46.9,50.4,157.5,1 895,-1,397.9,182.3,58.3,178,1 895,-1,1747.5,680.1,89.3,235.4,1 895,-1,241.3,133.5,56.5,169.1,1 895,-1,253.9,1.5,53.9,118.7,1 895,-1,313.6,1.3,47.7,127.8,1 895,-1,1497.2,1,60.7,145.3,1 895,-1,414.4,56.3,55.1,174.8,0.999 895,-1,1335.5,917.2,99.9,163.8,0.947 895,-1,357,168.9,39.8,170.8,0.171 880,-1,1221.1,29.7,62.3,118.1,1 880,-1,1086.4,1,62.1,154.2,1 880,-1,687.1,205.9,78.6,113.6,1 880,-1,1479.4,89,58.3,151.9,1 880,-1,794.5,140,73.5,174.4,1 880,-1,1574.3,589.7,104.8,236.5,1 880,-1,302,162.2,68.9,197.3,1 880,-1,476.1,2.2,47.3,130.4,1 880,-1,479.8,169.3,60.4,181.6,1 880,-1,1721.6,453.2,78.7,215.4,1 880,-1,558.8,116.5,58.8,176,1 880,-1,285.9,643.8,86.3,252.1,1 880,-1,894.5,477.8,70.7,231,1 880,-1,334.8,323.6,81.2,185.7,1 880,-1,1694.9,54.8,53.8,169,1 880,-1,752.8,72.6,55.8,162.2,1 880,-1,1421.5,4.6,51.3,154.7,1 880,-1,982.9,461.2,68.7,230.3,1 880,-1,1577.1,33.9,55.9,149.8,1 880,-1,428.3,309.7,56.3,202.2,1 880,-1,254,1,53.3,122.5,1 880,-1,407.3,168.4,59.4,177.8,1 880,-1,240.5,131.1,51.2,167.5,1 880,-1,1756.4,684.3,94.1,232.1,1 880,-1,1498.1,2.4,56.5,150.6,0.999 77,-1,1221.5,30.3,61.2,118.6,1 77,-1,1244,176.3,71.5,151.5,1 77,-1,1487,69.9,55.5,145.6,1 77,-1,704.2,1,56.4,159.2,1 77,-1,411.5,329.7,83.9,230.3,1 77,-1,356.8,105.1,54.6,179.3,1 77,-1,686.6,206.3,79.7,115.3,1 77,-1,1360.6,566.7,104.5,244.7,1 77,-1,1722.3,455.9,76.9,210.6,1 77,-1,489.5,202.1,80.6,194.9,1 77,-1,983,187.3,71.7,185.7,1 77,-1,1429.3,200.5,72.9,195.4,1 77,-1,11.3,728.1,70.4,232.8,1 77,-1,773.5,191.3,69.9,181.9,1 77,-1,102.8,546.2,84.9,254.2,1 77,-1,291.7,126.6,51.5,168.3,1 77,-1,1333.8,202,40.4,164.8,1 77,-1,134.1,355.5,50,188.1,1 77,-1,212.1,131.6,51.1,163.1,1 77,-1,538.5,63.4,48.1,172.1,1 77,-1,840.3,174.1,58,182.6,1 77,-1,433,24.4,53.7,160.8,1 77,-1,884.5,192.7,54.7,170,1 77,-1,390.6,897.6,97.6,183.4,0.999 77,-1,380.5,28,54.4,162.7,0.999 77,-1,473.6,120.7,59.9,157,0.999 77,-1,252.4,95.7,58.3,179.2,0.998 77,-1,1500.1,210.5,42.1,164.5,0.292 689,-1,1222,30,62.2,119.6,1 689,-1,687.7,206.6,78.4,112.9,1 689,-1,1481,5.3,59.4,145.6,1 689,-1,363.8,529.9,98.2,251.2,1 689,-1,1488.4,138.4,52.9,177.3,1 689,-1,803.5,145.9,55.9,170.9,1 689,-1,1613.6,145.6,68.4,185,1 689,-1,1708.4,457.9,100.2,206.6,1 689,-1,487.8,129.5,45.8,181,1 689,-1,562.7,111.7,52.2,178.3,1 689,-1,1575.2,588.5,96.7,237.4,1 689,-1,421.9,144.1,62.9,163.4,1 689,-1,310.2,370.2,68.2,210.6,1 689,-1,1257.9,854.3,89.7,226.7,1 689,-1,360.5,113.9,49,171.6,1 689,-1,749.5,79.4,50.9,158.7,1 689,-1,1054.9,1,61.6,99.2,1 689,-1,1342.3,831.3,98.5,249.7,1 689,-1,246.2,201.1,60.5,196.3,1 689,-1,298.7,217.5,58.5,177.2,1 689,-1,406.1,22.2,53.6,162.4,1 689,-1,481.7,35.9,47.7,147.2,1 689,-1,224.3,130.4,52.1,167.2,1 689,-1,823.3,921.1,82,159.9,0.738 704,-1,1221.6,30.3,62,118,1 704,-1,687,206.5,79.8,113.8,1 704,-1,1481.8,6,58.3,147.3,1 704,-1,561.8,108.9,53.2,179.5,1 704,-1,1710.9,456.4,97.1,207.4,1 704,-1,1603.6,139.3,68.8,182.7,1 704,-1,413.4,154.3,75.5,164,1 704,-1,475.2,21,44.8,142.6,1 704,-1,1476.7,128.7,50.1,177,1 704,-1,485.1,140.4,47.6,182.5,1 704,-1,296,382.8,75.4,215.3,1 704,-1,1223.3,820,88.6,254,1 704,-1,1306.4,787.2,91.5,267.9,1 704,-1,1573.8,587.5,98.3,235.4,1 704,-1,359.5,109.2,50.6,173.5,1 704,-1,386.6,545.1,67.6,242.8,1 704,-1,803.2,139.2,47.4,175.3,1 704,-1,750,81.3,50.1,155.4,1 704,-1,256.9,199.4,58.7,194.6,1 704,-1,305.4,210.5,57.8,179.8,1 704,-1,409,25.6,58.9,162.2,1 704,-1,1009,1,62.8,87,1 704,-1,228.6,134.2,52,164,1 704,-1,840.4,931,76,150,0.368 496,-1,1221.3,30.1,62.4,118.5,1 496,-1,686,206.3,80.2,113.2,1 496,-1,1497.2,1,58.2,127.4,1 496,-1,998.6,1,56,132.3,1 496,-1,1816.3,175.2,81.4,187.7,1 496,-1,1734.6,189.1,69.6,173.5,1 496,-1,464.8,151.4,64.6,196.3,1 496,-1,798.2,142.2,58.4,175.9,1 496,-1,810.9,605.6,87,258.2,1 496,-1,930.9,1,56.4,130.4,1 496,-1,1635,597.6,75.9,215.8,1 496,-1,1717.6,459.2,83.7,206.3,1 496,-1,876.2,1,52.8,127.5,1 496,-1,1687.9,41.9,54.7,165.1,1 496,-1,407.1,164.5,61.7,186.4,1 496,-1,1540.7,598.9,88.9,240.6,1 496,-1,140,334.3,65.6,192.8,1 496,-1,1625.7,30.4,59.9,173.1,1 496,-1,214.4,734,97.5,272.9,1 496,-1,921.2,666.8,114,255.6,1 496,-1,299.3,767,78.3,262,1 496,-1,316,193,46.8,163.4,1 496,-1,1624,326.7,60.8,189.4,1 496,-1,1754.3,342.4,77.5,214.7,1 496,-1,217.3,134.8,63,163.3,1 496,-1,715.1,93.6,59.4,164.3,1 496,-1,359.5,112,54,174.2,1 496,-1,448.3,17.7,76,179.8,1 496,-1,506,94.6,61.4,170.1,1 496,-1,404.2,14,47.7,162.6,1 496,-1,287.1,126.8,54.9,171,0.999 496,-1,1011.3,686.6,80.3,227.9,0.997 496,-1,751.6,99.9,44.9,141.7,0.494 496,-1,1019.5,937.5,84.6,143.5,0.084 25,-1,686.7,206.3,79.7,113.4,1 25,-1,1206.3,31.8,72.4,117.9,1 25,-1,1487.3,69.2,55.6,150.2,1 25,-1,490.9,157.4,94.6,187.2,1 25,-1,1362.1,567,105,244.7,1 25,-1,704.1,1.3,55.7,158.3,1 25,-1,995.5,202,77.8,176.8,1 25,-1,794.7,149.7,62.1,174.6,1 25,-1,1723.6,457,75.8,210.4,1 25,-1,102.3,547.2,85.2,251.9,1 25,-1,196.8,377.9,68,201.2,1 25,-1,355.4,102.3,53.6,181.1,1 25,-1,215.7,130.6,48.9,161.9,1 25,-1,1822.9,234.2,64.7,192,1 25,-1,383.6,380.2,82.7,242.6,1 25,-1,283.5,124.4,56.2,171.8,1 25,-1,415.4,78,56.6,164.8,1 25,-1,1602.9,242,59.9,186.7,1 25,-1,874.8,139.3,55.2,181.8,1 25,-1,454.7,59.7,50.3,169.5,1 25,-1,2.7,836.7,52.5,233.8,1 25,-1,914.7,148.5,51.2,165,1 25,-1,1378.1,188.6,50.9,170.6,0.997 169,-1,1221,31.1,62.2,117.5,1 169,-1,401.4,674,96.7,260.7,1 169,-1,109.9,350.2,47.7,188.7,1 169,-1,1488.8,69.5,55.3,148.2,1 169,-1,356.2,103.3,55.8,180.5,1 169,-1,212.4,125.6,54.9,168.5,1 169,-1,1720.8,456.9,78.6,211.5,1 169,-1,973,124.9,56.7,171.7,1 169,-1,704.5,1,55.5,159,1 169,-1,1359.1,568.4,103.5,243.5,1 169,-1,688.1,208,77.3,111.3,1 169,-1,288.5,127.9,54.5,168.6,1 169,-1,100.6,548.6,87.3,252.8,1 169,-1,1127.5,152.9,46.6,163.2,1 169,-1,557,156.9,65.6,171.3,1 169,-1,528.5,279.5,63.6,219,1 169,-1,421.2,239.3,77.9,220.5,1 169,-1,432.9,36.3,57.5,169,1 169,-1,538.3,66.6,52.3,164.4,1 169,-1,222,590,69.7,212.3,1 169,-1,855.6,194,76.4,182.7,1 169,-1,1227.8,165,62.6,171.7,1 169,-1,795.4,148.3,61.5,172.9,1 169,-1,799.1,274.5,60.1,175.9,1 169,-1,747.7,262.8,67.4,200.5,1 169,-1,504.3,213.9,57.9,174.3,0.998 169,-1,1017.9,904.7,74,176.3,0.974 169,-1,1270.8,164.4,49.5,163.1,0.949 505,-1,1221.4,30.1,62.1,118.8,1 505,-1,686.7,205.5,80.2,115.5,1 505,-1,1495.6,1.2,58.9,134.6,1 505,-1,998.6,1,54.5,128.7,1 505,-1,323,180,51.5,165.9,1 505,-1,932.3,1,55.5,123.7,1 505,-1,788.5,140.8,61.6,181,1 505,-1,466.8,145.6,65.7,192.3,1 505,-1,149.3,332.2,65.6,191,1 505,-1,401.7,171.4,61.4,185.3,1 505,-1,1680.7,27.5,56.6,170.1,1 505,-1,880.5,1,52.3,124.5,1 505,-1,823.7,609.2,75.9,250.7,1 505,-1,1673.9,612.2,75.3,214.6,1 505,-1,1728.2,461,72.1,206.1,1 505,-1,1739.9,195.3,66.3,174.4,1 505,-1,293.7,783.8,75.9,251.3,1 505,-1,1833.8,187.1,82.7,197.4,1 505,-1,1617.9,21.6,56.4,176.6,1 505,-1,1733.1,331.4,78.7,207.7,1 505,-1,217.3,134,63.8,163.6,1 505,-1,1550.5,598,77.8,237.7,1 505,-1,932.6,688.6,117.4,253.7,1 505,-1,208.8,749.4,90.3,276,1 505,-1,1618.1,308.1,65.7,191.8,1 505,-1,513.4,93.7,58.3,175.7,1 505,-1,450.2,9.9,74.6,181.2,1 505,-1,716.7,93.6,63.6,170.1,0.999 505,-1,288.4,124.9,54,171.8,0.999 505,-1,360,105.9,54.9,184.3,0.999 505,-1,401,18.9,47.3,158.3,0.998 505,-1,1024.6,704.9,75,241.6,0.948 804,-1,1221.2,29.2,62.6,118.6,1 804,-1,686.7,205.9,79.4,113.5,1 804,-1,1614.4,1,57.9,135.3,1 804,-1,1723.6,452,74.8,214.7,1 804,-1,281.2,528.2,79.2,238.7,1 804,-1,1574.9,590.5,100.3,233.6,1 804,-1,549,114.2,63.9,176.8,1 804,-1,786,128.7,49.8,181.2,1 804,-1,278.6,164.7,60.8,200.6,1 804,-1,477.5,99.6,64.2,180.2,1 804,-1,232.9,133.3,51.8,166.1,1 804,-1,440.1,232.6,58.7,196.7,1 804,-1,383.5,243.7,72.4,174.6,1 804,-1,1477.1,31,60.9,153.3,1 804,-1,1075.8,578.6,80.9,251.9,1 804,-1,750.3,69.9,58.2,166,1 804,-1,1004.4,605.1,75.1,246.2,1 804,-1,346.8,179.6,50.4,176.8,1 804,-1,1438.2,55.3,50.6,157.9,1 804,-1,422.3,99.4,58.7,170.2,1 804,-1,443.5,1.2,40.7,83.7,0.999 804,-1,254.2,1.7,53,124.4,0.998 804,-1,614.1,583.4,95.3,234.6,0.085 120,-1,1221.7,30.3,62.2,118.2,1 120,-1,1111.1,147.3,82.7,171.8,1 120,-1,355.7,104,57.1,180.7,1 120,-1,1487.6,68.4,56.4,150.2,1 120,-1,394.3,782,102.6,279.4,1 120,-1,212.6,128.4,50.5,166,1 120,-1,704.1,1,56.2,159.9,1 120,-1,1721.4,457.5,77.6,209.1,1 120,-1,108.1,350.4,49.5,186.5,1 120,-1,921.8,208.4,69.3,196.1,1 120,-1,1358.7,567.6,105.2,243.7,1 120,-1,426.6,286.8,77.9,224.5,1 120,-1,287.8,126.5,54.4,168,1 120,-1,522.2,243.1,72.9,203.8,1 120,-1,538.1,64.5,50.1,168.8,1 120,-1,477.8,168.5,57.8,156.9,1 120,-1,1233,179.3,43.6,167,1 120,-1,102.3,544.2,87,260.5,1 120,-1,786.8,210.2,66.1,190.4,1 120,-1,1350.4,182.5,67.8,186.7,1 120,-1,377.3,1.5,47.8,151.4,1 120,-1,833.5,228.2,56,178.7,1 120,-1,81.5,653.8,67.6,226.6,1 120,-1,482.9,39.2,58.5,168.2,1 120,-1,446.8,1,53.5,146.4,1 120,-1,1109.5,925.6,86.1,155.4,0.14 993,-1,687,206.2,79.2,113,1 993,-1,1797.7,184.4,70.7,182.3,1 993,-1,793.7,140.1,74.4,172.5,1 993,-1,1220.8,31,62.2,121.2,1 993,-1,1471.6,172.9,64.6,164.2,1 993,-1,501.3,263.3,65.4,185.6,1 993,-1,1194.1,126.6,59.6,172.5,1 993,-1,401.1,277.3,66.9,197.3,1 993,-1,838.1,308.2,70,205.8,1 993,-1,328.6,848.8,96.2,232.2,1 993,-1,1671.8,147.9,59.1,173,1 993,-1,289.7,124.3,52.2,169.8,1 993,-1,1576.7,590.1,102.5,236.8,1 993,-1,231.2,134.7,55,167,1 993,-1,1721.8,453.1,77.9,215.5,1 993,-1,751.6,71.2,55.3,163.5,1 993,-1,543.9,119.6,57.7,168.9,1 993,-1,301.6,463.4,83.5,195.6,1 993,-1,1182.6,658.4,91,266.3,1 993,-1,920.2,301.7,71.3,208.9,1 993,-1,314.7,272.5,64.2,200,1 993,-1,386.9,446.8,66.5,222.9,1 993,-1,443.6,64.4,58.2,177.5,1 993,-1,504.6,78.2,53,154.2,1 993,-1,313.6,1.6,45.7,130.1,1 993,-1,1740.5,674.1,93.7,249.6,1 993,-1,386.5,166.3,66,189.1,0.999 993,-1,1440.5,3.5,59.8,79.5,0.883 993,-1,386.1,6.1,48.9,132.9,0.273 988,-1,686.8,206.2,79.6,113.1,1 988,-1,1222.1,30.7,60.7,119.7,1 988,-1,793.2,140.3,73.6,172.3,1 988,-1,1190.6,124.9,55.2,164.3,1 988,-1,402.5,266.7,71,196.8,1 988,-1,1794.1,179.9,67.9,181.9,1 988,-1,496,252.4,67.2,191,1 988,-1,1468.2,167.2,67.9,168.5,1 988,-1,837.8,314.2,72.6,207.1,1 988,-1,1576,589.9,102.9,235.5,1 988,-1,300.5,454,84.3,205,1 988,-1,1671.4,146.1,54,166.4,1 988,-1,330.6,841.6,94.1,239.4,1 988,-1,751.5,71.7,55.6,163.7,1 988,-1,1720.5,455.5,78.8,211.5,1 988,-1,1189.9,669.4,89.6,261.4,1 988,-1,545.1,118.5,57.2,168.5,1 988,-1,229.7,135.7,55.5,163.3,1 988,-1,289.3,125.2,52.8,171.2,1 988,-1,316,265.2,62.8,200.1,1 988,-1,921.6,302.8,68.5,209.3,1 988,-1,390.5,440,65.1,218.1,1 988,-1,1739.8,673.7,94.2,249.5,1 988,-1,501,73.6,51.2,154.3,1 988,-1,446.7,65,57,178.8,1 988,-1,1448.5,1,54.9,89.1,1 988,-1,314.8,2.3,45.1,129.4,1 988,-1,378.6,165.5,63.4,194,0.998 988,-1,380.9,1,53.5,137.2,0.994 988,-1,1386,2.7,41.9,86.9,0.979 136,-1,1221.9,30.9,62.1,117.5,1 136,-1,1488.7,68.7,54.9,148.9,1 136,-1,356.4,103.4,55.7,183.1,1 136,-1,1060.6,135.1,76.3,179.6,1 136,-1,391.5,747.1,99.4,270.2,1 136,-1,108.6,349,49.2,189.5,1 136,-1,287.7,125.3,54.9,170.3,1 136,-1,1721.4,456.7,77.6,210.9,1 136,-1,704.3,1,55.5,158,1 136,-1,536.6,65.8,50.7,163.2,1 136,-1,687.4,205.8,79.1,116.5,1 136,-1,888.1,209.5,77.5,193.9,1 136,-1,1359.4,567.4,104.5,243.1,1 136,-1,423.2,273.4,77.4,220.6,1 136,-1,219.9,128.9,50.7,161.5,1 136,-1,1198.5,170.9,50.3,164.8,1 136,-1,378.5,1,49.8,136.7,1 136,-1,478.9,178.1,59.2,170.6,1 136,-1,530.5,257.3,62.6,208.9,1 136,-1,815.7,244.5,58,173.3,1 136,-1,1318.9,184.9,56.1,178.4,1 136,-1,772.6,228.4,59.7,188.9,1 136,-1,475.9,47,54.5,156.2,1 136,-1,138.1,639.8,73.1,212.7,0.999 136,-1,99.3,545.9,81.5,253.5,0.999 136,-1,572.5,245.4,56.1,193.5,0.998 136,-1,1068.5,925,87,156,0.959 136,-1,450.3,5.1,46.5,127.9,0.689 444,-1,1221.5,30.2,62.7,118.6,1 444,-1,936.4,1,60.5,159.4,1 444,-1,686.7,205.9,79.1,113.7,1 444,-1,359,107.9,53.9,179.5,1 444,-1,1006.6,12.7,55.8,157.6,1 444,-1,450.5,218.3,73.6,196.3,1 444,-1,1363.4,534.7,74.9,208.9,1 444,-1,1719.9,454.7,78.3,214.3,1 444,-1,112,349,53.4,190.9,1 444,-1,856.5,1,52,140.8,1 444,-1,286,126.3,54.3,171.9,1 444,-1,798.8,152.4,52.6,170.7,1 444,-1,1750.1,151.5,67.2,171.5,1 444,-1,264.6,642.5,89.5,260.4,1 444,-1,1561.6,614.7,74.3,241.2,1 444,-1,244.8,234.4,50.9,179.7,1 444,-1,359,670.4,76.2,245,1 444,-1,776.9,571.9,75.8,252.1,1 444,-1,880.5,582.7,117,243.5,1 444,-1,1674,365.3,69.6,196.2,1 444,-1,528.8,70.2,53.8,171.2,1 444,-1,1845.3,393.9,75.7,208.4,1 444,-1,220.9,136.8,56.5,155.9,1 444,-1,423.2,1,43.6,136.5,1 444,-1,428.7,121.1,60.7,171.1,1 444,-1,1699.8,103.3,69,171.3,1 444,-1,362.6,3.2,61.1,132.4,0.999 444,-1,964.8,599.4,83.8,219.8,0.999 444,-1,728,1.5,50.6,93.7,0.998 444,-1,712.5,89.3,59.4,173.6,0.998 444,-1,755,86,48.2,154.9,0.993 444,-1,1013.5,921.9,87.4,159.1,0.971 444,-1,451.7,40.4,65.4,205.6,0.06 758,-1,1221.3,29.2,62.5,119.6,1 758,-1,687,205.8,79,114,1 758,-1,546.5,116.8,64.3,175.1,1 758,-1,1716.4,454.2,84.3,211.3,1 758,-1,781.6,134.5,64.4,177.8,1 758,-1,1462.9,88.7,52.8,171.1,1 758,-1,303.9,458.4,76.8,225.2,1 758,-1,1574.7,588.9,100.5,235.1,1 758,-1,265.1,183.3,58.3,197.8,1 758,-1,459.7,189.1,53.6,190.3,1 758,-1,330.5,195.3,55,174.9,1 758,-1,1583,88.9,63.3,176.2,1 758,-1,501.6,564.3,77.7,253,1 758,-1,401.3,203.5,65.3,172.8,1 758,-1,1162.1,674.8,87.6,261.9,1 758,-1,453,64.8,58.2,170.6,1 758,-1,257.9,1.1,49.8,122.7,1 758,-1,1495,18,60.3,143.7,1 758,-1,752.1,82.4,48.9,152.2,1 758,-1,398.8,65.1,56.3,167.4,1 758,-1,236.6,136.3,50.5,156.8,0.999 758,-1,1096.8,694,77.7,246.1,0.999 758,-1,359.6,108.5,50.1,172.7,0.999 47,-1,394.5,361.6,87.2,234.7,1 47,-1,686.6,206.1,78.8,114.1,1 47,-1,1218,29.6,67.1,115.4,1 47,-1,1487.8,69.9,54.6,149.1,1 47,-1,704.1,1,55.9,156.5,1 47,-1,489.2,173.6,91.2,197,1 47,-1,1361.7,566.7,105.3,246.1,1 47,-1,1722.4,456,75.7,211.3,1 47,-1,355.6,107.3,54,175.9,1 47,-1,213.6,125.9,49.5,166.7,1 47,-1,899.8,200.1,70.9,176,1 47,-1,100.3,545.7,86.6,255.7,1 47,-1,1008.6,161.4,78.9,190.1,1 47,-1,167.7,366.9,66.8,190.9,1 47,-1,284,125.9,54.2,170.3,1 47,-1,3.2,788.2,66.2,242.7,1 47,-1,794.9,148.5,62,175.4,1 47,-1,412.6,93.5,56.6,150.9,1 47,-1,859.4,150,61.9,180.9,1 47,-1,1852.1,268.6,68.9,196.8,1 47,-1,1332.7,178.8,53.4,164.6,1 47,-1,484.7,43.7,57,156,0.999 47,-1,1487.1,216,61.3,200,0.999 47,-1,439.2,38.5,57.1,177,0.997 47,-1,1378.1,215.5,46.1,177.8,0.996 47,-1,541.5,62.7,42.2,172.5,0.996 733,-1,1221.3,30,62.6,118.6,1 733,-1,687.1,205.5,78.4,114.9,1 733,-1,1480.1,7.1,59.9,147.8,1 733,-1,258,186.9,58.5,199.5,1 733,-1,1471.2,111.6,51,165.7,1 733,-1,405.2,185.4,74.3,164.6,1 733,-1,297.5,423.1,76.5,223.1,1 733,-1,552.1,112.2,58.7,180.4,1 733,-1,783.6,137.2,54.3,178,1 733,-1,1574.9,589.4,99.1,235.2,1 733,-1,1712.1,456.4,95,207.6,1 733,-1,477.1,169.2,48.7,182.7,1 733,-1,419.6,554.7,89.3,249.6,1 733,-1,323.4,197.4,60.6,181,1 733,-1,1597.2,103.8,59.4,181.4,1 733,-1,1222,721.8,96.5,275.1,1 733,-1,751.1,84.8,50.1,150.3,1 733,-1,1148.8,748.8,83.2,259.3,1 733,-1,430.5,42.1,59.3,171.5,1 733,-1,359.9,107.6,50,175.1,1 733,-1,318.6,1,48.8,131.9,0.999 733,-1,236.4,140.3,53.3,160.2,0.96 42,-1,685.9,206.3,80.6,113.8,1 42,-1,1211.1,31.3,74.7,119,1 42,-1,391.6,365.7,86.1,238.5,1 42,-1,1486.6,69.2,55.9,151.1,1 42,-1,704.5,1,56,157.4,1 42,-1,1362.4,566.6,104.4,245.3,1 42,-1,1722.9,456.4,75.7,210.7,1 42,-1,483.9,167,95.4,198.4,1 42,-1,911.5,192.3,92.7,186.2,1 42,-1,214,128.7,49.7,164.4,1 42,-1,100.8,546.5,86,255.5,1 42,-1,1009.6,158.6,79.8,187.1,1 42,-1,353.5,104.8,54.7,178.4,1 42,-1,795.6,148.5,61.2,174.8,1 42,-1,174.4,370.1,67.6,192.5,1 42,-1,284.7,127.2,52.8,167,1 42,-1,862.7,148.1,60.4,182.6,1 42,-1,1,799.3,66.7,240.4,1 42,-1,1342.9,187.2,55.2,171.4,1 42,-1,1843,258.3,77,197.4,1 42,-1,444.8,46.3,53.9,169.8,1 42,-1,397.7,82,53.8,162,0.999 42,-1,1495.3,220.9,56.8,195.5,0.999 42,-1,490,42.8,47.3,152.8,0.879 42,-1,542.7,61.4,43.1,179.2,0.427 604,-1,1221.5,30.3,61.2,119.7,1 604,-1,687.2,205.8,79.1,113.8,1 604,-1,1480.4,3.8,60.8,144.7,1 604,-1,800.7,143.5,65.4,173.9,1 604,-1,364.5,276.3,65.5,196.7,1 604,-1,1621.3,2.7,55.1,107.4,1 604,-1,1707.8,457.6,95.4,208.9,1 604,-1,237.4,263.3,63.2,189.6,1 604,-1,1648.7,226.4,70.3,199.4,1 604,-1,1574.3,588.9,97.5,235,1 604,-1,561.9,111.5,50.9,177.4,1 604,-1,488.2,96,46,160.6,1 604,-1,169.3,244.3,59,208.5,1 604,-1,286.9,126.2,51.9,172.4,1 604,-1,219.1,137.1,53.8,159.4,1 604,-1,360.3,114.5,50.4,173.6,1 604,-1,752.4,79.6,44.2,155.5,1 604,-1,432.8,72.2,49.3,169.6,1 604,-1,1080.9,878.4,125,202.6,1 604,-1,395.6,91.3,50.4,159.4,0.971 604,-1,622.7,553.5,91.1,250.4,0.054 358,-1,1221.8,31,61.1,118.3,1 358,-1,687.4,207,77.9,112.9,1 358,-1,1024.7,426.7,68.7,198.6,1 358,-1,1436.1,1.9,50.3,108.5,1 358,-1,1618.7,1,70.8,156.3,1 358,-1,1030,60.5,54.5,168.7,1 358,-1,426.8,331.7,82.8,212.4,1 358,-1,1750.1,86,62.1,159.5,1 358,-1,444.2,85.4,70,202.9,1 358,-1,1720.4,456.8,77.9,212.2,1 358,-1,108.1,350.5,53,189.5,1 358,-1,207.5,138.8,58.1,160.7,1 358,-1,286.9,130.6,56.1,172.3,1 358,-1,365,109.5,54.4,176.4,1 358,-1,960.9,54.8,64.6,173.2,1 358,-1,1820.6,476.3,68.4,204.1,1 358,-1,796.6,149.4,60.4,175.2,1 358,-1,840,2.1,51,100.3,1 358,-1,1851.2,57.6,53.8,167.7,1 358,-1,493,576.8,104.8,242.6,1 358,-1,1561.7,621.6,90.2,247.6,1 358,-1,221.2,323.7,55.2,185.8,1 358,-1,512.8,92.2,45,163,1 358,-1,383,508.4,84,237.3,1 358,-1,905.3,479,81.5,212,1 358,-1,844.5,469.5,83.8,224.1,1 358,-1,926.4,5,61.8,160.1,1 358,-1,763.6,93.5,42.7,150.9,0.999 358,-1,954.5,925.2,80,155.8,0.732 358,-1,383.4,4.8,41.7,78.5,0.208 54,-1,1221.6,28.8,61.6,118.3,1 54,-1,686.4,206.1,79.6,113.5,1 54,-1,399.7,350.2,86.3,232.5,1 54,-1,1487.7,70.2,54.5,149.9,1 54,-1,488.8,179.3,87.5,196.6,1 54,-1,1362,566.2,104.7,245.8,1 54,-1,704.1,1,55.7,158.1,1 54,-1,1720.9,456.5,78.1,210.4,1 54,-1,212.7,129.7,50,162.6,1 54,-1,355.4,109.9,55.7,176.2,1 54,-1,158.5,360.7,64.1,194.9,1 54,-1,793.9,148,62.7,179.2,1 54,-1,865.1,191.9,70.4,186.8,1 54,-1,284.4,127.1,54.5,169.2,1 54,-1,102.7,545.9,84.8,254.4,1 54,-1,1007,173.2,72.5,180.7,1 54,-1,4.8,777.2,70.5,234.3,1 54,-1,434.4,97.4,57.2,158,1 54,-1,1314.4,175.9,57.5,170.6,1 54,-1,540.5,63.2,45,168.1,1 54,-1,1372.2,211.5,41.5,168.8,0.999 54,-1,1477.7,215.9,59.7,194.7,0.999 54,-1,388.9,48,52.7,170.9,0.999 54,-1,484.7,43.9,56.9,159.4,0.999 54,-1,1862.3,270.6,58.7,205.7,0.996 346,-1,1221.6,30.9,61.1,119.4,1 346,-1,687.3,206.3,78.2,112.8,1 346,-1,1736.5,76.1,57.1,156.7,1 346,-1,1606.2,1.1,54.9,135.8,1 346,-1,445.6,98.9,72.5,199,1 346,-1,286.6,131.7,54.1,172.5,1 346,-1,451.2,576,92.7,243.7,1 346,-1,796.7,154.2,58.5,170.7,1 346,-1,1719.1,457.8,79.7,212.8,1 346,-1,992.3,412.9,61.2,194.7,1 346,-1,1830.4,487.6,67.9,206.9,1 346,-1,207.9,140.7,58.9,163,1 346,-1,970.2,59.5,62.5,173,1 346,-1,108.8,348.5,52.1,191.1,1 346,-1,364.9,105.5,56.3,182.2,1 346,-1,1445,1.8,54.3,119,1 346,-1,1551,616.9,86.2,239.8,1 346,-1,1034.2,66.3,54.3,165.2,1 346,-1,519.9,99.3,39.1,167.4,1 346,-1,226.8,338.1,56.9,189.9,1 346,-1,433.5,356.2,75.6,204.6,1 346,-1,927.3,19.1,60.5,162.3,1 346,-1,843.3,452.1,85.2,227.4,1 346,-1,396.9,488.6,86.4,236.2,1 346,-1,897.6,465.5,71.7,206.1,1 346,-1,711.8,95.7,58.5,171.6,0.999 346,-1,770.5,95.6,40.7,152.2,0.999 346,-1,1877.8,62.3,43.2,168.3,0.988 346,-1,844.2,1.1,47.1,91.8,0.949 346,-1,951.4,926.9,74.8,154.1,0.873 562,-1,1221,30.7,62.1,119.2,1 562,-1,686.9,206.1,79.4,114.3,1 562,-1,1484.3,3.3,60.1,146.1,1 562,-1,1663.8,269.7,77.2,203.3,1 562,-1,541.5,116.6,57.2,170.2,1 562,-1,789.5,146,65.9,176.6,1 562,-1,376.8,229.5,64.5,190.8,1 562,-1,1579.2,1.3,56.4,141.4,1 562,-1,1820,238.4,70.1,183.6,1 562,-1,1721.7,453.2,79.8,212.8,1 562,-1,872.9,1,53.3,109.5,1 562,-1,1657.4,1.6,52.9,145,1 562,-1,985.3,3.9,52.3,94,1 562,-1,199.3,290.7,65.5,189.5,1 562,-1,143.3,258.2,56.5,211.3,1 562,-1,289.1,121.4,52.2,172.5,1 562,-1,218.4,136.1,58,165,1 562,-1,429.7,143.1,53.8,151.9,1 562,-1,755.5,78.5,45.6,155.4,1 562,-1,1597.9,589.2,70.4,237.5,1 562,-1,743,590,80.7,249.4,1 562,-1,358.7,108.5,51.9,171.2,1 562,-1,463.4,86.7,63.3,177,1 562,-1,417.2,49.8,49.2,170.9,0.999 562,-1,1018.1,786.2,120,270.3,0.999 562,-1,245.3,909.2,77.9,171.8,0.999 562,-1,1100.8,806.3,89.6,235,0.997 562,-1,1024.8,944.7,69.6,136.3,0.217 529,-1,1221.5,30.5,62.5,120.4,1 529,-1,1485.8,1,59.3,141.6,1 529,-1,687,205.9,78.3,114.8,1 529,-1,387.1,198.8,63.8,188.4,1 529,-1,1718.3,457.5,82.3,209.7,1 529,-1,1670.3,15.2,52.2,160.5,1 529,-1,168.7,317.8,66.1,194.2,1 529,-1,992.6,1.4,56.5,113.9,1 529,-1,780.4,145.4,56.3,172.7,1 529,-1,288.3,125.4,52.9,171.5,1 529,-1,465.2,119.7,63.2,187.6,1 529,-1,883.2,1.2,53.5,117.6,1 529,-1,1605.9,2.9,58.1,170.2,1 529,-1,1701.1,301.9,79.3,210.3,1 529,-1,1764.6,216.5,69.2,170.7,1 529,-1,267.4,826.1,80.6,254.9,1 529,-1,191,784.4,94.6,289.6,1 529,-1,516.6,100.6,59.6,180.8,1 529,-1,816.8,600.1,73.9,258.8,1 529,-1,929.2,1,57.4,111.5,1 529,-1,219.2,137.1,60.2,159.8,1 529,-1,1579.2,594.2,63.8,240.8,1 529,-1,451.5,3.4,69.8,167.5,1 529,-1,1782,656.2,68.3,214.3,1 529,-1,957.8,728.6,122.4,256.6,1 529,-1,402.3,35.4,46.1,158.3,0.999 529,-1,1591.8,286.1,58.4,200.5,0.996 529,-1,1873.7,222,47.3,207.2,0.971 529,-1,752.8,95.3,54.2,165.8,0.51 529,-1,1050.1,751.8,81,241.8,0.228 440,-1,1221.2,30.3,63,118.4,1 440,-1,936.8,3.8,60.7,159.4,1 440,-1,686.8,205.9,78.3,113.3,1 440,-1,359.3,108.1,53,178.5,1 440,-1,1007.8,15.6,55.1,155.2,1 440,-1,111.2,349.3,55.1,191.6,1 440,-1,449.9,224,74.8,197.9,1 440,-1,852.3,1.7,52.1,136.2,1 440,-1,1719.7,457.7,78.8,211,1 440,-1,1351.9,530.6,63.4,198.2,1 440,-1,234.6,239.6,54,179,1 440,-1,286.5,130.2,53.7,168.1,1 440,-1,766.2,567.4,81.4,253.7,1 440,-1,1748.9,147.9,67.6,171.7,1 440,-1,797.9,150.1,52.7,171.1,1 440,-1,366.3,661.6,74.7,243.9,1 440,-1,1564.3,615.2,77.8,241.9,1 440,-1,879.5,573.9,107.7,242.3,1 440,-1,270.3,634.3,91.4,264.9,1 440,-1,431.9,116.5,57.3,170.8,1 440,-1,532,68.6,54.8,172.7,1 440,-1,1844.8,403.3,76.2,200.9,1 440,-1,1678.4,374.7,73.5,203.6,1 440,-1,423.5,1,42.9,133.3,1 440,-1,1693.2,94.8,71.5,172.6,1 440,-1,363.4,1.3,60.2,132.1,1 440,-1,220.7,136.8,60.1,153.7,1 440,-1,712.3,86.6,61.1,177.8,0.999 440,-1,959.8,598.9,85.5,219.6,0.999 440,-1,725.8,1,50,102.5,0.999 440,-1,1004.1,923.3,88.9,157.7,0.98 440,-1,756.3,86.1,45.3,154.8,0.955 194,-1,1221.8,30.7,61.2,120,1 194,-1,686.6,207.3,79,111.6,1 194,-1,211.8,127.4,56.1,166.7,1 194,-1,108.6,346.6,50.4,192.2,1 194,-1,42.9,630.1,117.8,250.9,1 194,-1,704.9,1,55.6,159.1,1 194,-1,1489,68.6,55.2,148.9,1 194,-1,409.1,622.4,92,250.3,1 194,-1,355.9,104.8,54.9,179.3,1 194,-1,1358.3,566.4,105.1,246.9,1 194,-1,289.1,127.6,55.1,169.8,1 194,-1,1720.9,457.6,77.3,210.7,1 194,-1,529.6,139.4,60.4,159.3,1 194,-1,397.3,40.1,62.4,166.4,1 194,-1,1167.2,148.4,66.1,182.7,1 194,-1,877.9,166.2,80.3,188.5,1 194,-1,1061.3,144.1,50.6,157.8,1 194,-1,421.6,218.1,75.4,215.1,1 194,-1,518.9,304.8,71.3,210.9,1 194,-1,795.6,150.8,61.2,176.5,1 194,-1,801.3,299.9,70.2,187.3,1 194,-1,230.8,544.7,63.1,213,1 194,-1,1226,145.7,50.9,174.4,1 194,-1,460.5,2,51.4,94.6,1 194,-1,751.1,282.7,68.4,203.8,1 194,-1,975.2,918.2,73.4,162.8,0.982 1047,-1,1221.8,30.1,61.7,119.3,1 1047,-1,687,206.7,79.8,114.6,1 1047,-1,794.9,142.3,70,171.3,1 1047,-1,476.3,323.7,76.4,195.9,1 1047,-1,1720.2,455.5,79.8,215.3,1 1047,-1,287.7,125,54.6,174.9,1 1047,-1,1308.7,199.6,58.1,165.5,1 1047,-1,356.8,330.5,76.6,209.8,1 1047,-1,1649.5,676.4,96.1,237.7,1 1047,-1,1722.3,218.5,58.9,177.1,1 1047,-1,1117.5,550.5,87.3,248.4,1 1047,-1,751.3,73.9,53.9,162.4,1 1047,-1,852.8,237.7,65.4,193.1,1 1047,-1,229.1,137.8,54.5,163.9,1 1047,-1,936.2,232.5,65.5,201.9,1 1047,-1,373.7,99.9,58.4,179.8,1 1047,-1,274.7,540.7,95.3,211.6,1 1047,-1,374.7,518.4,67.5,241.3,1 1047,-1,1470.7,218.9,73.6,167.6,1 1047,-1,288.2,331.7,74,207.5,1 1047,-1,510.7,171.5,75.6,194.9,1 1047,-1,308.3,2.5,38.7,130.8,1 1047,-1,1573.2,589.1,103,240.9,1 1047,-1,583.7,537.1,63,254,1 1047,-1,469.4,172.6,55.6,165.4,1 1047,-1,430,70.4,65.9,171.8,0.999 1047,-1,1863.4,262.4,57.6,197.7,0.995 1047,-1,876.1,927.2,70.7,153.8,0.101 787,-1,1221.5,29.3,62.2,119.3,1 787,-1,686.8,204.9,80.6,114.5,1 787,-1,547.5,114.4,61.6,177.1,1 787,-1,1723.9,452.3,75,214.3,1 787,-1,1575.3,590,100,234.2,1 787,-1,1486.1,25.3,59.4,147.6,1 787,-1,291.6,500.4,79.7,232.8,1 787,-1,477.2,83.8,60.1,177.3,1 787,-1,277,167,57.5,198.9,1 787,-1,783.3,127,52.4,182.9,1 787,-1,1442.4,65.2,50.9,165.4,1 787,-1,749.5,71.4,54.8,162.3,1 787,-1,447.2,222.9,53.9,187.3,1 787,-1,390.9,226,67.9,178.5,1 787,-1,336.6,189,50.5,175.8,1 787,-1,234.4,134,49.6,164.7,1 787,-1,1101.8,611.2,78.9,254.9,1 787,-1,584.2,580.9,70.2,242.5,1 787,-1,254.1,1,52.3,120.5,1 787,-1,423.8,86,56.6,166.6,1 787,-1,1037.3,636.7,74.2,251,1 787,-1,451.1,4,44.8,95.9,0.226 471,-1,1221.9,30.8,62,117.5,1 471,-1,686.9,206.4,79,112.4,1 471,-1,1004.1,1,55.3,152.5,1 471,-1,934.8,1,57.2,146.1,1 471,-1,452.2,186.2,72.1,196.1,1 471,-1,282.9,210.1,52.3,172.7,1 471,-1,1792.4,363.5,90.3,213,1 471,-1,360,109.8,53.3,175.5,1 471,-1,1698.5,459,101.1,209,1 471,-1,1505.9,1,58.2,115.2,1 471,-1,1641.7,341.5,65.4,200.2,1 471,-1,877.2,1,52.3,133,1 471,-1,120.7,342.8,58.2,189.9,1 471,-1,803.9,143.2,48.2,176,1 471,-1,1540.4,605.1,75.1,243.2,1 471,-1,217.2,138.1,63.5,158,1 471,-1,330.5,719,73.7,246.7,1 471,-1,235.5,685.2,91.1,270.4,1 471,-1,1724.1,167.5,65.5,167.4,1 471,-1,900.9,626.4,117.2,243.6,1 471,-1,515.4,81.2,59.2,173.4,1 471,-1,810,586,98.2,259.7,1 471,-1,1664.1,49.3,59.5,173.6,1 471,-1,445.6,32.6,72.9,182.3,1 471,-1,711.9,94,55.6,163.8,0.999 471,-1,753.1,98.3,56.4,138.5,0.999 471,-1,1762.1,144.6,82.5,177.9,0.999 471,-1,1719.2,59.5,51,172.4,0.998 471,-1,988,647.4,80.9,226.5,0.998 471,-1,414.2,4.6,44.1,153.1,0.992 471,-1,1026.3,923.3,82.5,157.7,0.984 471,-1,428.4,148,51,160.9,0.954 925,-1,1221.1,30.2,62.1,118.6,1 925,-1,686,206.1,80.3,113.3,1 925,-1,792.7,141.8,74.9,170.2,1 925,-1,1277.1,830.2,99.4,250.8,1 925,-1,454.9,205.9,69.8,193.9,1 925,-1,1576.6,591.7,101.8,236.6,1 925,-1,1616.6,77.3,52.5,165.8,1 925,-1,1125.5,47.5,55.5,161.9,1 925,-1,1721.3,452.6,79,214.3,1 925,-1,557,116,58.3,172.6,1 925,-1,750.9,73.1,56.6,160.3,1 925,-1,1476.5,115.3,60.8,162.2,1 925,-1,300,161.2,71.3,201.3,1 925,-1,1428.7,1.8,48.1,128.9,1 925,-1,1488.7,1,62.2,126,1 925,-1,946.1,392.1,83,227.3,1 925,-1,309.9,719.4,88.2,258.5,1 925,-1,402.2,363.1,63.6,211.5,1 925,-1,239.8,133.7,53.9,164.9,1 925,-1,863.5,410,64.5,219.5,1 925,-1,471.2,21.5,53.9,152.2,1 925,-1,328.7,373.8,78.7,190.4,1 925,-1,1748.7,677.7,92.4,244.6,1 925,-1,1730,105.7,54.4,174,1 925,-1,254.8,1.4,53.8,120.2,1 925,-1,371.7,206,59.3,186.7,1 925,-1,424.2,66.5,65,178.4,1 925,-1,313.8,2,48.2,129.6,1 2,-1,687.5,206.3,78.4,113.4,1 2,-1,1486.9,69.7,55.7,148.4,1 2,-1,704.8,1,56,156.8,1 2,-1,1362.2,567.2,105.3,245.4,1 2,-1,509.8,140.3,98.2,186.1,1 2,-1,1732.5,456.3,76.7,216.6,1 2,-1,796.1,147.7,61.8,175.3,1 2,-1,286.7,124.6,56.6,171.6,1 2,-1,102.1,545.7,86.2,254.9,1 2,-1,1033.8,132.9,80.3,186.5,1 2,-1,1791.2,205.2,69.6,185.4,1 2,-1,1097.9,210.1,64.1,184.3,1 2,-1,373.4,408,84.5,245.3,1 2,-1,222.4,129.2,48.1,162.5,1 2,-1,1197.9,35.5,73.1,117,1 2,-1,1040.1,1,48,84.6,1 2,-1,1633.8,262.3,66.7,183.4,1 2,-1,871,123.2,62.4,175.6,1 2,-1,356,103.4,53.5,179.9,1 2,-1,415.6,92,55.4,171.4,1 2,-1,1447.9,250,55.6,172.8,1 2,-1,225.8,392.7,62.8,206.2,1 2,-1,463.5,79.9,53.2,174.7,1 2,-1,262.7,364.2,64.7,228.8,0.998 2,-1,911.4,127,46.8,162.3,0.863 2,-1,997.9,2.2,48.6,78.6,0.313 6,-1,687.5,206,78.4,114.4,1 6,-1,1071.8,212.1,81.5,182.5,1 6,-1,1486.4,69.7,56.1,147.6,1 6,-1,704.8,1.1,55.7,157.1,1 6,-1,1361.9,567.1,104.6,245.8,1 6,-1,508.3,142.2,99.9,187.9,1 6,-1,1728.8,454.7,77.3,216.4,1 6,-1,1796.8,204.3,66.4,188.1,1 6,-1,101.6,545.2,85.8,255.7,1 6,-1,794.9,148.2,61.8,173.7,1 6,-1,219.8,128.5,49.1,164.8,1 6,-1,285,122.7,55.8,172.3,1 6,-1,874,127.1,63.4,178.8,1 6,-1,374.8,406.6,83.8,237.7,1 6,-1,355,105.4,54.4,177.7,1 6,-1,1198.7,36.4,73.4,115.2,1 6,-1,1631.2,258.4,63.1,187.7,1 6,-1,415.1,90.5,55.6,170.2,1 6,-1,221.4,390.5,65.9,205.6,1 6,-1,462.8,77.2,51.1,171,1 6,-1,1041.1,1,48.2,83.5,1 6,-1,1444.3,243.8,54.7,178.8,1 6,-1,1033.9,135.9,77.1,191,0.999 6,-1,1413.1,196.6,46,179.5,0.129 6,-1,1006.7,2.8,47,74.5,0.051 7,-1,687.1,205.9,79.2,114.3,1 7,-1,505.2,141.8,103.7,189.4,1 7,-1,1487,70.1,55.5,146,1 7,-1,704.7,1.6,56.1,156.2,1 7,-1,1362,567.1,104.4,244.9,1 7,-1,1069,210.2,82.6,181.5,1 7,-1,1796.2,205.7,67.8,188.8,1 7,-1,1727.6,455.7,78.2,212.9,1 7,-1,102.1,546.4,85,252.1,1 7,-1,795.1,148.5,62.3,174.1,1 7,-1,219.6,129.2,48.8,163.7,1 7,-1,875.2,128.7,61.2,174.9,1 7,-1,376.4,404.9,83.8,239.2,1 7,-1,1199.1,35.8,74.4,115.4,1 7,-1,285,122,55.6,173.6,1 7,-1,355.4,106.7,53.4,176.6,1 7,-1,218.6,388.6,65.8,206,1 7,-1,1630.8,259.8,61.3,184.1,1 7,-1,415.7,92.8,54.7,166.6,1 7,-1,462,77.3,50.5,168.6,1 7,-1,1443.6,242.4,54,179.3,1 7,-1,1040.6,1,47.2,82.8,1 7,-1,1034.8,137.2,76.4,188.6,0.998 7,-1,1410.2,192.1,46,172.6,0.838 37,-1,1208.5,27.9,74.8,121.8,1 37,-1,686.3,206,80.2,114.1,1 37,-1,388.9,368.5,89.7,238.4,1 37,-1,704.7,1.1,56.1,158,1 37,-1,1486.2,69.4,56.4,150.3,1 37,-1,1362.2,567.2,105.1,244.7,1 37,-1,1722.4,457.1,76.4,210.3,1 37,-1,942.6,195.2,77.6,182.8,1 37,-1,482.9,164,92,196.8,1 37,-1,183.2,372,68.1,191.2,1 37,-1,214.2,126.8,49,165.5,1 37,-1,795.6,149.6,61.3,174.3,1 37,-1,103.3,548.7,84,250.6,1 37,-1,1010,155.3,79.4,187.4,1 37,-1,284.6,123.5,53.3,171.8,1 37,-1,448.2,53.8,52.8,171.5,1 37,-1,354.6,109.7,54.1,173.5,1 37,-1,863.3,141.5,64.5,187.9,1 37,-1,2.1,810.8,64,242.1,1 37,-1,1840,251.2,70.4,194.9,1 37,-1,1354.2,190.1,52.4,161,0.999 37,-1,393.6,75.6,50.8,167.6,0.996 37,-1,1585.3,235.1,52.5,177.8,0.941 37,-1,909.6,157.7,43.5,174.8,0.117 37,-1,1403.3,229.2,38.9,161.6,0.075 39,-1,686,206.5,80.6,113.9,1 39,-1,1210.4,28.9,74,121.4,1 39,-1,922.1,194.3,91.7,185.9,1 39,-1,390,367.2,88.7,238.7,1 39,-1,1486.1,69.5,56.4,150.8,1 39,-1,704.3,1.1,56.4,157.7,1 39,-1,1361.8,566.5,105.6,245.7,1 39,-1,1722.8,457.3,75.5,210.2,1 39,-1,483.2,165.2,94.5,196.5,1 39,-1,179.7,372,70.5,192,1 39,-1,794.5,149.2,61.7,174.9,1 39,-1,214.4,128.5,49.4,163.4,1 39,-1,1008.9,155.2,80.7,189.3,1 39,-1,102.4,547.7,85.4,252.3,1 39,-1,284.6,124.5,54,170.6,1 39,-1,356.1,109.3,54.6,170.4,1 39,-1,864.8,145.2,58.4,185.5,1 39,-1,447.5,48.4,52.3,169.4,1 39,-1,1.6,807,65.7,244.4,1 39,-1,1841.6,252.2,73.5,196.4,1 39,-1,1349.4,189.2,55.2,166.1,0.998 39,-1,387.4,78.3,58,164.7,0.998 39,-1,494.1,42.5,41.4,147.6,0.174 39,-1,1502.4,218.5,51.3,193.5,0.066 55,-1,1221.4,29.7,61.3,116.6,1 55,-1,686.4,206.1,79.5,113.8,1 55,-1,400.1,349.6,86.1,231.8,1 55,-1,1487.4,70.2,54.8,149.9,1 55,-1,489.1,179.8,86.6,198,1 55,-1,704.1,1,55.8,157.8,1 55,-1,1362.1,566.5,104.6,245.6,1 55,-1,1722.2,455.9,76.3,210.8,1 55,-1,212.6,128.4,50,165.1,1 55,-1,354.8,111.1,55.6,173.3,1 55,-1,1006.2,173.7,73.1,179.6,1 55,-1,794.4,147.3,62.7,180.9,1 55,-1,859.7,192.9,71.9,182.6,1 55,-1,102.8,545.8,84.9,254.5,1 55,-1,284.1,126.4,55,169,1 55,-1,156.6,360.5,64.5,195.1,1 55,-1,6.7,777.1,69.3,230.4,1 55,-1,437.1,99.6,56.6,157.4,1 55,-1,1313.4,177.6,59.3,168.5,1 55,-1,1369.9,207.7,42.5,172.1,1 55,-1,540.9,62.3,44.3,170.6,0.999 55,-1,1476.5,214,61.2,192.8,0.999 55,-1,389.6,46.9,51.1,168.6,0.999 55,-1,484.9,44.2,57.3,161.6,0.999 55,-1,1862.6,272.8,58.4,205.8,0.998 62,-1,1221,30,61.5,117.2,1 62,-1,686.4,206.4,79.9,113.5,1 62,-1,1486.7,70.4,55.7,151.8,1 62,-1,404.5,342.2,82.6,236.7,1 62,-1,704.9,1,55.5,158.5,1 62,-1,1361.3,566.1,105.2,245.4,1 62,-1,355.6,110.9,54.8,174.9,1 62,-1,1722.2,456.7,76.5,210.2,1 62,-1,487.7,186.9,81,197.6,1 62,-1,1000.5,185.2,69.4,172.7,1 62,-1,102.7,546,85.2,254.2,1 62,-1,148,360.9,55.5,191.3,1 62,-1,830.6,196.2,84.3,181.5,1 62,-1,212.4,129.3,49.6,166,1 62,-1,287.1,126.7,53.9,169.8,1 62,-1,1293.6,178.9,63,168.3,1 62,-1,1464.7,207.7,62.7,194.4,1 62,-1,1360.2,210.3,43.6,166.5,1 62,-1,10.9,753.6,68.9,237.1,1 62,-1,385,39.2,51.9,161.4,1 62,-1,540.9,64.2,43.5,164.1,1 62,-1,457.4,114.7,49.6,145.4,1 62,-1,483.8,39.8,57.5,166.1,0.999 62,-1,890.9,185.1,53.6,164,0.999 62,-1,795.2,145,62.7,185.6,0.999 62,-1,439,32.2,52.3,152.5,0.996 62,-1,253.4,92.3,47.4,179.1,0.957 62,-1,1875.5,289,45.5,196.8,0.546 66,-1,1222.1,31.4,60.8,116.1,1 66,-1,685.8,206.5,80.7,112.2,1 66,-1,405.7,336.3,84.7,238,1 66,-1,1487.6,69.9,54.9,148.7,1 66,-1,1362,566.2,104,245.5,1 66,-1,704.8,1,55.3,159.2,1 66,-1,356.2,106.2,54.5,177.5,1 66,-1,1721.5,456.9,77.8,209.8,1 66,-1,814.3,194.8,73.7,179.5,1 66,-1,489.8,191.3,78.1,195.5,1 66,-1,146.4,357.3,56.9,195.8,1 66,-1,102.8,546.2,85.1,253.2,1 66,-1,1285.4,184.2,56.4,166.7,1 66,-1,1453.2,202.5,68.6,198.6,1 66,-1,995.2,187.4,68.9,175.8,1 66,-1,211.7,127.3,50.6,166.8,1 66,-1,9.9,749,71,239.2,1 66,-1,892.5,184.8,55.6,167.7,1 66,-1,288.2,127.4,53,168.4,1 66,-1,461.6,114.4,56.3,149.3,1 66,-1,539.3,65.3,46.7,165.1,1 66,-1,1351.9,204.8,41,170.2,1 66,-1,383.3,36.3,52.6,164.2,1 66,-1,436.8,26.3,53.5,161.8,0.999 66,-1,254.9,87.4,47.7,183.5,0.977 66,-1,492.5,36.4,49.4,171.2,0.957 66,-1,389.9,923.6,99,157.4,0.625 66,-1,1875.6,286.4,45.4,195.7,0.207 67,-1,1222.1,31.1,60.5,116.8,1 67,-1,405.5,336,87.3,234.8,1 67,-1,686.7,206.7,80.1,112.5,1 67,-1,1487.7,69.8,54.6,146.9,1 67,-1,705,1,55.5,159.2,1 67,-1,1361.8,566.1,104.6,245.2,1 67,-1,355.5,106.2,54.9,176.5,1 67,-1,1721.5,457.5,77.3,208.6,1 67,-1,1279.9,178.5,61.9,168.5,1 67,-1,808.5,194.9,74.6,178.8,1 67,-1,144.5,356.5,59.1,196.7,1 67,-1,490.5,192,76.8,195.7,1 67,-1,103,546.7,84.5,252.5,1 67,-1,211.3,127.1,51.1,167.6,1 67,-1,994.7,186.8,68,178.2,1 67,-1,889.5,186.1,56.8,165.5,1 67,-1,288.7,128.8,52.4,166.5,1 67,-1,465.3,113.6,55.2,153.5,1 67,-1,10,747,70.8,240.6,1 67,-1,1451.3,200,71.3,204.4,1 67,-1,539.5,64.5,47.1,167.5,1 67,-1,1350.9,204.7,41.4,170.7,1 67,-1,383,35.2,54.9,165.2,1 67,-1,435.8,26.2,51.7,160.3,0.999 67,-1,255.5,85.5,49.1,184.8,0.987 67,-1,391,919.4,97.6,161.6,0.907 67,-1,490.5,58.3,44.1,162.6,0.227 70,-1,1222,31.1,61,116.6,1 70,-1,406.1,332.4,86.7,231.4,1 70,-1,686.8,206.9,79.4,113,1 70,-1,1487.2,69.4,55.3,147.6,1 70,-1,1362.3,566.6,104.2,245.3,1 70,-1,1270.4,177.2,59.7,162.3,1 70,-1,704.8,1,56,159.4,1 70,-1,355.3,108.5,55.6,176.9,1 70,-1,792.6,194.1,76,176.1,1 70,-1,139.1,353.5,59,198.5,1 70,-1,1721,456.9,78.5,209.7,1 70,-1,494.3,195.7,75.5,194.6,1 70,-1,102.9,546.9,85.9,252.3,1 70,-1,1344.8,205.7,42.5,163.6,1 70,-1,211.4,129.9,50.9,164.1,1 70,-1,991.9,186.7,69,177.8,1 70,-1,288.9,128.1,52.9,168.4,1 70,-1,1440.9,199.7,75.4,201.6,1 70,-1,11.5,743.5,67.9,236.8,1 70,-1,468.1,112.9,57.5,164.9,1 70,-1,538.1,63.7,48.7,171,1 70,-1,888.5,185.6,56.3,165.6,1 70,-1,384.9,32.3,52.8,161,1 70,-1,436.8,24.8,51.2,160.6,1 70,-1,256.4,89.1,54.6,182.9,0.992 70,-1,385.2,910.8,103.3,170.2,0.975 70,-1,854.4,166.9,52.7,175,0.777 73,-1,1221.5,30.8,61.7,117.2,1 73,-1,1487.5,69.2,55.5,149.9,1 73,-1,686.8,206.3,79.2,116,1 73,-1,409.7,331.6,84.4,230.3,1 73,-1,704.6,1,56.2,158.5,1 73,-1,356.3,106.9,55.3,178.3,1 73,-1,1362,566.9,104.6,244.6,1 73,-1,1259.8,175.5,62.1,167.9,1 73,-1,491.5,200,79.4,193.8,1 73,-1,1721.9,455.4,77.4,212.3,1 73,-1,10.5,738.8,69.6,226.8,1 73,-1,136.4,354.5,55.2,194.1,1 73,-1,988.6,186.9,70.5,183.9,1 73,-1,779.5,191.2,81.5,180.7,1 73,-1,103.4,546.5,84.9,253.5,1 73,-1,1434.6,200.4,77.6,197.1,1 73,-1,211.6,130.4,51.4,164.2,1 73,-1,290,128.3,51.2,167.9,1 73,-1,1337.5,205.9,41.3,162,1 73,-1,538.2,63.5,48.2,169.4,1 73,-1,887.1,189.3,56,168.1,1 73,-1,467.8,114.7,63.1,162,1 73,-1,382.7,30.8,51.6,163.8,1 73,-1,435.2,25.3,51.6,160.4,1 73,-1,385.8,906.2,103,174.8,0.998 73,-1,256.4,93.4,54.5,174.7,0.997 73,-1,843.8,167.3,56.9,180.3,0.982 80,-1,1221.8,30.3,61.4,118.1,1 80,-1,1234.1,168.8,76,161.6,1 80,-1,704.1,1,56.3,159.8,1 80,-1,1486.5,68.8,56,151.3,1 80,-1,356.7,106,54.7,178,1 80,-1,1359.4,566.8,105,243.2,1 80,-1,412.5,325.6,83.7,231,1 80,-1,492.7,203.6,77.5,198.7,1 80,-1,686.4,206.6,80.1,114.6,1 80,-1,1722.9,456.9,75.6,209.6,1 80,-1,102.4,547.7,85.8,251.8,1 80,-1,981.4,188.9,70.7,185.2,1 80,-1,770.6,186,57.9,185.3,1 80,-1,293.1,127.3,51.6,168.2,1 80,-1,13.7,724.8,69.2,235.5,1 80,-1,387.7,889.3,100.4,191.7,1 80,-1,1326.9,205.1,41.3,165.3,1 80,-1,211.6,131.4,51.1,162.9,1 80,-1,1425.7,202.3,69.5,190,1 80,-1,130.1,355.3,48.2,192.3,1 80,-1,837.1,174.6,58.4,186.4,1 80,-1,539.2,62.2,47.9,175.3,1 80,-1,881.8,194.5,55,168.7,1 80,-1,432.5,22.7,55,162.6,1 80,-1,1491,200.5,51.2,181.9,1 80,-1,474.7,122.8,59.9,160.4,0.999 80,-1,379.9,27,54.3,163.4,0.999 80,-1,253.3,97.3,57.6,176.4,0.998 81,-1,1221.4,29.9,61,119.3,1 81,-1,1232.8,166.1,74.4,164.5,1 81,-1,1486.5,68.8,55.8,150.7,1 81,-1,704,1,56.4,159,1 81,-1,1359,565.3,106.5,245.4,1 81,-1,356.6,106.4,55,178.1,1 81,-1,493.6,204.3,77,199.3,1 81,-1,412.8,325.3,84.9,230.6,1 81,-1,1722.3,455.7,76.3,211.7,1 81,-1,979.8,188.9,71.6,184.6,1 81,-1,102.8,547.9,84.9,251,1 81,-1,685.7,205.7,81.6,116.1,1 81,-1,1324.9,204.8,42.6,161.3,1 81,-1,390,886.7,98.9,194.3,1 81,-1,293.6,126.7,51.7,167.5,1 81,-1,129.7,357.3,48.6,188.3,1 81,-1,1425.5,200.2,67.8,190.9,1 81,-1,14.4,724.1,68.5,233.9,1 81,-1,211.3,132.1,51.5,164,1 81,-1,767.6,182.6,56.8,183.7,1 81,-1,1490.3,201.6,51.9,180.5,1 81,-1,836.3,171.9,58.7,191.7,1 81,-1,881.3,195.7,54.3,168.2,1 81,-1,538.9,63.5,48.3,174.1,1 81,-1,432.8,21.5,54.2,163.2,1 81,-1,378.6,26.6,56.3,164.9,0.999 81,-1,476.3,123.2,57.5,158.6,0.999 81,-1,255.8,100.5,57.8,170.3,0.998 85,-1,1222,30.5,61.3,116.8,1 85,-1,497.5,209.3,74.9,198.5,1 85,-1,704.3,1,55.8,158.1,1 85,-1,417,319.6,83.4,231.4,1 85,-1,1487.7,69.6,54.5,147.4,1 85,-1,1359.1,566,105,244.9,1 85,-1,976.2,192.5,72.2,186,1 85,-1,1223.7,164.3,68.7,169.3,1 85,-1,1721.6,456.5,77.1,210.8,1 85,-1,356.9,105.1,54.9,179.8,1 85,-1,392.8,873.2,103.3,207.8,1 85,-1,102.2,545.6,85.2,255.5,1 85,-1,749.6,183.4,62.9,176,1 85,-1,16.6,720.2,70.2,229.8,1 85,-1,295.3,127.8,50.6,169.1,1 85,-1,1420.3,197,64.4,193.9,1 85,-1,210.1,130.9,50.7,163.4,1 85,-1,688.1,206.6,73.4,116.3,1 85,-1,1482.3,195.8,52.1,176.8,1 85,-1,127.5,354.3,43.2,189.5,1 85,-1,1317,201.3,42.6,170,1 85,-1,539.1,64.7,47.9,169.4,1 85,-1,255.4,95.6,59.3,180.4,1 85,-1,435.1,20,53.5,160.5,1 85,-1,479.9,124.9,55.2,155.3,1 85,-1,876,197.5,54.4,169.1,0.999 85,-1,834,172.4,56.5,189.5,0.999 85,-1,377.7,23.6,54.1,162,0.999 85,-1,809,162.2,48.7,165,0.266 88,-1,1222.1,30.3,61,117.2,1 88,-1,418.8,315.8,83,229.6,1 88,-1,703.9,1.7,56.3,157.9,1 88,-1,355.5,108.3,56.4,176.3,1 88,-1,1359.8,566.1,104.8,245.4,1 88,-1,1487.4,69.6,54.9,147.1,1 88,-1,1721.5,456.7,77.2,209.7,1 88,-1,500.1,211.1,74.2,199.5,1 88,-1,395.2,866.8,106,214.2,1 88,-1,970.5,193.7,74.2,189.1,1 88,-1,102.9,547.6,85.2,251.6,1 88,-1,1217.7,157.3,59.7,178.2,1 88,-1,738.6,185.4,66.8,182.5,1 88,-1,210.7,131.1,50.6,163.7,1 88,-1,295.1,127.2,51.5,169.1,1 88,-1,22.7,712.3,67.4,227,1 88,-1,1416.2,194.9,61.6,192.3,1 88,-1,1307.4,201,44.5,170.7,1 88,-1,1475.3,192.1,52.7,167.9,1 88,-1,437,12.9,52.9,159.8,1 88,-1,833.6,177.8,57.9,184.9,1 88,-1,123.9,355.5,44.6,189.2,1 88,-1,377.6,20.4,53.9,159.9,1 88,-1,538.2,62.4,48.4,173.3,1 88,-1,480.3,130.8,56.9,162.3,1 88,-1,255.4,93.8,59.7,179.1,1 88,-1,875.1,202.1,53.5,166.3,1 88,-1,691.6,207.6,59.6,116.6,0.992 88,-1,799.2,159,47.8,155.7,0.534 88,-1,487.9,38,51.8,166,0.381 93,-1,1222.1,31,61.6,115.9,1 93,-1,704.4,1,56.2,159.1,1 93,-1,1488.2,70.1,53.6,145.6,1 93,-1,356.7,109.9,53.7,173.4,1 93,-1,422.4,310.9,79.4,227.5,1 93,-1,967.7,196.4,71.2,188.5,1 93,-1,721.2,190.9,70.6,171.3,1 93,-1,1721.9,455.9,76.7,211.2,1 93,-1,1197.8,157,65.2,172.5,1 93,-1,403.7,853.5,101.3,227.5,1 93,-1,1358.2,565.3,105.9,246.2,1 93,-1,101.5,546.5,87.1,254.3,1 93,-1,295,126.9,53.7,169.9,1 93,-1,118,351.2,48.2,194.2,1 93,-1,209.9,130.1,50.7,164.5,1 93,-1,501.9,215.3,74,197.9,1 93,-1,1295.3,201.2,44.9,164.1,1 93,-1,27.9,702.3,64.3,226.3,1 93,-1,538,64.6,49,166.1,1 93,-1,375.6,19.3,52.8,158.8,1 93,-1,439.1,11.1,51.5,157.5,1 93,-1,1461.1,190.9,56.8,174.4,1 93,-1,866.2,206.2,56.4,169.8,1 93,-1,1410.1,195.5,57.7,192.5,1 93,-1,255.6,90.6,61.3,183.7,1 93,-1,824.5,189.5,59.5,184.6,0.999 93,-1,481.7,134.9,56.4,157.3,0.999 93,-1,484.3,36.4,55.9,160.9,0.984 93,-1,798.3,158.1,60.7,174.5,0.931 98,-1,1221.7,30.1,61.9,117.2,1 98,-1,704.3,1,55.9,160.2,1 98,-1,356.6,104.5,55.2,179.8,1 98,-1,1487.6,69.3,55.1,148.4,1 98,-1,396,837.2,100.9,243.8,1 98,-1,1179.4,154.2,80.4,173.7,1 98,-1,424.9,304.9,76.4,233.1,1 98,-1,1359.2,566.5,104.8,245.3,1 98,-1,1722.6,456.5,76.3,211.3,1 98,-1,103.5,553.1,85.1,244,1 98,-1,110.9,351,49.4,191.3,1 98,-1,955.3,198.3,73,190.5,1 98,-1,293.3,124.4,54.2,173.1,1 98,-1,504.1,222.9,70.1,196,1 98,-1,209.7,128.4,49.9,168.1,1 98,-1,1279.1,198.1,45.5,167.1,1 98,-1,716.2,188.3,54.7,161.1,1 98,-1,1447.7,189.5,58,176.9,1 98,-1,816.6,194.7,58.9,185.1,1 98,-1,30.3,693.2,64.2,229,1 98,-1,539.1,64.6,46.8,167.2,1 98,-1,437.8,7.8,50.9,157.9,1 98,-1,1400.4,190.3,59.8,193.9,1 98,-1,860.8,210.7,55.7,163.3,1 98,-1,482.8,135.7,57,165.9,1 98,-1,375.8,11.3,50.2,162.9,0.999 98,-1,255.3,90.7,63.5,186.3,0.998 98,-1,481.5,37,61.3,159.7,0.997 98,-1,1158.4,947.9,78.9,133.1,0.076 107,-1,1221.4,30.6,62.4,118.2,1 107,-1,704.5,1,55.4,159.7,1 107,-1,356.6,106.9,56.2,176.4,1 107,-1,1162.4,151.8,62.5,170.4,1 107,-1,389,817.7,100.5,263.3,1 107,-1,1487,68.6,56,149,1 107,-1,109.5,353.9,48.2,184,1 107,-1,209,129,50.5,165.6,1 107,-1,1721.1,455.8,77.4,212.2,1 107,-1,1358.6,566.9,104.7,244.5,1 107,-1,425.9,295.6,78.6,224.7,1 107,-1,940.5,205.8,73.1,189.8,1 107,-1,508.9,230.7,72.8,197.7,1 107,-1,292.2,127.3,56.5,170.4,1 107,-1,41.7,683.3,76.5,218.8,1 107,-1,1262.9,189.1,44.7,167.5,1 107,-1,102.8,547.3,85,252.4,1 107,-1,538.3,64.2,48.4,170.3,1 107,-1,701.2,185.7,56.1,161.4,1 107,-1,805,196.3,63,187.7,1 107,-1,440.4,4.2,53.2,152.4,1 107,-1,849.8,220.7,54.6,163.7,1 107,-1,376.1,7.1,49.5,161.9,1 107,-1,482.1,151.4,54,162.2,1 107,-1,483.3,39.6,58.7,162.3,0.999 107,-1,1380.7,183.4,61.7,194.2,0.999 107,-1,258.9,88.6,57.6,176.2,0.979 107,-1,1427.8,186.3,51.7,174.6,0.97 107,-1,1144.7,933.6,74.1,147.4,0.241 108,-1,1221.3,30.4,61.8,117.8,1 108,-1,1159.2,149.3,60.1,172.5,1 108,-1,356.7,105.2,55.6,179,1 108,-1,704.3,1,55.7,158.3,1 108,-1,1487.4,68.3,55.9,149.6,1 108,-1,389.7,815.2,100,265.8,1 108,-1,209.5,129.1,50.8,164,1 108,-1,109.4,353.5,48.4,184.6,1 108,-1,1721.6,456.7,76.9,211,1 108,-1,1358.2,566.7,105.2,245,1 108,-1,939.4,204.4,72.9,191.7,1 108,-1,290.9,126.7,56.8,171.3,1 108,-1,426.2,293.7,77.8,224.9,1 108,-1,509,230.7,72.9,199.6,1 108,-1,42.9,682.7,81.2,217.4,1 108,-1,1259,185.1,44.7,172.3,1 108,-1,102.7,546.6,84.7,252.4,1 108,-1,537.4,65.3,48.8,167.9,1 108,-1,803.3,195.2,61.5,189.6,1 108,-1,1379.4,182.8,63.3,195.2,1 108,-1,848.1,221.4,54.1,165.2,1 108,-1,441.8,3.3,52.4,152.6,1 108,-1,700.6,184.7,54.8,161.6,1 108,-1,375.4,7.3,49.9,159.3,1 108,-1,479.2,154.1,58.6,161.1,1 108,-1,483.4,38.9,58.6,162.2,0.999 108,-1,1425.2,187.5,46.1,174.1,0.752 108,-1,259.6,90.7,60.8,172.9,0.713 108,-1,1141.2,931.8,77.9,149.2,0.075 114,-1,1221.1,30.1,63.8,119.6,1 114,-1,355.7,104.6,56.6,178.6,1 114,-1,393.4,795.2,97.3,277.1,1 114,-1,210.4,129.1,51.3,163.2,1 114,-1,704.5,1,55.2,159.7,1 114,-1,1487.2,68.5,56,151.7,1 114,-1,1137.9,150.7,62.1,170,1 114,-1,107.9,348.7,49.6,189.5,1 114,-1,933.1,208.3,67.4,190.9,1 114,-1,1721.5,456.4,77.5,211.6,1 114,-1,290.6,125.4,55.3,170.6,1 114,-1,1358.3,566.9,105.6,245.4,1 114,-1,425.6,289.5,80.4,227,1 114,-1,516.2,235.2,72,207.8,1 114,-1,1366.9,184.1,63.2,185.1,1 114,-1,57,677.5,81,218.4,1 114,-1,1248,185.7,45.2,167.7,1 114,-1,103.1,548.6,83.3,246.4,1 114,-1,538.8,66.5,48.8,165.3,1 114,-1,481.1,155.7,53.7,163.8,1 114,-1,794.5,204.1,62.8,191.6,1 114,-1,840.4,221.7,56,172.8,1 114,-1,441.7,1,55.5,152.8,1 114,-1,481,41.2,61.8,157.8,1 114,-1,376,1.5,47.8,159.4,0.999 114,-1,695.3,191.9,55.6,123.6,0.828 114,-1,1128.6,928.2,82.9,152.8,0.303 121,-1,1220.8,30.7,63,118.3,1 121,-1,1108.3,147.7,82.7,170,1 121,-1,356.4,104.3,56.7,181.3,1 121,-1,1487.8,68.5,56.3,149.9,1 121,-1,395.8,781.2,99.8,279.9,1 121,-1,212.5,126,51.6,167.3,1 121,-1,704.2,1,56.2,159.1,1 121,-1,108.8,350.1,49.8,187.8,1 121,-1,920.2,209.2,69.9,194.4,1 121,-1,1721.7,456.6,77.4,210.1,1 121,-1,1358.4,566.9,104.8,244.4,1 121,-1,287.8,126.4,55.6,167.8,1 121,-1,425.6,286.4,78.4,224.1,1 121,-1,1230.5,177.7,44.3,165.5,1 121,-1,522.8,243.9,73.3,202.8,1 121,-1,478.2,168.1,58.2,159.7,1 121,-1,539.2,64.9,49.7,169.4,1 121,-1,1348.9,181.5,67.5,189.8,1 121,-1,785.6,209.7,66.1,187.9,1 121,-1,377.3,1,48.4,151.1,1 121,-1,834.2,229.2,53.6,176.7,1 121,-1,102.6,548.7,86.7,243.7,1 121,-1,481.4,39.7,61,164,1 121,-1,446.5,1,53.6,146.6,1 121,-1,83.6,656.3,66.5,223.6,1 121,-1,1103.5,926.1,89.9,154.9,0.058 124,-1,1221.1,30.2,62.8,118.9,1 124,-1,356.5,105.5,55.9,178.9,1 124,-1,1104.6,142.9,73.6,174.4,1 124,-1,1487.9,68.7,56.1,149.5,1 124,-1,704.1,1,56.4,158.8,1 124,-1,108.8,353.2,49.5,183.7,1 124,-1,398.1,777.6,100,278.8,1 124,-1,288.7,128.2,54.3,168.2,1 124,-1,214.5,124.9,52.1,169.8,1 124,-1,1721.8,457.1,76.2,210.4,1 124,-1,425.3,284.7,77.7,221.9,1 124,-1,1358.5,566.8,105.4,244.9,1 124,-1,915.4,211.4,70.6,189,1 124,-1,523.2,244.9,74.3,202.8,1 124,-1,1224.4,177.9,45.7,168.2,1 124,-1,539.1,64.1,50.3,171,1 124,-1,478.1,168.9,57.8,161.4,1 124,-1,1345.3,180.2,62.4,186.5,1 124,-1,447.5,1,53.1,145.1,1 124,-1,782.9,212.6,65.1,188.8,1 124,-1,377.9,2.4,46.9,145.2,1 124,-1,99,654.3,62.8,222,1 124,-1,832.4,227.5,54.1,177.5,1 124,-1,479.5,40.2,59.7,164,1 124,-1,105.7,551.5,79.9,228.2,0.998 124,-1,1098.8,929,82.7,152,0.831 124,-1,696.9,203.7,67.7,111,0.652 126,-1,1221.7,29.8,62.4,118.7,1 126,-1,356.3,105.2,56.8,179.5,1 126,-1,1101.2,143.5,61.9,171.9,1 126,-1,1487.8,69.2,56,148.9,1 126,-1,704.3,1,56.5,158,1 126,-1,1720.9,457,77.8,209.1,1 126,-1,108.9,349.9,49.8,188.3,1 126,-1,398.7,769.7,99.8,278.1,1 126,-1,288.4,126.9,54.4,169.5,1 126,-1,1358.7,567.2,104.9,244.3,1 126,-1,423.7,281.1,78.4,222.5,1 126,-1,216.6,126.3,50.4,166.9,1 126,-1,908.4,210.2,74.3,192.5,1 126,-1,1220,179.2,43.8,165.3,1 126,-1,780.7,215,66.2,192.3,1 126,-1,539.5,65.4,50.1,166.7,1 126,-1,1339.5,182.3,57.5,183.2,1 126,-1,523.7,246.9,73.5,202.4,1 126,-1,477.4,169.1,59.4,166.1,1 126,-1,692.5,203.4,71.4,114.9,1 126,-1,377.4,2.7,47.9,145.9,1 126,-1,448,1,52.5,144.8,1 126,-1,103.6,656,64.9,214.9,1 126,-1,479,42.3,58.3,162.4,1 126,-1,831.1,230.7,53.6,174,1 126,-1,1095.5,931.4,79.6,149.6,0.927 129,-1,1222,30.6,62.2,118.2,1 129,-1,356.6,103.5,56.2,181.6,1 129,-1,1488.2,68.7,55.8,150.3,1 129,-1,108.2,350.1,49.4,187.8,1 129,-1,1722,455.9,76.8,211.1,1 129,-1,288,127.1,54.8,169.1,1 129,-1,704.2,1,55.9,158.6,1 129,-1,398.9,760.2,95.5,273.7,1 129,-1,1095.6,138.7,56.8,175.2,1 129,-1,424.3,277,76,222.2,1 129,-1,1357.8,567,105.3,244.4,1 129,-1,688.3,205.1,77.5,114.1,1 129,-1,1212.9,176.8,46.3,164,1 129,-1,1336.1,181.6,54.7,180.5,1 129,-1,900.2,210.3,75.5,192.5,1 129,-1,219.2,128,50.3,165,1 129,-1,539.5,66.2,50.1,164.6,1 129,-1,524.4,246.7,70.5,207.1,1 129,-1,478.4,169.2,57.7,171.5,1 129,-1,113.9,648.4,60.5,215.9,1 129,-1,779.8,220.9,64.1,191.1,1 129,-1,378.2,1.1,47.1,141.4,1 129,-1,478.9,43.7,56,160.8,1 129,-1,447.5,1,52.1,144.4,1 129,-1,826.9,233.8,56.3,174.5,0.999 129,-1,1085,925.8,83.2,155.2,0.922 129,-1,580.5,258.2,41.1,168.2,0.113 131,-1,1221.3,30.3,62.6,117.7,1 131,-1,356.7,104.5,56.1,179.7,1 131,-1,1488.2,68.8,55.5,149.1,1 131,-1,394.9,753.9,97,272.2,1 131,-1,704.2,1,55.9,158.1,1 131,-1,423.8,275.9,75.9,223.2,1 131,-1,288.4,127.9,55.1,168.4,1 131,-1,107.8,350.4,50.6,187.1,1 131,-1,1359.1,567.6,104.6,244.4,1 131,-1,687.1,206.5,78.8,113.8,1 131,-1,1722.7,456.5,75.4,210.9,1 131,-1,897.1,209.9,74.6,196.3,1 131,-1,538.6,66.3,50.3,162.8,1 131,-1,1087.8,139.6,55.5,179.7,1 131,-1,1209.4,174.7,47.1,164.6,1 131,-1,219.3,127.5,49.9,163.7,1 131,-1,1332,182.4,51.9,176,1 131,-1,527.3,249.7,66.7,210.6,1 131,-1,477.5,174.6,59.1,172.1,1 131,-1,379.1,1,48,141.2,1 131,-1,478.1,44.3,55,162,1 131,-1,778.1,225.5,62.1,189.1,1 131,-1,824.2,236.8,55.4,173.5,1 131,-1,118.7,648.3,62.6,211.9,1 131,-1,447.6,1,51.9,142.7,0.999 131,-1,1079,923.4,84.4,157.6,0.929 131,-1,578.7,255,46.4,176.1,0.329 134,-1,1221.7,30.7,62.3,117.9,1 134,-1,357,104,55.8,180.8,1 134,-1,1488.1,68.9,55.7,148.2,1 134,-1,392.7,748.9,98.8,269.7,1 134,-1,108.6,351.8,49.4,185.5,1 134,-1,1073,141.1,63.4,175.3,1 134,-1,287.1,126.6,55.8,170.4,1 134,-1,704.1,1,55.9,157,1 134,-1,1721.6,457,77.7,210.5,1 134,-1,686.9,205.8,78.8,115.9,1 134,-1,1359.1,566.1,104.7,246.6,1 134,-1,890.7,209.9,75.9,196.7,1 134,-1,423.9,274,75.8,223.4,1 134,-1,538.1,65.1,50.2,163.8,1 134,-1,1203.9,169.6,48.2,167.9,1 134,-1,219.8,127.3,49.8,163.4,1 134,-1,476.9,177.9,60.8,172.7,1 134,-1,531.8,256.8,63.1,207.2,1 134,-1,379,1,48.8,136.9,1 134,-1,816.2,241.8,60,174,1 134,-1,1323.7,186.2,53.3,176.2,1 134,-1,127.2,643.1,69.1,211.8,1 134,-1,476.4,43.7,55.4,165,1 134,-1,773.3,227.6,63.2,188.9,1 134,-1,448,1,50.9,136.6,0.998 134,-1,568.6,241.8,61.2,196,0.996 134,-1,1072.5,924.2,85.3,156.8,0.964 137,-1,1221.7,30.4,62.2,117.8,1 137,-1,392.2,748.2,97.6,268.1,1 137,-1,1056.4,136.8,78.9,178.9,1 137,-1,356.4,103.1,55.9,183.7,1 137,-1,1487.8,68.3,55.9,150,1 137,-1,704.2,1,56.4,158.9,1 137,-1,288.3,126.2,54.5,169,1 137,-1,1721.2,456.7,78,211.1,1 137,-1,537.3,65.1,51,162.8,1 137,-1,687.5,205.8,79.2,116.2,1 137,-1,884.6,209.2,79.6,193.9,1 137,-1,1359.6,567.7,104.4,243.8,1 137,-1,108.8,351.4,48.7,187.1,1 137,-1,424.6,271.4,74.8,221.7,1 137,-1,1195.9,168.1,51.3,166.9,1 137,-1,220.2,129.7,51.3,160.1,1 137,-1,477.9,179,60.4,171.3,1 137,-1,379.8,1,48.3,134.2,1 137,-1,815.9,244.3,55.6,172.3,1 137,-1,1318.9,183.5,52.8,177.8,1 137,-1,531.6,258.4,59.4,209.8,1 137,-1,773.8,230.3,58.1,187,1 137,-1,476,46.2,53.4,159.6,1 137,-1,139.5,639.5,74.8,213.7,1 137,-1,573.9,247.6,57.9,193.5,0.999 137,-1,99.7,543.7,83.7,260.3,0.999 137,-1,1068.6,925.2,84.3,155.8,0.959 137,-1,451.2,17.3,41.3,114.7,0.095 140,-1,1221.6,30.7,61.9,118,1 140,-1,1047.1,137.9,82.1,175.1,1 140,-1,356.7,102.9,55.5,182.6,1 140,-1,1488.3,69,55.4,149.7,1 140,-1,389.4,741.7,100.9,269.1,1 140,-1,703.9,1,56.2,158.5,1 140,-1,422.7,267.4,75.4,224.1,1 140,-1,1721.6,457.8,77.5,209.5,1 140,-1,287.4,126.9,55.1,167,1 140,-1,686.5,206.5,80.8,116.8,1 140,-1,537.4,63.5,52,166.3,1 140,-1,1358.9,567.3,104.3,244,1 140,-1,109.4,351.7,48.2,184.6,1 140,-1,878.6,208.9,78.2,193.2,1 140,-1,477.2,181.3,62.4,173.7,1 140,-1,219.5,128.4,51.2,162.3,1 140,-1,1190.9,169.4,51.1,163.8,1 140,-1,1314.7,179.9,52.8,174.3,1 140,-1,381.5,1.3,48,133.8,1 140,-1,812.9,244.4,55.6,176.2,1 140,-1,531.6,263.9,57.2,200.9,1 140,-1,147.5,635.2,84.1,211.8,1 140,-1,472.7,41.8,53.3,164.3,1 140,-1,579.1,249.5,57.2,191.5,1 140,-1,770.6,233.9,59.3,183.2,0.999 140,-1,98.2,545.1,86.5,251.2,0.999 140,-1,1066.9,925.2,79,155.8,0.857 141,-1,1221.5,30.9,62.6,118.2,1 141,-1,1043.5,135.4,85.9,175.7,1 141,-1,356.5,104.2,55.7,181.2,1 141,-1,1487.7,69,55.8,150.4,1 141,-1,704.1,1,56.2,158.2,1 141,-1,389.2,737.4,100.2,269.4,1 141,-1,1721.6,457.1,77.5,210.4,1 141,-1,287.7,127.7,54.7,167.3,1 141,-1,422.2,265.5,75.6,224.4,1 141,-1,537.9,63.5,50.8,167.6,1 141,-1,686,206.8,80.5,116.3,1 141,-1,1358.7,567.4,104.9,244.6,1 141,-1,109.7,354.3,48,183.1,1 141,-1,877,209.1,77.4,190.9,1 141,-1,1188.9,169.2,51.6,164.8,1 141,-1,219.5,128.6,51.5,162.8,1 141,-1,1312.4,177.9,52.8,175.4,1 141,-1,478.3,183.3,61.3,176.3,1 141,-1,812.8,246.5,56.1,177.2,1 141,-1,382.5,1.3,46.7,133.7,1 141,-1,531.9,266.1,57.2,198.5,1 141,-1,150.4,632.2,84.8,215.3,1 141,-1,472.1,38.8,53.1,166.3,1 141,-1,579.3,250.1,57.7,190.8,1 141,-1,97.2,543.1,86,256,1 141,-1,770,234.5,59.1,183,0.999 141,-1,1065.1,923.8,78.6,157.2,0.984 151,-1,1221.1,30.9,62.9,117.9,1 151,-1,1488.4,68.2,55.3,150.5,1 151,-1,356.1,101,55.2,182.4,1 151,-1,1722.1,456.6,76.7,210,1 151,-1,704,1,56.5,159,1 151,-1,109.4,352,49.1,185.1,1 151,-1,420.8,254.5,77.8,221.8,1 151,-1,288.5,122.8,54.6,172,1 151,-1,1162,164.5,51,162.1,1 151,-1,1358.4,567,105.9,244.4,1 151,-1,216.2,125.7,53.9,166,1 151,-1,538.5,63.8,51,164.8,1 151,-1,1280,176.6,62.3,173.6,1 151,-1,686.5,206.5,81,113.9,1 151,-1,1025.1,132.2,56.4,175.8,1 151,-1,402.7,710.9,95.5,265.9,1 151,-1,100.6,542.1,88.1,261.3,1 151,-1,591.8,259.3,59.9,195,1 151,-1,806.3,258.1,65,181.6,1 151,-1,531.2,273.7,59.5,201.1,1 151,-1,184,612.7,68.3,220.8,1 151,-1,383.2,1.3,47.7,124.3,1 151,-1,861.4,203.4,71.7,194.2,1 151,-1,487.2,200.5,60.3,168.2,1 151,-1,756.7,247.7,70.2,190.7,1 151,-1,458.2,32.6,50.6,165.6,1 151,-1,1047.7,915.1,69.5,165.9,0.988 151,-1,794.3,144.3,63.1,190.4,0.682 155,-1,1221.3,30.8,62.5,118.8,1 155,-1,356.3,102.6,54.1,182.1,1 155,-1,1488.4,68,55.5,150.7,1 155,-1,109.3,351.8,48.9,186.4,1 155,-1,704.6,1,56.2,158,1 155,-1,214.7,125.3,54.5,167,1 155,-1,1003.8,130.7,69.2,169.6,1 155,-1,448.4,34.4,55.3,165,1 155,-1,287.5,123.8,55.4,172.9,1 155,-1,1722.2,456.7,76.8,211,1 155,-1,1154,161.4,49.6,160.2,1 155,-1,1358.3,567.1,105.9,244.8,1 155,-1,539.4,64.6,50.1,165.7,1 155,-1,686.7,206.2,80.2,114.6,1 155,-1,407.7,709.1,92.5,264.8,1 155,-1,420.4,250.8,77.6,225.1,1 155,-1,101.4,544.4,85.5,256.1,1 155,-1,1266.6,175.3,62.5,172.3,1 155,-1,194.5,613.4,66,211.7,1 155,-1,531.6,276,59.8,202.2,1 155,-1,592.5,263.9,61.3,196.2,1 155,-1,857.8,203.6,72.3,192.1,1 155,-1,802,259.9,63.7,183.6,1 155,-1,755.4,253,70,183.4,1 155,-1,491.6,200.5,59.1,167.8,1 155,-1,387,3.9,45.6,118.1,1 155,-1,793.3,146.8,64.7,182.9,0.997 155,-1,1038.7,913.3,69.6,167.7,0.995 159,-1,1221.4,30.6,62.2,117.9,1 159,-1,988.1,131.6,81.3,169.3,1 159,-1,1488.8,67.5,55.6,150.7,1 159,-1,356.2,103.8,54.6,178.9,1 159,-1,213.2,124.9,54.9,169.1,1 159,-1,288.4,125.4,55,171.1,1 159,-1,109.4,349.1,50.5,189.2,1 159,-1,704.9,1,55.3,158,1 159,-1,436.7,36.1,64.6,167.3,1 159,-1,686.1,206.5,80.4,112.9,1 159,-1,539.2,64.7,49.8,163.9,1 159,-1,420.1,247.7,81,224.5,1 159,-1,1358.7,567.3,105.1,244.2,1 159,-1,1721.7,457.3,77,211.7,1 159,-1,409.3,699,91.4,260.6,1 159,-1,103.5,549.9,80.5,253,1 159,-1,1147.9,159.1,45.7,162.1,1 159,-1,203.4,606.7,62.8,216.2,1 159,-1,594.2,265.4,60.3,194.7,1 159,-1,529,272.6,63.3,211,1 159,-1,387.5,4.1,47.6,118.1,1 159,-1,801.6,268.5,64.7,176.2,1 159,-1,752.7,253.3,70.6,189.9,1 159,-1,1257.4,172.1,58.9,174,1 159,-1,495.1,205.7,58.7,167.7,1 159,-1,853.4,197.1,73.2,195.1,1 159,-1,795.2,147.5,61.5,178.7,0.999 159,-1,1032.9,909,72.2,172,0.993 159,-1,1294.4,175.8,49.3,173.2,0.551 160,-1,1221.4,30.3,62.3,118,1 160,-1,986.4,131.9,80.8,169.6,1 160,-1,434.4,37.1,65.2,168,1 160,-1,1488.7,67.5,55.7,151.5,1 160,-1,356.5,103.1,54.5,180.2,1 160,-1,212.9,124.2,54.4,170.9,1 160,-1,109.4,348.7,50.6,190.1,1 160,-1,288.3,126.1,55.6,171.6,1 160,-1,704.7,1,55.5,158.7,1 160,-1,1358.2,567.6,105.8,244.5,1 160,-1,1721.4,457.9,77.2,210.8,1 160,-1,538.6,64.2,50.6,165.7,1 160,-1,687.1,207.4,78.7,111.7,1 160,-1,420.1,246.3,80.5,225.9,1 160,-1,409,696.6,91.1,261.2,1 160,-1,101.4,546.2,85.3,253.9,1 160,-1,1144.1,158.8,47.8,162.3,1 160,-1,206.1,604.3,61.9,215.2,1 160,-1,390.2,3,45.9,119,1 160,-1,527.5,272.6,66,214,1 160,-1,802.5,270.7,64,176.7,1 160,-1,752.4,253.7,69.1,192.4,1 160,-1,496.4,205.1,57.5,168.4,1 160,-1,594.5,265.3,60.6,196,1 160,-1,1255.9,173.2,60.2,172.3,1 160,-1,796.1,148,61.1,174.3,1 160,-1,851.1,195.9,75.1,189.8,0.999 160,-1,1031.3,906.2,72,174.8,0.989 160,-1,1294.1,174.7,51.5,171,0.79 163,-1,1221.5,30,61.9,119.9,1 163,-1,980.7,128.4,77.1,173.5,1 163,-1,109.2,347.9,50.1,191.1,1 163,-1,212,124.5,55.1,169,1 163,-1,1488.8,68.4,55.6,151.4,1 163,-1,356.5,104.5,55,179,1 163,-1,288.2,126,55.2,171.3,1 163,-1,703.9,1,56.7,159.1,1 163,-1,686.7,207.7,79.4,111.1,1 163,-1,1357.9,567.5,105.4,244.8,1 163,-1,1721.4,457.2,78.2,211.4,1 163,-1,433.2,38.2,62.8,168,1 163,-1,419,243.2,82.3,220.1,1 163,-1,406.1,688.6,93.5,255.7,1 163,-1,538.7,64.8,50.7,168.7,1 163,-1,101.5,547.5,85.6,253.6,1 163,-1,527.2,274.6,65.8,216.4,1 163,-1,211.1,598,65.5,212.2,1 163,-1,1139.4,155.8,48.2,162.6,1 163,-1,390.8,5.4,47.6,112.5,1 163,-1,799,272.4,62.8,180.6,1 163,-1,751.2,256.6,69.1,200.1,1 163,-1,796.5,148.2,61.5,173.4,1 163,-1,853.6,193.9,73.2,188.4,1 163,-1,566.2,156.3,64.1,177.2,1 163,-1,499.9,210.2,55.3,169.8,0.999 163,-1,1250.6,166.8,54.3,163.5,0.997 163,-1,1285.5,168.3,55.1,168.9,0.997 163,-1,599.7,266.8,56.7,194.3,0.98 163,-1,1027.8,903,71.4,178,0.975 167,-1,1221,30.1,62,117.6,1 167,-1,975.7,125.8,61.5,170.4,1 167,-1,1489.1,69.6,54.6,147.9,1 167,-1,109,349.3,49.7,188.5,1 167,-1,400.9,676.8,99.1,258.4,1 167,-1,704.5,1,56,159.6,1 167,-1,356.2,103.5,55.6,179.8,1 167,-1,687.2,207.6,78.9,111.7,1 167,-1,1720.6,456.4,78.9,212.2,1 167,-1,212.2,126.2,55,167.8,1 167,-1,1359,568.2,103.9,244.3,1 167,-1,288.3,128.2,55.1,168.1,1 167,-1,1129.3,154.9,48.8,160.8,1 167,-1,433,39.5,59.1,165.1,1 167,-1,100.1,547.5,87.7,253.3,1 167,-1,421.5,240.1,77.8,219.6,1 167,-1,537.7,64.2,51.7,167.6,1 167,-1,528.9,278.6,62.8,218,1 167,-1,560.5,158.3,65.3,169.4,1 167,-1,219.1,589.5,66.7,219.6,1 167,-1,854.4,192.7,75.8,185.8,1 167,-1,798.7,275.2,63.1,178.2,1 167,-1,795,148.7,62.7,170.6,1 167,-1,749.5,262.2,64.1,199.9,1 167,-1,1242.9,166.3,57.7,172.6,0.999 167,-1,503,210.9,57.4,178.6,0.999 167,-1,1276.7,166.4,55.1,170.3,0.997 167,-1,1019.6,905.2,73.6,175.8,0.985 167,-1,395.2,10.3,47.3,107.2,0.778 172,-1,1220.7,30.9,62.3,117,1 172,-1,108.6,350.4,50.4,188.7,1 172,-1,1489.1,68.5,54.9,149.3,1 172,-1,355.8,103.7,55.5,178.5,1 172,-1,704.2,1,56.4,158.8,1 172,-1,212.3,126,54.5,167.6,1 172,-1,1721.2,456.8,77.8,211.2,1 172,-1,402.4,668,97.9,266.6,1 172,-1,1357.9,567.5,104.6,244.3,1 172,-1,288.7,127.3,54.6,169.6,1 172,-1,98.3,547.2,89.6,256.5,1 172,-1,688.1,208.2,76.4,111.1,1 172,-1,428.3,40.4,56.8,160.2,1 172,-1,421.4,236.1,78.1,221.5,1 172,-1,963.6,123,54.3,176.1,1 172,-1,551,153.2,65.6,171.5,1 172,-1,227.4,586.9,67.8,212.2,1 172,-1,1219.7,164.9,61.6,175.2,1 172,-1,528.8,281.7,60.6,219.9,1 172,-1,1121,151,44.2,159,1 172,-1,855.6,190.8,78.4,187.1,1 172,-1,795.7,148.3,61.6,173.7,1 172,-1,746.3,261.8,65.4,201,1 172,-1,1.1,595.2,64.9,250.2,1 172,-1,536.8,65.2,53.4,168.2,1 172,-1,796.9,277.2,63.4,176.5,1 172,-1,1266.5,163.9,50.9,162.5,0.998 172,-1,507.3,218.5,55,165.9,0.998 172,-1,1010.9,910.1,75.7,170.9,0.97 178,-1,1220.8,30.6,62.8,117.5,1 178,-1,108.6,350.7,49.1,187.3,1 178,-1,356,105.2,55.4,179.2,1 178,-1,417,39.1,58.2,162,1 178,-1,1489.5,70.4,54.5,146.8,1 178,-1,704.1,1,56,158.7,1 178,-1,409.3,657.2,91.6,250.3,1 178,-1,1358.3,568,105.4,243.5,1 178,-1,936.4,122.1,74.3,173.7,1 178,-1,1720.5,455.9,78.7,212.6,1 178,-1,212.9,124.9,54.4,169.1,1 178,-1,687.8,207.6,77.1,111.2,1 178,-1,1,611.9,107,238.5,1 178,-1,289.1,127.4,54.4,169.4,1 178,-1,420.2,230.3,79.8,223.5,1 178,-1,866.8,177.8,74.1,190.5,1 178,-1,546,148.4,64.9,172.2,1 178,-1,232.6,574.1,63.9,210,1 178,-1,527.5,289,60.9,210.1,1 178,-1,99,549,88.4,254,1 178,-1,794.4,151,62,171.2,1 178,-1,1106.3,150.6,46.8,160.5,1 178,-1,1211.2,156.8,58.1,182.5,1 178,-1,796.2,284.1,69.1,187.2,1 178,-1,745.2,268.1,69.1,203.1,1 178,-1,1257.8,156.1,48.2,167.7,0.998 178,-1,1001,908.2,68,172.8,0.859 185,-1,1221.9,30.5,62.2,118.5,1 185,-1,211.4,126.1,55.2,169.6,1 185,-1,1489.4,68,54.7,150.2,1 185,-1,405.5,37.9,63.6,166.3,1 185,-1,109.5,350,49.4,187.3,1 185,-1,687,208,79.3,110.7,1 185,-1,356.3,105.3,54.4,178.2,1 185,-1,704.6,1,55.7,159.5,1 185,-1,1358.5,568.1,104.6,243.8,1 185,-1,289.3,129.5,55.1,168.1,1 185,-1,1720.9,457.5,77.7,211.1,1 185,-1,414.3,642,91.1,257.6,1 185,-1,528.5,301.2,61.2,207.8,1 185,-1,234.5,564,63.8,215.2,1 185,-1,419.9,222.1,76.9,220.6,1 185,-1,869.4,174,82.6,190.7,1 185,-1,9.3,616.6,114.1,255.7,1 185,-1,1086.3,145.3,49.8,163.6,1 185,-1,540.7,142,62.6,164,1 185,-1,1192.3,150.2,62.7,185.4,1 185,-1,794.7,151.9,62.5,173.2,1 185,-1,797.7,291.9,71.6,187.8,1 185,-1,97.6,547.1,86.6,252.9,1 185,-1,745.7,276.9,71.9,203.5,1 185,-1,1246.6,154.5,43.6,161.2,1 185,-1,920.8,124.7,69.3,167.7,0.999 185,-1,987.4,917.2,74.1,163.8,0.973 186,-1,1222,30.9,61.6,117.5,1 186,-1,212,126.7,54.9,169,1 186,-1,1489.7,68.6,54.5,148.6,1 186,-1,686.9,207.7,79.5,111.1,1 186,-1,704.4,1,55.7,159.2,1 186,-1,109.5,348.7,49.6,188.8,1 186,-1,1720,456.7,78.9,212.4,1 186,-1,402.7,36.7,66,167.8,1 186,-1,415.5,641.1,91.1,259.6,1 186,-1,289.6,130.2,55,167.5,1 186,-1,356.2,107.2,54.7,176.6,1 186,-1,1358.2,568.2,105.4,243.4,1 186,-1,420.1,222.3,76.5,219.8,1 186,-1,527.8,304.9,61.7,206.6,1 186,-1,868.5,174.7,84.3,189,1 186,-1,234.2,562,63.4,214.5,1 186,-1,20.6,620.7,106.5,246.9,1 186,-1,1083.5,143.6,49.8,163.6,1 186,-1,795.2,150.9,62,173.3,1 186,-1,1188.4,150,64.2,185.7,1 186,-1,540,142,61.8,162.3,1 186,-1,798.3,292.9,70.7,185.7,1 186,-1,744.6,277.5,72.7,203.5,1 186,-1,97.8,548.7,86.8,247.3,1 186,-1,1242.8,153.4,43.9,162.1,1 186,-1,917.5,122,65.9,169.5,0.994 186,-1,985.7,918.1,74.1,162.9,0.984 186,-1,456.7,6.8,52.8,86.2,0.099 188,-1,1222,30.5,61.7,119.6,1 188,-1,1490.5,68.2,54.2,149.8,1 188,-1,212.1,125.2,55.3,171.2,1 188,-1,415.9,639.6,92.5,255.5,1 188,-1,704.6,1,55.6,159.5,1 188,-1,109.1,348,50.3,190.4,1 188,-1,1357.1,568.2,106.3,243.8,1 188,-1,687,208,79.2,111.3,1 188,-1,25.1,623.9,107.8,240.1,1 188,-1,356.7,107.1,54.5,178,1 188,-1,1720.8,457.3,78,211.3,1 188,-1,400.7,39.9,64.3,163.3,1 188,-1,288.8,127.8,55.4,169,1 188,-1,869.3,172.4,87.4,192.1,1 188,-1,419.4,221.1,78.3,220.3,1 188,-1,1181.4,148.9,64.6,180.2,1 188,-1,526.3,307.9,62.7,205.1,1 188,-1,235.1,559.3,61,210.2,1 188,-1,798.6,294,71.7,186,1 188,-1,795.1,151.2,62.6,174.1,1 188,-1,1239.2,148.5,46.2,163.5,1 188,-1,1078.5,143.7,50.1,161,1 188,-1,538.7,141.9,58.8,160.2,1 188,-1,746.6,276.8,71.6,202.8,1 188,-1,96.9,550,87.7,246,0.999 188,-1,982.9,919.7,74.5,161.3,0.987 188,-1,453.7,5.5,56.7,81,0.639 190,-1,1221.9,30.2,61.4,120,1 190,-1,212.2,126.8,55.2,167.7,1 190,-1,1489.2,67.8,55.6,150.1,1 190,-1,108.7,347.7,50.1,190.8,1 190,-1,686.3,207.8,80.2,110.7,1 190,-1,705,1,55.2,158.5,1 190,-1,1357.6,567.2,105.9,245.3,1 190,-1,356.9,107.4,54.4,177.1,1 190,-1,416.3,634.2,89,254.6,1 190,-1,288.6,128.3,55.9,169.3,1 190,-1,872.1,170.7,82.8,191,1 190,-1,1720.5,457.2,78.1,211.5,1 190,-1,399.2,40.5,64.4,163.9,1 190,-1,1172.7,148.4,68.3,183.5,1 190,-1,33.3,624.7,113,246.7,1 190,-1,524.9,309.3,62.7,202.8,1 190,-1,420.2,219.9,76.2,217.7,1 190,-1,232.6,553.3,62.9,211.5,1 190,-1,536.2,140.3,59,160.3,1 190,-1,1072.2,143.7,53.4,162.3,1 190,-1,795.5,150.6,61.7,173.2,1 190,-1,800,296.2,70,184.5,1 190,-1,748.3,277.4,69.5,202.7,1 190,-1,1236.1,145.1,45.5,167.2,1 190,-1,95.2,549.8,85,244.4,0.988 190,-1,980,918.4,74.1,162.6,0.985 190,-1,453,4.1,57.8,85,0.918 198,-1,1221.5,31,60.4,118.5,1 198,-1,53.6,639.2,119.4,250.1,1 198,-1,211,127.4,56.5,167.5,1 198,-1,687.4,206.7,78.3,112.8,1 198,-1,402.4,611.9,93.2,246.2,1 198,-1,1489.8,68.6,54.6,150,1 198,-1,704.4,1,55.8,158.8,1 198,-1,108.3,347.1,50.4,190.9,1 198,-1,525.6,135.7,61.7,162.2,1 198,-1,1721,457.2,77.6,210.7,1 198,-1,289.5,127.7,54.8,170.2,1 198,-1,356,104.6,54.8,180.7,1 198,-1,1358.1,567.3,103.9,246.8,1 198,-1,420.8,212.5,77.8,218.8,1 198,-1,516,307.7,74.3,217.7,1 198,-1,796.2,152,59.5,170.5,1 198,-1,1048.4,140.1,50.2,157.4,1 198,-1,885.2,161.4,74.3,184.3,1 198,-1,230,542.5,62.5,216.5,1 198,-1,802.8,304.3,71,186.2,1 198,-1,1161,144,63.8,187.6,1 198,-1,392,39.2,63.9,169.1,1 198,-1,1217.7,143.1,51.9,172.4,1 198,-1,751.3,289.2,71.1,209.4,1 198,-1,970,916.5,73.7,164.5,0.972 200,-1,1221.4,30.4,61.4,120.8,1 200,-1,400.7,608.5,92.8,247.1,1 200,-1,687.4,206.8,77.6,113,1 200,-1,211.1,126.8,56.4,169.3,1 200,-1,1490.7,68.4,54.4,150.3,1 200,-1,108.7,348.4,50.6,188.7,1 200,-1,523.1,134.8,63,165.8,1 200,-1,704.6,1,55.8,158.4,1 200,-1,60.1,641.4,115.5,248.2,1 200,-1,1720.2,457.1,78.7,211.3,1 200,-1,1357.9,568,104.5,245,1 200,-1,423.2,211,75,215.3,1 200,-1,288.6,126.9,55.3,172.2,1 200,-1,356,106.9,54.5,178.3,1 200,-1,510.7,309.8,78.4,220,1 200,-1,796.6,150.6,59.2,172.7,1 200,-1,886.7,157.8,73.9,186.8,1 200,-1,229.8,541.2,61.6,215,1 200,-1,800.4,308.7,72.7,186,1 200,-1,1042.8,138,51.9,159.1,1 200,-1,391.7,40.9,60.8,168.6,1 200,-1,1157.4,142.9,62.9,185.9,1 200,-1,1208.6,142.7,56.3,171.6,1 200,-1,752.3,292,70.4,209.3,1 200,-1,967.4,917.8,74.2,163.2,0.978 221,-1,1221.3,30.8,61.2,120.8,1 221,-1,686.2,206.5,79.4,114.5,1 221,-1,903.6,140.8,76.1,185.7,1 221,-1,1491.7,68.7,54.2,149.1,1 221,-1,705,1,55.5,159.9,1 221,-1,399.3,570.4,89.2,249.3,1 221,-1,429.4,191.2,74.1,214,1 221,-1,108.8,346.9,50.8,190.9,1 221,-1,1120.8,129.7,58.5,184.1,1 221,-1,288.3,127.2,55.2,172.8,1 221,-1,1195.7,132.5,44.1,165.4,1 221,-1,357.5,107.7,52.6,178.3,1 221,-1,212.8,127.3,54.8,165.6,1 221,-1,1720.8,457.2,77.4,211.1,1 221,-1,1357,567.5,103.6,243.9,1 221,-1,129.5,670.9,102.8,259.1,1 221,-1,794.4,152.9,60.1,165.8,1 221,-1,518.8,124.4,47.7,175,1 221,-1,216.7,507.8,60.3,200.9,1 221,-1,507.2,336.1,72.7,218.9,1 221,-1,990,124.5,39.5,156,1 221,-1,55.8,625.2,110.4,241.9,1 221,-1,823.8,323.4,75.5,193,1 221,-1,765.7,316.5,77.8,202.2,1 221,-1,823.2,112.6,67.8,172.9,0.997 221,-1,941.7,908.8,69.8,172.2,0.995 221,-1,595.6,344.4,61,200.3,0.97 221,-1,1567.4,1.6,53,139.2,0.395 228,-1,1222,31,61.4,119.4,1 228,-1,685.8,207.1,80.7,112.2,1 228,-1,796.3,146.1,58.8,178.6,1 228,-1,1492.3,67.3,53.3,149,1 228,-1,386.4,549.6,92.7,242.4,1 228,-1,356.1,105,54.2,182,1 228,-1,1186.1,130.6,47,156.1,1 228,-1,705.5,1.2,55.3,159.2,1 228,-1,433.4,186.7,75.5,215.8,1 228,-1,109.3,350.8,49.4,189.9,1 228,-1,287.5,126.2,56.6,173,1 228,-1,1720.8,456.8,78.5,211.7,1 228,-1,212.1,126.5,55.4,167.8,1 228,-1,1358.6,568.4,104.3,243.9,1 228,-1,1576.9,1,58.4,140.4,1 228,-1,517.6,120.4,48.9,177.1,1 228,-1,1105.1,125.9,63.4,184.7,1 228,-1,151.5,690.4,105.5,250.9,1 228,-1,911.4,134.1,70.4,175.9,1 228,-1,833.4,330.5,72.3,191.1,1 228,-1,507.1,342.8,71.3,216.3,1 228,-1,217.6,496.4,60.1,204.7,1 228,-1,774.2,319.2,71.6,200.8,1 228,-1,592.5,348.2,61.3,198.1,0.999 228,-1,93.1,626.8,95.7,259.3,0.999 228,-1,968.3,125.1,44.8,155.6,0.994 228,-1,936.2,902.8,73.4,178.2,0.989 231,-1,1221.7,31,62.3,118.9,1 231,-1,685.8,207,80.5,112.9,1 231,-1,1490.9,66.4,54.4,149.2,1 231,-1,380.8,547.4,97.3,240.9,1 231,-1,1181,128.4,50,159.4,1 231,-1,435.9,185.1,77.9,216.1,1 231,-1,798.3,149.3,57.2,175.5,1 231,-1,357,106.1,52.7,179.4,1 231,-1,705.7,1,55.2,159.5,1 231,-1,288.6,126.1,55.9,173.3,1 231,-1,1579.6,1,58.6,141.7,1 231,-1,109.4,349.6,49.3,190.8,1 231,-1,1721.6,456.8,77.2,211.7,1 231,-1,211.7,126.1,56.1,168,1 231,-1,1098.6,125.1,65.6,183.7,1 231,-1,1358.9,568.7,105.3,242.2,1 231,-1,919.3,129.3,71.7,181,1 231,-1,517.2,121.5,49.2,175.4,1 231,-1,505.6,343.5,72,221.2,1 231,-1,777.7,320.6,75.4,211.8,1 231,-1,157.5,694,105.3,261.4,1 231,-1,835,331.5,74.2,194.3,1 231,-1,219.1,491.9,59.8,206.3,1 231,-1,591.5,353.5,59.9,191,1 231,-1,107.8,631.3,89.5,255.4,0.999 231,-1,934.3,903,72.7,178,0.995 237,-1,1221.1,30.4,62.2,119.6,1 237,-1,1486.3,63.6,55.7,152.1,1 237,-1,685.9,207.3,80.2,112.4,1 237,-1,795,152,61.8,175,1 237,-1,379.1,538.5,94,234.5,1 237,-1,108.2,348.8,51.1,191.6,1 237,-1,1090.4,121.8,62.7,186,1 237,-1,211.9,125.8,55.3,167.9,1 237,-1,705.1,1,54.9,158.9,1 237,-1,288.1,127.4,56,171.3,1 237,-1,443.1,183.1,77.5,206.3,1 237,-1,356.3,107.6,54,178.2,1 237,-1,1362.2,568.5,107.2,243.6,1 237,-1,1720.4,457,78.8,211.8,1 237,-1,1584.9,1.9,58.4,144.2,1 237,-1,1170.3,125.7,52.7,162.8,1 237,-1,177,699.7,87.5,259.7,1 237,-1,925,123.2,69.9,186.1,1 237,-1,223.6,481.1,57.3,201.1,1 237,-1,516.3,119.9,50.4,180,1 237,-1,501.1,352.8,74.4,222.7,1 237,-1,839,336.9,78.3,197.9,1 237,-1,589.5,361.4,63.7,201.2,1 237,-1,781.7,327.8,80.5,210,1 237,-1,128.6,649.1,89.1,246.2,0.999 237,-1,931.7,902.4,74.5,178.6,0.997 252,-1,1221.2,31.4,63.1,117.4,1 252,-1,1605.6,6.6,66.8,149.1,1 252,-1,686.6,207,79.2,112.2,1 252,-1,1480.4,57.4,54.1,150.5,1 252,-1,392.1,508.8,88.7,244.9,1 252,-1,286.8,127.4,56.6,171.8,1 252,-1,796.9,151.4,60.1,175.9,1 252,-1,212,127.3,55.9,166.3,1 252,-1,355.8,105.6,53.2,181.4,1 252,-1,1379.6,568.9,103.8,236.8,1 252,-1,1720.7,457.7,77.9,210.5,1 252,-1,224.9,460.1,60.5,198.7,1 252,-1,1149.1,112.1,51.8,164.3,1 252,-1,704.7,1.1,53.7,156.5,1 252,-1,108.2,349.9,51.3,191.4,1 252,-1,450.5,169.9,75.1,209.4,1 252,-1,221.9,735.4,92.1,261.1,1 252,-1,936.6,109.9,70.8,180.8,1 252,-1,1072.3,116.2,56.6,178.7,1 252,-1,130,577.9,84,231,1 252,-1,514,117.2,55.3,180,1 252,-1,487.4,367.1,76.6,229.1,1 252,-1,856.1,353.1,80.2,197.5,1 252,-1,792.3,346.6,84.1,208.4,1 252,-1,580.6,380.4,65.6,209.5,1 252,-1,903.5,110.2,49.2,151.3,0.999 252,-1,764.7,100.9,51.1,168,0.999 252,-1,930,906.5,77,174.5,0.995 255,-1,1220.9,31.3,62.2,118.4,1 255,-1,1617.1,8.5,60.1,151,1 255,-1,686.8,206.2,79.5,113.8,1 255,-1,287.8,129.3,56.2,169.7,1 255,-1,1479.3,55,54.7,152.1,1 255,-1,389.8,500.6,89.4,239.9,1 255,-1,357.2,106.5,52.7,179.8,1 255,-1,211.6,126.1,57,167.6,1 255,-1,108.4,352.1,50.9,189.9,1 255,-1,798,151.8,60.2,176.6,1 255,-1,450.4,165.8,76.6,210.6,1 255,-1,1720.7,458.3,78.2,208.9,1 255,-1,704.2,1,55.1,158.4,1 255,-1,1391.2,568.9,97.2,244.4,1 255,-1,226.6,456.6,60.8,201.7,1 255,-1,938.3,108.6,69.6,182.8,1 255,-1,1144,105.7,52.4,171.7,1 255,-1,1067.9,114,57.1,181.7,1 255,-1,895.8,109.3,47.3,153.5,1 255,-1,860.2,356.8,76.9,195.5,1 255,-1,226.2,738.8,91.8,264.5,1 255,-1,490.1,375.5,71,222.7,1 255,-1,794,348.4,83.4,207.9,1 255,-1,134.5,572.6,90.5,234.4,1 255,-1,513.6,118.4,54.6,173.6,1 255,-1,578.8,382,64.3,211.4,1 255,-1,761.5,100.3,48.7,173.5,0.999 255,-1,365.9,1,57.4,162.4,0.998 255,-1,932.3,911.1,76.5,169.9,0.992 262,-1,1221.4,30.5,62.7,118.7,1 262,-1,687.2,205.4,78.6,113.6,1 262,-1,1627.8,18.7,62.7,143.2,1 262,-1,287.4,130.2,56.2,169.1,1 262,-1,1480,49.5,52.9,148.6,1 262,-1,454,156.2,74.8,215.3,1 262,-1,797.1,154.4,59.1,172,1 262,-1,356.2,107,53,177.8,1 262,-1,1056.9,108.2,61.3,185.3,1 262,-1,1720.5,457,78.8,211.6,1 262,-1,381.2,487.1,91.8,236.6,1 262,-1,704.5,1.3,54.6,157,1 262,-1,108.5,350.3,50.8,191.2,1 262,-1,937.4,97,70.9,179.8,1 262,-1,1402.1,565,98.5,246.4,1 262,-1,690.8,318.8,55.7,181.7,1 262,-1,1133.2,100.4,53.8,165.1,1 262,-1,216.1,128.4,55,164.4,1 262,-1,880.7,110.6,47,154.1,1 262,-1,243.2,758.8,88.4,266.1,1 262,-1,375.3,7,56.2,162.5,1 262,-1,868.8,363.2,79.4,195.5,1 262,-1,486.9,377.8,71,226.1,1 262,-1,798.8,348.5,87.7,214.3,1 262,-1,229.6,449.1,60.6,199.9,1 262,-1,513,118.3,55.9,175.1,1 262,-1,157.1,566.8,81.6,249,1 262,-1,573,390,64.5,208.5,1 262,-1,756.8,101.4,50.4,172.2,1 262,-1,937,917.8,83.8,163.2,0.994 267,-1,1221.4,30.7,61.7,118.6,1 267,-1,687.7,206.5,78,111.3,1 267,-1,289.5,128.9,56.6,171.9,1 267,-1,1479,47.8,51.4,146.6,1 267,-1,1632.3,20.6,63.7,147,1 267,-1,1123,98.6,56.9,168.3,1 267,-1,454.3,156.6,74.9,210.9,1 267,-1,376.2,479.3,95.8,235.9,1 267,-1,1720.7,456.3,78.9,212.6,1 267,-1,356.5,105.2,51.4,179.3,1 267,-1,376.1,8.7,61.1,159.7,1 267,-1,109,352.6,50.3,186.7,1 267,-1,796.4,152.1,60,173.2,1 267,-1,705.3,1,53.9,157.4,1 267,-1,938.4,92.1,69.4,181,1 267,-1,217.8,125.9,55.2,166.6,1 267,-1,1048.6,105.8,60.6,184,1 267,-1,250.9,761.8,89.1,278,1 267,-1,1409.2,566.3,96.7,246.8,1 267,-1,699.2,325.9,68.3,190.6,1 267,-1,232.9,438,59.9,197.6,1 267,-1,871,370.6,79,203.8,1 267,-1,479.6,386,73.9,223.7,1 267,-1,872.9,107.2,44.3,153.7,1 267,-1,167,567.4,87.9,258,1 267,-1,803.8,358.6,88.3,215.7,1 267,-1,512.2,118.1,55.6,173.1,1 267,-1,568.2,403.1,64.9,201.4,1 267,-1,754.9,101.3,48.9,172.1,1 267,-1,938.6,916.1,85.2,164.9,0.938 279,-1,1221.9,31.6,61.8,118.1,1 279,-1,686.9,207.2,78.3,112.7,1 279,-1,1649.4,24.2,56.5,155.7,1 279,-1,396.4,18.7,58.5,161.7,1 279,-1,391.6,465.5,83.8,224.6,1 279,-1,1029.9,99.9,62.7,186.5,1 279,-1,1471.6,35.3,53.8,148.5,1 279,-1,288.5,128.3,55.6,172.5,1 279,-1,355.2,110.4,52.7,174.8,1 279,-1,454.6,146.7,74.7,207.4,1 279,-1,1721.1,457.2,78.6,211.3,1 279,-1,794.7,148.2,61.6,175.3,1 279,-1,704.1,1,55,159.2,1 279,-1,941.8,82.8,65.3,177.4,1 279,-1,108.6,348.7,50.8,190.8,1 279,-1,745,335.4,66.7,190.6,1 279,-1,1107.1,96,51.4,163.6,1 279,-1,222.7,130.7,52.1,162.7,1 279,-1,271,797.7,92.2,264.4,1 279,-1,232.6,422.8,59.3,198.3,1 279,-1,200.7,580.7,87.2,250.5,1 279,-1,556.9,413.6,65.2,213,1 279,-1,1428.7,577.1,99.5,248.6,1 279,-1,880.6,388.5,76.2,195.4,1 279,-1,852.1,111.5,44.7,159.1,1 279,-1,515.9,110.9,52.3,176.9,1 279,-1,810,376,87.9,211.6,1 279,-1,752.9,106.2,46.1,166.1,1 279,-1,469,400.5,67.9,223.4,1 279,-1,945.8,920.6,84.9,160.4,0.795 281,-1,1222.1,31.5,61.6,118.9,1 281,-1,687.1,207.8,78.4,112.1,1 281,-1,1027.5,98.8,62.6,185.8,1 281,-1,1652.2,29.8,56.2,152.7,1 281,-1,453.7,145.3,77.4,207.6,1 281,-1,398.8,19.8,56.9,164.4,1 281,-1,391.5,464.5,83.1,223,1 281,-1,288.1,128,56.1,174.4,1 281,-1,354.4,109,52.9,177,1 281,-1,108,351.5,51.6,188.4,1 281,-1,1470.2,33.8,54.7,148.3,1 281,-1,1720.7,458.1,77.8,211.6,1 281,-1,794.6,149.3,61.5,172.8,1 281,-1,704.5,1,54.6,158.6,1 281,-1,941.4,81.3,65.3,177.3,1 281,-1,223,131.3,53,161.6,1 281,-1,752.4,340.5,66.8,194.4,1 281,-1,205.3,576.9,83.8,252.9,1 281,-1,1104.2,94.1,50.5,161.4,1 281,-1,1435.2,578.3,97.5,247.4,1 281,-1,233.2,419,59.1,196.1,1 281,-1,276.9,801,93.6,268,1 281,-1,849.2,112.2,45.5,155.4,1 281,-1,554.3,416,65.8,214.7,1 281,-1,883.5,393.2,75.6,196.5,1 281,-1,751.5,105.1,46.2,166.3,1 281,-1,809.2,376.1,91.2,209.5,1 281,-1,515,108.6,52.4,179.4,1 281,-1,467.7,398.2,66.9,229.6,1 281,-1,943.5,919.4,88.4,161.6,0.582 286,-1,1221.5,31.3,63,120,1 286,-1,686.7,207.3,79,113,1 286,-1,455.7,143.3,72.1,206.3,1 286,-1,353.4,108.4,54.3,178.8,1 286,-1,287.7,129.9,55.6,174.3,1 286,-1,940,79.8,63.7,177,1 286,-1,1662.6,32.1,55.9,153.1,1 286,-1,1720.1,459.1,78.7,210.4,1 286,-1,1467.5,29.9,56.1,150.4,1 286,-1,234.1,415.2,59.7,194,1 286,-1,1020.3,95.4,61.6,185.7,1 286,-1,108.1,351.3,51.1,189.2,1 286,-1,400.2,22.3,56.2,164.6,1 286,-1,797.6,148.2,58.9,175.1,1 286,-1,1096.9,92.7,50.7,162.4,1 286,-1,390,447,84.2,231.6,1 286,-1,704.4,1.2,54.4,156.8,1 286,-1,220.5,580.7,89,252.7,1 286,-1,222.7,129.1,52.6,163.7,1 286,-1,1446.5,586.2,94.9,240.7,1 286,-1,288.2,816.6,90.1,264.4,1 286,-1,515.5,107.7,51.2,177.1,1 286,-1,749.5,104.6,47.2,166.8,1 286,-1,547.1,427.4,70.3,209.9,1 286,-1,886,400.2,75.6,198.3,1 286,-1,809.5,376.8,93.3,226,1 286,-1,834.7,108.4,55.9,163.1,1 286,-1,465.3,409,64.9,225.9,1 286,-1,774.8,350,63.9,180.5,0.999 286,-1,943.9,920.3,82.7,160.7,0.866 288,-1,1221.6,31.4,62.6,120.4,1 288,-1,687.2,207,77.8,113.5,1 288,-1,353.2,111.3,54.6,176.4,1 288,-1,1719.2,460.2,79,209.4,1 288,-1,108.5,351.3,51.8,188.9,1 288,-1,940,77.8,62.5,177.2,1 288,-1,1092.8,92.9,52.8,163.2,1 288,-1,1666.5,32.8,57.3,154.6,1 288,-1,287,130.3,54.8,174.7,1 288,-1,796.5,149,60.4,174.4,1 288,-1,457.2,143,70.6,201.5,1 288,-1,1466.5,28.3,57.6,149.4,1 288,-1,401.1,21.7,56.4,166.3,1 288,-1,1019.5,94.2,59.7,184.9,1 288,-1,388,447.4,83.7,222.8,1 288,-1,704.4,1.1,53.9,157.8,1 288,-1,1449.5,584.9,91.7,240.3,1 288,-1,224,579.8,88.2,253.9,1 288,-1,233.9,412.9,63.1,200.7,1 288,-1,516,107,51.2,178.1,1 288,-1,222.1,129.8,53.6,163.9,1 288,-1,286,808.5,98.6,272.5,1 288,-1,748.2,104.5,47.2,165.9,1 288,-1,813.4,384.9,91.8,218.4,1 288,-1,545.6,428.9,68,208.6,1 288,-1,463.2,412.9,67.2,229.6,1 288,-1,884.5,398.5,78.9,201.1,1 288,-1,832.8,103.9,58.3,168.2,1 288,-1,781,351.6,65.1,177.4,0.993 288,-1,939.9,919.9,86.2,161.1,0.955 289,-1,1221.7,31.3,62,120.4,1 289,-1,687.1,207,78,113.1,1 289,-1,1668.4,32.9,58.6,154.2,1 289,-1,108.4,350.9,52.3,188.6,1 289,-1,353.6,111.6,54.2,175.5,1 289,-1,939.4,77.8,61.8,177.5,1 289,-1,1719.9,459.1,78.8,209.9,1 289,-1,1090.8,93.1,52.8,162.3,1 289,-1,287.1,129,54.7,175,1 289,-1,1466.4,28.1,56.8,147.6,1 289,-1,796.8,150.8,60.1,173.1,1 289,-1,457.1,142.3,71,199.9,1 289,-1,401.3,21.1,56.4,165.1,1 289,-1,386.6,444,83.8,223.1,1 289,-1,1019.3,94.3,58.3,182,1 289,-1,704.8,1.4,53.5,158.1,1 289,-1,234.9,411.8,61.6,198.2,1 289,-1,225.8,580.8,90.2,253.5,1 289,-1,290.4,814,96.3,267,1 289,-1,1451,584.6,95.6,245,1 289,-1,516,107.1,50.7,176.3,1 289,-1,221.8,128,54,165.1,1 289,-1,748,106.4,47.4,165,1 289,-1,544.6,430,67.9,208.8,1 289,-1,814.5,384.7,93.5,220.4,1 289,-1,832.7,103.9,59.2,165.9,1 289,-1,463.6,414.4,65.9,226.5,1 289,-1,884.2,400,82.8,199.7,1 289,-1,940.2,920.5,83.9,160.5,0.973 289,-1,788.7,355.9,63.3,177.6,0.843 293,-1,1221.3,31.3,61.6,119.9,1 293,-1,686.1,206.9,80.4,113.3,1 293,-1,1674.9,38,56.6,155.5,1 293,-1,1466,21.6,54.2,147.2,1 293,-1,236.5,583.5,95.2,250.2,1 293,-1,1720.8,458.7,78.6,209.4,1 293,-1,938.1,70,65,176.3,1 293,-1,797.2,147.7,59,175,1 293,-1,353.8,109.9,54.6,177.5,1 293,-1,235.8,404.9,60.4,193.5,1 293,-1,286,129.3,52.8,172.6,1 293,-1,1086.6,90.8,52.8,162.6,1 293,-1,107.6,353.4,52.5,186.6,1 293,-1,454.4,137,75,200.2,1 293,-1,1015,92.7,57.9,181.7,1 293,-1,404.1,22.2,57.2,170.8,1 293,-1,705,1.1,53.6,157.1,1 293,-1,385.9,433.4,83.7,229.3,1 293,-1,296.7,833.9,98.2,247.1,1 293,-1,1460.9,588.3,89.9,246.8,1 293,-1,221,130.8,56.3,165.9,1 293,-1,817.8,387.1,90.9,221.3,1 293,-1,745.7,105.3,47.5,170.6,1 293,-1,540.6,432.3,66.5,213.4,1 293,-1,515.5,106.2,49,177.3,1 293,-1,885.8,406.1,78.2,192.7,1 293,-1,462.6,417.4,63.3,231.7,0.999 293,-1,824.8,105.4,61.3,159,0.998 293,-1,941,920.2,75.5,160.8,0.996 297,-1,1221.4,31.7,61.4,118.4,1 297,-1,1677.5,43.8,58.6,154.8,1 297,-1,686.5,206.8,79.5,114,1 297,-1,938,63.8,64.1,176.7,1 297,-1,1462.3,21.3,53,148.8,1 297,-1,1720,458.4,78.4,210.9,1 297,-1,237.1,398,60.6,193.2,1 297,-1,354.1,110,54.1,178.2,1 297,-1,244.6,578.1,103.2,257,1 297,-1,452.8,131.4,75.6,203.5,1 297,-1,704.6,1,54.4,157.2,1 297,-1,796,148.3,59.8,178.6,1 297,-1,407.4,26.8,55.7,165.2,1 297,-1,1010.3,90.5,59.7,181,1 297,-1,108.9,350.6,51.3,190,1 297,-1,384.3,430.7,83.9,227.6,1 297,-1,284,130.7,53.2,171.3,1 297,-1,1080.8,87.2,50.8,165.7,1 297,-1,218.2,130.8,59.1,167.1,1 297,-1,535.7,436.8,69.1,219.6,1 297,-1,301.1,839.9,97.5,241.1,1 297,-1,1466,590.5,92.8,244.4,1 297,-1,816.5,389.4,96.4,221.7,1 297,-1,885.9,407.7,76.7,201.1,1 297,-1,512.8,104.8,47.8,176.6,0.999 297,-1,741.5,104.4,47.3,169.1,0.999 297,-1,462.2,420.8,62.6,227.1,0.999 297,-1,939.1,914,69.6,167,0.977 297,-1,832.6,110.3,47,148.4,0.85 301,-1,1221.6,31.9,61.5,118,1 301,-1,1682.9,45,57.3,152,1 301,-1,687.1,206.3,79.8,114.5,1 301,-1,1458.6,17.9,53.1,150.6,1 301,-1,1719.6,457.7,80,212.2,1 301,-1,937.6,61.6,63.8,175.7,1 301,-1,255.4,577.9,105.6,255.8,1 301,-1,109.2,350.2,51.3,192.2,1 301,-1,795.1,148.3,61.9,180.4,1 301,-1,408.8,31.9,56.4,165.9,1 301,-1,354,110.6,55.4,177.9,1 301,-1,238.3,393,58.8,194.3,1 301,-1,453.9,128.3,74.1,204.1,1 301,-1,704.9,1,53.6,158.7,1 301,-1,1008.2,86.1,59.8,182.5,1 301,-1,283.6,131,53.7,171.5,1 301,-1,218.4,132.2,58,164.7,1 301,-1,1472.5,594.2,90.4,244.8,1 301,-1,1076.8,86,49.7,162.1,1 301,-1,532.7,445.1,69.5,214.8,1 301,-1,384.6,421.2,82.7,227.9,1 301,-1,305.1,844,103,237,1 301,-1,822.4,399.6,89.3,219.9,1 301,-1,740.5,100.1,46.7,174,1 301,-1,888.5,416.4,71,199.4,1 301,-1,512.3,103.1,47.1,173.8,0.999 301,-1,459.5,426.2,65.4,230.4,0.999 301,-1,935.2,913.3,65.9,167.7,0.993 301,-1,827.1,112.4,48.2,166.7,0.078 302,-1,1221.7,31.9,61.6,118.5,1 302,-1,1683.8,44,56.7,152.9,1 302,-1,686.8,206.2,79.8,114.3,1 302,-1,1458.5,17.1,52.7,149.4,1 302,-1,257.1,577.4,108,258.8,1 302,-1,936.8,60.7,66.1,176.6,1 302,-1,410.6,32.1,56.4,165.2,1 302,-1,1719.6,457.7,80.1,212.2,1 302,-1,108.4,351.5,50.9,189.7,1 302,-1,238.2,392.2,59.4,195.8,1 302,-1,705,1.1,53.8,157.6,1 302,-1,354.6,110.7,54.9,177.3,1 302,-1,793.8,149.9,61.9,177.1,1 302,-1,454,128.1,73.1,203.3,1 302,-1,1008.5,85,58.1,178.4,1 302,-1,282.5,131.2,53.9,171.1,1 302,-1,218.5,132.1,57.3,165,1 302,-1,532.8,449.5,68.1,205.6,1 302,-1,1474.9,595,91.2,245.9,1 302,-1,308.9,846.1,102.6,234.9,1 302,-1,1075.7,85.7,50.1,161.2,1 302,-1,386,424.9,80.1,218.8,1 302,-1,823,401,87.2,222.6,1 302,-1,739.6,101.2,46.4,172.4,1 302,-1,888.2,417,71.2,201.8,1 302,-1,456.9,429.8,66.5,229.3,0.999 302,-1,510.6,102.2,48.3,175.1,0.999 302,-1,934.7,912,68.6,169,0.992 311,-1,1221.3,31.4,62.1,117.9,1 311,-1,1456.4,10.3,55.4,146,1 311,-1,686.8,207.7,78.6,112.1,1 311,-1,416.2,36.3,59.8,167.8,1 311,-1,310.8,580.8,85.5,250.1,1 311,-1,795.1,148.9,59,174.2,1 311,-1,1720.1,457.1,78.8,212.3,1 311,-1,108.2,351.5,52.6,190.3,1 311,-1,358.2,111.1,55.6,176.7,1 311,-1,1697.2,48.2,57.7,160.3,1 311,-1,452.4,124.3,76,201.3,1 311,-1,236.7,380.3,57.5,190.5,1 311,-1,933.4,51.6,62.8,174.2,1 311,-1,1492.4,597,91.2,243.5,1 311,-1,278.4,132.8,55.5,170.5,1 311,-1,216.8,131.4,56,165.3,1 311,-1,1001.7,77.5,63.1,183.7,1 311,-1,705.5,1.7,53.4,157.3,1 311,-1,528,457.2,67.6,216.3,1 311,-1,888.3,429,72.1,196.4,1 311,-1,1058.1,79.9,55.4,165.3,1 311,-1,830.5,420.2,80.7,210.7,1 311,-1,327.8,878.4,99.5,202.6,1 311,-1,734.3,99.5,45.4,170.2,1 311,-1,444.5,436.8,69.9,236.3,0.999 311,-1,392.6,401.5,81,234.3,0.999 311,-1,510.8,102.2,45.3,171.9,0.998 311,-1,927.9,910.4,79,170.6,0.995 311,-1,366.2,794.9,106.1,264.7,0.61 312,-1,1221.2,31.4,61.5,118.3,1 312,-1,686.5,207.8,79.1,112.4,1 312,-1,1456.7,8.7,55.2,145.6,1 312,-1,415.8,36.8,60.1,170.3,1 312,-1,1720.2,456.9,78.2,212.8,1 312,-1,357.5,110.7,56.7,178.5,1 312,-1,107.6,350.7,53,190.3,1 312,-1,1493.2,598.8,94.1,243.7,1 312,-1,1698.1,47.8,57.7,160.7,1 312,-1,237.2,378.3,56.7,189.3,1 312,-1,795,149.5,59.2,175,1 312,-1,311.6,579.5,90.9,249.3,1 312,-1,934.7,50.8,62.8,174,1 312,-1,451.8,124.5,76.3,199.5,1 312,-1,217.3,131.2,55.8,165.6,1 312,-1,280,129.9,55,172.9,1 312,-1,1001.7,78.1,62.6,182,1 312,-1,526.3,458,68.9,219.4,1 312,-1,889.3,431.3,70.2,195.7,1 312,-1,704.9,2.6,54.1,156.8,1 312,-1,1056.3,79.3,55.2,166.4,1 312,-1,830.1,419.3,80.7,212.3,1 312,-1,733.4,99.3,45.9,172,1 312,-1,329.4,878.3,102,202.7,0.999 312,-1,443.8,438.1,69.8,236,0.999 312,-1,393.4,404,80,227.6,0.999 312,-1,510.7,102.1,44.7,172.4,0.997 312,-1,927.5,910.4,80,170.6,0.995 315,-1,1221.7,31.6,61.3,119.1,1 315,-1,687,207.1,79.8,113.8,1 315,-1,1457,6.7,55.6,146,1 315,-1,313.7,584,108.8,247.2,1 315,-1,418.1,40.5,57.5,169.9,1 315,-1,1701,49.1,57.9,159.5,1 315,-1,1499.7,599.3,91.3,247.1,1 315,-1,1720.7,456.7,78.5,212.9,1 315,-1,109,348.6,51.9,192.1,1 315,-1,931.9,49.6,63.3,173.5,1 315,-1,357.8,108.7,57.7,180.9,1 315,-1,451.7,121.7,76.2,200.1,1 315,-1,797.6,149,57.1,175.6,1 315,-1,999.7,77.2,60.7,179,1 315,-1,889.2,434.3,72.5,199,1 315,-1,1054.4,77.6,56,168.5,1 315,-1,705.1,3,53.5,156.1,1 315,-1,280.6,128.8,54.3,175.9,1 315,-1,526.5,468.3,65.7,218.7,1 315,-1,214.4,129.6,55.6,169.4,1 315,-1,237.2,375.3,57.8,190.9,1 315,-1,438,440,74.5,235.6,1 315,-1,829.1,426.2,77.4,209.4,1 315,-1,730.8,101.3,47.4,167.4,1 315,-1,344.1,885,96.2,196,0.999 315,-1,511.4,101.8,43.2,169.7,0.997 315,-1,926.9,908.7,79.3,172.3,0.995 315,-1,403.6,410.8,67.3,215,0.164 320,-1,1221.5,31.2,61.6,119,1 320,-1,1455.4,2.6,56.9,143,1 320,-1,331.5,584,106,249.9,1 320,-1,686.6,206.9,79.8,112.5,1 320,-1,108.8,351,52.4,190.9,1 320,-1,1719.4,457.7,79.6,212.8,1 320,-1,452.9,115.3,73.6,202,1 320,-1,1711.8,52.2,55.7,158.1,1 320,-1,358.9,107.5,58.5,182.3,1 320,-1,796.9,144.7,59,181.1,1 320,-1,894.4,441,71.3,200.4,1 320,-1,433.9,451,72.2,241.9,1 320,-1,1509.4,601.4,90.2,245.3,1 320,-1,238.6,373.2,57.2,188.8,1 320,-1,419.5,45,56,171.5,1 320,-1,993.5,76.5,60.7,177.4,1 320,-1,929.7,48.3,60.7,171.2,1 320,-1,281.4,130.2,54.5,173.6,1 320,-1,1574.7,2.2,57.1,109.2,1 320,-1,1050.7,76.4,53.1,168.7,1 320,-1,214,132.8,56.3,166.5,1 320,-1,520,474.7,65,215.9,1 320,-1,828.4,434.3,77.2,206.3,1 320,-1,705.7,2.2,52.7,155.8,1 320,-1,727.5,97.6,49.2,177.8,1 320,-1,357.4,895.4,101.7,185.6,0.999 320,-1,515.1,100.4,41.1,168,0.999 320,-1,928.3,909.4,78.5,171.6,0.994 322,-1,1221.5,31.6,62.5,118.4,1 322,-1,1454.3,1.3,57.3,141.8,1 322,-1,334.2,581.2,112,251.5,1 322,-1,686.4,206.6,80.1,113,1 322,-1,1714.8,53.9,57.8,159.2,1 322,-1,108.8,351.1,52,189.4,1 322,-1,1719.6,457,79,213.3,1 322,-1,453.3,114.8,72.3,201.3,1 322,-1,795.9,147.8,58.5,175.8,1 322,-1,360.5,108.6,58.5,180.8,1 322,-1,1577.2,2.8,59.6,109.2,1 322,-1,991.2,73.5,62,179.6,1 322,-1,420.1,45.3,55.9,170.6,1 322,-1,1513.4,599.7,87,251.3,1 322,-1,895.4,441,69.5,202.4,1 322,-1,237.2,369.7,58.5,189.3,1 322,-1,281.1,131.5,54.4,172.7,1 322,-1,213.2,133.3,56.3,166.3,1 322,-1,828.4,434.3,80.4,210.5,1 322,-1,929,46.5,60.8,169.3,1 322,-1,517.9,473.9,67.3,221.3,1 322,-1,1049,79.7,52.4,162.2,1 322,-1,430.9,457.4,74.3,240.8,1 322,-1,728.6,99.7,48.3,173.5,1 322,-1,706.3,5.6,53.1,153.8,1 322,-1,514.7,101.2,41.9,168.3,0.999 322,-1,929.1,908.7,77.5,172.3,0.99 322,-1,364.9,898.2,97.3,182.8,0.984 322,-1,1842.1,516.1,62,233,0.637 323,-1,1221.5,31.6,62.3,118.8,1 323,-1,1454.1,1,55.9,140.3,1 323,-1,686.8,207.1,79.4,113.1,1 323,-1,342.5,583,105,245.9,1 323,-1,1714.6,54.7,60,159.7,1 323,-1,108.4,350.5,52.2,189.8,1 323,-1,1719.7,456.7,79.6,213.1,1 323,-1,453,115.9,72.5,200.6,1 323,-1,795.3,147,60.1,178,1 323,-1,990.9,72.4,62.2,178.9,1 323,-1,420.6,45,55.2,169.9,1 323,-1,361.2,107.3,58.8,182.8,1 323,-1,1576.8,2.1,61.5,111.9,1 323,-1,1514.9,601.9,86.7,247.4,1 323,-1,896,442.8,66.4,198.2,1 323,-1,928.7,45.3,61.6,166.7,1 323,-1,237.2,366.4,57.9,188.4,1 323,-1,281.5,132,54,172.2,1 323,-1,829.6,436.2,79.3,208.5,1 323,-1,212.8,134.4,56.3,165.2,1 323,-1,1048.1,79.3,53,161.1,1 323,-1,517.2,473.6,66.9,222.6,1 323,-1,727.7,97.9,49.1,173.4,1 323,-1,428.2,458.4,75.7,239,1 323,-1,515.1,100.7,41.1,169.1,0.999 323,-1,707.5,5.9,50.9,153.8,0.996 323,-1,363.2,902.6,101,178.4,0.979 323,-1,930.3,907.6,76.4,173.4,0.978 323,-1,1840.5,515.9,64,239.3,0.754 327,-1,1221.5,31.5,62.4,118.4,1 327,-1,686.1,207.3,80.7,112.3,1 327,-1,1452.7,1,55.4,137.7,1 327,-1,1717.1,60.7,61.1,158.7,1 327,-1,371.3,577.6,89.8,252.1,1 327,-1,452.6,115.5,72.5,198.5,1 327,-1,108.2,350.4,51.8,188.3,1 327,-1,1719.6,456.9,79.1,213.4,1 327,-1,795,149.6,61,174.7,1 327,-1,238.2,359.4,58.3,189.4,1 327,-1,987.9,66.9,62.4,181.5,1 327,-1,281.7,134.6,54.6,170.4,1 327,-1,927.9,33.6,63,174.9,1 327,-1,420.6,45.8,57,169.5,1 327,-1,363.5,108.1,57.7,179.5,1 327,-1,896.8,443.2,71.7,201.4,1 327,-1,212.9,137.1,55.3,164.3,1 327,-1,1520.6,604.1,87.1,245.7,1 327,-1,1579.9,3,65,116.6,1 327,-1,515.4,479.7,66.9,223.4,1 327,-1,725.4,91,49.9,177.5,1 327,-1,834.5,441,80.4,208.9,1 327,-1,1045.3,78.4,52,159.3,1 327,-1,1832.9,512.4,68.9,208.5,1 327,-1,421.6,466.5,78,231.2,0.999 327,-1,517.1,102.1,40.5,165.5,0.999 327,-1,932.7,910.4,72.7,170.6,0.982 327,-1,374.6,915.6,89.8,165.4,0.77 327,-1,929.2,396,65,192.1,0.072 330,-1,1221.1,31.6,62.8,118.6,1 330,-1,686.2,206.7,79.9,112.7,1 330,-1,384.7,578.8,85.2,252.2,1 330,-1,450.5,115.4,73.9,192.5,1 330,-1,1718.5,62.9,62.5,159.3,1 330,-1,1449.2,1.3,57.2,133.9,1 330,-1,1720.2,457.9,77.7,212.3,1 330,-1,108.9,348.8,51.2,190.6,1 330,-1,281.5,131.8,56.2,173.5,1 330,-1,985.5,64.1,61.8,181.1,1 330,-1,927,29.2,65.1,176.8,1 330,-1,796.7,150.7,60.3,171.8,1 330,-1,361.9,106.2,59.2,181.4,1 330,-1,212.7,138.9,55.4,162.9,1 330,-1,1583.1,1,65.4,124.8,1 330,-1,237.3,356,58.9,190.5,1 330,-1,721.7,88.6,52.6,181.2,1 330,-1,897.5,446.7,72.7,200.3,1 330,-1,1830.7,507.8,68.8,204.5,1 330,-1,837.5,439.1,82.4,210.7,1 330,-1,1043,76.5,52.8,161.8,1 330,-1,510,487.3,68.1,225.8,1 330,-1,420.8,49.2,56.7,164.4,1 330,-1,1528.9,606.6,85,243.5,1 330,-1,519.5,104,38.4,165.4,0.999 330,-1,415.5,465.1,80.2,229.1,0.999 330,-1,936.2,392.6,68.1,190.6,0.985 330,-1,935,909.9,67.5,171.1,0.891 330,-1,785.2,101.2,46.2,168.1,0.389 330,-1,375.7,919,84.3,162,0.087 335,-1,1220.7,30.7,63.2,119.3,1 335,-1,687.1,206.6,78.2,113.3,1 335,-1,395.6,582.4,103.8,245.9,1 335,-1,1448.7,1.1,55.9,127.6,1 335,-1,448.9,107,72.8,196.3,1 335,-1,1590.5,2.1,57,121.7,1 335,-1,108.7,349.4,52,190,1 335,-1,1724,69.5,59.9,153.2,1 335,-1,1720.5,457.7,79,212,1 335,-1,284.9,132.1,55.2,173.2,1 335,-1,234.2,351.9,57.6,190.6,1 335,-1,898.1,448.2,73.1,211.3,1 335,-1,362.6,106.7,57.1,177.7,1 335,-1,981.7,66.2,61.4,177.5,1 335,-1,1829.9,501.7,69.4,207.7,1 335,-1,1536.7,612,83.8,244.1,1 335,-1,926.9,25.2,65.7,174.3,1 335,-1,797,149.5,58.9,173,1 335,-1,1040.5,74.4,52.1,161.1,1 335,-1,212.5,139.6,54.6,160.9,1 335,-1,520.3,99.8,39.8,168.2,1 335,-1,840.1,440.9,83.3,220,1 335,-1,719.4,98,53.7,164.7,1 335,-1,507.2,492.5,69.4,226.5,1 335,-1,951.5,398.3,68.7,193.9,1 335,-1,776.1,95.3,42.2,155.6,0.999 335,-1,420.6,49.6,57.5,171.8,0.999 335,-1,938.9,915.8,72.4,165.2,0.973 335,-1,430.1,869.9,96.5,211.1,0.21 335,-1,414.7,372.3,78.4,199.7,0.052 338,-1,1220.9,30.5,63.3,119.9,1 338,-1,687.3,206.3,78,112.5,1 338,-1,1447.8,1.2,57.4,126.7,1 338,-1,407.2,580,107.7,249.2,1 338,-1,1592.6,2.2,55.8,127.5,1 338,-1,1728.1,71.9,57.3,153.8,1 338,-1,448.7,105.9,71.8,194.9,1 338,-1,286.3,130.7,54,174.3,1 338,-1,1719.6,457.1,79.7,213.7,1 338,-1,108.6,350.1,52.5,189.5,1 338,-1,963.5,396.2,65.4,199.5,1 338,-1,795,147.7,62.3,176.1,1 338,-1,363.5,105.4,56.3,179.5,1 338,-1,977.8,65.9,63.7,178.4,1 338,-1,901.1,453.9,68,211.7,1 338,-1,1829.4,500.7,70.3,208.1,1 338,-1,927.4,22.3,64.3,173,1 338,-1,233.3,349.3,56.9,186.6,1 338,-1,520.9,99.2,41.4,170.2,1 338,-1,1541.5,612.8,81.9,246.6,1 338,-1,211.8,140,54.7,162.6,1 338,-1,504.5,492.7,67.9,223.8,1 338,-1,1038.9,71.2,52,163.7,1 338,-1,840.9,445.7,84.3,220.9,1 338,-1,717,95.6,56.2,170,1 338,-1,419.5,360.8,82.8,213.5,0.999 338,-1,418.8,50.8,56,168.5,0.998 338,-1,773.7,97.2,40.5,156,0.997 338,-1,943.7,918.5,70.8,162.5,0.977 338,-1,850.2,2.5,43.4,86,0.133 338,-1,437.3,868.7,103.1,212.3,0.055 339,-1,1221,30.9,62.5,119,1 339,-1,687.1,206,78.4,114,1 339,-1,415.2,578.6,104.8,252.1,1 339,-1,1728.8,68.6,57,160.5,1 339,-1,1595.1,1.8,55.8,128.3,1 339,-1,1447.5,1.2,57.4,126.9,1 339,-1,1719.6,456.6,79.5,214.4,1 339,-1,108.4,350.5,52.5,188.8,1 339,-1,447.8,106,72.6,194.8,1 339,-1,286.3,131.1,53.8,173.2,1 339,-1,965.6,397.8,66.8,196.4,1 339,-1,1831,499.8,68.5,205.5,1 339,-1,795.7,147,61.2,177.5,1 339,-1,363.3,105.5,56.8,179.3,1 339,-1,976.7,65.4,64.3,179.2,1 339,-1,902.9,455.6,67.5,212.7,1 339,-1,521,99,41.4,170.2,1 339,-1,928.5,22.6,63.4,167,1 339,-1,211,140.6,56,163.9,1 339,-1,1037.9,70.9,52.9,164.5,1 339,-1,232.6,347,58.1,185.6,1 339,-1,504.7,494.5,67.2,222.6,1 339,-1,1541.9,613,83.6,246.3,1 339,-1,841.9,446.9,84.5,223.5,1 339,-1,421,360.5,86.5,215.7,1 339,-1,717.8,96.8,55.3,167.3,0.999 339,-1,773.5,96.4,40.8,158.5,0.999 339,-1,419.9,50.2,56.4,169.7,0.997 339,-1,944.5,920,71.1,161,0.986 339,-1,849.7,4.1,45.6,82.3,0.24 344,-1,1221.3,30.9,62.2,119,1 344,-1,687,206,79,113.5,1 344,-1,1735.1,76.5,56.4,156.5,1 344,-1,1603.3,1,55.7,133.6,1 344,-1,1828.5,491,69.4,202.9,1 344,-1,446.4,101.1,72.5,197.4,1 344,-1,287.7,132.3,53,171.1,1 344,-1,1719.5,458.4,79.7,213,1 344,-1,1445.9,1,55,122.3,1 344,-1,107.9,349.3,52.3,189.2,1 344,-1,438.3,576.1,98.4,248.8,1 344,-1,1550.2,616,83.3,243.5,1 344,-1,209.4,141.8,56.4,163.1,1 344,-1,797,154.6,58.2,169.2,1 344,-1,982.9,410.5,65.4,189.7,1 344,-1,364.1,104.6,57.5,182.8,1 344,-1,970.8,62.4,62.5,170.8,1 344,-1,1035.2,67.7,54.4,164,1 344,-1,520.2,98.1,39.6,169.5,1 344,-1,431.7,360,76.8,206.1,1 344,-1,841.5,451,85.6,228.5,1 344,-1,927.6,17.6,62.7,167.2,1 344,-1,229.3,338.2,56.9,187.2,1 344,-1,901,463.9,69.6,204.9,1 344,-1,712.6,94.7,58.8,173.1,0.999 344,-1,771,95.8,40.9,158,0.999 344,-1,401.7,479.5,81.3,247.3,0.998 344,-1,1880,63.5,41,168.6,0.979 344,-1,948.1,925,76.4,156,0.969 344,-1,502.2,497.3,62.4,230.2,0.931 344,-1,422.5,59.1,52,160.6,0.147 344,-1,847.8,2.3,49,89,0.143 345,-1,1221.5,30.8,62.3,119.1,1 345,-1,687.2,206.2,78.9,113.5,1 345,-1,1735.4,78.8,56.2,153.4,1 345,-1,1604,1.5,54.9,133.9,1 345,-1,1720.1,457,79.5,213.9,1 345,-1,1830,488.7,68,205.9,1 345,-1,286.6,130.9,53.9,173.2,1 345,-1,108,348.9,52.5,189.6,1 345,-1,445.7,99.7,72.2,197.7,1 345,-1,444.8,572.7,97.5,251.2,1 345,-1,1445.3,1,54.8,121.7,1 345,-1,208.2,141.7,58.5,163.8,1 345,-1,796.9,153.5,59,171.6,1 345,-1,1549.4,615,86.6,243.8,1 345,-1,987.2,410.1,63.2,196,1 345,-1,1034.5,66.8,54.2,164.7,1 345,-1,969.2,60.8,64.1,172.4,1 345,-1,363.8,105.4,56.9,181.9,1 345,-1,520.2,97.5,39.2,170.4,1 345,-1,434.7,358.5,73.4,204.6,1 345,-1,927.1,18.3,62,163.6,1 345,-1,840.5,451.5,88.5,228,1 345,-1,228.3,338.2,56.5,186.7,1 345,-1,898.8,463.6,72.1,206,1 345,-1,712.2,95.4,58.7,172,0.999 345,-1,399,486.8,83.2,232.2,0.999 345,-1,770.1,96.3,40.4,153.8,0.998 345,-1,1877.8,63.6,43.2,169.8,0.977 345,-1,950.7,927.1,75.5,153.9,0.955 345,-1,847.2,1.1,48.4,92,0.812 345,-1,501.3,496.7,67.2,238.4,0.331 347,-1,1221.6,30.9,61.3,118.3,1 347,-1,687.2,206.5,78.4,113.1,1 347,-1,1736.7,77.7,57.9,155.4,1 347,-1,456.3,574.7,91,243.7,1 347,-1,444.4,97.1,73.7,201.6,1 347,-1,1607.3,1,56.1,137.7,1 347,-1,993.2,412.3,63.9,194.3,1 347,-1,287.2,132.3,54.2,171.7,1 347,-1,1719.5,457.5,77.9,212.8,1 347,-1,108.7,348.4,51.8,189.9,1 347,-1,1829.9,487,67.5,207.4,1 347,-1,208.4,141.1,58.2,162,1 347,-1,969.3,56.3,62.9,176.5,1 347,-1,1033.6,64.8,54.5,167,1 347,-1,1550.2,617.6,88.3,240.7,1 347,-1,796.7,153.1,59.1,170.1,1 347,-1,365.3,106.6,55.5,180.6,1 347,-1,1446.3,2.2,52.3,117,1 347,-1,433.8,352.7,76.6,205.8,1 347,-1,226.4,336.9,56.7,190.3,1 347,-1,519.2,99.5,39,165.9,1 347,-1,926.1,17.8,62,163.3,1 347,-1,396.2,491.2,85.5,233.1,1 347,-1,899.3,465.8,72.3,207.4,1 347,-1,842.4,452.5,84.9,225.9,1 347,-1,769.3,93.8,42.1,155.4,0.999 347,-1,711.2,95.9,58.8,172.1,0.999 347,-1,1874.7,64.1,46.3,168.2,0.996 347,-1,845.3,1.5,46.2,93.2,0.993 347,-1,952.6,929.2,76.8,151.8,0.778 349,-1,1221.5,30.5,62,119.4,1 349,-1,687.1,206.3,78.2,113.5,1 349,-1,1738.7,77.5,57.9,154.2,1 349,-1,444.6,93.6,72.9,203.4,1 349,-1,1610,1,58.7,137.2,1 349,-1,286.9,129.9,54.6,173.5,1 349,-1,1000,412.8,64.9,194.5,1 349,-1,1033.1,62.6,54.4,168.9,1 349,-1,108.9,348.5,52.4,189.6,1 349,-1,207.9,139,58.9,164.3,1 349,-1,364,106.1,56,181.3,1 349,-1,968.4,55.1,62.1,177.4,1 349,-1,436,347.1,73.7,210.3,1 349,-1,1444.8,2.1,52.7,112.7,1 349,-1,1719.7,457.3,78.6,212.4,1 349,-1,469.6,578.8,88.9,243,1 349,-1,1553.3,617.3,88.9,243.8,1 349,-1,795.2,149.9,61.4,172.7,1 349,-1,1829.5,483.5,67.1,209.4,1 349,-1,226.4,336,58.5,190.2,1 349,-1,518.9,98.6,39,166.6,1 349,-1,925.4,17.4,60.6,163.9,1 349,-1,902.4,470.2,71.8,203.9,1 349,-1,841.6,453.8,86.6,226.9,1 349,-1,393.1,494.5,86.4,230.7,1 349,-1,844.8,1,48.3,96.4,0.999 349,-1,768.2,95.2,41.9,153,0.999 349,-1,708.7,93.5,59.7,174.2,0.996 349,-1,1871,66.9,50,164.7,0.994 349,-1,953.1,931.1,75.6,149.9,0.81 354,-1,1222,30.9,61.3,119.8,1 354,-1,687.4,206.8,78.3,112.5,1 354,-1,1615.3,1,68.2,149.5,1 354,-1,1441.2,2.5,51.1,111,1 354,-1,1747.9,83.3,58.7,153.6,1 354,-1,1010.1,418.4,69.7,197.9,1 354,-1,1032.6,60.1,54.3,170.9,1 354,-1,429.1,333.9,80,213.2,1 354,-1,488.1,578.9,96.7,242.4,1 354,-1,287.6,131.7,55.7,171.8,1 354,-1,1823.8,478,69,207.6,1 354,-1,1720.2,455.9,77.8,214.9,1 354,-1,109.4,351,53.1,189.3,1 354,-1,206.4,138.1,59.3,163,1 354,-1,445.7,86.6,70.3,205,1 354,-1,965.8,53.6,63.2,176.5,1 354,-1,364.2,106.7,54.9,179.4,1 354,-1,1555,620.5,92.8,243.7,1 354,-1,223.4,330.8,57.6,186.4,1 354,-1,797.7,152.1,59,171.6,1 354,-1,387.9,501.9,84.9,231.7,1 354,-1,923.2,11.5,62.7,161.4,1 354,-1,515.6,92.2,42.2,167.7,1 354,-1,1858.6,58.8,56.2,164.5,1 354,-1,903.1,476.6,75.4,208.2,1 354,-1,842.4,1.3,49.8,98.2,1 354,-1,843.1,460.1,85.1,228.9,0.999 354,-1,764.5,92.1,43.4,155.9,0.999 354,-1,952.6,928.9,80.5,152.1,0.86 354,-1,707.8,90.3,55.8,172.9,0.722 356,-1,1222.3,31.5,60.4,118.9,1 356,-1,687.9,206.9,77.2,113.1,1 356,-1,1617.4,1,69.9,154.1,1 356,-1,1439.1,2.7,49.9,109.8,1 356,-1,1018.8,421.5,68,198.7,1 356,-1,1749,84.6,59.5,158.2,1 356,-1,427.8,332.2,81.7,211.8,1 356,-1,1720.9,456,77.2,215,1 356,-1,1031.3,60.7,54.7,168.2,1 356,-1,287.2,132,55.4,171.9,1 356,-1,109.1,349.1,52.5,191.2,1 356,-1,446.4,87,69.6,203.3,1 356,-1,365.3,108.7,55,177.3,1 356,-1,208.2,139.7,56.9,159.8,1 356,-1,796.8,150.2,60.9,174.1,1 356,-1,963.4,54.9,63.6,172.3,1 356,-1,1555.4,620.9,95.2,246.4,1 356,-1,1822.3,477.8,70,207.8,1 356,-1,221.3,327.1,56.6,183.5,1 356,-1,489.4,575.3,102.7,243.6,1 356,-1,383.5,500.9,87.7,244.9,1 356,-1,514.6,91.5,42.5,166,1 356,-1,905.3,480.5,79.6,210.3,1 356,-1,842.4,1.4,48.7,98.4,1 356,-1,1857.3,58.1,51.5,162.2,1 356,-1,924.3,8.4,63.5,161.2,1 356,-1,841.9,464.3,86.5,226.3,0.999 356,-1,764.4,94.2,43.7,152.3,0.999 356,-1,954.2,928.3,79.7,152.7,0.847 356,-1,710.6,92.6,54.2,170.8,0.215 357,-1,1221.8,31,61.3,119.5,1 357,-1,688.2,207.2,76.6,112.6,1 357,-1,1437.9,1.1,50.2,110.4,1 357,-1,1023.4,423.5,67.1,198.7,1 357,-1,1618.7,1,71.4,156,1 357,-1,427.3,331.5,82.4,213,1 357,-1,1030.9,60.6,54.7,168.4,1 357,-1,287.5,131.7,55.4,171,1 357,-1,1749.2,84.7,62.4,160.1,1 357,-1,1720.3,455.7,77.5,214.7,1 357,-1,444.8,86,69.6,203.5,1 357,-1,108.6,350.9,52.6,189.2,1 357,-1,364.5,107.9,55.2,178.2,1 357,-1,208.6,139.2,56.5,160,1 357,-1,1559.2,621.4,92.9,246.3,1 357,-1,796,150.6,60.9,173.3,1 357,-1,962.6,54.7,64,172.8,1 357,-1,1821.7,475.2,69,205.8,1 357,-1,221.6,325.2,54.6,183.9,1 357,-1,841.2,2.6,50.1,99,1 357,-1,512.9,91.4,44.7,165.9,1 357,-1,1852.2,57.8,55.4,166.3,1 357,-1,490.9,572.7,104.5,246.6,1 357,-1,905.3,481.7,82.4,210.8,1 357,-1,383.7,505.1,85.9,241.4,1 357,-1,925.5,6.1,61.8,160.9,1 357,-1,842.6,467.1,86.9,224.5,1 357,-1,764.4,92.8,43,153.5,0.999 357,-1,953.4,927.1,79.9,153.9,0.822 357,-1,384.1,4.9,40.2,77.4,0.067 365,-1,1221.9,31.1,61.3,118.3,1 365,-1,686.4,206.4,80.2,113.4,1 365,-1,1432.6,1.7,51.3,103,1 365,-1,436.7,327.2,73.9,202.3,1 365,-1,1624.9,1,60.2,161.3,1 365,-1,1022.9,57.2,55.7,168.7,1 365,-1,208.9,142.5,60,160.8,1 365,-1,370.1,513.3,83.5,239.3,1 365,-1,1756,96,61.8,158.9,1 365,-1,442.8,83.9,71.5,201.6,1 365,-1,512.8,92.3,47.4,163.8,1 365,-1,1718.7,456.1,80,213.6,1 365,-1,1050.6,434.6,66.3,196.8,1 365,-1,110.3,352.6,51.1,186.5,1 365,-1,833.9,1,54,106.1,1 365,-1,286.7,131.5,53.9,170.2,1 365,-1,217.7,317.2,53.9,188.3,1 365,-1,1838.3,66.7,55.7,159.4,1 365,-1,797.1,148.9,59.8,174.3,1 365,-1,362.7,113,54.2,173.5,1 365,-1,956,47.4,61.7,173.4,1 365,-1,1812.9,461.9,65,208.5,1 365,-1,1576.3,626,83,247,1 365,-1,910.3,485.5,79.6,210.5,1 365,-1,526.9,568.6,97.3,251.1,1 365,-1,469.2,534.1,65.4,235.1,1 365,-1,381.1,1,43.1,88.2,1 365,-1,845.4,477,85.5,229,0.999 365,-1,762.9,98.3,41.6,141.3,0.997 365,-1,928.7,2.7,58.9,159,0.993 365,-1,960.5,921.6,77.9,159.4,0.991 367,-1,1221.6,31.8,61.2,118.1,1 367,-1,686.3,206.4,79.8,113.3,1 367,-1,440.1,313.8,74.3,214.9,1 367,-1,444,82.9,69.7,200.7,1 367,-1,1432.1,2.3,52.6,101.9,1 367,-1,1055.9,433.2,67.5,197.8,1 367,-1,1626.3,4.7,57.1,160.9,1 367,-1,209.4,142.7,59.7,159.2,1 367,-1,1021.4,57,54.9,165.5,1 367,-1,365.5,522.5,85.5,229.4,1 367,-1,1757.9,97.1,60.3,157.6,1 367,-1,109.4,352.4,51.9,187.7,1 367,-1,1831.1,72.1,60.9,157.8,1 367,-1,512.4,90.7,46.7,164.6,1 367,-1,286.4,131.5,54,169.2,1 367,-1,361.9,111.9,54.8,173,1 367,-1,1718.8,455.9,80.2,213.9,1 367,-1,955.3,45,63.3,175.3,1 367,-1,795.9,149.2,60.1,175,1 367,-1,214.9,314.4,54.1,189.3,1 367,-1,537.7,575.1,94.4,242.9,1 367,-1,1812.5,459.1,64.8,207.9,1 367,-1,1577.6,627.9,84.6,246.7,1 367,-1,911.2,489.6,76.9,206.6,1 367,-1,467,539.8,66.7,229.3,1 367,-1,832.8,1,54.8,109.6,1 367,-1,380.2,2.2,45.1,86.9,1 367,-1,759.4,95.1,44.2,144.3,1 367,-1,848.3,475.3,83.3,229.3,1 367,-1,963.7,920.8,77.8,160.2,0.994 367,-1,927.6,1.8,59.2,156.1,0.983 370,-1,1221.8,31.6,61.4,117.4,1 370,-1,686.2,206.8,79.9,112.5,1 370,-1,1064.7,437,65.7,198.1,1 370,-1,442.3,309.6,72.5,219.4,1 370,-1,1629.6,11.7,57.2,159.5,1 370,-1,443.8,80.4,68.7,196.9,1 370,-1,1020.6,55.3,54.8,165.6,1 370,-1,1761.9,97.2,57.8,159.6,1 370,-1,511.5,89.4,48.2,166.3,1 370,-1,109,352.3,52.2,187.4,1 370,-1,361.2,110.3,54.1,174.9,1 370,-1,286.6,131.7,53.2,168.4,1 370,-1,210.9,141.1,60.6,160.6,1 370,-1,1431.7,3.6,52.6,98.5,1 370,-1,542.2,571.3,101,244.9,1 370,-1,356.7,518.3,87.5,246.5,1 370,-1,831.6,1,55,110.9,1 370,-1,953.4,43.6,63.5,174.7,1 370,-1,796.5,151,59.1,171.5,1 370,-1,1720.7,455.8,77.9,214,1 370,-1,1806.4,455.1,64.1,208.5,1 370,-1,912,494,73.6,206.5,1 370,-1,381.1,2.4,46.4,90.4,1 370,-1,212.6,311,54,180.8,1 370,-1,1581.9,629,83.4,245.9,1 370,-1,464.7,541.8,67.2,233.3,1 370,-1,847.5,480.6,85.5,229,1 370,-1,1821.6,72.7,61.8,158.2,1 370,-1,758.8,95.9,45.2,144.1,1 370,-1,966.5,918.7,80.1,162.3,0.996 370,-1,927,5,57.8,146.8,0.655 379,-1,1222.1,31.8,60.6,118.6,1 379,-1,1094.4,451.4,64.5,202,1 379,-1,685.8,206.5,79.7,113.5,1 379,-1,1634,16.6,65.3,166.8,1 379,-1,358,101.9,56.2,184.5,1 379,-1,827.3,1,55.1,113.4,1 379,-1,451.1,300.8,71.5,210.4,1 379,-1,109.3,349.8,52,189.7,1 379,-1,952.9,37.2,61.4,172.8,1 379,-1,794.2,149.8,62.1,173.2,1 379,-1,284.4,127.6,53.5,169.6,1 379,-1,342.3,531.7,83.7,249.1,1 379,-1,445.9,74.3,69.6,197.5,1 379,-1,1719.1,455.2,77.8,214.3,1 379,-1,453.2,554.9,69.6,235.9,1 379,-1,217,138.2,60.2,159.4,1 379,-1,208.8,303.3,55.2,182.6,1 379,-1,1016.5,50.8,54.1,163.2,1 379,-1,1795.5,447.4,68.1,202.1,1 379,-1,1599.8,634.8,76.6,246.1,1 379,-1,504.8,83.5,53.1,170.5,1 379,-1,1434.9,1,54.7,89.4,1 379,-1,850.3,493.3,87.5,234.5,1 379,-1,589.1,561.1,89.9,254.2,0.999 379,-1,1772.4,103.5,55.2,156.5,0.999 379,-1,757.3,99.8,49.3,139,0.999 379,-1,382.4,1,47.2,93.8,0.999 379,-1,974,910.1,85.8,170.9,0.997 379,-1,906.5,505.6,75.4,208.3,0.997 379,-1,1796.2,70.2,72.7,167.9,0.991 386,-1,1222.3,31.4,61.3,118.5,1 386,-1,686.1,206.4,79.6,113.5,1 386,-1,370.8,1,61.1,101.7,1 386,-1,1635.9,26,75.1,172.4,1 386,-1,358.3,105.9,55.8,180.5,1 386,-1,1111.7,458.2,72.2,210.4,1 386,-1,445.4,287.5,81.2,211,1 386,-1,1773.7,104.2,66.7,162.1,1 386,-1,827.6,1,55.3,116.4,1 386,-1,949.2,26,64.6,179.5,1 386,-1,108.2,350.6,53.5,189.4,1 386,-1,1600.1,634.9,79.9,244.3,1 386,-1,330.6,549.2,88.7,238,1 386,-1,444.7,568.9,70.9,236.2,1 386,-1,281.8,126.7,55.8,168,1 386,-1,795.6,150,59.3,173.9,1 386,-1,219.4,140.3,59.1,157.8,1 386,-1,208.9,294.4,54.3,181.2,1 386,-1,1015.2,44.6,54,165.5,1 386,-1,1719.5,455.5,78.6,213.7,1 386,-1,1436.7,2.2,51.6,85,1 386,-1,451.4,70.5,71.9,197.9,1 386,-1,849.1,497.5,86.5,230.1,1 386,-1,912.9,515.6,79.3,209,1 386,-1,1783.7,435.3,69.9,206.3,0.999 386,-1,755.8,107.3,50.5,133.1,0.999 386,-1,977,906.1,88.2,174.9,0.996 386,-1,503,79.3,50.7,172.9,0.994 388,-1,1222.3,31,61.1,118.5,1 388,-1,686.1,206.3,79.7,113.4,1 388,-1,1636.6,27.2,75,174.9,1 388,-1,358,108,55.4,177.2,1 388,-1,1118,464.4,72.2,203.1,1 388,-1,445.1,288.4,81.5,208.8,1 388,-1,367.9,1,63.3,103.8,1 388,-1,1773.1,104.4,70,166,1 388,-1,827.8,1,55.8,118.2,1 388,-1,441.3,570.1,71.2,234.9,1 388,-1,283.2,128.2,54.1,165.5,1 388,-1,108.2,349.1,53.7,191.2,1 388,-1,950.2,25.1,63.3,176.3,1 388,-1,1596.9,629.4,83.2,249,1 388,-1,219.2,140,59.1,156.3,1 388,-1,208.3,290.9,53.7,183.5,1 388,-1,326.3,546.8,93.4,250.5,1 388,-1,452.8,71.5,70.6,196.4,1 388,-1,796.1,150.8,59.2,172.5,1 388,-1,1013.6,43.4,55.1,164,1 388,-1,1718.9,453.9,78.9,216.1,1 388,-1,917.5,523.2,76.3,208.7,1 388,-1,849,506.3,86.4,228,1 388,-1,1778,434.4,71.5,209.4,0.999 388,-1,1438.3,3,52.2,84.2,0.999 388,-1,978.3,905.2,88.9,175.8,0.995 388,-1,757.5,106.4,49.1,136,0.991 388,-1,511.6,83.8,41.9,167.9,0.942 394,-1,1222.3,30.7,61.1,118.9,1 394,-1,686.5,206.7,79.2,112.7,1 394,-1,1639.1,32.5,67.3,173.5,1 394,-1,1774,114.8,67.1,163.9,1 394,-1,1141.1,474.7,73.8,203.6,1 394,-1,358.3,106.9,55.4,178.4,1 394,-1,448.7,279.3,80.9,209.2,1 394,-1,947.9,26.1,65.7,175.1,1 394,-1,364.5,2.8,62.9,100.4,1 394,-1,794.9,151.4,60.2,171.6,1 394,-1,827.1,1.8,56.4,119.2,1 394,-1,219.1,142.6,62.8,155.3,1 394,-1,319.4,558.9,92.6,251.2,1 394,-1,282.1,127.6,56.4,167,1 394,-1,206.5,286.2,54.3,184.4,1 394,-1,433.3,581.3,75.2,235.1,1 394,-1,1719.4,454.3,79.1,216.7,1 394,-1,108.8,348.7,52.7,192.2,1 394,-1,1010.7,41.1,56,161.7,1 394,-1,1593.6,623.2,89.3,252.3,1 394,-1,921,522.9,78.7,221.3,1 394,-1,461.7,71.4,70.4,190.7,1 394,-1,848.9,512,92.6,233.7,1 394,-1,545.7,65.5,54.8,170.5,1 394,-1,711.3,1.6,51.5,137.7,0.999 394,-1,1769.6,428.7,70.6,210.5,0.998 394,-1,429.9,81.3,47.1,173,0.994 394,-1,980.4,905.3,87.7,175.7,0.989 394,-1,712.3,101.9,54.2,160.3,0.98 394,-1,759.9,106.5,38,138.2,0.107 394,-1,923.6,10.2,48.8,115.1,0.104 397,-1,1222.1,30.2,61.6,118.5,1 397,-1,686,206.4,79.9,113.4,1 397,-1,1640,41,60.8,168.4,1 397,-1,452.5,271.8,77.4,207.9,1 397,-1,358.2,105.7,55.7,180.3,1 397,-1,1772.1,115.2,68,164.6,1 397,-1,947.5,24.9,64.5,172.2,1 397,-1,314.1,562.7,92.7,249.2,1 397,-1,364.4,1.5,63.9,102.4,1 397,-1,1154.2,473.6,69.3,198.6,1 397,-1,219.3,141.6,62.9,155.7,1 397,-1,795.5,152.2,58.5,168.5,1 397,-1,828.1,1.1,56.1,120.9,1 397,-1,283.3,127.7,56.1,167.5,1 397,-1,1717.5,459.9,80.8,208.3,1 397,-1,108.8,350.2,52.4,189.4,1 397,-1,432.8,588.5,69.5,238.5,1 397,-1,1592.5,621.1,92.8,254.3,1 397,-1,464.3,73.3,69.2,186.9,1 397,-1,205,283.1,55.1,182.1,1 397,-1,1009.1,41.1,55.8,159,1 397,-1,548.9,67,56.1,172.6,1 397,-1,920.6,528.7,80.3,216,1 397,-1,852.2,518.5,95.2,231.5,1 397,-1,713.2,1,52.2,139.6,1 397,-1,428.8,84.4,48.8,171.9,0.999 397,-1,711.4,100.5,59,164.2,0.993 397,-1,981.3,906.2,86.7,174.8,0.984 397,-1,1764.1,429.6,66.5,201.8,0.609 401,-1,1222.1,30.7,61.4,118.1,1 401,-1,686,206.1,80,114.1,1 401,-1,1643.6,46.6,62.6,169.9,1 401,-1,363.1,1,66,108.5,1 401,-1,357.6,106.3,56.3,179.1,1 401,-1,945.8,21.6,63.4,171.7,1 401,-1,455.8,266.9,77.7,209.3,1 401,-1,1772,116.1,64.3,166,1 401,-1,218.4,140.9,64.9,157,1 401,-1,550.6,67.7,58.5,172.8,1 401,-1,1719.8,459.8,80.5,207.3,1 401,-1,308.8,567,87,247.5,1 401,-1,828.4,1.3,55.7,124.4,1 401,-1,284.5,129.7,54.7,166,1 401,-1,796,153.4,58.9,169.6,1 401,-1,427.5,594.7,68.8,236.8,1 401,-1,1169.1,477.4,66.8,203.8,1 401,-1,202.9,276.2,55.2,180.1,1 401,-1,108.3,348.1,53.4,192.2,1 401,-1,1006.3,38.9,56.6,160.8,1 401,-1,467.5,71.3,67,188.7,1 401,-1,1592.3,621.2,95.7,250.8,1 401,-1,853.6,519.4,97.2,235.7,1 401,-1,426.7,88.1,50.9,174.6,1 401,-1,925.3,533.8,80.6,215.4,1 401,-1,716.5,1,51.6,136.5,1 401,-1,710.1,89.9,62.2,173.3,1 401,-1,980.5,909.9,86.8,171.1,0.979 401,-1,429.2,6.2,22.7,89.4,0.207 406,-1,1221.7,29.5,61.5,118.9,1 406,-1,686.7,205.2,79.1,115.6,1 406,-1,1648,50.5,65.3,172.7,1 406,-1,357.9,104.5,54.6,180.5,1 406,-1,458.7,266.8,75.1,205.8,1 406,-1,1770.8,118.6,64.4,174.1,1 406,-1,109.7,345.7,52.9,194.6,1 406,-1,946.2,17.6,62.1,173,1 406,-1,795.6,152.8,58.6,169.2,1 406,-1,550.4,69.7,59.7,170.3,1 406,-1,417.2,602.1,72.7,233.9,1 406,-1,1719.6,457,80.8,209.3,1 406,-1,361.8,1,64.9,116.3,1 406,-1,1589.2,618.3,97.6,247.8,1 406,-1,284.1,129.3,56,166.2,1 406,-1,829.8,1,56.7,128,1 406,-1,221,142.5,63.5,154.5,1 406,-1,302.1,577.2,84.9,253.3,1 406,-1,1004.6,32.3,56.6,160.8,1 406,-1,205.4,269.9,54.3,183.4,1 406,-1,855.2,525.5,100.7,234.4,1 406,-1,466.7,70.3,64.1,187.9,1 406,-1,425.3,90.1,50.6,173.6,1 406,-1,1194,486.3,59.8,206.2,1 406,-1,717.6,1,51.5,134.3,1 406,-1,928.7,543.2,82.4,221.4,1 406,-1,685.2,561,93.9,232.4,1 406,-1,710.2,91.4,63.8,169.3,0.999 406,-1,426.7,1,43.6,109.8,0.997 406,-1,977.6,919,86.8,162,0.984 420,-1,1221.7,29.5,62.7,118.9,1 420,-1,686.4,205.2,79.7,115.2,1 420,-1,1664.7,68.9,73.8,179.2,1 420,-1,945.3,14.1,58.6,166.9,1 420,-1,359.2,110.8,54,175.4,1 420,-1,1719.5,455.4,78.6,210.7,1 420,-1,452.7,247.6,79.5,200.5,1 420,-1,110.5,349,52.4,188.6,1 420,-1,549.1,72.7,55.7,165,1 420,-1,837.3,1,51.2,131.7,1 420,-1,1007.7,27,54.9,161.7,1 420,-1,1766.9,135.4,55.2,163.7,1 420,-1,1240.5,507.5,86.2,202.4,1 420,-1,1582.2,616.9,97.2,242.9,1 420,-1,286.4,128.9,54.8,165.7,1 420,-1,393.7,625.8,74.7,237.5,1 420,-1,287.6,600.5,93.4,252.3,1 420,-1,214.1,257.7,53.5,181,1 420,-1,860.9,543,103.9,245,1 420,-1,798.2,149.3,55.3,173.3,1 420,-1,220.1,141.6,72,159,1 420,-1,724.4,559.2,79.8,242.9,1 420,-1,358.4,1,67.5,119.2,1 420,-1,426.3,107.4,53.3,166.6,1 420,-1,1816.3,70.9,76.2,182,1 420,-1,717.9,1,50.4,125.3,1 420,-1,460.2,62.2,66.2,195.5,1 420,-1,939,560.2,79.8,221.9,1 420,-1,424.3,1,44.5,121.8,0.999 420,-1,712.4,89.5,63.2,176.6,0.999 420,-1,752.3,87.6,46.5,161.1,0.589 420,-1,920.5,9.9,37.4,94.1,0.124 420,-1,986.3,930.1,79.4,150.9,0.06 438,-1,1221.7,29.6,62.4,119.3,1 438,-1,937.9,3,61.8,164,1 438,-1,449.5,226.1,76.9,199.6,1 438,-1,687.4,206.4,77.8,113.1,1 438,-1,359.6,109.3,53,177,1 438,-1,110.6,349.7,55.4,190.7,1 438,-1,1007.6,17.9,55.1,156.6,1 438,-1,1338,531.2,69.1,196.9,1 438,-1,848.2,1,54.1,135.8,1 438,-1,231.9,240,54.3,180.5,1 438,-1,1717.3,457.4,81,210.5,1 438,-1,272.4,633.2,92.5,254.8,1 438,-1,285.7,131.2,54.5,166.7,1 438,-1,762.9,568.3,80.8,250.8,1 438,-1,368.9,657,75.4,243.2,1 438,-1,797.8,150.4,53.7,174.1,1 438,-1,1750.8,146.9,66.7,169.1,1 438,-1,877.6,573.1,111.6,242.7,1 438,-1,1846.8,411.4,74.2,191.5,1 438,-1,1565,615,80.4,241.1,1 438,-1,1690.4,89,69.3,172.3,1 438,-1,534.2,69.8,55.2,170.7,1 438,-1,363.1,1.1,61,131.2,1 438,-1,433.2,116.3,55.5,168,1 438,-1,423,1,43.2,131.1,1 438,-1,712.2,85.9,59.7,180.3,0.999 438,-1,959.3,592.6,80.2,221.5,0.999 438,-1,220.6,138.8,61.5,150.2,0.999 438,-1,725.2,1.1,49.3,105.9,0.999 438,-1,758.9,84.8,42.4,157.3,0.982 438,-1,1004.1,927.8,86.2,153.2,0.979 438,-1,1690.3,377.7,69.4,202.2,0.805 448,-1,1221.6,30.9,62.4,118.1,1 448,-1,937.4,1,58.2,156.5,1 448,-1,448.1,211.7,71.8,198.2,1 448,-1,687.2,206.1,78.1,113.5,1 448,-1,1006.5,12,54.7,158.6,1 448,-1,359.6,108.5,53.4,177.3,1 448,-1,1718,454.1,81.9,212.8,1 448,-1,1373.1,545.3,99.3,198.7,1 448,-1,113,352.7,53.6,185.7,1 448,-1,287.1,126.4,53.6,169.2,1 448,-1,861.5,3.5,52.7,137,1 448,-1,1747.5,158.5,61.5,164.6,1 448,-1,1555.9,612.2,75.6,243.2,1 448,-1,251.7,223,49.9,184.8,1 448,-1,800.4,151.6,49.3,172.6,1 448,-1,1669.4,362,69.3,194,1 448,-1,257.5,651.6,89.1,251.6,1 448,-1,884.6,590.3,115.1,246.2,1 448,-1,1839.4,391.8,81.6,209.4,1 448,-1,352.9,677.9,73.4,248.8,1 448,-1,526.8,75.1,54.5,169.9,1 448,-1,221.9,138.6,55.7,158.5,1 448,-1,731.7,1,47.8,94.7,1 448,-1,785.8,573.5,80.2,249.9,1 448,-1,427.5,122.7,60.1,166.5,1 448,-1,422.8,1,44,133.3,1 448,-1,756.6,88.9,46.8,150.9,0.999 448,-1,358.6,4.5,64.6,129.7,0.998 448,-1,1704.4,106,69.2,175.1,0.998 448,-1,708.2,87.8,59.8,174.6,0.996 448,-1,964.8,604.2,80.6,220.6,0.993 448,-1,1018.3,919.3,86.8,161.7,0.99 448,-1,1509.4,1,57,100.6,0.956 448,-1,454.2,38.5,61.9,197.7,0.319 454,-1,1221.7,30.7,61.6,118.5,1 454,-1,936.6,1,58.2,155.5,1 454,-1,446.1,209.3,71.9,194.7,1 454,-1,686.7,206.4,79.5,113.5,1 454,-1,112.3,348.3,56.2,191.5,1 454,-1,359.2,106.9,54.7,178.7,1 454,-1,1008.4,11.3,53.3,155.7,1 454,-1,1407.1,549,93.3,218.3,1 454,-1,1710,455.5,90,211.3,1 454,-1,1742.7,158.3,58.9,166,1 454,-1,260.1,224.9,52.9,173.2,1 454,-1,1552.1,612,75.1,243,1 454,-1,286.5,127.2,55.2,169.7,1 454,-1,865.9,1.8,54.4,138.7,1 454,-1,523.6,76,56.1,171.1,1 454,-1,1831.7,389.4,86.1,207.4,1 454,-1,346.3,682.2,71.7,251.4,1 454,-1,1662.7,358.6,65.6,197.3,1 454,-1,801.3,153.1,46.9,170.1,1 454,-1,248.6,655.7,97.1,262.4,1 454,-1,889,599.5,114.3,244,1 454,-1,796.4,577,86.1,249.4,1 454,-1,418.7,1,45.4,148.2,1 454,-1,753.9,90.4,51.8,151.5,1 454,-1,220.5,138,57.8,161.5,1 454,-1,974.1,614,82.6,228.6,0.999 454,-1,1508.3,1,55.7,106.1,0.999 454,-1,1024.3,920.3,85.2,160.7,0.996 454,-1,428.2,134,52.2,151.3,0.995 454,-1,443.8,36.1,73.4,204.3,0.988 454,-1,714,93.1,50.8,166,0.973 454,-1,359.4,6.9,62.6,139.5,0.93 454,-1,1712.3,99.8,62,190.7,0.223 466,-1,1221.9,30.8,62.2,117.8,1 466,-1,686.8,206,79.3,113.5,1 466,-1,934.9,1,58.2,148,1 466,-1,1006.6,1.4,53.5,154.8,1 466,-1,452.2,192.6,68.1,195.5,1 466,-1,275,207.9,53.2,179.6,1 466,-1,1729.1,169.7,64.4,162.2,1 466,-1,239.1,682.1,92.9,254.8,1 466,-1,1807.9,367,84.1,215.9,1 466,-1,359.1,110.3,55.3,177.6,1 466,-1,1703.9,457.4,96,210.2,1 466,-1,335.4,715.1,72.1,247.3,1 466,-1,803.4,147.7,47.7,174.1,1 466,-1,117.6,345.3,58,188.1,1 466,-1,1507.1,1.7,57.8,110.7,1 466,-1,1650.3,347.8,61.3,198.8,1 466,-1,876.6,1,52.1,134.4,1 466,-1,1672.9,52.9,63.8,173.8,1 466,-1,218.9,138.3,61.8,158.2,1 466,-1,517,79.6,60.8,174,1 466,-1,808.8,585.1,92.8,248.6,1 466,-1,1542.6,608.2,74.2,242.9,1 466,-1,754.8,95.3,53.1,142.8,1 466,-1,896.1,618.6,117,247.1,1 466,-1,1480.9,563,81.4,207,1 466,-1,981.4,635.5,89.9,221.8,1 466,-1,446,38.3,74.7,187,0.999 466,-1,414.6,4.2,44.7,156,0.999 466,-1,712.5,94,52.5,164.4,0.997 466,-1,286.6,127.6,52.4,168.4,0.994 466,-1,1026.8,922.3,84.5,158.7,0.993 466,-1,431.1,144.1,46,154.6,0.922 466,-1,1729.1,69.1,49.2,159.6,0.651 474,-1,1222,30.4,62,118.5,1 474,-1,687.3,206,78.8,113.8,1 474,-1,1002.6,1,56.4,151.7,1 474,-1,286.1,206.8,52.7,168.3,1 474,-1,453.3,179.7,70.3,195.2,1 474,-1,934.3,1,57.7,145,1 474,-1,359.9,112.2,54.4,173.6,1 474,-1,1789.6,363.3,87.8,212.5,1 474,-1,877.8,1.8,51,133.2,1 474,-1,1696.9,457.6,103.1,211.9,1 474,-1,1504.9,1.2,58.5,118.2,1 474,-1,1535.9,600.7,81.1,242.5,1 474,-1,803.1,143.6,48.4,177.2,1 474,-1,1641.5,343.4,62.3,196.6,1 474,-1,1724.1,175.1,66.8,165.7,1 474,-1,808.7,589,95.8,259,1 474,-1,908.2,625.3,113.1,246.2,1 474,-1,123.5,343.2,58.7,188.7,1 474,-1,218.7,136.8,63.4,161.7,1 474,-1,231,693.1,92.7,268,1 474,-1,325.8,727.2,74.8,252.7,1 474,-1,514.4,86.2,60.2,171.1,1 474,-1,445.3,32.8,72.8,180.7,1 474,-1,1771.7,146.1,86,178.2,1 474,-1,1711,53.9,52,172.4,1 474,-1,1660.1,43.3,58,177.8,1 474,-1,752.9,97.3,54.1,140,0.999 474,-1,713.3,93.8,54.6,163.1,0.999 474,-1,412.8,4.9,45.7,153.3,0.997 474,-1,989.9,650.4,77.6,229.5,0.979 474,-1,1026.8,925.2,80,155.8,0.973 474,-1,430.5,150,51.3,172.8,0.529 478,-1,1222.2,30.7,61.8,118.4,1 478,-1,686.5,206.7,79.9,113.2,1 478,-1,999.6,1,57.9,148,1 478,-1,292.3,199.3,51.5,173.2,1 478,-1,933.7,1,57,141.7,1 478,-1,359.8,107.1,56.8,179.6,1 478,-1,1685.5,455,114.6,215.4,1 478,-1,805.3,588,91.4,261.1,1 478,-1,876.5,1,53.6,133.2,1 478,-1,451.5,172.6,73,193.4,1 478,-1,1503.5,1,58.9,121.6,1 478,-1,1785.9,361.2,87.5,213.6,1 478,-1,1725.6,175.9,66.7,167.1,1 478,-1,1538.4,595.4,77.5,245.9,1 478,-1,218.7,136,62.3,161.8,1 478,-1,804.3,144.5,46.6,177.5,1 478,-1,225.4,702.8,92.1,265.9,1 478,-1,319.7,733.9,76.3,255.8,1 478,-1,1785.3,151.2,83,182.1,1 478,-1,913.4,634.3,117.3,252.9,1 478,-1,1637.3,341,61.7,195.2,1 478,-1,126.6,345.2,58.1,187.3,1 478,-1,512.8,85.5,61.5,172.2,1 478,-1,447.4,28.8,72.1,181.8,1 478,-1,1703.8,52,51.3,166.7,1 478,-1,1652.6,41.2,61.3,178.2,1 478,-1,412,5.6,47.3,154.5,0.999 478,-1,713.7,93.6,55.1,163.3,0.999 478,-1,753,98.8,53.1,141.3,0.999 478,-1,1022.4,927.7,80,153.3,0.68 478,-1,992.7,660.8,72.7,216.2,0.575 478,-1,425.4,154,54.7,184.3,0.484 479,-1,1222,30.9,62.1,117.5,1 479,-1,686.5,206.3,79.9,112.6,1 479,-1,1000.1,1,57.2,145.8,1 479,-1,1683.1,455.1,117.1,215.4,1 479,-1,292.4,196.8,52.5,175.4,1 479,-1,933.5,1,56.6,140.3,1 479,-1,876.8,1,53.3,133.5,1 479,-1,1503,1,59.1,120.9,1 479,-1,451.2,171.7,74.2,193.3,1 479,-1,1786.8,359.7,83.7,215.7,1 479,-1,360.4,109.8,55.9,176.6,1 479,-1,1726.4,175.7,64.9,168.5,1 479,-1,1538.4,595.3,76.8,247.9,1 479,-1,806.5,591.4,89.8,256.5,1 479,-1,1787.2,149.2,80.9,183.7,1 479,-1,804.9,144,47,177.3,1 479,-1,127.9,345.2,57.2,185.9,1 479,-1,218.7,135.8,62,161.3,1 479,-1,912.6,635.9,121,253.6,1 479,-1,1636.4,334.2,64,201.7,1 479,-1,317.6,737.5,75.2,257.4,1 479,-1,224,703.7,90.8,265.6,1 479,-1,1703.3,51.2,51.4,168.1,1 479,-1,447.3,27.2,72.2,183.4,1 479,-1,511.6,85.9,61.6,173.1,1 479,-1,1652.7,42.6,58.4,175.9,0.999 479,-1,753.4,99.4,53.3,141.8,0.999 479,-1,713.6,93.6,54.6,164.3,0.999 479,-1,412.4,6.7,46.9,155,0.999 479,-1,423,152.1,56.6,184.4,0.804 479,-1,993.3,661.2,75,216.2,0.431 479,-1,1022.3,928.5,79.7,152.5,0.313 482,-1,1221.9,30.7,61.8,117.3,1 482,-1,686.9,205.9,79.6,114.3,1 482,-1,999.2,1,57.5,145.4,1 482,-1,1793.1,150.6,69.6,187.9,1 482,-1,1501.7,1,58.5,121.4,1 482,-1,297,194.5,51.1,174.4,1 482,-1,932.3,1,56.6,137.5,1 482,-1,1684.5,457.3,116.9,211.4,1 482,-1,452.9,169.9,71.8,192.8,1 482,-1,876.9,1,53.7,132.7,1 482,-1,132,341.2,57.3,185.7,1 482,-1,1782.6,360,80.3,208.7,1 482,-1,313.6,737.2,74.9,264.3,1 482,-1,1729.5,173.1,63.6,172,1 482,-1,804.3,594.9,90.1,255.5,1 482,-1,361,110.5,53.9,175.1,1 482,-1,803.6,142.1,48.3,179.3,1 482,-1,1634.6,331.2,63.2,198.6,1 482,-1,219.1,137.9,60.9,160.4,1 482,-1,913.8,642.5,116.9,258.8,1 482,-1,219.5,707.8,94.9,266.9,1 482,-1,1702.4,50.4,49.2,164.5,1 482,-1,1538.2,597,80.8,245,1 482,-1,1648,41.4,56.7,175.4,1 482,-1,415.9,153.4,58.6,176.2,1 482,-1,447,25.3,74.5,185.6,1 482,-1,506.3,88.3,61.8,172.4,1 482,-1,411.4,5.7,48.8,157,0.999 482,-1,751.9,98.1,53.9,142.2,0.999 482,-1,713,94,55.4,163.6,0.998 482,-1,992.9,664.7,80.6,224.2,0.905 482,-1,1019.1,932.4,80.5,148.6,0.224 483,-1,1221.9,30.6,62,118.4,1 483,-1,687.1,205.8,79,114.4,1 483,-1,999.4,1,56.7,145,1 483,-1,297.9,196.7,51.4,171,1 483,-1,1501,1,58.6,121.6,1 483,-1,932.4,1,56.3,137.3,1 483,-1,1682.4,458.8,119.1,208.1,1 483,-1,1794.1,156.5,69.8,184.4,1 483,-1,876.9,1,53.6,132.6,1 483,-1,132.2,340.4,58.5,188.1,1 483,-1,453,169.6,72.2,193.2,1 483,-1,1730.4,174.6,63.6,172.4,1 483,-1,1781.5,357,79.3,211.5,1 483,-1,219.2,713.4,92.7,260,1 483,-1,803.6,595.8,90.7,255.2,1 483,-1,802.2,142.2,50.2,179,1 483,-1,361.3,109.2,53.5,175.5,1 483,-1,1635.7,330.3,61.3,196.6,1 483,-1,1702.1,49.4,50,168.3,1 483,-1,311.2,740,77.9,260.4,1 483,-1,914,644,116.8,259.3,1 483,-1,219.8,138.1,61.2,161.3,1 483,-1,1536.8,596.2,82.7,245.9,1 483,-1,446.8,24.7,73.7,183.6,1 483,-1,415.6,154.3,58.4,175.7,1 483,-1,1646.5,41.6,56.2,174.1,1 483,-1,506.1,88.3,62.2,172.2,1 483,-1,751.3,97.9,54.7,140.3,0.999 483,-1,411.6,6.4,47.9,156.2,0.999 483,-1,713.6,96.8,55,162,0.997 483,-1,998.8,667.3,72.7,222.9,0.899 483,-1,1019.7,932.7,78.9,148.3,0.248 484,-1,1221.8,31.1,61.8,117.6,1 484,-1,686.8,205.7,80,114,1 484,-1,998.8,1,57.3,144.5,1 484,-1,1500.6,1,58.6,122.3,1 484,-1,298.2,197.1,52.1,169.8,1 484,-1,1682.6,457.9,117.9,210.2,1 484,-1,932.7,1,56.1,136,1 484,-1,876.6,1,54,132.1,1 484,-1,1796.4,160.8,69.2,180.9,1 484,-1,455.4,167.2,70.1,195,1 484,-1,1730.4,176.2,65.2,171,1 484,-1,1783.2,354.3,74.1,210.7,1 484,-1,218.7,715.5,94.2,257.3,1 484,-1,805.6,597.9,86.2,253.9,1 484,-1,133.3,340.5,58.4,188.2,1 484,-1,802.3,143.1,50,177.3,1 484,-1,1701.4,47.4,49.5,169.7,1 484,-1,360.1,109.7,54.2,175.3,1 484,-1,308.2,741.8,79.4,257.8,1 484,-1,1540.1,595.9,81.3,246.8,1 484,-1,914,650.5,114.6,254.4,1 484,-1,219.7,139,61.6,157.5,1 484,-1,1635.4,333.9,59.4,189.7,1 484,-1,415.5,154.4,57.1,174,1 484,-1,1644.3,40.1,57.4,176.5,1 484,-1,447.5,23.8,74.6,183,1 484,-1,504,87.9,63.2,172.4,1 484,-1,410.5,6.1,48.8,157.7,0.999 484,-1,712.6,94.7,57.8,164.9,0.999 484,-1,752.2,98,53.3,142.3,0.999 484,-1,999.3,666.8,73.8,230.7,0.881 484,-1,1017.5,933.6,83.1,147.4,0.273 500,-1,1221.2,30.1,62.7,119.1,1 500,-1,686,206,81.1,115,1 500,-1,998.8,1,54.6,130.9,1 500,-1,1496,1.9,58.6,131.6,1 500,-1,1658.2,605.2,65.7,203.5,1 500,-1,793,142.3,62,178.7,1 500,-1,1826.7,181.5,80.3,190.5,1 500,-1,467.1,156,63.8,189.8,1 500,-1,931.7,1,55.5,127.5,1 500,-1,1682.4,36.9,56.3,167.1,1 500,-1,209.5,741.9,96.2,264.4,1 500,-1,142.7,333.8,64.8,191.3,1 500,-1,1732.4,192.6,71.3,175.4,1 500,-1,879.1,1.6,51.4,125.1,1 500,-1,1547.8,597.3,82,241.8,1 500,-1,405.1,167.9,60.1,184.8,1 500,-1,820.3,608.8,79.5,256.2,1 500,-1,318.8,193.8,49.6,161.2,1 500,-1,925.1,678.1,120.3,254.3,1 500,-1,217.5,134.6,64.4,163.8,1 500,-1,301,774.4,70.3,259.9,1 500,-1,1623.4,317,60.5,193.3,1 500,-1,1725.9,456.5,74.2,208.2,1 500,-1,1623.8,28.5,57.2,173.5,1 500,-1,508.8,96.5,62.1,177.3,1 500,-1,715.8,92.7,60.6,167.5,1 500,-1,449.1,14.2,75.5,181.4,1 500,-1,285.5,126.1,53.1,169.1,1 500,-1,359.8,110.7,56.6,180.1,1 500,-1,1742.2,335.9,76,216.3,1 500,-1,402.5,17.4,47.1,159,0.999 500,-1,1014.3,695.9,84.5,228,0.997 503,-1,1221.7,30.5,61.8,119.2,1 503,-1,686.4,206,80.6,115,1 503,-1,1495.8,2.1,58.7,134.6,1 503,-1,999.3,1,53.8,128.9,1 503,-1,790.3,143.1,62.2,177.9,1 503,-1,1668.2,606.1,70.5,213.3,1 503,-1,467.7,149.3,64,190.4,1 503,-1,1681.4,31.4,56.5,168.6,1 503,-1,145.8,332,66.3,191.5,1 503,-1,403,170.1,62,184.3,1 503,-1,931.1,1,56.4,126.1,1 503,-1,295.2,777.5,75.2,255,1 503,-1,879.8,1,53,125,1 503,-1,821,607.3,78.9,256,1 503,-1,1736.2,195.6,67.5,171.6,1 503,-1,1830.4,185.1,83.6,196.7,1 503,-1,320.6,187.5,50.2,162.9,1 503,-1,1727.8,456.4,72.4,210.8,1 503,-1,1549.2,598.7,78.3,238,1 503,-1,929.5,685.5,117.9,253.1,1 503,-1,217.5,134.4,64.1,163.8,1 503,-1,1736,335.2,78.4,209.7,1 503,-1,210,746.2,89.4,265.9,1 503,-1,1618.8,24.7,58.4,176.3,1 503,-1,1620.1,309.5,64.6,192.6,1 503,-1,716.3,92.3,62.6,168.8,1 503,-1,287.1,121.8,54.2,172.4,1 503,-1,450.1,10,74.4,186.3,1 503,-1,509.9,93.5,59.9,177.6,1 503,-1,360.9,107.2,54.7,185.9,0.999 503,-1,401.3,18.7,47.6,157.7,0.999 503,-1,1020.2,701.7,82.2,232.2,0.996 504,-1,1221.7,30.2,62.3,119.2,1 504,-1,686.7,206.1,80,114.3,1 504,-1,1495.1,1.1,59.5,134.4,1 504,-1,999.1,1,54.2,129.5,1 504,-1,1671.2,607.3,72.7,215.9,1 504,-1,788.6,142.1,62.9,180.8,1 504,-1,1680.7,29.1,57.1,169.6,1 504,-1,147.9,332.1,65.9,191.3,1 504,-1,322.5,183.9,50.1,163.7,1 504,-1,467,146.7,65,191.6,1 504,-1,932.1,1,55.8,124.3,1 504,-1,880,1,52.3,125,1 504,-1,402.6,171,60.6,184.1,1 504,-1,824.1,609.3,75.3,251.6,1 504,-1,1733.5,331.3,79.1,215.4,1 504,-1,1832.4,186.1,82.9,197.4,1 504,-1,294.8,780.8,75.6,252.5,1 504,-1,930.3,686.9,118.1,252.4,1 504,-1,1737.9,195.6,66.8,172.2,1 504,-1,217.5,133.9,63,162.8,1 504,-1,1618.3,23.8,57.3,176.2,1 504,-1,1551.2,598.9,76.2,238,1 504,-1,209,744.9,91,274.4,1 504,-1,1730.5,456.1,70.6,210.3,1 504,-1,450.2,10.1,74.1,184,1 504,-1,1618.8,308.7,64.9,193,1 504,-1,717.6,91.6,62.5,171.3,1 504,-1,287.1,124,54.7,171.8,1 504,-1,511,94.3,59.6,181,1 504,-1,360.3,106,54.1,186.4,0.999 504,-1,401.4,17.5,47.9,161,0.999 504,-1,1020.5,703.9,79.7,234.2,0.993 504,-1,1027,934.2,85.3,146.8,0.052 507,-1,1221.6,30,62.3,119.1,1 507,-1,685.9,206.4,81.1,114.8,1 507,-1,1495.6,1,59.1,134.7,1 507,-1,998.6,1,54.7,128.8,1 507,-1,151.8,331.7,66,190.4,1 507,-1,788.5,142.3,62.4,179.3,1 507,-1,328.2,175.8,50.3,168.9,1 507,-1,401.7,177.5,61.2,185.6,1 507,-1,1678.8,25.8,56.4,169.2,1 507,-1,882.3,1,52.2,124.4,1 507,-1,932.6,1,55.7,121.8,1 507,-1,1681,611.3,83.2,221.6,1 507,-1,822.7,606.8,78.8,254.3,1 507,-1,461.7,141.4,71.3,192.8,1 507,-1,1725.3,328.5,88.4,206.3,1 507,-1,1553.3,599.4,76.1,237.9,1 507,-1,933.7,688.7,117.5,253.4,1 507,-1,1616.1,304,63.4,194.5,1 507,-1,1617.6,17.7,55.9,178.5,1 507,-1,1837.5,190.4,78.1,195.9,1 507,-1,290.4,786.6,79.4,261.3,1 507,-1,217.4,133.9,63.1,162.7,1 507,-1,1722.8,460.9,77.6,203.9,1 507,-1,1742.2,194.9,63.6,178.2,1 507,-1,206.7,752.3,92.1,281,1 507,-1,512.7,94.3,59.5,179.1,1 507,-1,719.3,95.7,64.6,164.5,1 507,-1,449.3,6.9,74.3,180.3,1 507,-1,288.9,125,54.8,170.7,1 507,-1,359.6,104.9,53.1,184.8,0.999 507,-1,399.5,19.8,46.7,162.8,0.996 507,-1,1026.3,707.2,74.6,245.6,0.811 507,-1,1033.7,934.6,81.1,146.4,0.087 509,-1,1221.9,30,61.7,118.9,1 509,-1,1494.1,1,59.6,132.3,1 509,-1,686,206.9,81.3,114.9,1 509,-1,997.5,1,55.1,126.9,1 509,-1,153.5,329.5,67.3,190.8,1 509,-1,331.6,174.8,51.1,168.1,1 509,-1,401.9,182.1,59.6,182.7,1 509,-1,1677,24.8,55.6,170.7,1 509,-1,932.6,1,54.8,121.6,1 509,-1,1719.1,459.7,81.4,208.1,1 509,-1,1688,622.3,85.5,206.8,1 509,-1,459,138.6,74.8,193.3,1 509,-1,882.9,1.3,50.8,123.6,1 509,-1,788.2,142.8,61.3,178.9,1 509,-1,1556,599.6,74.6,235.5,1 509,-1,936,690.1,122.7,253.8,1 509,-1,1616.5,16.1,55.3,176.6,1 509,-1,826,609,74.2,254.1,1 509,-1,1717.5,327,92,200.9,1 509,-1,1839.7,189.9,77.8,199.1,1 509,-1,203.3,758.5,95,278,1 509,-1,1615.2,304.2,63.2,194.1,1 509,-1,216.5,136,63.7,160.7,1 509,-1,289,790.4,76.8,262.2,1 509,-1,288.6,122.1,53.9,172.4,1 509,-1,514.5,92.2,54.8,173.1,1 509,-1,723.1,95.5,68.2,162,1 509,-1,1745.6,196.9,61.1,177.3,1 509,-1,449.9,6.4,73.3,180.8,1 509,-1,397.9,20,49.2,161.9,0.997 509,-1,361.1,101.2,52.6,189.6,0.988 509,-1,1031.2,716.7,71.4,235.9,0.148 514,-1,1221.5,30.2,62,119.3,1 514,-1,1492,1,60.6,136.6,1 514,-1,686.4,207,80,113.3,1 514,-1,996.7,1,54.9,123.6,1 514,-1,158.8,327.9,66.3,188.9,1 514,-1,395.5,184.5,62.7,188.1,1 514,-1,1674.5,24.6,54,165.8,1 514,-1,942.9,699.2,119.2,262.6,1 514,-1,338.9,169.9,51.1,170.7,1 514,-1,1709.8,626.7,82.5,213.7,1 514,-1,1613.3,14.8,55.5,176.5,1 514,-1,460.2,139.3,71.9,185.8,1 514,-1,1607.9,301.2,62.7,200,1 514,-1,1560.8,600.1,70.9,236.4,1 514,-1,930,1.3,57.6,120.3,1 514,-1,883.9,1,53.4,121.3,1 514,-1,790.4,142.8,55.2,177.4,1 514,-1,1711.9,325.8,92.7,198.4,1 514,-1,287,125.4,54,174.4,1 514,-1,200.7,770.8,91.9,272.4,1 514,-1,1719.2,461.9,79.5,205,1 514,-1,828.9,607.8,73,256.7,1 514,-1,1847.1,204,73.7,191.7,1 514,-1,217.7,135.4,62.9,161.3,1 514,-1,280.3,802.5,80.5,260.4,1 514,-1,730,98.5,66.9,160.6,1 514,-1,450.9,5.8,74,181.4,1 514,-1,515.7,94.2,55.5,177.3,1 514,-1,1754.6,205.4,58.5,168.1,0.999 514,-1,398.7,25.5,45.9,158.1,0.996 514,-1,1043.6,931.5,75.7,149.5,0.055 514,-1,571.5,73.2,39.6,148.4,0.055 519,-1,1221.7,30.4,61.4,120.1,1 519,-1,1490,1,59.1,140.8,1 519,-1,686.4,206.8,79.8,114.6,1 519,-1,994.2,1,55.6,121.9,1 519,-1,162.2,325,66.5,191.1,1 519,-1,391.8,185.6,61.8,187.3,1 519,-1,1672.7,23.1,54.5,163.2,1 519,-1,884.2,1.3,52.8,120.1,1 519,-1,459.3,131.8,68.3,182.1,1 519,-1,787.4,146.3,55.9,172.9,1 519,-1,289,123.6,54.2,174.6,1 519,-1,1720.7,460.7,79.2,203.7,1 519,-1,827,607.5,72.3,256.3,1 519,-1,1569,597.7,62.7,242.3,1 519,-1,1741.7,628.4,69.1,218.1,1 519,-1,1611.7,13.2,55.7,174.7,1 519,-1,930.1,2.1,57.8,117.7,1 519,-1,1603,297.4,62.6,201.3,1 519,-1,1852.5,217.4,68.5,185.4,1 519,-1,349.3,168.8,47,164.6,1 519,-1,217.8,137.1,63.6,159.9,1 519,-1,196.2,781.1,93.5,270.7,1 519,-1,1707.7,317.1,90,205.7,1 519,-1,736,91,66.9,169.8,1 519,-1,945.6,709.4,125.9,268.2,1 519,-1,1761.6,205.9,58.3,171.7,1 519,-1,275,804.5,81.8,268.6,1 519,-1,515.9,97.7,56.9,180.9,1 519,-1,450.1,2.6,77.2,179.9,1 519,-1,399.5,25.9,47.4,161.1,0.999 519,-1,575.5,68.4,43.4,150.3,0.998 519,-1,1046.9,932.4,71.9,148.6,0.19 527,-1,1221.6,30.6,61.9,119.7,1 527,-1,1486,1,59.3,142.2,1 527,-1,687.3,206.5,77.5,114.3,1 527,-1,1718.2,458.6,82.2,209.1,1 527,-1,388.7,195,61.7,188.1,1 527,-1,1671.6,16.8,52.7,160.9,1 527,-1,994.5,1.4,55.3,116.4,1 527,-1,166.4,319.9,66.4,193.4,1 527,-1,288.4,123.5,53.4,174.2,1 527,-1,783.1,146,54.6,174,1 527,-1,465.9,119.6,63.3,187.5,1 527,-1,929.3,1.4,56.2,112.1,1 527,-1,882.9,1.8,52,114.5,1 527,-1,1607.3,3.3,56.5,170.9,1 527,-1,1764.5,212.9,68.2,174,1 527,-1,217.7,134.4,62.4,161.4,1 527,-1,1699.6,305.3,86.5,208.9,1 527,-1,516.8,101,58.4,179.6,1 527,-1,818.2,601,74.5,259,1 527,-1,268.4,823.5,80.5,257.5,1 527,-1,1774.3,650.8,67.2,221.6,1 527,-1,956.9,723.8,120.8,249.2,1 527,-1,449.8,1.6,72.8,169.5,1 527,-1,1576.5,596.4,62.1,241.7,1 527,-1,192.7,789.5,96,282.5,1 527,-1,401.5,33.1,47.9,161.2,0.999 527,-1,749.1,87.8,56.6,169,0.999 527,-1,1594.7,287.7,60.9,200,0.999 527,-1,1868.5,218.9,52.5,205.3,0.977 527,-1,358.5,165.5,45.8,156.6,0.548 527,-1,1048,745.8,79.1,247.3,0.123 527,-1,1047.4,941.5,68.9,139.5,0.09 531,-1,1221.5,30.7,62.2,120.2,1 531,-1,1485.8,1,59.1,141.7,1 531,-1,687.4,205.9,78,114.6,1 531,-1,385.7,200.7,65.5,188.7,1 531,-1,780.7,143.1,56.2,174.5,1 531,-1,992.9,1.1,55.7,110.6,1 531,-1,288.5,125.2,53.9,170.7,1 531,-1,171.8,314.1,65.2,196.6,1 531,-1,1718.9,456.7,80.5,210.3,1 531,-1,1668.8,12,51.9,162.1,1 531,-1,464.5,118,63.8,186.3,1 531,-1,1700,303.7,74.6,199.4,1 531,-1,1767,219.5,67.8,169.4,1 531,-1,882.2,1.2,52.4,116.7,1 531,-1,1604.8,2.4,57.1,169.5,1 531,-1,1580,594.3,65.4,239.5,1 531,-1,929.4,1,56.7,110.6,1 531,-1,218.2,138.4,61.7,160.9,1 531,-1,517.1,103.2,59.3,176.6,1 531,-1,264.1,829,81.9,252,1 531,-1,814,601,74.5,256.4,1 531,-1,191.4,788.4,95.5,285.2,1 531,-1,450.4,2,70.1,170.5,1 531,-1,402.9,35.8,49.1,162.4,1 531,-1,1787.2,657.5,69.1,213.4,1 531,-1,961.1,733.5,121.9,259.5,1 531,-1,1589.3,283.1,59.6,203.1,0.974 531,-1,1877,224.8,44,209.9,0.884 531,-1,1049.7,758.3,88.4,231.2,0.144 533,-1,1221.4,30.3,62.4,119.7,1 533,-1,1486.2,1,58.7,141.5,1 533,-1,687,206,78.4,114.9,1 533,-1,385,203.3,65.9,189,1 533,-1,780.4,143.4,57.8,175.6,1 533,-1,1718.7,457.9,82,208.9,1 533,-1,288.9,126.2,53.6,169.9,1 533,-1,992.1,1,54.3,109.7,1 533,-1,172.4,313.9,66.9,194.6,1 533,-1,1696.9,302.2,74.3,199,1 533,-1,463.3,115.4,63.4,187.3,1 533,-1,1665.8,10.8,53.3,162.6,1 533,-1,1604.4,1.7,55.7,168,1 533,-1,1766.8,219.6,72.7,175.7,1 533,-1,811.2,602.6,74.9,256.1,1 533,-1,1583.3,592.4,64,240.8,1 533,-1,880.4,2.2,52.5,113.4,1 533,-1,929.3,1,56.1,109.9,1 533,-1,518.2,102.8,60.8,174.5,1 533,-1,218.3,138.1,61.6,160.1,1 533,-1,263.5,832.9,80.7,248.1,1 533,-1,964.1,738.7,122.5,255.9,1 533,-1,402.2,36.3,50.6,162.6,1 533,-1,449.5,1.1,70.1,172.5,1 533,-1,192.3,799.5,96.5,277.5,1 533,-1,1795.3,667.5,62.8,203.5,0.977 533,-1,1874.1,217.3,46.9,216.6,0.35 533,-1,1591.5,285.5,51,193.9,0.102 533,-1,1054.2,763.5,85.4,233.3,0.086 537,-1,1221.2,30,62.1,120.3,1 537,-1,1486.6,1.3,58.7,142.4,1 537,-1,687.4,206.4,77.6,114.3,1 537,-1,387,202.7,63.7,189.8,1 537,-1,780.6,144.5,60.1,175.1,1 537,-1,289,125.3,54.4,172.3,1 537,-1,993,1.3,54.2,109.5,1 537,-1,1717.7,457.5,82.5,208.4,1 537,-1,1688.5,298.5,72.8,203.5,1 537,-1,172.5,309.7,67.1,195,1 537,-1,1771.7,224.4,72.8,176.2,1 537,-1,1661,5.3,53.8,163.7,1 537,-1,880.3,1.7,52.5,113.8,1 537,-1,461.3,112,65.2,183.2,1 537,-1,1600.8,1,55.8,165,1 537,-1,519.5,102.1,61.8,180.4,1 537,-1,799.6,598.7,81.2,262.4,1 537,-1,1587.8,589.8,67.1,240.9,1 537,-1,217.3,137,61.7,159.1,1 537,-1,263.5,840.5,78.8,240.5,1 537,-1,928.3,1,56.8,109.6,1 537,-1,405,45.3,50,156.7,1 537,-1,192.7,799.7,98.7,281.3,0.999 537,-1,973.7,748.4,126,258.4,0.999 537,-1,449.6,1,69.5,168.8,0.999 537,-1,363.6,121.8,49.9,170,0.69 537,-1,1062.9,769.3,80.6,242,0.099 540,-1,1221.9,30.4,62.1,120.3,1 540,-1,1487.8,2.5,58.4,142.3,1 540,-1,687.3,206.2,78.2,114.3,1 540,-1,779.9,146.2,64.1,173.4,1 540,-1,387.4,205.4,63.9,192.1,1 540,-1,1717.1,456.2,82.1,210.7,1 540,-1,1682.3,292.5,74.5,202.3,1 540,-1,992.1,1.1,52.9,106.2,1 540,-1,879.1,1.9,52,111.8,1 540,-1,289,123.4,53.8,172.6,1 540,-1,1660.8,3.3,53.4,160.9,1 540,-1,174.9,308.1,65.4,195.1,1 540,-1,521.7,103.7,59.9,180.3,1 540,-1,794.6,599.2,82.4,258.8,1 540,-1,1775.4,227,68.8,177.4,1 540,-1,456.7,108.2,68.1,183.8,1 540,-1,1599.2,1,55,160.3,1 540,-1,214.3,133.9,64.7,163.6,1 540,-1,1590.4,586.8,67.4,240.6,1 540,-1,927.5,1,56.6,107,1 540,-1,262.1,847.1,78.3,233.9,1 540,-1,360.4,113.5,51.8,170,0.999 540,-1,195.8,805.1,100.6,275.9,0.999 540,-1,406.6,45.2,48.6,156.6,0.999 540,-1,977.3,754.2,130.6,249,0.995 540,-1,1060,768.5,87,242.8,0.88 540,-1,132.2,273.9,48.7,211.7,0.847 540,-1,754.5,86.9,45.6,148.3,0.804 540,-1,449.8,5.3,67.9,163.4,0.451 540,-1,1029.4,946.3,79,134.7,0.064 547,-1,1221.7,30.6,61.8,118.9,1 547,-1,687.1,205.8,78.7,114.3,1 547,-1,1491.4,4.5,58,141.7,1 547,-1,384.9,218.5,61.2,190.7,1 547,-1,782.7,145.1,67.6,172.2,1 547,-1,1664.7,286.9,90.3,205.4,1 547,-1,1714.8,456.6,85.5,211.6,1 547,-1,769,598.2,100.2,251.8,1 547,-1,1659.8,2.4,53.4,157.1,1 547,-1,1785.9,228.4,67.4,179.3,1 547,-1,876,1.6,53.3,108.3,1 547,-1,989.4,1.8,51.2,100,1 547,-1,290.2,122.1,51.3,174.1,1 547,-1,1594.4,1,55.9,155.3,1 547,-1,528,108,60.7,177.7,1 547,-1,182.1,308.6,67.9,187.5,1 547,-1,452.6,102.9,66.5,183.4,1 547,-1,218.7,132.9,59.2,160.5,1 547,-1,1592.6,583.8,69.7,241.5,1 547,-1,253.4,869.6,81.1,211.4,1 547,-1,929.2,1.4,55.6,100.3,1 547,-1,358.5,113.3,55.4,172.8,1 547,-1,132.4,272.9,57.8,216,0.999 547,-1,1069.5,775.6,92.2,241.3,0.998 547,-1,753.4,83.6,49,155.8,0.996 547,-1,412,40.5,49,173.6,0.975 547,-1,996.4,769,113.9,229.1,0.749 547,-1,413.8,142.7,43.4,157.5,0.145 553,-1,1221.2,30,62.5,121.2,1 553,-1,687.1,205.9,78.6,114.7,1 553,-1,1490.5,4.4,58.5,143.7,1 553,-1,786.4,142.4,65.5,178.1,1 553,-1,533.9,110.5,61.6,175.7,1 553,-1,1798.2,233,71,184.2,1 553,-1,379.9,219.2,63.7,195.8,1 553,-1,1661.1,282.3,87.7,207.5,1 553,-1,1715.5,456.5,85.7,211.7,1 553,-1,873.8,1,53.5,109.1,1 553,-1,192.5,298.9,63.9,193.5,1 553,-1,758.4,596,97.4,256.1,1 553,-1,289,122.7,53.3,173.6,1 553,-1,986.6,2.3,53,96.6,1 553,-1,246.4,879.2,79.6,201.8,1 553,-1,1659.6,2,53.9,151.8,1 553,-1,219.5,136.1,57.2,159,1 553,-1,1591.1,1.8,55.4,149.6,1 553,-1,1594.6,583.3,71.7,245.9,1 553,-1,137.9,269.7,53.3,216.9,1 553,-1,415.1,138.8,50.3,164,1 553,-1,457.6,97.6,63.7,177.9,1 553,-1,753.3,82.3,48.2,154.3,1 553,-1,359.3,110.6,53.6,173.1,1 553,-1,1078.5,789.7,95.6,253,0.995 553,-1,929.2,1.1,58.4,95.8,0.987 553,-1,1010.5,779.3,116.6,243.2,0.693 553,-1,1024.6,946.5,78.9,134.5,0.092 557,-1,1221.1,30.5,62,119.5,1 557,-1,687.3,205.8,78.4,114.6,1 557,-1,1488.4,4.4,59.3,145.2,1 557,-1,536.2,112.6,61.1,174.7,1 557,-1,378.4,221.4,63.6,193.6,1 557,-1,1586.1,3.7,54.5,142.5,1 557,-1,788.6,144,65,177.8,1 557,-1,1807.4,235.4,71.4,181.4,1 557,-1,1663.7,276.7,79.4,199,1 557,-1,194.5,296.2,65.4,191.4,1 557,-1,1658.3,1,55.1,148.7,1 557,-1,1721.4,454.9,81.1,210.8,1 557,-1,872.7,1,53.1,110.4,1 557,-1,752.6,592.9,91.4,258,1 557,-1,289,122.7,52.2,172,1 557,-1,219.1,135.6,58.1,160.7,1 557,-1,1595.9,589,71.7,240.5,1 557,-1,140.4,266.3,53.1,211.6,1 557,-1,985.5,2.5,52.6,93.7,1 557,-1,752.9,80.1,48,156.4,1 557,-1,459.8,87.4,64.8,189.8,1 557,-1,244,889.8,83,191.2,1 557,-1,421.8,143.7,50.3,155.4,1 557,-1,359.2,109.8,54.9,170.8,1 557,-1,1015.1,781,121.2,260.8,0.998 557,-1,414.7,49.1,48.7,179.6,0.995 557,-1,1091.2,793.7,91,252.1,0.927 557,-1,931.1,2.1,55,94,0.775 557,-1,1026.9,955.1,74.3,125.9,0.342 560,-1,1221.2,30.3,61.9,120.1,1 560,-1,687.2,206.2,79,114,1 560,-1,1486.2,3.3,59.4,147,1 560,-1,1664.9,272.3,77,201.1,1 560,-1,538.8,115.2,59.3,173.7,1 560,-1,1582.7,3.8,54.8,140.7,1 560,-1,789.6,147.4,64.2,175.4,1 560,-1,376.1,225.2,65,193.8,1 560,-1,1721,452.8,81.3,214,1 560,-1,872.4,1,53.6,109,1 560,-1,197.1,292.1,67.3,191,1 560,-1,1658.7,1.6,52.7,145.2,1 560,-1,984.6,4.4,52.5,93.3,1 560,-1,1815.1,234.5,69.5,184.4,1 560,-1,141.7,261.6,54.4,210.4,1 560,-1,218.9,134.5,58,164.5,1 560,-1,288.6,120.7,52.5,173.8,1 560,-1,754.5,78.9,47.5,156.4,1 560,-1,426.3,143.7,52.6,158,1 560,-1,747.5,590.9,82.2,255.8,1 560,-1,1596.3,589.5,71.7,239.2,1 560,-1,464.4,88.9,64,177.7,1 560,-1,358.7,108.4,52.6,171.6,1 560,-1,244.9,900.7,80.7,180.3,1 560,-1,1015.7,783.4,118.5,262.4,0.999 560,-1,416,47.4,50.4,179.6,0.998 560,-1,1095.4,799.5,91.5,244.1,0.987 560,-1,1025.3,950.7,71.7,130.3,0.554 560,-1,930.9,4.5,44.7,92,0.178 563,-1,1220.8,30.3,62.7,119.8,1 563,-1,687.4,206,78.6,114,1 563,-1,1483.9,3.3,59.6,146.2,1 563,-1,542.6,117,57.9,169.8,1 563,-1,1664.6,268.6,75.1,204.3,1 563,-1,790.2,147.1,65.6,174,1 563,-1,377.2,232.1,64,190.1,1 563,-1,1578,1,57.3,141.2,1 563,-1,1821.2,239.9,68.5,182.5,1 563,-1,1721.9,453.2,79.7,211.9,1 563,-1,873,1,52.3,107.6,1 563,-1,1656.9,1.2,52.7,144.5,1 563,-1,199.9,292.1,64.5,189.8,1 563,-1,289.6,121.9,52.8,172.6,1 563,-1,218.3,135.1,57.9,164.5,1 563,-1,143.1,258.7,56.3,212.6,1 563,-1,985.8,3.1,52.6,93.2,1 563,-1,755.7,79.5,44.9,154.5,1 563,-1,1594.8,590.2,73.7,234.9,1 563,-1,432.4,145.4,52.7,147.1,1 563,-1,737.6,587.9,83.2,252.6,1 563,-1,463.6,86.6,63.3,178,1 563,-1,359,108.1,51,175.5,1 563,-1,417.3,49,50.6,170.2,1 563,-1,1020.1,788.5,118.4,273.4,0.999 563,-1,246,913.7,78,167.3,0.999 563,-1,1100.9,808.7,91.3,234.3,0.997 563,-1,1023.3,939,70.1,142,0.265 565,-1,1221.2,30.6,62.2,119.7,1 565,-1,687.2,205.9,79.2,113.8,1 565,-1,1482.7,3.3,59.5,147.4,1 565,-1,545.2,117.9,55.4,167.6,1 565,-1,1823.5,243.6,68,181.7,1 565,-1,377.5,232.6,65.1,195.1,1 565,-1,791.9,148.3,66.6,171.9,1 565,-1,1718.9,454.3,82.8,212.1,1 565,-1,1664.9,267.5,72.5,203.9,1 565,-1,1576.2,1.1,56.9,138.6,1 565,-1,1656,1.2,53.5,143.6,1 565,-1,873.5,1,52.2,107.7,1 565,-1,289.7,120.9,52,173.4,1 565,-1,202,289.6,63.7,190.7,1 565,-1,217.6,135.9,57.3,164.1,1 565,-1,435.7,139.9,51.7,152.2,1 565,-1,1593,591.3,75.7,231.5,1 565,-1,755.8,80.9,44.3,154,1 565,-1,145.6,257.1,57.9,213.3,1 565,-1,466.6,82.2,63.2,176.4,1 565,-1,734.9,587.2,81.4,253.9,1 565,-1,359.5,109,50.5,174.4,1 565,-1,986.5,3.6,50.7,89.9,1 565,-1,1021.4,794.6,119.2,274,1 565,-1,246.8,914.3,80.2,166.7,0.999 565,-1,1103.9,814.8,90,235.1,0.998 565,-1,419.1,49,47.1,174.3,0.997 565,-1,1016.1,936.2,75.8,144.8,0.14 567,-1,1221.1,30.5,62.1,119.9,1 567,-1,687.1,205.8,79.3,114.2,1 567,-1,1482,3.5,59.9,146.5,1 567,-1,378,233.2,65.9,197.4,1 567,-1,547,117.7,53.6,167,1 567,-1,1825.8,249,68.3,174.9,1 567,-1,790.2,146.8,70.6,174.8,1 567,-1,1665.9,266.1,68.3,202.2,1 567,-1,1716.3,453.2,84.5,213.3,1 567,-1,1652.2,1,55.8,143.5,1 567,-1,872.5,1,52.3,105.8,1 567,-1,1574.9,2.8,54.4,135.9,1 567,-1,288.6,122.1,52.2,172.1,1 567,-1,216.9,135.7,58,164.2,1 567,-1,204.2,287.7,63.5,192,1 567,-1,1589.9,591.5,78.1,233.5,1 567,-1,755.6,80.2,43.8,153.7,1 567,-1,146,255.6,59,215.9,1 567,-1,440.9,130,52.7,162.4,1 567,-1,1018.7,801.9,130.3,267.5,1 567,-1,358.6,109.9,53.2,177,1 567,-1,729.9,586.5,85.1,252,1 567,-1,466.3,82.4,62.7,172.7,1 567,-1,247.9,913.5,82.1,167.5,0.999 567,-1,419.8,48.4,49.3,179.4,0.991 567,-1,984.3,1.5,50.6,84.2,0.909 567,-1,1104.3,819.1,91,236.2,0.876 569,-1,1221.3,30.2,61.4,119.3,1 569,-1,686.7,205.9,79.9,114.1,1 569,-1,1481.5,4.2,59.9,145.7,1 569,-1,379,234.3,66.4,198,1 569,-1,791.7,146.7,69.7,171.7,1 569,-1,1826.9,253.7,69.9,175,1 569,-1,1713.5,453.5,87.7,212.2,1 569,-1,1664.5,265.2,67.1,200.6,1 569,-1,1651.4,1,57.1,141.1,1 569,-1,549.9,117.5,52.3,167.1,1 569,-1,872.4,1,52,105.9,1 569,-1,288.7,121.9,52.1,172.8,1 569,-1,218.5,138,55.8,163.6,1 569,-1,1574.4,4.1,53.4,133.7,1 569,-1,204.9,285.6,64.2,193.7,1 569,-1,755.2,79.6,43.8,155,1 569,-1,1589.3,590.4,78.5,234.5,1 569,-1,443.6,130.1,52.2,161.9,1 569,-1,146.4,257.5,60.8,211.6,1 569,-1,1018,806,135.1,275,1 569,-1,467.4,78.1,62.9,177.6,1 569,-1,358.4,109.9,53.7,176.9,1 569,-1,726,585.9,89.1,251.4,1 569,-1,420.1,53.9,48.6,177.5,0.998 569,-1,250.3,913,81.6,168,0.997 569,-1,1008.1,930.1,83.4,150.9,0.878 569,-1,982,2.3,51.9,80,0.285 569,-1,1101,823.9,90.3,241,0.102 571,-1,1221.2,30.1,62.2,119.6,1 571,-1,686.5,205.7,80.2,114.8,1 571,-1,1481.1,4.3,59.8,145.1,1 571,-1,792,147.5,69.9,170.9,1 571,-1,378.8,235.8,66.5,197.8,1 571,-1,1650.4,1,57.4,137.9,1 571,-1,1713.2,452.3,88.7,214.1,1 571,-1,1828.1,255,72,179.3,1 571,-1,551.4,116.7,51.6,169.6,1 571,-1,1662.2,260.8,68.7,204.6,1 571,-1,288,122,52.3,173.2,1 571,-1,872.5,1,51.8,105.5,1 571,-1,218.1,136.8,55.3,164.5,1 571,-1,754.4,78.8,44,156.2,1 571,-1,1584.8,591,83.2,234.6,1 571,-1,207.6,282.8,63.8,194,1 571,-1,147.2,257.5,62.9,211.3,1 571,-1,447.5,128.3,51.4,163.3,1 571,-1,1024,808.3,134.9,272.7,1 571,-1,359.3,109,52.7,177.4,1 571,-1,722.5,584.4,85.5,252.5,1 571,-1,466.5,73.7,61.2,176.3,1 571,-1,421.5,60.4,48,169.5,0.999 571,-1,1572.1,3.5,51.7,132.1,0.998 571,-1,250.8,915,82.3,166,0.993 571,-1,1011.6,932.4,72.5,148.6,0.818 571,-1,982.9,3.6,52.2,78.5,0.122 574,-1,1221,30,62.6,120.3,1 574,-1,687.1,205.5,79.4,115,1 574,-1,1481,5.1,59.8,145.4,1 574,-1,793.8,148.9,67.3,169.2,1 574,-1,377.9,237.8,67.6,197.3,1 574,-1,1650.4,1,57.2,136.3,1 574,-1,551.2,113.9,52.4,171,1 574,-1,1715.1,455.4,85.7,210.9,1 574,-1,289.3,122.8,52.1,172.2,1 574,-1,1831.8,254.5,71.1,180.9,1 574,-1,1657,256.4,71.2,201.2,1 574,-1,754.7,78.2,43.7,155.6,1 574,-1,872.7,1,51.4,104.1,1 574,-1,450.7,125.7,51.1,163.1,1 574,-1,219.7,135.3,51.5,161.8,1 574,-1,1580.8,589.5,86.5,230.5,1 574,-1,208.4,279.6,64.6,193.4,1 574,-1,150.4,255.7,62,213,1 574,-1,1032.7,814,136.4,267,1 574,-1,719.4,581.9,84.1,254,1 574,-1,359.7,108.7,53.4,173.6,1 574,-1,421.6,59.9,47.2,168.8,0.999 574,-1,251.8,925.3,79.1,155.7,0.968 574,-1,470.4,77,58.6,176,0.95 574,-1,1010.8,935.5,68.3,145.5,0.841 574,-1,294.9,868.3,98.3,212.7,0.172 577,-1,1221.1,30.6,62.3,119.3,1 577,-1,686.4,205.9,80.3,113.5,1 577,-1,1480.8,5,60.3,144.6,1 577,-1,377.4,241.4,67.7,199.6,1 577,-1,799.4,147.5,63.7,168.2,1 577,-1,1649.6,1,55,135.2,1 577,-1,1715.3,454.2,85.7,211.8,1 577,-1,554,113,51.9,172.4,1 577,-1,1577.9,588.2,91.5,236,1 577,-1,1653.5,248.3,75.4,203.2,1 577,-1,288.8,124.4,51.7,170.3,1 577,-1,218.2,135.2,52.4,162.2,1 577,-1,211.3,275.4,63.9,196.9,1 577,-1,454.7,120,49.7,163,1 577,-1,754,78.4,44.1,156,1 577,-1,1836,256.4,72.7,181,1 577,-1,873.4,1,51.9,104.1,1 577,-1,152.6,253.7,60.9,209.2,1 577,-1,712.2,577.9,83.4,252.7,1 577,-1,358.2,110.6,53.9,175.1,1 577,-1,1040.3,820.7,129.1,260.3,1 577,-1,422.4,60.6,47.2,166.2,0.999 577,-1,1006.7,938.2,72.3,142.8,0.876 577,-1,1119.2,830.1,91.8,250,0.356 581,-1,1221.6,30.6,61.6,119.1,1 581,-1,686.8,205.7,79.6,114.6,1 581,-1,1481.1,5.3,60.2,143.5,1 581,-1,1646.9,1,55.4,130.9,1 581,-1,800.2,145,62.9,172.7,1 581,-1,377.6,250.7,66.7,194.7,1 581,-1,1715.4,453.9,86.3,212.9,1 581,-1,1650.3,245.2,79.1,202.4,1 581,-1,288.2,124.8,52.5,169.5,1 581,-1,557.9,113.1,51.7,172.3,1 581,-1,1574.4,587.6,94.1,234.9,1 581,-1,215.1,274.8,65.6,192.3,1 581,-1,216.9,137.2,50.1,155.6,1 581,-1,875.3,2.5,50.3,101.4,1 581,-1,459.2,116.5,50.9,158.6,1 581,-1,754,79.4,44.2,156.2,1 581,-1,359.2,108.5,53.3,176.6,1 581,-1,155.6,250.3,60.1,214.1,1 581,-1,1844.8,261.6,68.5,181.6,1 581,-1,702.6,572.2,84.5,254,0.999 581,-1,1047.2,828.9,128.8,252.1,0.999 581,-1,424.9,57.8,45.9,170.3,0.999 581,-1,1007.6,928,67.3,153,0.198 581,-1,1126.1,840.2,91.6,240.8,0.147 582,-1,1221.4,30.6,62.1,119.9,1 582,-1,686.9,205.8,79.6,113.7,1 582,-1,1480.9,5.3,60.5,144.1,1 582,-1,801.3,143.6,62.6,175.6,1 582,-1,1646.6,1,55.8,130.1,1 582,-1,377.8,252.2,66.2,195.8,1 582,-1,1648.3,244.4,81.2,203.4,1 582,-1,288.3,123.6,52.8,171.4,1 582,-1,1716.3,453.3,84.2,213.6,1 582,-1,217.2,275,64.2,191,1 582,-1,873.9,2.9,50.8,99.7,1 582,-1,559,113.5,50.1,174.4,1 582,-1,1574.9,587.8,92.9,234.7,1 582,-1,216.6,135.7,50.7,157.6,1 582,-1,459.4,117.2,52.3,158.3,1 582,-1,358.8,110,53,176.5,1 582,-1,155.6,253.5,62,211.8,1 582,-1,754.3,79.8,43.4,155.8,1 582,-1,1848.2,263.6,66.3,176.1,1 582,-1,1046.7,830.9,129.3,250.1,0.999 582,-1,425.2,59,45.9,169,0.999 582,-1,701.1,569.7,82,258,0.999 582,-1,1004.1,926.7,69.9,154.3,0.184 582,-1,1129.2,842.3,94.6,238.7,0.119 584,-1,1221.5,30.6,61.3,119.9,1 584,-1,686.8,206.1,79.5,113.1,1 584,-1,1480.9,4.2,60.7,145.2,1 584,-1,376.3,256.2,65.9,196.9,1 584,-1,1645.9,1,55.3,127.3,1 584,-1,801.2,147.1,63,171.3,1 584,-1,1649,245.3,80.4,200.2,1 584,-1,559.9,113.5,50.8,175.3,1 584,-1,288.6,124.3,52.2,171,1 584,-1,1717.6,454.1,83.7,212,1 584,-1,358.2,107.9,54.7,176.9,1 584,-1,219.1,276,63.8,190.3,1 584,-1,874.4,3.5,49.7,99.1,1 584,-1,1576.2,588.9,91.9,235,1 584,-1,217.1,133.4,50.3,160.5,1 584,-1,754.2,80.6,43.4,155.1,1 584,-1,159.3,254.9,58.2,206.7,1 584,-1,1848.8,264.2,71.5,180,1 584,-1,462.5,116.4,50.5,159.1,1 584,-1,427.7,59.6,45.1,172.3,0.999 584,-1,1051.8,838.2,125.4,242.8,0.999 584,-1,694.9,566.9,88,254.3,0.916 584,-1,1134.2,843.9,94.1,237.1,0.669 591,-1,1221.7,30.7,60.8,119,1 591,-1,687,205.9,79.2,113.4,1 591,-1,1481.5,4.9,60.7,144.2,1 591,-1,800.7,142.7,63.7,176.8,1 591,-1,1639.5,1,54.8,120.3,1 591,-1,561.2,112.4,50.5,175.4,1 591,-1,226.1,274.5,63.4,185.4,1 591,-1,1651.2,237.8,80,203.8,1 591,-1,359.9,111.7,51.6,171.4,1 591,-1,369.6,258.9,67,195.9,1 591,-1,1719.6,455.7,81.1,211,1 591,-1,288.2,126.1,52.2,170.9,1 591,-1,473.5,108.7,50.3,161.8,1 591,-1,1574.4,589.3,94.1,234.5,1 591,-1,428.2,65.3,46.4,173.5,1 591,-1,753.8,82.2,43.5,152.3,1 591,-1,163.8,251.6,58.7,204.4,1 591,-1,214.1,134,55.6,164.6,1 591,-1,1067.6,848,119,233,1 591,-1,871.4,2.6,52.2,95.7,1 591,-1,1858.6,270.9,62.4,171.7,0.999 591,-1,1158.5,856.6,85.8,224.4,0.848 591,-1,303.8,899.7,100.1,181.3,0.782 593,-1,1221.6,30.6,61.3,119.2,1 593,-1,686.9,206.2,79.3,112.8,1 593,-1,1481.8,4.5,60.1,144.5,1 593,-1,801.6,142.3,62.1,177,1 593,-1,1637.6,1,55,119,1 593,-1,359.6,109.6,51.9,171.6,1 593,-1,227.4,270.7,62.9,187.5,1 593,-1,367.6,261.1,67.6,195,1 593,-1,1719.7,454.3,80.1,212.9,1 593,-1,1654,235,76.1,199.2,1 593,-1,561.8,112.9,49,175.7,1 593,-1,1574.3,590.1,95.3,233,1 593,-1,477.1,104.7,50.7,159.7,1 593,-1,288.1,126,51.9,171.5,1 593,-1,165,250.1,57.7,204.4,1 593,-1,753.7,83.7,43.4,150.4,1 593,-1,212.9,137.1,57.4,161.8,1 593,-1,427.7,66.2,51,172.9,1 593,-1,1070.5,852.2,119.6,228.8,1 593,-1,1865.3,273.1,55.7,170.4,0.99 593,-1,871.8,3.6,54.1,90.9,0.966 593,-1,1156.8,862.2,89.9,218.8,0.874 593,-1,308.4,907,97,174,0.59 606,-1,1221.5,30.8,61.4,119.6,1 606,-1,687.3,206,78.7,114.6,1 606,-1,1481.1,3.6,60.5,145,1 606,-1,363.6,276.1,66.5,198.4,1 606,-1,800.6,146.2,66.2,170.2,1 606,-1,1709.5,456.4,93.7,211.5,1 606,-1,1617.6,3,55.3,105.6,1 606,-1,238.4,263.1,62.6,187.8,1 606,-1,1645.3,226.9,70,195.3,1 606,-1,1573.2,588.7,98.2,234.5,1 606,-1,170.7,245.5,58.8,201.7,1 606,-1,490.9,91,44.7,159.7,1 606,-1,560.8,112.1,51.9,176.8,1 606,-1,287.5,125.4,51.2,172.8,1 606,-1,359.4,112.5,51.5,174.3,1 606,-1,220,135,54.8,161.2,1 606,-1,435,75,48.1,165.8,1 606,-1,751.9,81.3,44.8,155.5,1 606,-1,1086.9,881.7,124.2,199.3,1 606,-1,392.8,90.6,54,160.5,0.975 606,-1,612.4,551.2,94.1,249.5,0.854 608,-1,1221.6,31,61.4,119.6,1 608,-1,686.9,205.8,79.4,113.6,1 608,-1,1481.4,3.3,59.8,145,1 608,-1,800.9,146.5,66.4,169.9,1 608,-1,363.6,277.6,67.3,197.4,1 608,-1,1707.6,456.9,95.4,208.7,1 608,-1,1613.4,3.1,54.5,104.7,1 608,-1,239.9,262.5,61.5,183.9,1 608,-1,172,244.1,58.9,199.5,1 608,-1,1574.1,591.1,97.7,232.4,1 608,-1,1642.6,224.2,69.7,198,1 608,-1,492.6,90.7,43.2,156.5,1 608,-1,561,110.3,49.8,179.2,1 608,-1,288.1,125.4,51.3,172.8,1 608,-1,220.5,136.2,56.5,160.5,1 608,-1,357.7,110.2,51.3,178.8,1 608,-1,603,551.7,87.6,243.6,1 608,-1,437.9,76.6,48.4,165.7,1 608,-1,753,82.5,43.2,154.5,1 608,-1,1093,884.3,123.1,196.7,1 608,-1,395.6,89.4,52.2,161.6,0.987 612,-1,1221.4,31.9,60.6,117.7,1 612,-1,687.5,205.9,78.1,113.1,1 612,-1,1480.4,5.1,59.7,144.1,1 612,-1,801.7,145.4,66.9,170,1 612,-1,361.1,281.6,68.4,201,1 612,-1,1709.6,456.4,94.2,210.9,1 612,-1,1610.1,1,54.9,103.8,1 612,-1,172.3,242.9,64.4,200.6,1 612,-1,582.5,554.6,98.8,229.4,1 612,-1,1574.3,590,97.3,234.9,1 612,-1,1638.2,214.9,70.2,195.6,1 612,-1,357.2,113.3,51.5,172.4,1 612,-1,558.1,108.5,52.8,182.2,1 612,-1,243.7,260.9,61,182.2,1 612,-1,288.3,126.5,51.1,170.1,1 612,-1,493.2,88,47.9,159.8,1 612,-1,222.6,138,55,159.4,1 612,-1,754,81.4,43,153.7,1 612,-1,444.1,80.5,46.4,162.3,1 612,-1,1098.8,888.2,117.3,192.8,1 612,-1,399.8,91.1,51.4,162.1,0.998 617,-1,1221.4,30.5,63,119.3,1 617,-1,687.1,206,79.3,113.3,1 617,-1,1480.5,4.5,60.3,143.9,1 617,-1,1629.8,208.3,76.5,194.5,1 617,-1,801.6,145,66.2,172.1,1 617,-1,357.7,292.5,64.9,196.4,1 617,-1,357.9,114,53.1,175.3,1 617,-1,1709.6,457.5,93.1,209,1 617,-1,1574.6,589.3,96.7,235.2,1 617,-1,173.7,240.3,69.2,202.9,1 617,-1,243.7,255.9,61.9,184.9,1 617,-1,288.8,129.1,51,168.3,1 617,-1,555.6,112,53.6,175.2,1 617,-1,753.8,80.9,44.8,153.6,1 617,-1,1605.9,1.4,51.9,98.5,1 617,-1,575.6,544.6,80.3,241.3,1 617,-1,225.7,137.7,52.9,159.9,1 617,-1,494.9,92,47.2,156.5,1 617,-1,442.4,79.4,48.1,168.6,1 617,-1,354.6,1.3,51.7,117,0.999 617,-1,1108.8,902.1,105.7,178.9,0.999 617,-1,401.6,94.9,54,165.6,0.999 618,-1,1221.8,29.4,62.1,120,1 618,-1,687.2,206.2,78.9,112.9,1 618,-1,1480.7,4.9,60.2,143.4,1 618,-1,1628.9,210.1,76.3,191.9,1 618,-1,801.4,145.6,66.3,171.3,1 618,-1,357.3,293.9,65.3,197.2,1 618,-1,1710.1,457.5,92.9,207.5,1 618,-1,357.9,113.6,52.9,174,1 618,-1,1575.7,590.1,95.5,235,1 618,-1,556,113,54.2,174.8,1 618,-1,288.7,129.1,51.2,168.2,1 618,-1,243.6,254.3,62.5,185.8,1 618,-1,174.4,238.7,70.7,207.1,1 618,-1,573.5,545,78.8,241.3,1 618,-1,753.9,80.8,43.4,153.3,1 618,-1,225.7,137.1,53.3,159.8,1 618,-1,495.7,91.6,48.3,156.9,1 618,-1,1605.1,1,53.8,97.1,1 618,-1,354.2,1.3,52.3,117.2,1 618,-1,403.3,98,53.9,163.8,0.999 618,-1,443.7,81.2,45.3,166.6,0.999 618,-1,1110.2,905.9,107.7,175.1,0.999 620,-1,1221.4,29.8,62.7,118.5,1 620,-1,687.1,206,79.2,113.1,1 620,-1,1481,4.5,60.5,143.5,1 620,-1,1625.5,209.1,79.4,196.8,1 620,-1,801.2,145.4,66,171.5,1 620,-1,354.5,294.5,66.5,200.4,1 620,-1,1709.5,456.7,94.3,207.5,1 620,-1,358.7,114.5,51.5,172.8,1 620,-1,1573.9,589.3,97.3,236.6,1 620,-1,556.3,111.7,54,175.9,1 620,-1,288.7,127.9,51,167.4,1 620,-1,174.2,237.8,74.3,204.5,1 620,-1,244.5,249.8,62.7,190.4,1 620,-1,353.6,1,53.2,120.3,1 620,-1,754.3,81.2,42.4,151.9,1 620,-1,496.5,88.6,46.5,158.5,1 620,-1,570.1,542.1,73.8,241.5,1 620,-1,1599.9,1.5,52.7,94.5,1 620,-1,227.4,134.2,53,163.5,1 620,-1,406.3,98,51.3,162.9,0.999 620,-1,444.7,82.2,46.6,166.5,0.999 620,-1,1112.8,911.2,102.3,169.8,0.996 620,-1,1191.8,922.7,82,158.3,0.074 630,-1,1221.8,30.5,62.5,118,1 630,-1,687,206,79.3,112.7,1 630,-1,1480.2,5.9,61.1,143.2,1 630,-1,800.8,145,66.6,172,1 630,-1,508.2,538.5,113,244.7,1 630,-1,1713.5,452.3,91.5,212.6,1 630,-1,342.3,296.9,68.9,205.3,1 630,-1,547.2,111.8,62.6,174.9,1 630,-1,1574.3,588.6,96.9,236,1 630,-1,358.8,112.9,52,171.4,1 630,-1,190.3,234.1,69.6,201.3,1 630,-1,1625.6,198.2,74.5,195.5,1 630,-1,253.5,246.6,61.2,186.7,1 630,-1,754.4,78.1,44.8,156.3,1 630,-1,286.9,124,52.5,169,1 630,-1,414.8,105.7,53.8,155.8,1 630,-1,352.9,1,54.5,128,1 630,-1,500.6,76.1,45.1,152.8,1 630,-1,420.4,1.1,58.8,127.9,1 630,-1,235.2,133.7,48.4,161.6,0.999 630,-1,454,85.7,49,172.8,0.999 630,-1,1110.9,924.5,106.7,156.5,0.976 630,-1,1582.1,1,58.3,88.5,0.856 630,-1,948.9,929.1,70.4,151.9,0.055 631,-1,1221.7,29.7,62.4,118.5,1 631,-1,687.1,205.8,79,113.6,1 631,-1,1480.8,6.5,60.6,143.1,1 631,-1,800.6,145,66.8,170.6,1 631,-1,507.4,538.3,109.9,245.2,1 631,-1,1712.7,453.6,93.4,210.4,1 631,-1,341,295.6,70.2,209.5,1 631,-1,548.5,113.2,60.6,173.4,1 631,-1,1573.8,588.4,97.8,235.9,1 631,-1,358.7,113,52.9,172.7,1 631,-1,1626.8,197.1,72.9,191.1,1 631,-1,193.4,231,70,201.9,1 631,-1,287,124.4,52.8,169.2,1 631,-1,254.2,246.7,59.9,185.3,1 631,-1,753.6,82.1,44.6,151.8,1 631,-1,417.5,105,52.2,155.9,1 631,-1,500.7,76.7,46.1,153.1,1 631,-1,419.7,1,59.5,129.9,1 631,-1,351.7,1,55.4,127.7,1 631,-1,456.4,85.3,47.9,174.3,0.999 631,-1,235.3,133.3,48.4,161.4,0.998 631,-1,1581.2,1,56.1,86.2,0.873 631,-1,1112.6,925.9,104.7,155.1,0.813 631,-1,945.7,926.3,69,154.7,0.054 638,-1,1220.9,31,62.9,118.2,1 638,-1,687.2,205.9,79.3,114,1 638,-1,1481.6,4.9,60,143.8,1 638,-1,800.9,145.6,64.6,170,1 638,-1,340.5,312.2,67.5,205.8,1 638,-1,1708.7,454.3,99,213.3,1 638,-1,547.1,113.8,62.9,173.7,1 638,-1,359.2,110.9,51.2,173.6,1 638,-1,1575.3,589,95.8,236.2,1 638,-1,494.5,537.4,100.7,244.6,1 638,-1,261.5,240.3,59.2,191,1 638,-1,1622.3,193.2,70.7,188.2,1 638,-1,418.1,115.7,55.3,154.9,1 638,-1,205.1,230.2,61.4,199.7,1 638,-1,751.8,82.1,46.2,155.3,1 638,-1,287.9,126.2,50.6,170,1 638,-1,417.4,2.8,59.1,141.7,1 638,-1,462.9,91.1,47.8,174.1,0.999 638,-1,494.5,66.8,45.7,147,0.998 638,-1,354,1,55.5,129.5,0.997 638,-1,234.7,138,45.6,162.7,0.983 638,-1,1504.7,964.2,79.5,116.8,0.059 642,-1,687.3,206.2,79.1,113.7,1 642,-1,1481.7,4.3,60.4,145.3,1 642,-1,1221.2,32.5,62.4,116.1,1 642,-1,800.5,145.7,66,171.8,1 642,-1,488.1,538.7,87.4,243.2,1 642,-1,546.2,112.8,64.3,174,1 642,-1,1708.7,454.9,99,213.6,1 642,-1,359.2,111.3,52.6,173.8,1 642,-1,339.2,315.7,67.9,207.6,1 642,-1,1574.5,589.6,98,235.6,1 642,-1,265.3,241.4,57.6,185.3,1 642,-1,207.9,226.5,62.9,201.8,1 642,-1,1622.2,192.8,66.3,189.7,1 642,-1,751.4,78.7,45.8,158.6,1 642,-1,414.9,1.4,60.6,149.9,1 642,-1,420,118.5,55.1,154.5,1 642,-1,287.5,127.9,50.9,166.7,1 642,-1,463.7,97.9,50.8,175.4,1 642,-1,353.8,1,52.4,131,0.988 642,-1,492.7,50.6,45.2,166.6,0.795 642,-1,236.6,143.1,45.1,174.1,0.092 643,-1,687,206.3,79.6,113.8,1 643,-1,1220.5,31.5,62.7,117.5,1 643,-1,1481.5,4.1,60.5,145.7,1 643,-1,547.2,113,63.7,174.8,1 643,-1,1710,454.8,98.6,213.8,1 643,-1,359.4,111.5,52.6,173.1,1 643,-1,801.9,145.6,63.2,171.7,1 643,-1,339.2,318.6,67.7,204.7,1 643,-1,484.4,537.3,85,243.2,1 643,-1,1573.6,589.5,98.4,236,1 643,-1,265.8,241.5,57,182.8,1 643,-1,414.4,1.8,59.9,150,1 643,-1,1621.7,189.6,66.1,193.2,1 643,-1,210,226.2,61.2,202.4,1 643,-1,751.9,79.8,44.3,157.6,1 643,-1,420.7,119.5,54.4,154.8,1 643,-1,465.5,98.7,49,177.4,1 643,-1,287.6,128.5,50.8,166.9,1 643,-1,489.2,49.3,47.4,173.4,0.8 643,-1,354.1,1,53.1,129.1,0.759 643,-1,1488.8,952.2,82.5,128.8,0.166 644,-1,687.1,206.6,79.6,113.4,1 644,-1,1220.6,31.1,62.4,118.1,1 644,-1,1481.3,4.5,60.4,145.1,1 644,-1,548.1,113.1,62.3,174.4,1 644,-1,800.9,145,65.4,173.6,1 644,-1,1709.2,454.1,99.9,214.5,1 644,-1,359.3,112.7,51.7,172.1,1 644,-1,338.6,318.5,68.9,205.2,1 644,-1,1573.5,590.1,98.8,235.6,1 644,-1,481.5,538.7,83.8,241.1,1 644,-1,1621,189.1,65.7,191.1,1 644,-1,751.7,79.9,44.8,157,1 644,-1,211.2,226.3,59.8,200.7,1 644,-1,267.4,241.7,56.8,181.8,1 644,-1,413.9,1.1,58.9,149.7,1 644,-1,421.1,118.9,54.9,156.3,1 644,-1,466.6,100.5,49.8,176.4,1 644,-1,287.8,127.9,50.5,167.4,1 644,-1,1487.7,949.7,78.8,131.3,0.398 644,-1,238.8,140.6,41.5,170,0.178 644,-1,356.6,1.7,50.6,129.3,0.163 644,-1,488.8,50.5,46.9,167.3,0.159 644,-1,923.4,924.4,70.9,156.6,0.06 657,-1,687.7,206,78.6,113.9,1 657,-1,1480.8,4.3,60.2,143.3,1 657,-1,1155.4,1,68.9,117.2,1 657,-1,1220.5,28.2,64.1,122.2,1 657,-1,1711.7,455.1,96.4,210.4,1 657,-1,551,111.1,60.1,174.5,1 657,-1,800.8,144.9,65.4,172.7,1 657,-1,359.5,114.5,50.5,170.1,1 657,-1,328.8,332.5,69.5,208.4,1 657,-1,1576.2,588.8,96.1,234.8,1 657,-1,1612.9,170.6,75.1,186.6,1 657,-1,446.4,532.5,84.7,247.3,1 657,-1,408.8,1,57.5,153.5,1 657,-1,751.5,80.9,46.3,154.5,1 657,-1,272,236.1,59.4,178.1,1 657,-1,220,217.4,56.9,203.9,1 657,-1,472,108.1,48.1,176.2,1 657,-1,425.5,119.9,56.8,161.3,1 657,-1,286.9,123.5,52.5,173.5,0.999 657,-1,1433.4,908.7,97.4,172.3,0.999 657,-1,352.3,1,54,143.9,0.999 657,-1,1357.1,932.3,88.1,148.7,0.96 672,-1,1221.5,29.4,61.4,119.2,1 672,-1,687.2,206.2,79.1,113.5,1 672,-1,1481.7,6,60.2,142.7,1 672,-1,800.2,144.1,65.1,174.2,1 672,-1,315.7,351.9,69.2,207.6,1 672,-1,560.9,111.7,51.9,176,1 672,-1,481.1,120.9,47.3,171.3,1 672,-1,359.7,116.1,49.3,165.5,1 672,-1,1115.1,1,59.7,104.1,1 672,-1,400.5,525.3,90.7,255.3,1 672,-1,1574.6,588.7,97.2,234.3,1 672,-1,1710.8,454.5,99.2,212.4,1 672,-1,1492.3,160.3,53.8,176.6,1 672,-1,414.7,129.1,74.6,163.7,1 672,-1,1624.1,155.8,75.9,189.4,1 672,-1,750.8,79.6,48.2,155.8,1 672,-1,227.9,210.3,62.6,196.9,1 672,-1,282.8,225.2,55.1,174.6,1 672,-1,407.6,5.6,55.8,154.6,1 672,-1,1398.7,868.6,97.1,212.4,1 672,-1,1314.9,900.3,86.1,180.7,1 672,-1,354.5,2.4,51.6,151,0.999 672,-1,296.4,1,52.4,133.9,0.995 672,-1,290.3,118.8,49.3,178.2,0.89 688,-1,1221.6,30,62.4,120,1 688,-1,687.6,206.6,78.6,113.2,1 688,-1,1480.8,6,60.2,145.6,1 688,-1,361.1,529.8,101.9,250.8,1 688,-1,1709.6,456,97.8,209.5,1 688,-1,1613.3,147.2,70.4,185.6,1 688,-1,803.5,146.7,56.5,170.2,1 688,-1,562.8,111.4,52.1,178.8,1 688,-1,487.1,130.5,46.4,180.5,1 688,-1,1489.2,139.6,53.3,180.5,1 688,-1,311.5,367.8,68.3,212.2,1 688,-1,421.3,142.6,63.7,162.8,1 688,-1,1575.2,588.4,97.6,238.5,1 688,-1,750.1,79.3,50.5,158.6,1 688,-1,360.1,114.5,47.3,170.9,1 688,-1,1059.2,1,61.8,98.2,1 688,-1,1347,834.4,95.2,246.6,1 688,-1,1260.1,856.1,90,224.9,1 688,-1,244.7,200.5,61.3,197.3,1 688,-1,297.9,216.3,59.1,177.6,1 688,-1,406.3,21.8,54.2,162.7,1 688,-1,481.6,36.2,48,145,1 688,-1,224.1,128.7,51.2,167,0.999 688,-1,823.4,919.4,83.3,161.6,0.756 695,-1,1221.6,29.9,62,118.8,1 695,-1,686.8,206.4,79.7,113.5,1 695,-1,1481.6,6.2,59.6,144.8,1 695,-1,562.1,112.2,53.5,178,1 695,-1,1608.2,141.6,69.8,180.6,1 695,-1,1482,132.8,54.4,181.3,1 695,-1,1710.2,454.6,100.4,212.4,1 695,-1,378.9,535.3,79.7,249.2,1 695,-1,1574.8,589.5,96.6,233.7,1 695,-1,422.3,151.2,62.9,164,1 695,-1,488.1,134.4,47.6,184.4,1 695,-1,802.7,144.3,52.8,174.5,1 695,-1,407.7,18.6,57,165.5,1 695,-1,749.5,79.4,50.4,156.4,1 695,-1,303.5,377.2,71.2,213.3,1 695,-1,1036,1.9,65.5,92.9,1 695,-1,360.4,112.5,50.4,172.5,1 695,-1,250.2,198,61.8,197.8,1 695,-1,302.7,212.8,58.6,179.5,1 695,-1,1321.3,813.8,102.6,267.2,1 695,-1,480.7,29,44.1,136.1,1 695,-1,226.4,133.9,53.7,163.7,1 695,-1,1246,839.9,83.8,241.1,1 695,-1,826.9,925.4,78.5,155.6,0.698 696,-1,1221.4,29.8,62.1,118.6,1 696,-1,687,206.6,79.7,112.5,1 696,-1,1481.5,5.9,59.6,145.4,1 696,-1,561.2,111.3,54.6,178.2,1 696,-1,1607.2,140.8,69.8,181,1 696,-1,1481,135.6,53,176.9,1 696,-1,1711.5,454.7,98.5,212.8,1 696,-1,1574.9,589.6,97.4,235.2,1 696,-1,380.9,536,77.3,247.8,1 696,-1,421.8,150.5,64,165,1 696,-1,488.1,135.1,47.2,184,1 696,-1,802.6,142.7,52,175.6,1 696,-1,750.1,80.2,49.7,155.6,1 696,-1,408.1,19.5,56.4,161.8,1 696,-1,302.3,377.2,71.2,214.7,1 696,-1,1034,2.6,65.8,91.3,1 696,-1,250.8,198.5,62.5,198.8,1 696,-1,480.4,27.7,44.9,136.2,1 696,-1,360.2,112.2,50.2,173.3,1 696,-1,1316.6,807.8,105.6,273.2,1 696,-1,303.5,212.6,57.7,180.5,1 696,-1,1243.7,831.2,86.6,249.8,1 696,-1,227,133.7,52.9,164.3,1 696,-1,827.4,926.3,80,154.7,0.582 699,-1,1221.9,30,61.7,118.6,1 699,-1,687.3,206.5,79,113.1,1 699,-1,1482.1,6.2,59.1,145,1 699,-1,1479.1,134.8,53.4,174.3,1 699,-1,1604.4,140.3,70,184.1,1 699,-1,1315.8,807,94.4,274,1 699,-1,562.2,111.3,52.9,177,1 699,-1,1711.3,454.8,99.4,211.4,1 699,-1,1574.7,588.1,97.2,236,1 699,-1,382.5,535.9,74.1,252.9,1 699,-1,299.3,378.4,72.9,215.7,1 699,-1,479.5,26.2,43.9,136.9,1 699,-1,485.7,138.3,48.6,183.7,1 699,-1,419.9,148.9,67.2,165.6,1 699,-1,750.2,79.8,50.3,155.9,1 699,-1,803.4,139.9,48.6,178.9,1 699,-1,360.4,111.2,49.9,173.2,1 699,-1,254.1,199.4,61,197,1 699,-1,1026.9,1.3,67,91.4,1 699,-1,408.4,22.2,57.2,161.8,1 699,-1,305,212.9,58.1,179.9,1 699,-1,1233.6,823.6,88.9,257.4,1 699,-1,227.1,134.4,52.3,163.8,1 699,-1,828.9,927.9,83.1,153.1,0.629 701,-1,1221.7,30.1,61.8,118.3,1 701,-1,687.1,206.5,79.3,113.4,1 701,-1,1482,6.5,58.6,145.8,1 701,-1,1604.1,140.5,70.9,182.7,1 701,-1,1476.9,134.2,53.1,173.4,1 701,-1,1711.2,456.1,96.9,208.5,1 701,-1,562.2,110,52.8,178.8,1 701,-1,299.7,380.1,73.2,214.3,1 701,-1,1312.8,800.5,94.6,268.1,1 701,-1,414.7,150.2,74.6,164.2,1 701,-1,1575.1,587.6,96.9,235.2,1 701,-1,384.1,537.6,70.2,251.4,1 701,-1,485.8,138.9,47.9,182.5,1 701,-1,802.7,140,48.3,177.1,1 701,-1,1230.2,821.5,87.9,259.5,1 701,-1,360.5,109.5,49.8,174.1,1 701,-1,476.1,24.9,46.4,142.1,1 701,-1,749.9,80.2,50.4,155.8,1 701,-1,305.4,212.2,57.8,180.2,1 701,-1,254.6,199.3,60.8,195.8,1 701,-1,408.4,22.4,58.4,163,1 701,-1,1021.5,2.3,62,88.4,1 701,-1,227.4,133.4,52.8,165.2,1 701,-1,831.1,929,83.8,152,0.486 714,-1,1221.5,30.1,62.3,118.9,1 714,-1,687,206.6,79.6,112.6,1 714,-1,1480.7,7.8,58,144.7,1 714,-1,553.8,111.6,59.3,177.4,1 714,-1,1575.4,590.5,99.5,236.3,1 714,-1,1474.1,122.2,51.8,176,1 714,-1,1602,120.6,64.6,183.6,1 714,-1,1711.9,455.3,95.2,209.4,1 714,-1,479.8,157.2,51.9,180.5,1 714,-1,412.1,168.2,72.3,163,1 714,-1,390.4,546.8,81.1,241.7,1 714,-1,297.7,400.2,75.6,216,1 714,-1,359.6,109.3,50.5,175.9,1 714,-1,259.6,194.3,57.2,198.6,1 714,-1,1189.4,789,92.4,262.8,1 714,-1,749.9,80.5,49.6,156.5,1 714,-1,412.9,31.5,61.9,166.8,1 714,-1,470.6,19.6,45.8,142.9,1 714,-1,799.3,135.7,46.6,174.2,1 714,-1,309.1,206.1,59.4,179.2,1 714,-1,1275.2,770.4,93.1,270.3,1 714,-1,233.7,133.4,50.3,167.2,0.999 714,-1,975.5,1,80.1,81,0.125 714,-1,856.6,933.5,78.3,147.5,0.051 715,-1,1221.7,30.1,61.3,118.6,1 715,-1,686.6,206.3,79.9,113.4,1 715,-1,1480.8,8.2,57.6,144.2,1 715,-1,554.9,112,58.4,176.3,1 715,-1,1473.3,121.8,52.7,175.8,1 715,-1,1576.3,589.1,98.3,236.2,1 715,-1,479.9,156.3,51.6,182.2,1 715,-1,1601.5,120.6,65.3,183.9,1 715,-1,1709.9,456.8,98.8,207.6,1 715,-1,413.9,168,69.5,162.9,1 715,-1,298.3,400.7,75.9,217.6,1 715,-1,391.5,549,84,241.5,1 715,-1,360,109.8,50.4,175.8,1 715,-1,260.8,194.2,56,198.8,1 715,-1,469.7,19.2,47.5,141.6,1 715,-1,750.3,80.3,49.3,156.7,1 715,-1,1185.9,787.6,93.4,263,1 715,-1,413,32.8,61.5,163.5,1 715,-1,309.3,205.5,59.8,179.5,1 715,-1,798.5,136.8,45.2,175.4,1 715,-1,1275.5,773.7,89.5,260.7,1 715,-1,233.3,133.7,50.9,164.5,1 715,-1,860.4,935.8,74.8,145.2,0.096 716,-1,1221.8,30.3,62,118,1 716,-1,686.9,206,79.1,113.7,1 716,-1,1480.3,7.9,58,144.3,1 716,-1,553.3,112.9,59.8,176.5,1 716,-1,1474,121.9,53,175.7,1 716,-1,479.7,158.5,51.1,181.1,1 716,-1,1711.1,457.6,95.4,206.7,1 716,-1,1600.4,120.2,65.1,183.7,1 716,-1,1575.5,590.3,98.1,235.3,1 716,-1,413.8,169.4,68.9,164,1 716,-1,299,402.9,74.9,214,1 716,-1,390,547.2,87.2,243.5,1 716,-1,260,193.2,56.8,199.3,1 716,-1,359.6,108.4,51.4,177.1,1 716,-1,469.1,16.8,48.1,141.8,1 716,-1,1183.5,782.8,92.9,264.8,1 716,-1,750.1,82.1,49.2,154.3,1 716,-1,413.6,34.5,59.3,161.5,1 716,-1,795.6,136.9,47.8,175.9,1 716,-1,311,205.1,60.1,178.8,1 716,-1,1273,765.5,89.6,263.7,1 716,-1,234.6,132.3,50.3,168.5,0.999 716,-1,861.6,937.3,74.5,143.7,0.073 717,-1,1221.5,30.1,61.7,118.6,1 717,-1,687,206,79.2,113.3,1 717,-1,1479.7,7.7,59,145.3,1 717,-1,553.2,113.5,60.4,177.3,1 717,-1,1710.9,457.7,96,206.4,1 717,-1,1474.3,119.7,51.7,179.7,1 717,-1,479.4,158.2,51.2,181.5,1 717,-1,1599,120,66.1,184.2,1 717,-1,299.2,403,75.2,215.5,1 717,-1,1575.1,590.1,98.6,236.3,1 717,-1,413.3,171.2,68.3,161.6,1 717,-1,390,548.3,91.1,241.8,1 717,-1,260.7,191,56,201,1 717,-1,360.2,111,51,172.8,1 717,-1,414.6,35.9,59.7,160.8,1 717,-1,1267.8,761.1,92.4,269,1 717,-1,750,81.6,49,154.8,1 717,-1,468.8,18.4,46.9,139.1,1 717,-1,1183.5,781.3,88.2,267.6,1 717,-1,794.5,135.8,48.3,178.9,1 717,-1,311.5,207.2,62.4,175.7,1 717,-1,234.4,132.4,50.1,169.5,0.999 722,-1,1221.8,30.2,62.1,118.1,1 722,-1,687.1,205.9,79.6,113.8,1 722,-1,1480.7,7.3,59,145.3,1 722,-1,1250.1,749.4,95.6,269.6,1 722,-1,551.7,113.5,59.1,176.3,1 722,-1,1475.4,112.6,52,173.8,1 722,-1,1600,119.8,59.4,178.4,1 722,-1,1573.7,590.7,100.6,233.9,1 722,-1,1711.4,455.4,96.4,209.4,1 722,-1,391.6,548.2,98.7,248.7,1 722,-1,412.3,174,69.2,164,1 722,-1,261.3,192.2,56.5,198.9,1 722,-1,478.7,160.9,49.8,181.4,1 722,-1,300.3,408.3,74.9,220.3,1 722,-1,313.7,201.2,64.8,180.2,1 722,-1,786.5,136.1,51.5,180.5,1 722,-1,749.9,82.2,49.4,151.8,1 722,-1,417.2,40,63,167.5,1 722,-1,1172.9,773.7,87.2,273.6,1 722,-1,361.3,109.1,46.9,170.7,1 722,-1,465.8,14.2,46.9,139.8,1 722,-1,236.1,134,50.6,169,0.998 734,-1,1221,29.7,62.6,119.1,1 734,-1,686.9,205.7,79,114.6,1 734,-1,1480.3,7.9,60.2,147.4,1 734,-1,257.8,188.9,57.9,195.3,1 734,-1,1711,456.8,96.1,207,1 734,-1,404.8,185.7,75.4,163.6,1 734,-1,551.9,111.9,59.3,181,1 734,-1,1469.7,108.8,51.6,168.7,1 734,-1,297.6,422.6,75.7,226,1 734,-1,782.7,137,54.4,178.3,1 734,-1,1575.1,590.4,98.9,232.6,1 734,-1,421.7,555.6,88.7,248.1,1 734,-1,476.3,171.4,48.1,181.1,1 734,-1,325.5,198,60.4,181,1 734,-1,1598,102.5,59,181.2,1 734,-1,1223.1,721.3,92.7,265.7,1 734,-1,431.6,44.2,57.8,169.2,1 734,-1,750.4,84.3,51,150.3,1 734,-1,360.2,109.4,51.2,177.1,1 734,-1,1149,747.7,84.3,260.5,1 734,-1,318.8,1,48.4,133,0.997 734,-1,237.7,141.5,52.8,164.3,0.973 734,-1,290.7,135.7,42.5,163.9,0.321 744,-1,1221.2,29.1,62.7,119.6,1 744,-1,686.8,205.9,79.4,114.4,1 744,-1,1463.5,100.7,54.7,163.2,1 744,-1,255.6,182,62.7,202.5,1 744,-1,780,137,58,176,1 744,-1,1487,14.8,58.9,138.8,1 744,-1,551.8,115.9,60.2,176.4,1 744,-1,1574.4,589.1,100.8,235.2,1 744,-1,1713.8,456.9,93.2,209.8,1 744,-1,299.6,438.7,74,221.5,1 744,-1,1600.1,100.5,57.4,179.9,1 744,-1,469.4,179.1,51.8,185.7,1 744,-1,331.3,200.1,57,173.5,1 744,-1,403.6,195.5,68.9,169.1,1 744,-1,439.8,53.4,58.5,168.7,1 744,-1,452.9,555.3,89.6,257.8,1 744,-1,1120.9,722.3,83,256.8,1 744,-1,1197.5,701.2,86.8,269.1,1 744,-1,358.8,112.6,51.7,175.1,1 744,-1,750.3,83.8,50.4,148.5,0.999 744,-1,258.8,1.8,48,119.9,0.99 744,-1,291.3,128.5,47.1,164.1,0.982 744,-1,393.8,52.5,47.3,167.4,0.432 744,-1,237.6,151.2,51.1,158.5,0.229 753,-1,1221.4,29.7,61.9,118.6,1 753,-1,687.1,205.9,78.6,113.8,1 753,-1,547.4,118,63.7,174.2,1 753,-1,1462.3,95.9,54.1,164.2,1 753,-1,780.8,134.8,62.8,178.2,1 753,-1,1715.1,455.4,87.6,208.9,1 753,-1,303.9,448.8,73.9,225.6,1 753,-1,261.9,187.1,58.6,197.4,1 753,-1,1575.8,589.2,99.2,233.8,1 753,-1,1592.5,87.1,62.3,180.8,1 753,-1,332,198,55,171.8,1 753,-1,1494.6,17.2,57.5,139.1,1 753,-1,462.9,188,53.3,189.2,1 753,-1,402.1,198.5,66.1,173.8,1 753,-1,447.8,63.8,55.1,167.4,1 753,-1,474.1,567.5,94.4,249.3,1 753,-1,1166.2,677.9,93.8,264.2,1 753,-1,257.7,1,49.4,122.1,1 753,-1,750.5,78,49.1,155.1,1 753,-1,1107.4,709.2,77.7,256.7,1 753,-1,358.7,108.1,50.3,174.5,0.999 753,-1,236.6,140.6,50.9,155,0.998 753,-1,397,61,56.7,167.5,0.997 753,-1,291.1,128.1,45.1,164.6,0.973 756,-1,1221.1,29.4,62.8,119.8,1 756,-1,687,205.7,78.9,113.7,1 756,-1,547,117.5,64.7,173.4,1 756,-1,1716.2,454.5,84.7,210.8,1 756,-1,781.8,134.6,63.5,177.5,1 756,-1,1462.2,93.6,53.7,167.8,1 756,-1,304.3,453.9,77.2,223.6,1 756,-1,1574,589.3,102,234.8,1 756,-1,489.7,567,87,248.5,1 756,-1,264.4,183.5,58.9,200,1 756,-1,461.7,188.3,51.6,189.7,1 756,-1,331.7,196,55.7,174.8,1 756,-1,400.1,199.4,66.5,176.1,1 756,-1,1495.5,16.5,59,141.9,1 756,-1,1588,88.3,62.9,178.3,1 756,-1,1165.2,675.2,88.4,261.9,1 756,-1,751.3,79.1,50.1,156,1 756,-1,258.8,1,49.4,123.1,1 756,-1,451.7,64.6,55.8,169.7,1 756,-1,236.1,136.8,50.1,154.4,1 756,-1,1099.7,704.1,82,247.4,0.999 756,-1,398,63.2,57.7,172.5,0.999 756,-1,360.2,107.3,49.4,171.9,0.999 756,-1,293.2,137.1,41.7,159.4,0.343 766,-1,1221.4,29.6,62.3,119.5,1 766,-1,687,205.2,79.1,115.1,1 766,-1,543.6,114.7,65.7,177.7,1 766,-1,782.4,133.6,64.2,178.6,1 766,-1,1721.6,453,77.1,213.3,1 766,-1,1574.6,589.7,101.1,235.1,1 766,-1,299.6,470.8,77.6,228.4,1 766,-1,1453.5,81,54.3,169.2,1 766,-1,272.9,176.3,56.7,197.3,1 766,-1,395.8,212.2,70.9,173,1 766,-1,329.6,191.5,55.1,180.2,1 766,-1,457.6,196.9,51.9,186.7,1 766,-1,751.1,77.9,50.7,157.5,1 766,-1,1493.4,17.8,61.4,144.9,1 766,-1,256.9,1.2,50.8,121.6,1 766,-1,1574.7,82.5,65.7,177.2,1 766,-1,518.5,569.7,91.6,246.5,1 766,-1,234.6,135.3,49.6,163.4,1 766,-1,461.8,67.7,59.2,173.5,1 766,-1,1140.8,656,98.1,258.4,1 766,-1,1077,677.8,80.2,256.9,1 766,-1,358.8,111.4,54,172.6,0.999 766,-1,403.6,68.5,58.2,168.6,0.999 768,-1,1221.5,29.6,62.3,118.7,1 768,-1,687.4,205.1,78.2,115.4,1 768,-1,544.4,115.1,64.9,176.6,1 768,-1,781.6,134.4,64.9,176.9,1 768,-1,1574.8,589.9,101.6,235.3,1 768,-1,1722,455.3,75.7,209.2,1 768,-1,295.7,472.5,79.2,228.5,1 768,-1,273.9,175.5,57.7,194,1 768,-1,1493.2,17.1,60.1,148.1,1 768,-1,396.4,211.4,69.5,171.8,1 768,-1,328.9,192.1,57.4,175.4,1 768,-1,454.3,197.3,54.5,190.8,1 768,-1,1451.3,78,54.4,170,1 768,-1,1135.1,651.3,96.5,258.2,1 768,-1,751,78.9,51.2,155.2,1 768,-1,1574.9,81.2,62.5,174.3,1 768,-1,256.6,1.2,51,121,1 768,-1,1072.3,678.6,81.1,252,1 768,-1,462.2,70,61.5,170,1 768,-1,234.1,136.9,50.1,160.7,1 768,-1,523,570.6,91.1,248.2,1 768,-1,358.5,108.7,53.9,173.1,0.999 768,-1,405.6,72.1,57.6,167.5,0.999 769,-1,1221.5,30,62,118.9,1 769,-1,687.3,205.1,78.2,114.9,1 769,-1,545.1,115,64.5,176.4,1 769,-1,781.9,133.7,64.5,175.7,1 769,-1,1722.6,452.2,76.2,214.6,1 769,-1,1575.5,590.7,100.3,234.3,1 769,-1,294.7,473.5,79.7,226.6,1 769,-1,1139.1,651.4,87.4,254.5,1 769,-1,274.2,175.6,57.6,192.4,1 769,-1,1449.7,77,56,171.1,1 769,-1,395.4,211.5,69.8,171.1,1 769,-1,1492.9,17.5,59.4,145.9,1 769,-1,328.5,191.8,57.9,174.9,1 769,-1,453.7,199.9,55,189.1,1 769,-1,256,1.1,51.4,122.1,1 769,-1,751.1,76.1,51.3,157.4,1 769,-1,462.6,69.7,62.6,173.2,1 769,-1,233.6,137.6,50.1,160.5,1 769,-1,1574.5,79.8,62.5,172.9,1 769,-1,1069.6,673.4,80.4,255.8,1 769,-1,524.1,569.9,89.8,246.9,1 769,-1,358.5,107.6,54,178.5,0.999 769,-1,407.2,73.4,56.8,166.1,0.999 773,-1,1220.8,29.2,62.6,120,1 773,-1,687.8,204.7,78.1,115,1 773,-1,546.9,116.1,61.8,175.3,1 773,-1,783.2,135.1,62.3,172.6,1 773,-1,1722,453.6,76.3,212.2,1 773,-1,1575.6,590.3,100.8,234.7,1 773,-1,294.2,477.2,79.3,227.1,1 773,-1,1491.9,19,59.7,149.3,1 773,-1,1448.2,77.7,54.4,169.5,1 773,-1,1573,76.2,61.4,175.1,1 773,-1,452.8,206.9,53.6,185,1 773,-1,390.4,212.3,72.4,172,1 773,-1,328.2,188.8,57.9,177.8,1 773,-1,750.7,74,52.3,158.5,1 773,-1,467,71.9,61.3,175.5,1 773,-1,1060.8,662,78.7,250.6,1 773,-1,275.9,173.4,56.8,195,1 773,-1,254.8,1.3,52.6,120.5,1 773,-1,536.7,569.3,94.1,251.9,1 773,-1,1134.4,636.1,79.9,258.9,1 773,-1,232.9,138.2,50.5,162.7,1 773,-1,411.7,77.4,58.3,169.6,0.999 773,-1,356.9,110.1,52.6,174.9,0.998 774,-1,1220.9,29.7,62.6,119.5,1 774,-1,687.3,204.7,79.7,114.6,1 774,-1,546.9,115.7,61.6,175,1 774,-1,783.8,134.4,61.6,173.5,1 774,-1,1723.1,453,76.2,213.7,1 774,-1,1575.8,590.1,100.2,235,1 774,-1,293.8,477.6,78.1,227.9,1 774,-1,538.8,572.2,93.8,250.3,1 774,-1,1491.4,18.2,59.6,148.6,1 774,-1,1445.8,81.3,57.1,163.8,1 774,-1,1572.2,74.8,61.1,176.7,1 774,-1,451.8,206.6,52.9,186.1,1 774,-1,389.2,213.6,72.8,173.1,1 774,-1,750.2,75,52.2,157.9,1 774,-1,276.6,173.9,57.2,195.4,1 774,-1,467.4,76.9,62.3,172.8,1 774,-1,328.7,189,56.1,176.2,1 774,-1,233.2,135.2,51,165.4,1 774,-1,1058.9,659.7,78.5,250.6,1 774,-1,255,1.4,52.4,119.4,1 774,-1,1129.4,635.1,81.2,259.9,1 774,-1,412.6,78.6,57.7,166.6,0.999 774,-1,356.8,109.8,53.1,177.5,0.997 783,-1,1221.5,29.5,62.6,118.1,1 783,-1,687.1,204.7,79.5,114.5,1 783,-1,546.8,115.4,61.7,174.4,1 783,-1,1724.2,452.4,75.1,213.3,1 783,-1,783.3,131.6,55.1,176.3,1 783,-1,1486.9,21.9,60.1,148.2,1 783,-1,1574.7,590,100.3,235.4,1 783,-1,292,496.4,78.3,231.1,1 783,-1,1445.2,68,50.1,164.4,1 783,-1,472.2,77.5,61.4,179.1,1 783,-1,276.4,169,58.3,196.4,1 783,-1,446.7,215,55.9,191.7,1 783,-1,332.6,188.2,53.9,176.8,1 783,-1,254.9,1,52.3,119.6,1 783,-1,750.6,73.4,53.2,158.9,1 783,-1,391,224.3,69.6,179.4,1 783,-1,1109,626.4,80.7,245.2,1 783,-1,234.1,131.9,50.2,167,1 783,-1,422.3,80,55.3,168.4,1 783,-1,1046.3,645.1,74,255,1 783,-1,576.5,574.2,66.5,259.5,0.999 783,-1,1571.5,73.4,59.1,173.3,0.999 784,-1,1221.1,28.9,62.8,119.8,1 784,-1,687.2,204.8,79.6,114.8,1 784,-1,547.1,113.7,61,178,1 784,-1,1487.6,21.4,59.3,149.7,1 784,-1,1723.1,452.3,76.5,214.1,1 784,-1,292.8,497.9,76.7,231.8,1 784,-1,781.9,129.8,56.9,177.6,1 784,-1,1575.2,590.5,100.5,233.8,1 784,-1,1443.8,67.4,51,163,1 784,-1,278.1,169.7,56.8,193.6,1 784,-1,472.5,80.1,62.4,176.4,1 784,-1,333.2,188.7,53.4,176.3,1 784,-1,446.7,218.2,55.6,189.6,1 784,-1,391.5,225.3,67.8,179.3,1 784,-1,254.4,1,52.4,120,1 784,-1,750.4,74.1,53.2,158.6,1 784,-1,233.8,133.4,50.3,165.8,1 784,-1,1106.6,621.4,80.6,243.8,1 784,-1,1043.7,643.3,75,251.4,1 784,-1,577.4,572.6,67,255.8,1 784,-1,422.8,80.7,55.7,170.3,1 784,-1,1569.7,71.9,59.9,172.8,0.977 785,-1,1220.8,29.4,62.7,118.9,1 785,-1,687.8,204.7,78.6,115.3,1 785,-1,547.4,114.9,61.9,176.5,1 785,-1,1722.7,452.1,77.3,214.8,1 785,-1,1575.3,590.4,100.6,233.6,1 785,-1,1486.2,24.3,59.4,147.8,1 785,-1,291.8,498.6,78,231.3,1 785,-1,782.9,129.1,53.3,178.3,1 785,-1,277.7,170.1,58.5,193.5,1 785,-1,474.1,80.2,61.3,178.3,1 785,-1,1443,66.6,50.5,163.5,1 785,-1,447.2,221.2,55.1,187.9,1 785,-1,334.8,190.7,51.8,173.1,1 785,-1,391.2,226.1,68.8,178.6,1 785,-1,234.2,133,50.3,164.3,1 785,-1,750.9,74.8,53.3,157.4,1 785,-1,254.5,1,52.3,120,1 785,-1,1104.6,620.2,80.7,244.6,1 785,-1,1041.7,641.8,74.6,253,1 785,-1,423.1,81.9,57.3,169.8,1 785,-1,578.2,573.7,68.1,252.1,0.999 785,-1,1569.4,70.9,60.1,171.5,0.83 793,-1,1221.3,29.5,62.1,119.6,1 793,-1,687.3,205.5,79,113.8,1 793,-1,782.6,128.6,52.1,181.8,1 793,-1,1723.1,452.2,75.8,215.2,1 793,-1,549.6,115.3,59.8,177.1,1 793,-1,1575,590.4,100.2,235.1,1 793,-1,1485.1,27.8,59.5,147.9,1 793,-1,290.4,507.4,78.7,234.9,1 793,-1,277.1,167.9,58.5,194.9,1 793,-1,477.7,95.4,60.2,173.3,1 793,-1,750.1,68,55.7,164.1,1 793,-1,232.8,134.8,51.1,165.6,1 793,-1,1442.1,66.3,48.9,162,1 793,-1,339.8,188.7,50.3,176,1 793,-1,1085.1,603.4,96.1,258.5,1 793,-1,445,226.3,54.4,188.1,1 793,-1,392.8,231.9,64.8,179.1,1 793,-1,1025,623,76.5,247.4,1 793,-1,253.6,1.5,52.7,122,1 793,-1,599.2,580.6,75,243.4,1 793,-1,422.7,92.8,55.9,162.3,1 793,-1,1597.7,1,54.5,123.3,0.999 793,-1,447.3,1,46.4,91.7,0.997 794,-1,1221.1,29,63,120,1 794,-1,687,205.9,79.1,113.6,1 794,-1,783.4,130.1,51,181.4,1 794,-1,548.4,115,60.9,176.6,1 794,-1,1723.1,451.7,75.6,215.9,1 794,-1,289.9,509.4,78.6,235.2,1 794,-1,1574.6,590.3,100.5,234.9,1 794,-1,1484.4,27.7,59.3,147.5,1 794,-1,478,96.4,60.4,172.7,1 794,-1,277.4,165.9,58.5,197.4,1 794,-1,749.8,71.9,56,159.6,1 794,-1,232.8,131.6,51.9,168.7,1 794,-1,253.4,1.3,53.4,122.1,1 794,-1,340.1,188.3,50.9,177,1 794,-1,1441.8,66.5,48.5,160.6,1 794,-1,391.8,234.1,65.7,177.8,1 794,-1,1602.4,1,53.1,125.6,1 794,-1,443.5,225.4,55.3,188.9,1 794,-1,1085.1,604,97.6,255.5,1 794,-1,1022.4,620,78.1,250.5,1 794,-1,423.2,93.3,55.5,162.5,1 794,-1,447.4,1,45.2,90.5,0.999 794,-1,601.7,580.8,75.1,245,0.999 819,-1,1221.3,29.3,62.2,119.2,1 819,-1,688,205.6,77.3,114.1,1 819,-1,790.8,134.7,63.5,175.9,1 819,-1,556.9,117.2,62.4,174.1,1 819,-1,1723.9,452.4,74.5,214.7,1 819,-1,275.3,551.7,78.8,242.3,1 819,-1,1578.1,594.7,96.7,232.7,1 819,-1,1629.6,1.3,52.4,151.6,1 819,-1,438.8,247.7,56.1,196.9,1 819,-1,283.5,163.4,65.9,196.7,1 819,-1,1049.9,554.4,79.2,245.6,1 819,-1,1428.2,45.4,51,162.3,1 819,-1,1472.4,37.8,61.4,157,1 819,-1,376.8,263,70.2,175.1,1 819,-1,977.8,582.4,72.9,237.8,1 819,-1,751.3,71.9,58.3,161.5,1 819,-1,473.5,113.7,60.1,179.5,1 819,-1,235.9,135.1,49.7,167.2,1 819,-1,347.1,177.8,50.4,170.8,0.999 819,-1,425.3,111.6,59.8,170,0.999 820,-1,1221.7,29.3,62,119,1 820,-1,687.8,205.6,77.6,114,1 820,-1,790.3,135.1,64.7,174.9,1 820,-1,276.3,552.7,77.6,243.3,1 820,-1,556.7,116.4,62.2,174.4,1 820,-1,1576,590.5,100.2,234.9,1 820,-1,439.2,251.1,55.6,195,1 820,-1,1723.8,453.2,74.5,214.1,1 820,-1,1632,1.7,51.4,151.5,1 820,-1,1048.8,554.2,81.8,243.7,1 820,-1,284.2,163,68.4,195.3,1 820,-1,376.7,263.7,69.6,174,1 820,-1,1472,39.5,61.3,157.8,1 820,-1,474.1,113.5,60.1,181.5,1 820,-1,1428.2,46,50.1,158.5,1 820,-1,751.3,72.1,58.2,161.9,1 820,-1,235.6,135,50.6,166.2,1 820,-1,975.5,579.3,72.3,235.2,1 820,-1,425.7,112.9,58.4,173.4,0.999 820,-1,346.6,175.6,52.1,175.3,0.999 824,-1,1221.6,29.6,62.1,118.5,1 824,-1,687.6,205.7,77.9,114.6,1 824,-1,790.2,136.5,64.4,178,1 824,-1,1038.1,549.3,94,241.7,1 824,-1,1635.2,3.7,53.5,153,1 824,-1,275.2,556.4,79.9,240.7,1 824,-1,556.7,117.1,62.9,175.2,1 824,-1,1723.6,452.8,75.1,214.6,1 824,-1,1575.4,589.1,100.8,235.1,1 824,-1,437.7,256.2,55.8,194,1 824,-1,1476.4,43,57.8,156.7,1 824,-1,1423.5,41.1,51.5,160,1 824,-1,285.3,163.6,69.3,194.7,1 824,-1,751.6,70.8,57.5,162.7,1 824,-1,473.6,120.8,60.4,180,1 824,-1,374.8,264.2,72.6,174,1 824,-1,968.2,570,73.5,235.3,1 824,-1,237.6,136.8,49.4,164.6,1 824,-1,423.2,117.5,58.7,174.4,1 824,-1,347.7,174.3,50,173.7,0.999 833,-1,1221.1,29.3,62,118.9,1 833,-1,687.2,206,78.6,113.1,1 833,-1,791.7,136,69.6,179.1,1 833,-1,272.3,573.6,82.3,243.7,1 833,-1,558.8,115.1,61.1,175.5,1 833,-1,1641.5,9.6,58.9,157.4,1 833,-1,1574.8,589.5,102.8,234.8,1 833,-1,1722.5,452.6,76.4,214.5,1 833,-1,1475.1,47,59.6,158.3,1 833,-1,752.5,71.4,56.5,163.9,1 833,-1,1035.2,537.4,85.3,239.1,1 833,-1,293.7,162.6,67,199.7,1 833,-1,437.3,259.2,55.8,200,1 833,-1,475.4,125.1,58.9,177.3,1 833,-1,1422.9,39.9,49.4,155.9,1 833,-1,360.6,274.2,82.3,180.8,1 833,-1,238.6,134.9,51.3,161,1 833,-1,954.4,559.6,71.6,236.1,1 833,-1,421.7,122.3,56.8,175.6,1 833,-1,253.8,1.2,53.3,121.5,1 833,-1,356.1,167.9,37.8,174.5,0.571 833,-1,1066.2,5.2,61.9,86.9,0.212 840,-1,1220.9,29.4,62.5,119.6,1 840,-1,687.6,206.1,78.4,113,1 840,-1,793.4,138.4,75,176,1 840,-1,557.2,117.9,60.9,173.8,1 840,-1,1646.5,13.2,57.5,163,1 840,-1,1722,452.6,77.2,214.3,1 840,-1,266.6,583.4,83.7,248.5,1 840,-1,1575.5,592,100.9,231.8,1 840,-1,1470.9,58.9,59.9,154.7,1 840,-1,752.1,70.6,56.9,163.7,1 840,-1,353.8,278.8,82.1,178.7,1 840,-1,436.9,267.3,56.2,203.6,1 840,-1,239.3,129.2,52.5,171.7,1 840,-1,1070.4,1.4,57.1,101.7,1 840,-1,1417.6,32,53.4,159.4,1 840,-1,475.4,136.1,59.2,178.6,1 840,-1,296.1,161.8,69.9,194.4,1 840,-1,254.8,1,54.7,120.5,1 840,-1,943.5,540.6,70.1,237.1,1 840,-1,1030.4,517.9,72.7,242.5,1 840,-1,416.7,130.4,58,175.6,1 848,-1,1221.4,30.1,62.6,118.4,1 848,-1,687.6,205.9,78.6,114.1,1 848,-1,794.6,139.7,78.8,174.1,1 848,-1,1720.8,452.9,79.2,213.6,1 848,-1,1576.9,592.7,100.5,234.7,1 848,-1,559.3,115.6,58.9,175.1,1 848,-1,1069.4,1,59.9,114.9,1 848,-1,1470.6,61.2,60.4,154.3,1 848,-1,296.1,160.5,73.3,197.8,1 848,-1,265.3,593.6,82.3,244.8,1 848,-1,752.9,72,55.2,161.4,1 848,-1,1658,27.7,54,160,1 848,-1,1415.2,29.3,54,157,1 848,-1,352.5,290.1,73.2,180.3,1 848,-1,240.1,132.4,52.5,166.1,1 848,-1,932,532.8,70.8,236.2,1 848,-1,435.4,274.5,54.8,198.3,1 848,-1,472.9,136.7,60.6,182.5,1 848,-1,1015.9,510.8,73.3,235.7,1 848,-1,253.2,1.1,54.3,120.2,1 848,-1,416.9,139.6,60.6,169.3,1 848,-1,493.5,1,46.2,109.7,0.999 851,-1,1221.6,29.9,62.1,119.1,1 851,-1,687.2,206.1,79.1,113.3,1 851,-1,795.1,139.8,79.1,174.1,1 851,-1,1071.9,1.5,60.1,117.6,1 851,-1,1721.1,452.7,78.4,213.6,1 851,-1,559.4,115.9,58.9,175.4,1 851,-1,1470.9,60.4,59.9,158,1 851,-1,1575.4,590.5,102.5,234.4,1 851,-1,1664.5,30.2,52.8,158.1,1 851,-1,752.9,72.5,55,160.4,1 851,-1,347.3,297.3,76.9,176,1 851,-1,265.7,600.7,82.5,241.7,1 851,-1,296.4,159.6,73.4,198.8,1 851,-1,492.2,1.1,47.8,112.1,1 851,-1,1414.8,29.1,53,153.3,1 851,-1,238.8,132.1,54.9,164.9,1 851,-1,929.2,526.5,69.9,231.5,1 851,-1,253.6,1,54.9,121.1,1 851,-1,1010.4,502.3,73.2,238.7,1 851,-1,472.7,142.6,60.7,179.6,1 851,-1,436.2,280,53.8,199.7,1 851,-1,417,140.9,60.3,168,1 861,-1,1221.4,29.8,62,119.1,1 861,-1,687.2,206.3,79.7,113.2,1 861,-1,271,611.6,88.4,248.5,1 861,-1,486.1,1,49.4,118.5,1 861,-1,1680.2,35.1,54.6,160.6,1 861,-1,796.7,139,75.7,176.4,1 861,-1,1472.7,69.8,60.5,154.4,1 861,-1,342.2,302.3,77.4,181.2,1 861,-1,1574.9,590.6,102.5,234,1 861,-1,1721.2,453.1,79.2,212.7,1 861,-1,559.5,116.7,58.7,172.5,1 861,-1,1079.9,1,58.7,125,1 861,-1,475.4,149.5,59.7,182.3,1 861,-1,297.7,159.8,73.9,198.3,1 861,-1,753.1,70.6,54.7,165,1 861,-1,1414.1,21.5,50.6,151.5,1 861,-1,254.6,1.2,54,121.6,1 861,-1,432.5,295.4,55.7,195.6,1 861,-1,994.1,494.4,85.5,239.4,1 861,-1,240.3,134.2,53.3,164.2,1 861,-1,415.8,150.3,60.2,174.5,1 861,-1,1574.2,15.5,49.2,141.7,1 861,-1,915.8,507.8,72,235.6,1 864,-1,1221.2,29.6,62.2,119.1,1 864,-1,687,206.4,79.8,112.8,1 864,-1,484.1,1,50.1,120.3,1 864,-1,796.2,138.9,77.2,175.8,1 864,-1,273.7,616.4,86.8,250.6,1 864,-1,1474.5,73.5,60.3,152.1,1 864,-1,1083.2,1,56.9,128.5,1 864,-1,341.4,306.1,79.1,182.5,1 864,-1,1721.8,452.9,77.5,214.3,1 864,-1,1574.7,590.9,103.5,234.2,1 864,-1,1684.9,39.4,52.2,164.7,1 864,-1,752.4,69.8,55.1,165.9,1 864,-1,476.1,153.4,60.8,182.2,1 864,-1,989.8,489.6,87.1,237.7,1 864,-1,558.7,116.8,58.7,174.8,1 864,-1,298.4,160,72.1,197.4,1 864,-1,431.6,296.2,55.8,196.9,1 864,-1,254.7,1.1,54.6,120.4,1 864,-1,1576.6,19,48.8,140.7,1 864,-1,239.7,131.9,52,167.7,1 864,-1,1414.5,19.7,51.1,153.6,1 864,-1,415.7,153.7,59.8,176.8,1 864,-1,912.2,504.6,70.4,234.3,1 865,-1,1221.4,29.6,62.1,118.9,1 865,-1,686.8,206.1,79.9,112.9,1 865,-1,483.1,1.5,50.4,119.3,1 865,-1,796.3,139.1,77.5,175.7,1 865,-1,1474.3,72.7,60.4,154.6,1 865,-1,1685,41.4,53.2,163.5,1 865,-1,1084.1,1,56.7,129.7,1 865,-1,274.3,618.4,86.5,252.1,1 865,-1,1574.8,590.9,103.2,234.1,1 865,-1,339.9,307.2,80.9,183.1,1 865,-1,988.5,484.6,87.5,237.9,1 865,-1,476.9,152.5,59.9,183.3,1 865,-1,1721.5,452.4,77.4,215.2,1 865,-1,558.6,116.3,59.1,176.3,1 865,-1,752.7,68.8,54.5,166,1 865,-1,299.2,160.4,71.6,198.1,1 865,-1,1577.2,18.1,48.1,141.6,1 865,-1,240.1,134.5,52.1,164.9,1 865,-1,431.9,297.1,53.7,195.5,1 865,-1,253.9,1.4,54.7,120.3,1 865,-1,1415.2,17.4,50.3,155,1 865,-1,911.7,502.4,70,233.8,1 865,-1,415.4,156.2,60.2,177.3,1 865,-1,358.8,168.5,35.8,167.2,0.074 866,-1,1221.5,29.7,62,118.6,1 866,-1,687.3,206.5,79,112.6,1 866,-1,482.8,1.4,49.4,122.9,1 866,-1,795.6,139.6,78.3,175,1 866,-1,1473.7,73.1,61.1,153.1,1 866,-1,1085.4,1,55.3,131.7,1 866,-1,1575.5,590.6,102.6,234.6,1 866,-1,988.6,482.1,85.7,237.7,1 866,-1,1721.6,453.2,78,213.9,1 866,-1,1686,43.1,52.3,163.8,1 866,-1,476.6,154.7,60.5,182.6,1 866,-1,274.9,619.5,86.7,254,1 866,-1,558.4,116.4,59.3,176.8,1 866,-1,339.6,308.4,81,182.1,1 866,-1,1578.4,18.2,47.8,142.2,1 866,-1,299.7,161,70.4,195.8,1 866,-1,752.7,70.5,55,163.5,1 866,-1,431.8,297.5,54.6,194.4,1 866,-1,240.4,134.4,51.9,164.4,1 866,-1,1414.2,16.9,51.1,154.8,1 866,-1,254.5,1.1,54.2,120.3,1 866,-1,415.8,154.8,58.8,174.2,1 866,-1,909.3,499.5,70.4,230.8,1 866,-1,358.3,169.7,35.1,164.5,0.052 870,-1,1221.4,29.6,61.9,118.8,1 870,-1,687.4,206.1,78.8,113.5,1 870,-1,481.2,1.8,47.9,124.8,1 870,-1,795.5,137.8,77.5,177.2,1 870,-1,1088,2.3,54.9,137,1 870,-1,1477,75.4,58.9,156.1,1 870,-1,336.1,312.6,84.4,181.2,1 870,-1,1720.7,453.8,79.2,212.3,1 870,-1,1575.9,591.4,102.1,234.9,1 870,-1,1688,48.2,54.1,162.8,1 870,-1,275.9,628,88.7,256.5,1 870,-1,557.2,116.3,60.2,175.4,1 870,-1,477.6,157.6,59.8,184.9,1 870,-1,989.4,472.4,76.4,233.6,1 870,-1,1580.3,20.1,49.2,147.1,1 870,-1,300.1,161.5,69.4,193.1,1 870,-1,903.8,489.9,70.6,225.5,1 870,-1,253.6,1,54.9,119.5,1 870,-1,752.5,69.8,55.1,164.5,1 870,-1,239,132.4,52.8,166.7,1 870,-1,1417.2,17.9,49.5,151.5,1 870,-1,430.1,300.2,57.4,207,1 870,-1,412.9,158,58.8,176.5,1 871,-1,1221.4,29.4,62.1,118.6,1 871,-1,687.3,206.3,78.9,113.5,1 871,-1,794.6,138.3,79.1,176.4,1 871,-1,1087.4,2.3,55.9,138.7,1 871,-1,1477.2,78.8,58.7,150.6,1 871,-1,481.5,1.2,47.2,125.8,1 871,-1,333.9,313.1,86.9,181.3,1 871,-1,276,630.2,88.8,259,1 871,-1,1575.5,590.1,103.4,235.4,1 871,-1,1689.9,47.7,52.9,162.4,1 871,-1,1723,453.5,76.5,213,1 871,-1,1580,20.6,50.2,148.6,1 871,-1,300.9,161.4,69.7,194.8,1 871,-1,476.8,157.3,62.1,191.1,1 871,-1,558.2,117.6,59.1,176.5,1 871,-1,988.5,472.9,74.7,232.4,1 871,-1,1417.6,14.6,50.2,154.9,1 871,-1,753.1,72.7,54.2,161.8,1 871,-1,253.5,1,54.8,120.5,1 871,-1,902.2,487.2,71.6,228.7,1 871,-1,238.4,133.1,53.2,166.8,1 871,-1,429.6,303,56.9,203.7,1 871,-1,412.1,159,58.1,177.7,1 878,-1,1221.4,29.2,62.1,118.9,1 878,-1,686.7,205.9,79.7,114,1 878,-1,1085.6,1,62.5,152.5,1 878,-1,1479.8,84.2,59.3,156.8,1 878,-1,794.4,138.1,75.8,175.1,1 878,-1,476.9,1.3,48.1,129.5,1 878,-1,1721.8,453.9,78.2,213.9,1 878,-1,1575,590.2,103.7,234.8,1 878,-1,559.2,117.2,58.4,176.1,1 878,-1,284.6,640.8,84.6,257.9,1 878,-1,300.8,163,70.1,194.3,1 878,-1,897.1,479.9,70.9,232.7,1 878,-1,478.9,168.3,61.9,179.8,1 878,-1,333.5,319.7,83,184.1,1 878,-1,1576.4,31.6,56.2,150.9,1 878,-1,1420.3,5.4,51.8,153.9,1 878,-1,752.9,71.4,55.4,163.3,1 878,-1,1695.1,52.7,50.8,170.1,1 878,-1,986.1,464.3,67.1,231.3,1 878,-1,252.9,1.3,54.3,121.8,1 878,-1,407.9,164.2,58.9,177.5,1 878,-1,428.8,305,55.9,205.8,1 878,-1,240.1,130.8,51,168.1,1 878,-1,1761.4,682.5,94.1,234.4,1 878,-1,1499,5.7,55.3,157,0.536 879,-1,1221.2,29.4,62,119.3,1 879,-1,687.2,206,78.9,113.3,1 879,-1,1086,1,62,153.7,1 879,-1,1479.3,88.2,59,153.6,1 879,-1,794.7,139.3,73.9,173.8,1 879,-1,476.6,2.5,47.1,128.4,1 879,-1,1722.1,452.6,78,216.1,1 879,-1,1575.1,589.6,103.3,236,1 879,-1,301.8,162.1,70.8,195.6,1 879,-1,558.7,117,59.2,177.1,1 879,-1,284.9,641.7,84,257,1 879,-1,895,479.4,71.7,232.1,1 879,-1,479.4,168.7,60.9,180.7,1 879,-1,334.9,322.5,81.7,183.7,1 879,-1,1577.3,31.8,55.5,150.6,1 879,-1,1420.9,4.5,52.3,155.7,1 879,-1,1694.6,56.4,51.3,166.7,1 879,-1,753,72,56,162.7,1 879,-1,984.1,461.8,69.3,231.5,1 879,-1,253.4,1,54.2,123.1,1 879,-1,428.8,307.1,55.4,204.4,1 879,-1,407.4,166.4,58.8,177.8,1 879,-1,240.2,129.7,51.5,168.4,1 879,-1,1758.8,682.6,93.7,235.8,1 879,-1,1498.5,6.4,55.7,152.2,0.681 881,-1,1221.1,29.6,62.4,118.7,1 881,-1,1086.8,1,62.3,154.9,1 881,-1,686.8,206.1,79.3,113.6,1 881,-1,1478.9,87.6,59.7,153.7,1 881,-1,794.6,139.6,73.1,173.9,1 881,-1,475.3,2,47.9,133,1 881,-1,1575.3,590.3,103.4,235.6,1 881,-1,301.7,161.3,70.1,197.3,1 881,-1,1722.2,454.1,78.2,213.5,1 881,-1,286.5,645.1,86.5,248.6,1 881,-1,558.8,116.1,58.4,176.7,1 881,-1,479.4,171.1,60.5,181.9,1 881,-1,893.8,475.8,70.4,231.6,1 881,-1,333.4,325.4,82.2,186.7,1 881,-1,1696.2,53.5,54.9,171.2,1 881,-1,1578,32.9,56.2,149.7,1 881,-1,753.3,72.1,55.5,162.9,1 881,-1,981.8,460,68.7,231,1 881,-1,1422.4,4.4,50.6,155,1 881,-1,427.3,309.1,57.5,204.7,1 881,-1,253.8,1,53.5,122.5,1 881,-1,406.7,168.2,59.7,180.1,1 881,-1,240.1,130.7,50.8,168.6,1 881,-1,1754.6,682.9,93.9,233.4,1 881,-1,1496.7,1.6,56.3,150.7,0.999 887,-1,1220.9,29.6,62.1,119.4,1 887,-1,1481.8,87.6,59.7,158.3,1 887,-1,686.9,206.2,79.4,113.7,1 887,-1,1098.5,2.6,57,157.9,1 887,-1,793.7,139.5,75.6,173.7,1 887,-1,332.7,335,80.8,182.3,1 887,-1,1574.1,591.1,104.4,234.6,1 887,-1,292.5,656.2,81.2,249.2,1 887,-1,1702.4,57.2,53.3,171,1 887,-1,302.1,160,69.3,198.3,1 887,-1,1723,452.9,76.7,215.4,1 887,-1,558.8,118,58.4,172.8,1 887,-1,478,169.6,63.6,189.7,1 887,-1,753.4,71.1,53.9,164,1 887,-1,425,319.7,57.3,203.2,1 887,-1,973.5,446.8,74.5,227.6,1 887,-1,890.2,463.9,68.4,224.6,1 887,-1,255.1,1.4,53.7,120.3,1 887,-1,472.6,1.4,47.5,139.3,1 887,-1,1424.4,4.3,51.4,154,1 887,-1,1582.6,34,55.8,158.2,1 887,-1,240,132.1,53.6,167.6,1 887,-1,405.3,169.5,57.6,182.6,1 887,-1,1751.9,681,89.6,236.9,1 887,-1,1494.5,1,61.9,147.1,1 887,-1,403.1,59.2,58.5,178.5,0.982 887,-1,1357.3,935.7,92.4,145.3,0.754 887,-1,313.5,5.2,40.1,119.1,0.157 888,-1,1221.3,29.3,61.9,120.2,1 888,-1,687,205.8,79.4,114.4,1 888,-1,1480.8,88.1,61.2,159.3,1 888,-1,1100.2,3.7,56.2,159,1 888,-1,793.1,138.4,76.4,174.5,1 888,-1,332.1,335.5,81.6,182.4,1 888,-1,1702.3,57.8,55.4,171.5,1 888,-1,1722.8,453,77.4,215.1,1 888,-1,478.5,173.1,63,187.9,1 888,-1,1574.4,591.5,104.3,234.2,1 888,-1,300.4,159.5,70,198.4,1 888,-1,558.5,117.6,58.6,173.7,1 888,-1,972.3,444.7,73.5,228.2,1 888,-1,291.7,656.9,84.1,251.4,1 888,-1,472.6,1.4,48.1,140.3,1 888,-1,1585.8,36.2,54,157.3,1 888,-1,753.6,71.8,53.7,163.1,1 888,-1,1424.4,4.6,51.8,153.4,1 888,-1,424.1,322.2,57.7,203.5,1 888,-1,889.8,461.3,68.7,224.6,1 888,-1,255.2,1.5,53.8,120.8,1 888,-1,1749.7,681.7,89.5,235.7,1 888,-1,240.1,132.6,53.4,167.8,1 888,-1,405.7,170.7,58,181.5,1 888,-1,1493.6,1,63,146,1 888,-1,404.6,58.6,59.6,173.6,0.996 888,-1,1354.6,931.5,93.8,149.5,0.831 888,-1,313.2,1.9,43.5,123.8,0.804 888,-1,356,169.1,36.5,158.4,0.073 890,-1,1221,29.8,62.4,119.4,1 890,-1,686.6,205.9,80.3,114.1,1 890,-1,1101.8,4.9,55.5,159,1 890,-1,1481.3,93.2,59.5,154.6,1 890,-1,793.4,139.4,75.6,173.6,1 890,-1,479.3,179.7,61.7,181.4,1 890,-1,1704.6,59.4,53.8,172.3,1 890,-1,332.9,336.5,81,181.6,1 890,-1,1574.7,591.5,104.2,234.8,1 890,-1,1722,455.1,78.1,212,1 890,-1,557.9,117.8,59.1,173.9,1 890,-1,300.1,160.3,70.5,196.9,1 890,-1,294.6,662.4,82.7,248.4,1 890,-1,423.5,325,57.9,203.8,1 890,-1,470.7,1,50,140,1 890,-1,753.6,71.5,53.6,162.5,1 890,-1,887.6,460.6,70.8,223.6,1 890,-1,1425.5,3.2,51.2,153.4,1 890,-1,1588.3,38.5,51.9,153.5,1 890,-1,254,1.6,54.3,119.9,1 890,-1,970.8,442.6,79.4,230.4,1 890,-1,1748.6,681.4,88.6,234.7,1 890,-1,240.4,132.7,54.1,168.7,1 890,-1,403.6,172,57,178.5,1 890,-1,1493.4,1,63.6,146.8,1 890,-1,406.8,54.3,60,175.6,0.999 890,-1,315.1,1.7,44.4,123.7,0.999 890,-1,1350.5,923.8,92.6,157.2,0.961 890,-1,360.7,166.9,37.4,164.1,0.524 893,-1,1221.3,29.6,62.2,118.9,1 893,-1,687.1,206,79,114,1 893,-1,1104.1,12.2,55.5,156.3,1 893,-1,1483.1,93.7,58.9,156,1 893,-1,479.6,186,62.1,178.5,1 893,-1,793.5,139.2,75.4,173.5,1 893,-1,1576.2,593.3,102.4,235.6,1 893,-1,298.6,665.7,82.9,249.5,1 893,-1,558.4,117.1,59,174.8,1 893,-1,1721.2,455,78.5,212.1,1 893,-1,1425.7,1,52,154.8,1 893,-1,469.9,1,51,146.6,1 893,-1,965.7,443.4,84.2,229.1,1 893,-1,336.1,342.4,79.5,180.6,1 893,-1,753.2,70.2,55.1,164.1,1 893,-1,421.5,328.1,56.8,204.1,1 893,-1,1707.7,63.8,53.1,176.5,1 893,-1,1593.1,47.2,50,154.3,1 893,-1,1748.2,680.6,88.6,236.3,1 893,-1,301.8,161.2,67.6,192,1 893,-1,884.8,455.9,68.1,227.9,1 893,-1,254.2,1.4,54.1,119,1 893,-1,241.3,133.1,56,169.9,1 893,-1,402.7,176.4,55,179.9,1 893,-1,314.1,1.4,47.1,125.8,1 893,-1,1495.3,1,62.7,147.8,1 893,-1,412.6,58.5,56,169.9,0.999 893,-1,1339.4,921.9,99.3,159.1,0.975 893,-1,352.1,165.8,43.3,176.1,0.658 894,-1,1221.3,29.9,62.1,119.4,1 894,-1,687.2,206.1,79.1,114.5,1 894,-1,793.8,139.3,77,174.1,1 894,-1,1483.9,97.2,58.9,152.9,1 894,-1,1105.1,13.7,55.2,156.8,1 894,-1,479.7,186.6,61.7,177.8,1 894,-1,297.7,667.1,85.1,250,1 894,-1,1574.5,590.5,104.5,235,1 894,-1,1721.2,454.9,78.6,211.8,1 894,-1,558.7,116.8,58.7,174.2,1 894,-1,1426.2,1,51.7,154.1,1 894,-1,753.3,70,55,164.4,1 894,-1,469.8,1,51.6,147.5,1 894,-1,335.9,343,81.2,182.9,1 894,-1,421.1,329.2,56.6,203.8,1 894,-1,965.8,439.5,86.7,233,1 894,-1,302.1,160.7,67.1,193.2,1 894,-1,1707.9,66.2,54.2,176.8,1 894,-1,884.4,455,67.2,227.5,1 894,-1,1593.7,46.4,50.3,156.4,1 894,-1,240.2,132.2,56.7,170.2,1 894,-1,253.8,1.3,54.5,119.1,1 894,-1,1747.1,680.9,91.2,234.6,1 894,-1,400.7,178.6,56.2,180.6,1 894,-1,313.9,1,48,127.2,1 894,-1,1497.2,1,60.8,148.6,1 894,-1,413.4,57.2,55.1,174.7,0.999 894,-1,1336.4,921,101.3,160,0.989 894,-1,354.6,167.9,41.8,172.3,0.477 900,-1,1221.5,30.5,61.7,118.9,1 900,-1,478.4,186.7,63.3,182.6,1 900,-1,687.1,206.3,79.2,114,1 900,-1,297.7,671.8,94.3,256,1 900,-1,793.6,140.4,75.5,171.4,1 900,-1,1429.7,1,50.6,145.3,1 900,-1,1486.6,104.3,56.6,146.7,1 900,-1,560.2,117.1,57,171.3,1 900,-1,1721.1,452.7,78.3,214.6,1 900,-1,1597.1,49.6,51.2,161.1,1 900,-1,392,189.5,58.5,174.4,1 900,-1,1574.3,590,103.3,237,1 900,-1,303,162.4,66.8,192.8,1 900,-1,1110.6,22.1,53.8,155.9,1 900,-1,1710.6,80.3,55.1,168.4,1 900,-1,968.9,426.2,79,228.2,1 900,-1,337.4,354.1,77.3,185.3,1 900,-1,753.7,72.8,54.7,160.8,1 900,-1,469.1,3.8,50.9,149.3,1 900,-1,420.1,332.3,54.7,203.5,1 900,-1,877.4,445,66.7,218.9,1 900,-1,1746.3,678.8,92.8,239.3,1 900,-1,254.7,1,52.1,118.4,1 900,-1,242.8,133.9,56.2,168.3,1 900,-1,314.2,1,48.4,129.6,1 900,-1,1501,1.3,57.9,145.2,1 900,-1,418.2,58.3,54.5,178.3,1 900,-1,1329.1,898.2,89.6,182.8,1 903,-1,1221.7,30.1,60.9,119.3,1 903,-1,477.6,191.2,63.8,185.3,1 903,-1,686.8,206.1,79.6,113,1 903,-1,793.9,140.7,76.1,172.4,1 903,-1,299.9,678.6,94.9,257.2,1 903,-1,1431.4,1,49.2,146.2,1 903,-1,1484.6,104.5,57.6,147.9,1 903,-1,1574.5,590.6,103.5,235,1 903,-1,1722.2,453.9,77.7,213.2,1 903,-1,388.9,190.6,57.8,176.4,1 903,-1,1597,51.7,52.6,161.3,1 903,-1,558.9,114.9,57.2,174.2,1 903,-1,302,162.1,68.6,197.4,1 903,-1,331.8,352.2,82.2,184.5,1 903,-1,1110.7,22.3,57.8,158.7,1 903,-1,1712.5,83.4,56,166.4,1 903,-1,470.5,3.8,49.9,149.4,1 903,-1,971,418.3,69.3,231.1,1 903,-1,1745.2,679.4,94.3,240,1 903,-1,752.8,74.7,56,158.1,1 903,-1,875.3,439,67.7,220.9,1 903,-1,418.2,334.6,57.6,209,1 903,-1,254,1,53.6,118.8,1 903,-1,1503,2.8,56.3,140.9,1 903,-1,242.6,133.8,57.1,168.1,1 903,-1,1320.1,887.2,96,193.8,1 903,-1,313.6,1,46.9,130.5,1 903,-1,419.5,62.7,53.2,175,1 913,-1,1221.8,30.1,61.3,119.3,1 913,-1,686.5,206.2,79.6,113.5,1 913,-1,469,202.4,67.9,189,1 913,-1,794,139.4,75.4,172.9,1 913,-1,1431.8,1,49.2,139.5,1 913,-1,1111.4,35.1,62.6,162.9,1 913,-1,1575.5,590,103.7,235.9,1 913,-1,557.7,114.5,57.8,175,1 913,-1,1301,864.6,95.7,216.4,1 913,-1,1722.5,452.3,77.6,215,1 913,-1,1476.7,105.7,62.9,156.8,1 913,-1,328.7,363.1,83.6,192.7,1 913,-1,871.5,426.6,62.1,223.5,1 913,-1,307.6,697.4,89.3,266.6,1 913,-1,414.6,348.5,58.1,207.6,1 913,-1,752.3,74,56,159.7,1 913,-1,1602.3,65.2,52.8,161,1 913,-1,301.5,163.4,70.1,199.2,1 913,-1,377.7,196.6,58.8,177.9,1 913,-1,241.2,134.1,56.2,164.5,1 913,-1,421.9,65.8,59.3,177.2,1 913,-1,963.2,410,65,223.9,1 913,-1,1746.9,681,96.6,241,1 913,-1,1719.1,91.2,54.9,172.1,1 913,-1,469.5,15,50.2,148.1,1 913,-1,313,1.4,47.8,131.9,1 913,-1,253.4,2,54.6,119.4,1 913,-1,1501.2,2.2,57.9,134.2,1 919,-1,1221.6,30,61.8,119.4,1 919,-1,685.8,206.2,81.2,113.4,1 919,-1,794.3,141.2,74.3,171.1,1 919,-1,1118.6,34.4,58.5,167.2,1 919,-1,1291.1,840.4,97.1,240.6,1 919,-1,1574.7,589.1,104.3,236.5,1 919,-1,557.8,117.2,57.7,170.7,1 919,-1,461.3,202.8,68.1,189,1 919,-1,1476.1,107.3,63.6,157.7,1 919,-1,1722.6,451.5,76.9,217.4,1 919,-1,307.6,708.5,88.7,257.6,1 919,-1,1609.2,69.5,52.9,163.8,1 919,-1,1432.5,2.8,47.2,131.4,1 919,-1,751.5,74.1,55.4,159.1,1 919,-1,327.4,371.6,80.6,190.5,1 919,-1,954.7,396.8,71.9,223.9,1 919,-1,866.2,416.7,65.5,217.6,1 919,-1,408.8,352.6,59.5,211.1,1 919,-1,301.1,162.2,69.3,199.5,1 919,-1,1725.9,96.6,53.7,170.8,1 919,-1,1494.7,1.4,60.9,132.7,1 919,-1,375.2,207.3,57.7,174.6,1 919,-1,240.5,133.5,54.5,166.3,1 919,-1,1746.8,675.5,97.3,245.2,1 919,-1,469.7,16.4,51.8,150.9,1 919,-1,423.4,65.4,62.9,176.3,1 919,-1,253.8,1.7,54.5,122.2,1 919,-1,313.5,1.8,49.4,132.9,1 920,-1,1222,30.5,61.1,118.5,1 920,-1,686.4,206.2,80.1,113.5,1 920,-1,794,140.9,75.2,171.9,1 920,-1,1119.9,38,58.7,165.8,1 920,-1,461,205.2,67.2,190.8,1 920,-1,1290.1,837.6,94.7,243.4,1 920,-1,1476.3,107.7,63.3,161.1,1 920,-1,1574.9,589.9,103.3,235.2,1 920,-1,1611.3,72,51.6,162.1,1 920,-1,1720.9,451.9,79.3,215.5,1 920,-1,557.1,117,57.5,171,1 920,-1,954.4,392.6,72.2,227.3,1 920,-1,1430.7,2,47.6,132.6,1 920,-1,751.4,73.3,56,160.5,1 920,-1,330.7,372.2,81,190.7,1 920,-1,307.9,710.9,88.7,255.2,1 920,-1,301.2,162.4,70.3,199.3,1 920,-1,866.6,414.6,64.2,217.6,1 920,-1,409.1,355.6,57.8,209.7,1 920,-1,1494.3,1.1,60.9,130.5,1 920,-1,1727,97,53.9,172.1,1 920,-1,240.3,133.5,54.9,165.3,1 920,-1,374.3,208.4,56.9,174.6,1 920,-1,470,16.1,52.5,152.1,1 920,-1,1747.5,678.2,94.6,244.8,1 920,-1,423,66,63.1,178.2,1 920,-1,253.5,2.1,54.2,121.3,1 920,-1,313.6,1.8,48.1,133.2,1 936,-1,1221.5,30,62,119.3,1 936,-1,686.6,206.4,79.8,113.1,1 936,-1,793.5,140.1,74.7,172.9,1 936,-1,445.2,217.9,68,190.8,1 936,-1,1126.6,55.2,63.5,172.1,1 936,-1,1485.3,1,61.2,123.4,1 936,-1,1478.1,122.6,59.3,160.2,1 936,-1,1621.7,86.7,56.8,168.3,1 936,-1,554.8,115.4,58.8,174.4,1 936,-1,1574.4,587.1,103.8,238.4,1 936,-1,1720.1,454.5,78.5,214.3,1 936,-1,749.5,69.1,56.7,164,1 936,-1,474.6,24.4,55.8,154.5,1 936,-1,238.5,135.2,57,166.3,1 936,-1,944,371.7,73.8,221,1 936,-1,319.5,737,92.5,263,1 936,-1,328.4,390.7,79.7,190,1 936,-1,1263.8,793.4,97.2,279.8,1 936,-1,859.1,391.5,64.8,215.2,1 936,-1,1738.7,118.7,56.8,173.9,1 936,-1,1423.1,3.2,45.4,118.7,1 936,-1,396.6,371.8,65.5,213,1 936,-1,304.1,161.8,67.7,199.7,1 936,-1,1746.2,675.1,91,249.3,1 936,-1,360.3,222.2,60.2,181.5,1 936,-1,255.4,1,52.6,120.6,1 936,-1,432.2,69.8,55.5,178.6,1 937,-1,1221.4,29.8,61.5,119.5,1 937,-1,686.6,206.2,79.8,113.4,1 937,-1,1126.2,56.7,63.8,171.8,1 937,-1,793.7,139.2,74.9,174.4,1 937,-1,445.1,218.7,69.1,188.9,1 937,-1,1485.4,1,61.3,123.1,1 937,-1,1477.3,122.6,59.8,159.3,1 937,-1,1623.2,88.5,56.5,168.5,1 937,-1,1575.1,588,103.1,237.3,1 937,-1,556,116.5,57.8,173.6,1 937,-1,1721,455,78.4,212.1,1 937,-1,238,135.7,57.9,166,1 937,-1,749.2,68.7,56.9,164.8,1 937,-1,474.9,25.4,55.4,153.2,1 937,-1,320.9,738.3,91.6,263,1 937,-1,329.6,391.9,78.6,187.8,1 937,-1,1739.9,119,57.3,177,1 937,-1,1746.1,675.4,91.9,248.6,1 937,-1,858.3,389.1,65.1,215.5,1 937,-1,1421.9,2.4,45.4,119,1 937,-1,944.9,370.4,70.7,222.1,1 937,-1,1262.9,790.3,96.8,283.6,1 937,-1,398.1,375,63,215.1,1 937,-1,305.1,161.4,67.2,198.5,1 937,-1,359,223.5,60.3,183.3,1 937,-1,255.2,1,52.6,121.2,1 937,-1,433,70.7,55.3,180.1,1 940,-1,1221.6,29.7,62.2,119.5,1 940,-1,686.5,206.4,79.9,113.2,1 940,-1,793.9,139.2,74.5,174.2,1 940,-1,443.3,223.5,68.4,189.2,1 940,-1,1476.5,125.1,60.4,160.5,1 940,-1,1485,1.1,62.2,120.2,1 940,-1,1129.7,63.7,63.8,169.8,1 940,-1,1574.8,588.3,103.8,237.9,1 940,-1,555.1,116.8,57.4,172.3,1 940,-1,1720.2,455.3,79.2,212.2,1 940,-1,750.1,69.8,56.5,163.2,1 940,-1,1624.7,94.5,57,169.8,1 940,-1,322.9,744.8,94,267,1 940,-1,238,134.1,57.9,169.8,1 940,-1,1741.6,125.8,59.6,176.7,1 940,-1,1257.8,783,94.5,284.3,1 940,-1,859.2,387.7,64.2,211.7,1 940,-1,1418,1.6,47.6,119.2,1 940,-1,355.3,226.1,62,182.7,1 940,-1,942.7,368.6,68.5,219.1,1 940,-1,394.9,378.5,66.8,216.5,1 940,-1,475.9,30.3,54.8,153.2,1 940,-1,254,1,53.5,119.6,1 940,-1,327.1,390.8,81.1,193.2,1 940,-1,1745.5,676.1,90.9,248.2,1 940,-1,434.3,71.2,54.7,179,1 940,-1,308.2,162.2,63.7,196.3,1 941,-1,1221.9,29.8,61.8,119.2,1 941,-1,686.5,206.5,79.9,113.3,1 941,-1,794,139.9,74.2,173.5,1 941,-1,1484.6,1,62.4,117.7,1 941,-1,441.5,224.7,68.2,188.9,1 941,-1,1130.7,65.5,64,169,1 941,-1,1476.8,126,59.8,161.5,1 941,-1,1575.5,588.3,103,237.6,1 941,-1,554.7,116.3,57.4,171.9,1 941,-1,749.7,69.4,56.5,163.5,1 941,-1,1625.5,95.3,57.9,168.9,1 941,-1,237.1,133.7,58.6,169.1,1 941,-1,1720.7,455.2,77.7,212.8,1 941,-1,323,747.8,95,267.2,1 941,-1,1257.4,783.1,95,284.5,1 941,-1,354.8,225.8,60.8,181.8,1 941,-1,858.6,386.7,64,212.5,1 941,-1,395.3,378.1,65.8,218.4,1 941,-1,1743.3,129.5,57.7,174.7,1 941,-1,1418.6,1.6,47.4,118.4,1 941,-1,476.2,32.1,54.3,152.1,1 941,-1,942.9,368.7,67.6,219.4,1 941,-1,1745.4,674.6,91,249.8,1 941,-1,328.5,391.6,78.9,192.4,1 941,-1,254.2,1,52.7,119.7,1 941,-1,434.3,71.5,55.8,181.9,1 941,-1,309.8,162.6,62.8,197.7,1 941,-1,484.4,212,47.5,177.4,0.111 942,-1,1222,29.7,61.7,118.9,1 942,-1,686.4,206.2,80,113.5,1 942,-1,794.4,140.4,74.5,172.4,1 942,-1,1130.8,67.2,64.8,168.8,1 942,-1,439.6,224.4,69.8,192.8,1 942,-1,1485.3,1.5,61.2,116.5,1 942,-1,1576.6,590.9,101.5,237.7,1 942,-1,1476.6,124.2,61.7,166.3,1 942,-1,555.2,116.4,56.8,172.2,1 942,-1,749.5,69.1,57,164.5,1 942,-1,322,749.2,97.1,268,1 942,-1,1625.6,94.8,57.3,169.5,1 942,-1,237,132.6,58.3,170.3,1 942,-1,1255,781.6,94.8,283.5,1 942,-1,1720.9,454.3,77.8,213.3,1 942,-1,353.7,225.2,60.2,182.5,1 942,-1,858.7,385.7,64.1,213.8,1 942,-1,1743.6,132.4,59.8,171.3,1 942,-1,395.1,380.3,64.7,217.9,1 942,-1,942.1,367.7,67.7,219.3,1 942,-1,1418.6,2.1,47.3,118.3,1 942,-1,476.5,33.4,53.7,152.5,1 942,-1,328.3,392.4,79,193.7,1 942,-1,1744,674.1,91.9,248.8,1 942,-1,254.6,1,53.1,120.6,1 942,-1,309.9,163.1,63,196.2,1 942,-1,434,73.1,55.9,180.3,1 943,-1,1221.7,30.2,62,118.8,1 943,-1,686.5,206.1,79.9,113.2,1 943,-1,793.5,140.1,75.8,172.9,1 943,-1,1485.3,1,60.1,115.9,1 943,-1,1476.5,127,61.1,162.2,1 943,-1,1130.6,67.5,65.2,169.7,1 943,-1,1576.4,591.5,101.5,237.9,1 943,-1,323.7,752.2,95.3,267.1,1 943,-1,439.4,225.9,67.5,192.1,1 943,-1,749.7,70.6,56.7,162.6,1 943,-1,554.2,116.9,57.7,172.6,1 943,-1,1627,95.7,56.5,167.9,1 943,-1,1720.8,454.4,77.4,213.2,1 943,-1,1251.5,781,97.1,284.8,1 943,-1,859.2,384.4,63.3,212.8,1 943,-1,237.3,133.3,58.1,170.5,1 943,-1,352,224.4,61.7,181.5,1 943,-1,327.3,393.5,79.2,194.8,1 943,-1,1418,1.6,47.8,117.7,1 943,-1,394.8,379.5,65.7,218.3,1 943,-1,1744.4,131.2,60.8,173.8,1 943,-1,941.7,366.5,67.2,218.6,1 943,-1,1743.4,673.4,92.1,250,1 943,-1,254,1,53.1,119.9,1 943,-1,476,35.8,54,152.4,1 943,-1,434.3,74,56.4,179.5,1 943,-1,308.2,162.8,65.2,195.8,1 943,-1,481.7,215.3,52.2,178,0.907 947,-1,1221.1,29.6,62.5,119.6,1 947,-1,686.6,206.5,80.2,113.1,1 947,-1,794.9,138.9,73,174.8,1 947,-1,1485.1,1,57.5,114.4,1 947,-1,1474.8,132.1,62.1,169.6,1 947,-1,323.1,759.6,94.5,274.2,1 947,-1,750,70.3,56.5,164,1 947,-1,1137.9,67,60.6,169.6,1 947,-1,1575,588.3,103.6,236.9,1 947,-1,1416.3,1.1,47,119.2,1 947,-1,1633.2,96.2,55,167,1 947,-1,1246.4,768.7,94.8,281.4,1 947,-1,1720,454.5,78.4,213,1 947,-1,935.5,361.9,67.7,215.4,1 947,-1,347.9,230.2,59.8,179.6,1 947,-1,431.5,228.8,68.7,192.1,1 947,-1,395,383.7,65.6,215.9,1 947,-1,553.9,116.4,54.7,171.7,1 947,-1,856.7,376.2,65.3,205.8,1 947,-1,324.2,402.7,80.8,197.7,1 947,-1,235.6,129.5,59.2,178.3,1 947,-1,434.2,80.2,62.3,172.3,1 947,-1,1742.5,672.6,93.1,250.9,1 947,-1,1752.1,134.1,60.1,177.9,1 947,-1,251.8,1.2,53.1,119.9,1 947,-1,477.5,37.8,54.4,150.1,1 947,-1,480.6,215.6,59.9,182.5,1 947,-1,312.7,165.3,60.9,193.8,1 952,-1,686.3,206,80.3,113.3,1 952,-1,1221.2,29.5,62.2,119,1 952,-1,793.6,139.6,73.7,173.9,1 952,-1,1473.9,140.1,63.4,165.8,1 952,-1,1481.2,1,54,110.4,1 952,-1,1145.7,75,58.9,170.8,1 952,-1,321.5,767.9,95.4,273.8,1 952,-1,1574.3,587,103.9,237.7,1 952,-1,750.8,72.5,56,160.3,1 952,-1,852.1,363.3,69.6,211.4,1 952,-1,932.1,349.7,70,216,1 952,-1,1720.6,452.9,78.1,214.3,1 952,-1,1638.9,106.1,52.9,168.3,1 952,-1,1242.4,755.7,92.3,269.4,1 952,-1,553.7,115.2,54.4,171.2,1 952,-1,426.6,234.2,66.7,185.6,1 952,-1,1414.4,3,45.4,111.3,1 952,-1,391.7,388,66.9,213,1 952,-1,1757.4,135.9,63.5,182.2,1 952,-1,233.3,134.3,57.5,171.6,1 952,-1,322.2,409.6,79.2,195.8,1 952,-1,436.4,77.9,54,173.4,1 952,-1,344.2,235.9,62.4,185.4,1 952,-1,1742.7,675.3,94.8,250,1 952,-1,479.5,37.9,54.9,158.6,1 952,-1,480.2,218.6,61.5,182.7,1 952,-1,246.5,2.1,54.6,121.5,1 952,-1,288.1,127.4,53.1,164.6,0.997 952,-1,318,172.9,57.3,186.5,0.99 956,-1,686,206.6,80.6,112.7,1 956,-1,1221.5,30.1,62.3,119,1 956,-1,793.4,140.3,74.4,172.5,1 956,-1,1471.3,138.3,65.8,162,1 956,-1,1476.4,1,55.6,108.2,1 956,-1,1150.3,82.2,58,166.5,1 956,-1,928.2,344.6,74.2,220.5,1 956,-1,1762.4,145.3,65.2,175.3,1 956,-1,1642.2,110,53.8,167.3,1 956,-1,1577.4,591.2,99.7,236.4,1 956,-1,1409.5,2.2,46.4,108.7,1 956,-1,751.1,72.7,56,161.2,1 956,-1,1720,452.7,79.1,215.2,1 956,-1,850.8,360.8,69.5,212.1,1 956,-1,319.7,410,78.9,196.1,1 956,-1,551.6,117.7,55.2,170.8,1 956,-1,320.3,773.7,96.5,269.2,1 956,-1,1232.2,744.3,96.9,272.3,1 956,-1,421.8,235.2,70.7,195.7,1 956,-1,390,395,67,219.5,1 956,-1,437.7,75.3,56.3,176.7,1 956,-1,230.7,137.1,56.9,165.8,1 956,-1,482.2,224.8,63.3,181.7,1 956,-1,340.2,238.6,63.1,183.6,1 956,-1,1742.5,676.9,93.9,250.5,1 956,-1,481.2,45.1,55.2,161.5,1 956,-1,288.3,126.8,54.2,170.7,1 956,-1,242.6,3.3,53.7,122.9,0.999 956,-1,312.5,1,47.3,134.3,0.868 956,-1,324.1,167.8,46.8,195.8,0.476 963,-1,686.1,206.1,80.3,113.7,1 963,-1,1220.4,30.5,62.4,120.3,1 963,-1,793.7,140,72.5,172,1 963,-1,1767.5,151.7,69.3,177.5,1 963,-1,925.7,339,76.1,213.7,1 963,-1,1403.9,1.9,48.9,104.6,1 963,-1,1573.8,589,105.2,236.8,1 963,-1,1471.1,149,67.3,161.9,1 963,-1,1645.4,110.4,59,173.7,1 963,-1,327.7,790.4,89,270.1,1 963,-1,418.7,247,70.1,193.8,1 963,-1,1463.3,1,61.1,104.3,1 963,-1,1154.5,84.6,61.5,172.1,1 963,-1,751.3,69,55.4,167,1 963,-1,1721.4,454,77.8,213.3,1 963,-1,229.3,137,55.8,165.8,1 963,-1,393.5,412.5,65.3,217.4,1 963,-1,847.5,348.4,68.5,207.5,1 963,-1,1220.7,732.6,92.2,265,1 963,-1,333.5,242.8,64.7,190.6,1 963,-1,487.1,232.6,63.8,178.5,1 963,-1,442.6,74.4,53.3,179.5,1 963,-1,550.1,118.3,55.4,172.3,1 963,-1,315.8,419,81.6,202.6,1 963,-1,1741.2,674.1,94.1,251.7,1 963,-1,288.9,121.9,53.4,174.3,1 963,-1,483.3,52.6,55.3,160.8,1 963,-1,312.6,1,48.9,132,0.999 963,-1,433.8,3.7,49.4,134.3,0.958 963,-1,388,1.8,49.7,120.2,0.203 963,-1,238.1,3.3,51.4,118.2,0.089 971,-1,686.2,206.6,79.9,112.6,1 971,-1,793.4,141.2,72.7,171.4,1 971,-1,1221.9,31.3,60.9,119.8,1 971,-1,1470.8,150.6,66.4,164.7,1 971,-1,1158.5,104,62.7,164.3,1 971,-1,414.3,251.7,71.3,191.7,1 971,-1,1773.1,159.3,68.7,185.8,1 971,-1,491.4,237,68.2,188.4,1 971,-1,332.2,804.5,91.4,276.4,1 971,-1,1651.3,126.8,58.8,171.3,1 971,-1,1575.8,590.1,102.8,235.2,1 971,-1,1720.6,454.1,79.1,213.4,1 971,-1,929.1,323,69.1,214,1 971,-1,752.4,73.1,55.2,161.5,1 971,-1,445.5,66.4,56.9,182.9,1 971,-1,329.6,248.7,63.6,198.3,1 971,-1,229.6,138.7,55.8,162.7,1 971,-1,310.2,432.3,86.3,197.1,1 971,-1,550.4,119.6,52.3,169.7,1 971,-1,846.7,339,65.6,210.8,1 971,-1,388.8,417.2,69.1,218.1,1 971,-1,1399.6,1.7,46.2,101.1,1 971,-1,1453.8,1,63.5,103.5,1 971,-1,1208.4,710.1,95.4,265.6,1 971,-1,1739.8,673.8,95.6,251.5,1 971,-1,291.1,126.3,52.8,170.4,1 971,-1,314.5,1,47,130.5,1 971,-1,486.1,56.9,54.3,157.9,0.999 971,-1,381,1,55,126.4,0.997 978,-1,686.5,206.5,79.7,112.5,1 978,-1,1222,30.6,61.6,119.7,1 978,-1,793.5,140.8,73,171.5,1 978,-1,1174.3,108.1,58,167.7,1 978,-1,411.6,260.9,67.9,192.3,1 978,-1,335.6,815.9,93.4,265.1,1 978,-1,493.6,248.1,67.7,188.1,1 978,-1,1468.7,154.5,70,168.1,1 978,-1,1576,590.1,102.4,236.4,1 978,-1,1659,129.8,57.3,173.4,1 978,-1,1781.4,163.8,69.6,187.4,1 978,-1,845.1,330.8,66.4,204.1,1 978,-1,751.6,70.7,55.5,165.2,1 978,-1,229.9,137.5,55.9,163.9,1 978,-1,306.4,438.7,84.9,201.8,1 978,-1,1719.2,455.3,80.5,210.6,1 978,-1,323.6,254.2,62.4,199.3,1 978,-1,1453.1,1,58.9,100.6,1 978,-1,927.2,319.7,65.4,211.6,1 978,-1,549.6,119.4,52.2,166.4,1 978,-1,1201.1,695.9,88.2,275.9,1 978,-1,392.1,429.1,64.3,218.1,1 978,-1,1739.8,675.6,97.3,253,1 978,-1,314.1,1.3,46.7,128,1 978,-1,448.2,59.6,54.6,187.4,1 978,-1,1392.6,1,47.5,96.1,1 978,-1,290.2,125.5,52.4,176.4,1 978,-1,379.9,1,55.1,133.2,1 978,-1,350.2,166.7,69.8,183.1,0.999 978,-1,490,62.1,51.5,157.1,0.998 998,-1,1221.6,30.7,62.1,120,1 998,-1,686.5,206.2,79.7,112.9,1 998,-1,793.9,140.1,74.7,172.9,1 998,-1,400,290.1,66.8,187.7,1 998,-1,1196.9,135.4,64,172.8,1 998,-1,1473.7,179.7,63.8,161.2,1 998,-1,1674.2,158.2,61.1,170.4,1 998,-1,231.2,135.7,54.9,166.5,1 998,-1,290.8,126.3,50.5,167.6,1 998,-1,503.4,265.5,63.3,183.9,1 998,-1,1804.5,191.4,67.6,187.5,1 998,-1,1576.5,590,102.3,235.8,1 998,-1,841.4,299.6,66.4,201.7,1 998,-1,1722.3,452.4,78.5,217.1,1 998,-1,924.5,291.9,69.2,207.5,1 998,-1,751.5,71.9,54.5,162.7,1 998,-1,301.3,464.8,86.3,208.9,1 998,-1,542,119.7,59,168.7,1 998,-1,334.3,860.7,91.6,220.3,1 998,-1,1175.8,642,88.5,265.9,1 998,-1,312.2,277.2,65.4,200.3,1 998,-1,1739.5,675.1,93,249.2,1 998,-1,314.5,1.3,45.7,130.4,1 998,-1,382.6,457.6,68.1,218.1,1 998,-1,438.8,64,61.5,172.9,1 998,-1,507.7,81.5,54.1,157.8,1 998,-1,388,168.5,73.8,181.4,0.999 998,-1,600.2,548.3,108.9,249.5,0.999 1000,-1,1221.7,30.3,61.3,119.1,1 1000,-1,686.5,206.5,79.8,112.1,1 1000,-1,794,140.8,74.8,170.6,1 1000,-1,503.1,266.7,64.4,186,1 1000,-1,397.9,288.7,67.7,193.7,1 1000,-1,1675.3,162.1,60.9,172.5,1 1000,-1,231.8,136.8,54.5,166.2,1 1000,-1,1474.8,184.9,62.5,158.3,1 1000,-1,1576.5,590,102.9,235.5,1 1000,-1,1807.5,197.7,68.4,184.8,1 1000,-1,290.4,124.9,51,170.4,1 1000,-1,1202.1,139.1,62.2,175.3,1 1000,-1,925.9,288.7,68.5,206.2,1 1000,-1,841.9,296.6,65.8,201.8,1 1000,-1,751.5,72.9,54.9,161.9,1 1000,-1,1722.6,452.1,77.4,217.3,1 1000,-1,301.6,468.9,84.3,209.8,1 1000,-1,541.5,120.2,59.8,168.3,1 1000,-1,311,276.7,66.4,199.6,1 1000,-1,1175.1,636.5,88.3,264.4,1 1000,-1,1740.3,675.3,92.8,249.6,1 1000,-1,337.5,870.4,90.1,210.6,1 1000,-1,381.7,457.8,68.3,218.9,1 1000,-1,313.3,1,43.2,131,1 1000,-1,597.5,548.2,109,249,1 1000,-1,438.9,65.8,61.3,171,1 1000,-1,508.5,85.8,53.1,155.3,1 1000,-1,388.8,167.7,75.4,190.8,0.999 1001,-1,1221.4,29.9,61.4,118.6,1 1001,-1,686.2,206.6,80.1,112.2,1 1001,-1,794.1,140.1,74.1,172.6,1 1001,-1,502.4,268.7,64.3,186.3,1 1001,-1,1474.4,184.3,63.1,158.2,1 1001,-1,1676,163.6,60.3,172.1,1 1001,-1,1203.2,138.1,63,175.3,1 1001,-1,397,290.2,68.2,193.4,1 1001,-1,290.2,124.9,51,169.3,1 1001,-1,232.3,137.6,53.7,165.4,1 1001,-1,1808.6,200.1,67.6,185.3,1 1001,-1,1576.3,590.2,102.4,235.2,1 1001,-1,926.5,286,68.9,207.5,1 1001,-1,842.5,295.8,64.9,203,1 1001,-1,1722,452.8,77.4,216.9,1 1001,-1,309.4,280.4,65,193.5,1 1001,-1,751.1,72.5,54.8,161.9,1 1001,-1,302,471,82.8,207.8,1 1001,-1,540.6,120.2,60,169.1,1 1001,-1,1175.4,635,86.2,259.4,1 1001,-1,382.3,457.6,68,220.1,1 1001,-1,338.7,872.8,90.2,208.2,1 1001,-1,1742.6,676.4,92.5,251.6,1 1001,-1,438.7,65.9,61.9,172.3,1 1001,-1,314,1.5,43.7,128.9,1 1001,-1,508.8,87.2,52.5,152.8,1 1001,-1,596.8,551,110.2,248,1 1001,-1,392.2,168.3,74.2,186.9,0.999 1013,-1,1221.2,30.4,62.4,116.6,1 1013,-1,686.6,206.4,79.8,112.8,1 1013,-1,793,140.2,74.1,173,1 1013,-1,495.9,286.9,69.3,187.4,1 1013,-1,289.6,126.3,53.3,171.7,1 1013,-1,385.7,291.3,77.8,199.3,1 1013,-1,537.9,122.3,62.6,167.8,1 1013,-1,1575.8,590.7,102.2,234.8,1 1013,-1,1827.5,209.4,60.6,193.4,1 1013,-1,1469.3,187.2,64.6,162.2,1 1013,-1,843.1,282.7,66,197.7,1 1013,-1,1227.8,151.3,59.2,169.5,1 1013,-1,231.8,140.4,53.3,161.7,1 1013,-1,1154.7,613.6,93.3,262.7,1 1013,-1,1719.8,454.7,79.7,212.2,1 1013,-1,927.7,272.3,68.5,207.6,1 1013,-1,295.3,486.3,91.8,208,1 1013,-1,303.1,296,63.9,198.6,1 1013,-1,751.5,74.4,53.9,161.2,1 1013,-1,1692.6,175.5,55.3,167.2,1 1013,-1,379.7,470.4,63.7,225.2,1 1013,-1,1729.4,676.5,101.8,243.9,1 1013,-1,437.1,167.2,65.6,192.4,1 1013,-1,313,2.6,41.4,129.1,1 1013,-1,588.4,552.2,90.6,244.3,1 1013,-1,353.3,894.6,97.3,186.4,0.999 1013,-1,386.6,171.6,52.3,157.9,0.999 1013,-1,504.1,101,54.5,146.6,0.974 1013,-1,432.8,74.8,64.7,164.3,0.42 1013,-1,386.1,2.4,58.1,155.7,0.2 1020,-1,1221.8,29.6,62,118.1,1 1020,-1,686.9,206.4,79.4,113.5,1 1020,-1,378.9,299.5,75.7,200,1 1020,-1,791.9,140.8,73.6,173.4,1 1020,-1,1240.1,162.3,61.4,174.7,1 1020,-1,929.5,262,67.3,201.4,1 1020,-1,289.9,128.5,52.7,168,1 1020,-1,494.2,291.6,68.7,193.3,1 1020,-1,292.3,498.4,85.6,208.3,1 1020,-1,230.9,140.4,55.9,161.8,1 1020,-1,297.8,298.5,64.6,205,1 1020,-1,1467.9,187.4,65,166.2,1 1020,-1,538.1,119.8,62.7,173.7,1 1020,-1,1702,179.4,54.9,171.4,1 1020,-1,380.5,480.9,64,222.6,1 1020,-1,1721.7,454.8,77.1,210.6,1 1020,-1,839.9,275.6,70.8,199.8,1 1020,-1,1575.7,589.2,101.8,238.4,1 1020,-1,1836.3,228.3,61,184.7,1 1020,-1,751.2,75.2,54.5,159.9,1 1020,-1,1149.3,594.2,89.4,257.7,1 1020,-1,1707.8,686.8,97.8,228.6,1 1020,-1,582.6,554.2,80.2,238.5,1 1020,-1,449.2,167.4,77.1,194.6,1 1020,-1,314,2.4,37.5,129.6,0.999 1020,-1,403.4,169.3,59.2,169.7,0.998 1020,-1,373.7,102.3,57.7,177.4,0.998 1020,-1,357.2,914,98.2,167,0.868 1022,-1,1221.1,29,62.3,119.8,1 1022,-1,686.8,206.4,79.1,113.3,1 1022,-1,792.6,141.4,73.1,171.4,1 1022,-1,376.4,301.1,74.3,201.3,1 1022,-1,1244.9,163.8,60.3,171,1 1022,-1,1701.7,182.5,55.9,172.6,1 1022,-1,289,128.1,52.8,168.3,1 1022,-1,929.5,257.3,68.8,207.9,1 1022,-1,493.4,293.2,69.4,193.9,1 1022,-1,841.3,275.3,68.9,196.5,1 1022,-1,295.9,299.4,65,208.1,1 1022,-1,290.1,503.9,88.1,203.4,1 1022,-1,538.3,119.6,61.6,174.5,1 1022,-1,380.4,486.2,62.5,220.3,1 1022,-1,1837.8,229.4,61.7,182.3,1 1022,-1,1721.7,455.8,76.9,210.2,1 1022,-1,1706.4,687.4,96.7,230.4,1 1022,-1,1147.2,591.7,90.5,259.3,1 1022,-1,232.2,140.1,54.8,162.7,1 1022,-1,1576.4,589.4,102.2,239.8,1 1022,-1,1467.9,190.5,65.2,167.3,1 1022,-1,751.5,75.5,54.1,160,1 1022,-1,581.6,553.2,79.4,238.9,1 1022,-1,452.9,165.7,83.3,194.2,1 1022,-1,313.2,2.1,37,128.5,0.999 1022,-1,408.3,170.1,58.2,165,0.999 1022,-1,372.7,105,58.2,173.1,0.999 1022,-1,359.6,916.3,95,164.7,0.395 1028,-1,1221.6,29.8,62.2,119.3,1 1028,-1,687,206.8,79.4,113.5,1 1028,-1,1251.3,175.9,63.8,166.7,1 1028,-1,792.5,141.9,72.2,171.7,1 1028,-1,1698.4,190.6,64.7,183.9,1 1028,-1,490.6,303.3,68.3,186.3,1 1028,-1,372.1,311.9,72.9,200.9,1 1028,-1,288.9,127.8,52.5,167.9,1 1028,-1,1721,456.8,79.1,208.4,1 1028,-1,933,254.8,67.9,205.7,1 1028,-1,232.8,139.2,57.8,165,1 1028,-1,843,264.6,66.7,189.2,1 1028,-1,1574,589.5,104,240.5,1 1028,-1,1141.6,583.5,85.5,256.6,1 1028,-1,294.8,310.5,66.3,204.8,1 1028,-1,751.2,75.1,53.5,160.7,1 1028,-1,538.4,121,63.6,175.1,1 1028,-1,1842.5,232.2,63.4,195.5,1 1028,-1,375.2,496.7,68.3,228.5,1 1028,-1,1699.4,682.2,82.2,238.9,1 1028,-1,288.2,506.9,88.6,207.2,1 1028,-1,424.9,169.7,59.3,171.2,1 1028,-1,579.2,546.2,74.9,243.9,1 1028,-1,374,101.8,58.3,179.5,1 1028,-1,1471,212.2,67.7,154.5,1 1028,-1,473.1,163.2,70.6,199.2,1 1028,-1,310.8,1.8,35.6,129.9,1 1028,-1,367.5,926,87,155,0.068 ================================================ FILE: assets/MOT17-mini/train/MOT17-04-FRCNN/gt/gt.txt ================================================ 1,1,1363,569,103,241,1,1,0.86014 2,1,1362,568,103,241,1,1,0.86173 3,1,1362,568,103,241,1,1,0.86173 4,1,1362,568,103,241,1,1,0.86173 5,1,1362,568,103,241,1,1,0.86173 6,1,1362,568,103,241,1,1,0.86173 7,1,1362,568,103,241,1,1,0.86173 8,1,1362,568,103,241,1,1,0.86173 1,2,371,410,80,239,1,1,1.0 2,2,371,408,80,239,1,1,1.0 3,2,372,407,80,239,1,1,1.0 4,2,372,406,81,239,1,1,1.0 5,2,373,405,81,239,1,1,1.0 6,2,373,404,82,238,1,1,1.0 7,2,374,403,81,238,1,1,1.0 8,2,374,402,82,238,1,1,1.0 1,3,103,549,83,251,1,1,1.0 2,3,102,549,83,250,1,1,1.0 3,3,102,549,83,250,1,1,1.0 4,3,102,549,83,250,1,1,1.0 5,3,102,549,83,250,1,1,1.0 6,3,102,549,83,250,1,1,1.0 7,3,102,549,83,250,1,1,1.0 8,3,102,549,83,250,1,1,1.0 1,4,1734,457,76,213,1,1,0.98386 2,4,1733,457,76,212,1,1,0.97586 3,4,1732,457,76,212,1,1,0.96781 4,4,1731,457,76,212,1,1,0.95976 5,4,1730,457,76,211,1,1,0.95185 6,4,1730,457,75,211,1,1,0.95122 7,4,1729,457,75,211,1,1,0.94309 8,4,1728,457,75,210,1,1,0.93515 1,5,1098,980,78,208,1,1,0.48325 2,5,1101,979,78,209,1,1,0.48571 3,5,1104,978,78,210,1,1,0.48815 4,5,1107,977,78,211,1,1,0.49057 5,5,1111,977,77,211,1,1,0.49057 6,5,1114,976,78,212,1,1,0.49296 7,5,1117,975,78,213,1,1,0.49533 8,5,1121,975,77,213,1,1,0.49533 1,6,632,761,100,251,1,1,0.31903 2,6,631,761,100,251,1,1,0.31903 3,6,631,761,100,251,1,1,0.31903 4,6,631,761,100,251,1,1,0.31903 5,6,631,761,100,251,1,1,0.31903 6,6,631,761,100,251,1,1,0.31903 7,6,631,761,100,251,1,1,0.31903 8,6,631,761,100,251,1,1,0.31903 1,7,623,901,144,123,0,11,1.0 2,7,623,901,144,123,0,11,1.0 3,7,623,901,144,123,0,11,1.0 4,7,623,901,144,123,0,11,1.0 5,7,623,901,144,123,0,11,1.0 6,7,623,901,144,123,0,11,1.0 7,7,623,901,144,123,0,11,1.0 8,7,623,901,144,123,0,11,1.0 1,8,671,427,42,652,0,10,0.80063 2,8,671,427,42,652,0,10,0.80063 3,8,671,427,42,652,0,10,0.80063 4,8,671,427,42,652,0,10,0.80063 5,8,671,427,42,652,0,10,0.80063 6,8,671,427,42,652,0,10,0.80063 7,8,671,427,42,652,0,10,0.80063 8,8,671,427,42,652,0,10,0.80063 1,9,1516,126,100,73,0,11,1.0 2,9,1516,126,100,73,0,11,1.0 3,9,1516,126,100,73,0,11,1.0 4,9,1516,126,100,73,0,11,1.0 5,9,1516,126,100,73,0,11,1.0 6,9,1516,126,100,73,0,11,1.0 7,9,1516,126,100,73,0,11,1.0 8,9,1516,126,100,73,0,11,1.0 1,10,1556,-1,25,129,0,11,1.0 2,10,1556,-1,25,129,0,11,1.0 3,10,1556,-1,25,129,0,11,1.0 4,10,1556,-1,25,129,0,11,1.0 5,10,1556,-1,25,129,0,11,1.0 6,10,1556,-1,25,129,0,11,1.0 7,10,1556,-1,25,129,0,11,1.0 8,10,1556,-1,25,129,0,11,1.0 1,11,1545,196,28,81,0,10,0.71909 2,11,1545,196,28,81,0,10,0.70101 3,11,1545,196,28,81,0,10,0.68713 4,11,1545,196,28,81,0,10,0.67241 5,11,1545,196,28,81,0,10,0.6598 6,11,1545,196,28,81,0,10,0.6434 7,11,1545,196,28,81,0,10,0.62616 8,11,1545,196,28,81,0,10,0.61186 1,12,1513,266,95,80,0,11,1.0 2,12,1513,266,95,80,0,11,1.0 3,12,1513,266,95,80,0,11,1.0 4,12,1513,266,95,80,0,11,1.0 5,12,1513,266,95,80,0,11,1.0 6,12,1513,266,95,80,0,11,1.0 7,12,1513,266,95,80,0,11,1.0 8,12,1513,266,95,80,0,11,1.0 1,13,1537,342,29,197,0,10,0.17121 2,13,1537,342,29,197,0,10,0.17121 3,13,1537,342,29,197,0,10,0.17121 4,13,1537,342,29,197,0,10,0.17121 5,13,1537,342,29,197,0,10,0.17121 6,13,1537,342,29,197,0,10,0.17121 7,13,1537,342,29,197,0,10,0.17121 8,13,1537,342,29,197,0,10,0.17121 1,14,1537,381,94,212,0,10,0.44354 2,14,1537,381,93,212,0,10,0.44042 3,14,1537,381,93,212,0,10,0.44042 4,14,1537,381,93,212,0,10,0.44042 5,14,1537,381,93,212,0,10,0.44042 6,14,1537,381,93,212,0,10,0.44042 7,14,1537,381,93,212,0,10,0.44042 8,14,1537,381,93,212,0,10,0.44042 1,15,1299,74,76,92,0,10,0.80324 2,15,1299,74,76,92,0,10,0.80352 3,15,1299,74,76,92,0,10,0.80352 4,15,1299,74,76,92,0,10,0.80352 5,15,1299,74,76,92,0,10,0.80352 6,15,1299,74,76,92,0,10,0.80352 7,15,1299,74,76,92,0,10,0.80352 8,15,1299,74,76,92,0,10,0.80352 1,16,1311,2,49,73,0,11,1.0 2,16,1311,1,48,74,0,11,1.0 3,16,1311,1,48,74,0,11,1.0 4,16,1311,1,48,74,0,11,1.0 5,16,1311,1,48,74,0,11,1.0 6,16,1311,1,48,74,0,11,1.0 7,16,1311,1,48,74,0,11,1.0 8,16,1311,1,48,74,0,11,1.0 1,17,1564,380,53,110,0,11,1.0 2,17,1564,380,53,110,0,11,1.0 3,17,1564,380,53,110,0,11,1.0 4,17,1564,380,53,110,0,11,1.0 5,17,1564,380,53,110,0,11,1.0 6,17,1564,380,53,110,0,11,1.0 7,17,1564,380,53,110,0,11,1.0 8,17,1564,380,53,110,0,11,1.0 1,18,1842,581,80,78,0,11,1.0 2,18,1842,581,80,78,0,11,1.0 3,18,1842,581,80,78,0,11,1.0 4,18,1842,581,80,78,0,11,1.0 5,18,1842,581,80,78,0,11,1.0 6,18,1842,581,80,78,0,11,1.0 7,18,1842,581,80,78,0,11,1.0 8,18,1842,581,80,78,0,11,1.0 1,19,1817,918,19,101,0,10,0.74118 2,19,1817,918,19,101,0,10,0.74118 3,19,1817,918,19,101,0,10,0.74118 4,19,1817,918,19,101,0,10,0.74118 5,19,1817,918,19,101,0,10,0.74118 6,19,1817,918,19,101,0,10,0.74118 7,19,1817,918,19,101,0,10,0.74118 8,19,1817,918,19,101,0,10,0.74118 1,20,1860,978,19,106,0,10,0.91589 2,20,1860,978,19,106,0,10,0.91589 3,20,1860,978,19,106,0,10,0.91589 4,20,1860,978,19,106,0,10,0.91589 5,20,1860,978,19,106,0,10,0.91589 6,20,1860,978,19,106,0,10,0.91589 7,20,1860,978,19,106,0,10,0.91589 8,20,1860,978,19,106,0,10,0.91589 1,21,1838,655,15,53,0,10,0.70833 2,21,1837,655,16,52,0,10,0.72586 3,21,1837,655,16,52,0,10,0.72586 4,21,1837,655,16,52,0,10,0.72586 5,21,1837,655,16,52,0,10,0.72586 6,21,1837,655,16,52,0,10,0.72586 7,21,1837,655,16,52,0,10,0.72586 8,21,1837,655,16,52,0,10,0.72586 1,22,1856,724,35,258,0,11,1.0 2,22,1856,724,35,258,0,11,1.0 3,22,1856,724,35,258,0,11,1.0 4,22,1856,724,35,258,0,11,1.0 5,22,1856,724,35,258,0,11,1.0 6,22,1856,724,35,258,0,11,1.0 7,22,1856,724,35,258,0,11,1.0 8,22,1856,724,35,258,0,11,1.0 1,23,1826,697,42,268,0,11,1.0 2,23,1826,697,42,268,0,11,1.0 3,23,1826,697,42,268,0,11,1.0 4,23,1826,697,42,268,0,11,1.0 5,23,1826,697,42,268,0,11,1.0 6,23,1826,697,42,268,0,11,1.0 7,23,1826,697,42,268,0,11,1.0 8,23,1826,697,42,268,0,11,1.0 1,24,622,274,91,90,0,11,1.0 2,24,622,274,91,90,0,11,1.0 3,24,622,274,91,90,0,11,1.0 4,24,622,274,91,90,0,11,1.0 5,24,622,274,91,90,0,11,1.0 6,24,622,274,91,90,0,11,1.0 7,24,622,274,91,90,0,11,1.0 8,24,622,274,91,90,0,11,1.0 1,25,616,129,101,71,0,11,1.0 2,25,616,129,101,71,0,11,1.0 3,25,616,129,101,71,0,11,1.0 4,25,616,129,101,71,0,11,1.0 5,25,616,129,101,71,0,11,1.0 6,25,616,129,101,71,0,11,1.0 7,25,616,129,101,71,0,11,1.0 8,25,616,129,101,71,0,11,1.0 1,26,650,1,29,133,0,11,1.0 2,26,650,1,29,133,0,11,1.0 3,26,650,1,29,133,0,11,1.0 4,26,650,1,29,133,0,11,1.0 5,26,650,1,29,133,0,11,1.0 6,26,650,1,29,133,0,11,1.0 7,26,650,1,29,133,0,11,1.0 8,26,650,1,29,133,0,11,1.0 1,27,654,194,26,84,0,11,1.0 2,27,654,194,26,84,0,11,1.0 3,27,654,194,26,84,0,11,1.0 4,27,654,194,26,84,0,11,1.0 5,27,654,194,26,84,0,11,1.0 6,27,654,194,26,84,0,11,1.0 7,27,654,194,26,84,0,11,1.0 8,27,654,194,26,84,0,11,1.0 1,28,654,363,30,82,0,11,1.0 2,28,654,363,30,82,0,11,1.0 3,28,654,363,30,82,0,11,1.0 4,28,654,363,30,82,0,11,1.0 5,28,654,363,30,82,0,11,1.0 6,28,654,363,30,82,0,11,1.0 7,28,654,363,30,82,0,11,1.0 8,28,654,363,30,82,0,11,1.0 1,29,621,437,55,245,0,10,0.88175 2,29,620,437,56,245,0,10,0.88383 3,29,620,437,56,245,0,10,0.88383 4,29,620,437,56,245,0,10,0.88383 5,29,620,437,56,245,0,10,0.88383 6,29,620,437,56,245,0,10,0.88383 7,29,620,437,56,245,0,10,0.88383 8,29,620,437,56,245,0,10,0.88383 1,30,616,-1,40,137,0,10,0.3245 2,30,616,-1,40,137,0,10,0.3245 3,30,616,-1,40,137,0,10,0.3245 4,30,616,-1,40,137,0,10,0.3245 5,30,616,-1,40,137,0,10,0.3245 6,30,616,-1,40,137,0,10,0.3245 7,30,616,-1,40,137,0,10,0.3245 8,30,616,-1,40,137,0,10,0.3245 1,31,1413,723,39,100,0,10,1.0 2,31,1413,723,39,100,0,10,1.0 3,31,1413,723,39,100,0,10,1.0 4,31,1413,723,39,100,0,10,1.0 5,31,1413,723,39,100,0,10,1.0 6,31,1413,723,39,100,0,10,1.0 7,31,1413,723,39,100,0,10,1.0 8,31,1413,723,39,100,0,10,1.0 1,32,1468,864,43,102,0,10,1.0 2,32,1468,864,43,102,0,10,1.0 3,32,1468,864,43,102,0,10,1.0 4,32,1468,864,43,102,0,10,1.0 5,32,1468,864,43,102,0,10,1.0 6,32,1468,864,43,102,0,10,1.0 7,32,1468,864,43,102,0,10,1.0 8,32,1468,864,43,102,0,10,1.0 1,33,706,590,36,93,0,10,0.78378 2,33,706,590,36,93,0,10,0.78378 3,33,706,590,36,93,0,10,0.78378 4,33,706,590,36,93,0,10,0.78378 5,33,706,590,36,93,0,10,0.78378 6,33,706,590,36,93,0,10,0.78378 7,33,706,590,36,93,0,10,0.78378 8,33,706,590,36,93,0,10,0.78378 1,34,92,0,115,219,0,11,1.0 2,34,92,0,115,219,0,11,1.0 3,34,92,0,115,219,0,11,1.0 4,34,92,0,115,219,0,11,1.0 5,34,92,0,115,219,0,11,1.0 6,34,92,0,115,219,0,11,1.0 7,34,92,0,115,219,0,11,1.0 8,34,92,0,115,219,0,11,1.0 1,35,198,33,32,127,0,11,1.0 2,35,198,33,32,127,0,11,1.0 3,35,198,33,32,127,0,11,1.0 4,35,198,33,32,127,0,11,1.0 5,35,198,33,32,127,0,11,1.0 6,35,198,33,32,127,0,11,1.0 7,35,198,33,32,127,0,11,1.0 8,35,198,33,32,127,0,11,1.0 1,36,224,42,23,65,0,11,1.0 2,36,224,42,23,65,0,11,1.0 3,36,224,42,23,65,0,11,1.0 4,36,224,42,23,65,0,11,1.0 5,36,224,42,23,65,0,11,1.0 6,36,224,42,23,65,0,11,1.0 7,36,224,42,23,65,0,11,1.0 8,36,224,42,23,65,0,11,1.0 1,37,1871,257,26,69,0,10,1.0 2,37,1871,257,26,69,0,10,1.0 3,37,1871,257,26,69,0,10,1.0 4,37,1871,257,26,69,0,10,1.0 5,37,1871,257,26,69,0,10,1.0 6,37,1871,257,26,69,0,10,1.0 7,37,1871,257,26,69,0,10,1.0 8,37,1871,257,26,69,0,10,1.0 1,38,1584,777,34,50,0,10,1.0 2,38,1584,777,34,50,0,10,1.0 3,38,1584,777,34,50,0,10,1.0 4,38,1584,777,34,50,0,10,1.0 5,38,1584,777,34,50,0,10,1.0 6,38,1584,777,34,50,0,10,1.0 7,38,1584,777,34,50,0,10,1.0 8,38,1584,777,34,50,0,10,1.0 1,39,1658,915,36,56,0,10,1.0 2,39,1658,915,36,56,0,10,1.0 3,39,1658,915,36,56,0,10,1.0 4,39,1658,915,36,56,0,10,1.0 5,39,1658,915,36,56,0,10,1.0 6,39,1658,915,36,56,0,10,1.0 7,39,1658,915,36,56,0,10,1.0 8,39,1658,915,36,56,0,10,1.0 1,40,1340,288,28,36,0,10,0.86486 2,40,1340,288,28,36,0,10,0.86486 3,40,1340,288,28,36,0,10,0.86486 4,40,1340,288,28,36,0,10,0.86486 5,40,1340,288,28,36,0,10,0.86486 6,40,1340,288,28,36,0,10,0.86486 7,40,1340,288,28,36,0,10,0.86486 8,40,1340,288,28,36,0,10,0.86486 1,41,1249,111,27,32,0,10,0.17857 2,41,1249,111,27,32,0,10,0.17857 3,41,1249,111,27,32,0,10,0.17857 4,41,1249,111,27,32,0,10,0.17857 5,41,1249,111,27,32,0,10,0.17857 6,41,1249,111,27,32,0,10,0.14286 7,41,1249,111,27,32,0,10,0.14286 8,41,1249,111,27,32,0,10,0.14286 1,42,718,790,30,48,0,10,0.51613 2,42,718,790,30,48,0,10,0.54839 3,42,718,790,30,48,0,10,0.54839 4,42,718,790,30,48,0,10,0.54839 5,42,718,790,30,48,0,10,0.54839 6,42,718,790,30,48,0,10,0.54839 7,42,718,790,30,48,0,10,0.54839 8,42,718,790,30,48,0,10,0.54839 1,43,703,503,30,43,0,10,0.64516 2,43,703,503,30,43,0,10,0.64516 3,43,703,503,30,43,0,10,0.64516 4,43,703,503,30,43,0,10,0.64516 5,43,703,503,30,43,0,10,0.64516 6,43,703,503,30,43,0,10,0.64516 7,43,703,503,30,43,0,10,0.64516 8,43,703,503,30,43,0,10,0.64516 1,44,699,428,30,42,0,10,0.51613 2,44,699,428,30,42,0,10,0.51613 3,44,699,428,30,42,0,10,0.51613 4,44,699,428,30,42,0,10,0.51613 5,44,699,428,30,42,0,10,0.51613 6,44,699,428,30,42,0,10,0.51613 7,44,699,428,30,42,0,10,0.51613 8,44,699,428,30,42,0,10,0.51613 1,45,687,206,77,112,0,7,0.79226 2,45,687,206,77,112,0,7,0.79226 3,45,687,206,77,112,0,7,0.79226 4,45,687,206,77,112,0,7,0.79226 5,45,687,206,77,112,0,7,0.79226 6,45,687,206,77,112,0,7,0.79226 7,45,687,206,77,112,0,7,0.79226 8,45,687,206,77,112,0,7,0.79226 1,46,678,291,57,121,0,7,0.57603 2,46,678,291,57,121,0,7,0.57603 3,46,678,291,57,121,0,7,0.57603 4,46,678,291,57,121,0,7,0.57603 5,46,678,291,57,121,0,7,0.57603 6,46,678,291,57,121,0,7,0.57603 7,46,678,291,57,121,0,7,0.57603 8,46,678,291,57,121,0,7,0.57603 1,47,1543,628,176,116,0,4,1.0 2,47,1543,628,176,116,0,4,1.0 3,47,1543,628,176,116,0,4,1.0 4,47,1543,628,176,116,0,4,1.0 5,47,1543,628,176,116,0,4,1.0 6,47,1543,628,176,116,0,4,1.0 7,47,1543,628,176,116,0,4,1.0 8,47,1543,628,176,116,0,4,1.0 1,48,1193,320,270,255,0,3,0.98981 2,48,1193,320,270,255,0,3,0.98824 3,48,1193,320,270,255,0,3,0.98824 4,48,1193,320,270,255,0,3,0.98824 5,48,1193,320,270,255,0,3,0.98824 6,48,1193,320,270,255,0,3,0.98824 7,48,1193,320,270,255,0,3,0.98824 8,48,1193,320,270,255,0,3,0.98824 1,49,1790,94,152,105,0,4,0.85621 2,49,1790,94,152,105,0,4,0.85621 3,49,1790,94,152,105,0,4,0.85621 4,49,1790,94,152,105,0,4,0.85621 5,49,1790,94,152,105,0,4,0.85621 6,49,1790,94,152,105,0,4,0.85621 7,49,1790,94,152,105,0,4,0.85621 8,49,1790,94,152,105,0,4,0.85621 1,50,1483,538,252,181,0,5,0.64635 2,50,1483,538,252,181,0,5,0.64635 3,50,1483,538,252,181,0,5,0.64635 4,50,1483,538,252,181,0,5,0.64635 5,50,1483,538,252,181,0,5,0.64635 6,50,1483,538,252,181,0,5,0.64635 7,50,1483,538,252,181,0,5,0.64635 8,50,1483,538,252,181,0,5,0.64635 1,51,1279,173,129,104,0,4,1.0 2,51,1279,173,129,104,0,4,1.0 3,51,1279,173,129,104,0,4,1.0 4,51,1279,173,129,104,0,4,1.0 5,51,1279,173,129,104,0,4,1.0 6,51,1279,173,129,104,0,4,1.0 7,51,1279,173,129,104,0,4,1.0 8,51,1279,173,129,104,0,4,1.0 1,52,1280,153,162,96,0,4,0.12681 2,52,1280,153,162,96,0,4,0.11865 3,52,1280,153,162,96,0,4,0.11366 4,52,1280,153,162,96,0,4,0.10682 5,52,1280,153,162,96,0,4,0.10157 6,52,1280,153,162,96,0,4,0.098096 7,52,1280,153,162,96,0,4,0.089115 8,52,1280,153,162,96,0,4,0.083486 1,53,1249,150,160,99,0,4,0.21199 2,53,1249,150,160,99,0,4,0.21199 3,53,1249,150,160,99,0,4,0.21199 4,53,1249,150,160,99,0,4,0.21199 5,53,1249,150,160,99,0,4,0.21199 6,53,1249,150,160,99,0,4,0.21199 7,53,1249,150,160,99,0,4,0.21199 8,53,1249,150,160,99,0,4,0.21199 1,54,1185,-7,153,95,0,4,0.27591 2,54,1185,-7,153,95,0,4,0.27313 3,54,1185,-7,153,95,0,4,0.27056 4,54,1185,-7,153,95,0,4,0.27137 5,54,1185,-7,153,95,0,4,0.26502 6,54,1185,-7,153,95,0,4,0.26596 7,54,1185,-7,153,95,0,4,0.26346 8,54,1185,-7,153,95,0,4,0.25758 1,55,563,162,166,97,0,4,0.2782 2,55,562,161,166,97,0,4,0.27349 3,55,562,161,166,97,0,4,0.26751 4,55,562,161,166,97,0,4,0.26152 5,55,562,161,166,97,0,4,0.26152 6,55,562,161,166,97,0,4,0.25553 7,55,562,161,166,97,0,4,0.24954 8,55,562,161,166,97,0,4,0.24954 1,56,550,84,172,88,0,4,0.38475 2,56,550,84,172,88,0,4,0.38358 3,56,550,84,172,88,0,4,0.38274 4,56,550,84,172,88,0,4,0.38189 5,56,550,84,172,88,0,4,0.38189 6,56,550,84,172,88,0,4,0.38105 7,56,550,84,172,88,0,4,0.3802 8,56,550,84,172,88,0,4,0.3802 1,57,517,55,170,89,0,4,0.16589 2,57,517,55,170,89,0,4,0.16589 3,57,517,55,170,89,0,4,0.16589 4,57,517,55,170,89,0,4,0.16589 5,57,517,55,170,89,0,4,0.16589 6,57,517,55,170,89,0,4,0.16589 7,57,517,55,170,89,0,4,0.16589 8,57,517,55,170,89,0,4,0.16589 1,58,574,15,139,107,0,4,0.20529 2,58,574,15,139,107,0,4,0.20529 3,58,574,15,139,107,0,4,0.20529 4,58,574,15,139,107,0,4,0.20529 5,58,574,15,139,107,0,4,0.20529 6,58,574,15,139,107,0,4,0.20529 7,58,574,15,139,107,0,4,0.20529 8,58,574,15,139,107,0,4,0.20529 1,59,1725,882,196,134,0,4,0.68329 2,59,1725,882,196,134,0,4,0.68329 3,59,1725,882,196,134,0,4,0.68329 4,59,1725,882,196,134,0,4,0.68329 5,59,1725,882,196,134,0,4,0.68329 6,59,1725,882,196,134,0,4,0.68329 7,59,1725,882,196,134,0,4,0.68329 8,59,1725,882,196,134,0,4,0.68329 1,60,796,149,60,175,1,1,1.0 2,60,795,149,60,174,1,1,1.0 3,60,795,149,60,174,1,1,1.0 4,60,795,149,60,174,1,1,1.0 5,60,795,149,60,174,1,1,1.0 6,60,795,149,60,174,1,1,1.0 7,60,795,149,60,174,1,1,1.0 8,60,795,149,60,174,1,1,1.0 1,61,1789,206,65,184,1,1,1.0 2,61,1790,207,65,183,1,1,1.0 3,61,1791,208,65,183,1,1,1.0 4,61,1792,209,65,182,1,1,1.0 5,61,1794,210,64,182,1,1,1.0 6,61,1795,211,65,181,1,1,1.0 7,61,1796,212,65,181,1,1,1.0 8,61,1798,213,64,180,1,1,1.0 1,62,1487,71,53,145,1,1,0.76535 2,62,1487,71,53,145,1,1,0.76535 3,62,1487,70,53,146,1,1,0.76694 4,62,1487,70,53,146,1,1,0.76694 5,62,1487,70,53,146,1,1,0.76694 6,62,1487,70,53,146,1,1,0.76694 7,62,1487,70,53,146,1,1,0.76694 8,62,1487,70,53,146,1,1,0.76694 1,63,1636,265,66,181,1,1,1.0 2,63,1634,264,66,181,1,1,1.0 3,63,1633,263,65,182,1,1,1.0 4,63,1632,263,64,182,1,1,1.0 5,63,1631,262,63,182,1,1,1.0 6,63,1630,262,63,182,1,1,0.99454 7,63,1629,261,62,183,1,1,0.98896 8,63,1628,260,61,183,1,1,0.98343 1,64,1358,612,42,89,0,10,0.11628 2,64,1358,612,42,89,0,10,0.093023 3,64,1358,612,42,89,0,10,0.093023 4,64,1358,612,42,89,0,10,0.093023 5,64,1358,612,42,89,0,10,0.093023 6,64,1358,612,42,89,0,10,0.093023 7,64,1358,612,42,89,0,10,0.093023 8,64,1358,612,42,89,0,10,0.093023 1,65,1557,254,60,192,1,1,0.26705 2,65,1555,253,60,192,1,1,0.25287 3,65,1554,252,60,192,1,1,0.24836 4,65,1553,251,60,192,1,1,0.24386 5,65,1551,251,60,192,1,1,0.2245 6,65,1550,250,60,192,1,1,0.21999 7,65,1549,249,60,192,1,1,0.21549 8,65,1547,249,60,192,1,1,0.20301 1,66,1104,212,56,181,1,1,1.0 2,66,1097,211,61,181,1,1,1.0 3,66,1091,211,66,180,1,1,1.0 4,66,1085,210,70,180,1,1,1.0 5,66,1079,210,75,180,1,1,1.0 6,66,1073,209,79,180,1,1,1.0 7,66,1067,209,84,179,1,1,1.0 8,66,1061,208,88,180,1,1,1.0 1,67,1031,133,80,183,1,1,0.94364 2,67,1031,133,79,183,1,1,0.89918 3,67,1031,134,78,182,1,1,0.86069 4,67,1031,135,77,181,1,1,0.8191 5,67,1031,135,76,181,1,1,0.77858 6,67,1031,136,75,180,1,1,0.73306 7,67,1031,137,74,179,1,1,0.688 8,67,1031,137,73,179,1,1,0.63994 1,68,228,401,63,203,1,1,1.0 2,68,226,399,63,202,1,1,1.0 3,68,224,398,64,201,1,1,1.0 4,68,223,397,63,200,1,1,1.0 5,68,221,395,64,200,1,1,1.0 6,68,220,394,64,199,1,1,1.0 7,68,218,393,64,197,1,1,1.0 8,68,216,391,65,197,1,1,1.0 1,69,264,365,60,221,1,1,0.61542 2,69,262,363,60,221,1,1,0.61542 3,69,260,362,60,220,1,1,0.60203 4,69,259,361,59,219,1,1,0.6097 5,69,257,360,59,218,1,1,0.59391 6,69,256,359,58,217,1,1,0.58739 7,69,254,357,58,217,1,1,0.58964 8,69,252,356,58,216,1,1,0.57354 1,70,872,122,58,180,1,1,1.0 2,70,872,122,59,180,1,1,1.0 3,70,873,123,59,180,1,1,1.0 4,70,874,124,59,179,1,1,1.0 5,70,874,124,60,180,1,1,1.0 6,70,875,125,60,179,1,1,1.0 7,70,876,126,60,179,1,1,1.0 8,70,876,126,61,179,1,1,1.0 1,71,912,129,48,161,1,1,0.61224 2,71,912,130,48,161,1,1,0.59184 3,71,912,131,49,161,1,1,0.58 4,71,912,132,49,161,1,1,0.56 5,71,913,134,49,160,1,1,0.56 6,71,913,135,50,160,1,1,0.54902 7,71,913,136,50,160,1,1,0.52941 8,71,914,138,50,159,1,1,0.52941 1,72,1040,-39,46,123,1,1,0.67742 2,72,1039,-40,46,123,1,1,0.66935 3,72,1039,-40,46,122,1,1,0.66667 4,72,1039,-41,46,123,1,1,0.66129 5,72,1039,-41,46,122,1,1,0.65854 6,72,1039,-42,46,123,1,1,0.65323 7,72,1039,-42,46,122,1,1,0.65041 8,72,1039,-43,46,122,1,1,0.64228 1,73,996,-41,47,121,1,1,0.60109 2,73,996,-41,47,121,1,1,0.58743 3,73,996,-42,47,121,1,1,0.58009 4,73,997,-43,47,121,1,1,0.55943 5,73,997,-43,47,120,1,1,0.55682 6,73,998,-44,47,121,1,1,0.53911 7,73,998,-44,47,120,1,1,0.5365 8,73,999,-45,47,120,1,1,0.51653 1,74,1449,251,55,171,1,1,0.8396 2,74,1448,250,54,170,1,1,0.82818 3,74,1447,249,53,170,1,1,0.8159 4,74,1446,248,53,170,1,1,0.80702 5,74,1445,247,52,170,1,1,0.79455 6,74,1444,246,52,170,1,1,0.78594 7,74,1443,245,51,169,1,1,0.77432 8,74,1442,244,50,169,1,1,0.76148 1,75,1420,198,46,171,1,1,0.55567 2,75,1418,197,46,171,1,1,0.56791 3,75,1417,196,46,171,1,1,0.57162 4,75,1415,196,46,171,1,1,0.57843 5,75,1414,195,46,171,1,1,0.58226 6,75,1413,195,46,171,1,1,0.58028 7,75,1411,194,46,171,1,1,0.59339 8,75,1410,193,46,171,1,1,0.59735 1,76,704,-5,53,163,1,1,0.80251 2,76,704,-5,53,163,1,1,0.80251 3,76,704,-5,53,163,1,1,0.80251 4,76,704,-5,53,163,1,1,0.80251 5,76,704,-5,53,163,1,1,0.80251 6,76,704,-5,53,163,1,1,0.80251 7,76,704,-5,53,163,1,1,0.80251 8,76,704,-5,53,163,1,1,0.80251 1,77,759,-59,40,110,1,1,0.45946 2,77,758,-60,40,110,1,1,0.45045 3,77,758,-61,40,110,1,1,0.44144 4,77,757,-62,40,110,1,1,0.42189 5,77,757,-62,40,109,1,1,0.41685 6,77,756,-63,40,110,1,1,0.40277 7,77,756,-64,40,110,1,1,0.3942 8,77,755,-64,40,109,1,1,0.37916 1,78,551,-43,37,132,1,1,0.2873 2,78,551,-43,37,131,1,1,0.28947 3,78,551,-43,37,131,1,1,0.28947 4,78,551,-43,37,131,1,1,0.28947 5,78,551,-43,37,131,1,1,0.28947 6,78,551,-43,38,131,1,1,0.28477 7,78,551,-43,38,131,1,1,0.28477 8,78,551,-43,38,131,1,1,0.28477 1,79,598,-7,61,77,0,7,0.052109 2,79,598,-7,61,77,0,7,0.052109 3,79,598,-7,61,77,0,7,0.052109 4,79,598,-7,61,77,0,7,0.052109 5,79,598,-7,61,77,0,7,0.052109 6,79,598,-7,61,77,0,7,0.052109 7,79,598,-7,61,77,0,7,0.052109 8,79,598,-7,61,77,0,7,0.052109 1,80,-30,877,72,241,1,1,0.485 2,80,-30,875,72,243,1,1,0.48574 3,80,-30,874,72,244,1,1,0.48611 4,80,-30,872,72,246,1,1,0.48683 5,80,-30,871,72,247,1,1,0.48719 6,80,-29,869,72,249,1,1,0.49951 7,80,-29,868,72,250,1,1,0.49986 8,80,-29,866,72,252,1,1,0.50057 1,81,1195,40,76,112,0,7,0.99207 2,81,1195,39,76,112,0,7,0.99471 3,81,1195,39,76,112,0,7,0.99471 4,81,1196,39,75,112,0,7,0.99464 5,81,1196,38,75,113,0,7,0.99469 6,81,1197,38,75,113,0,7,0.99446 7,81,1197,38,75,112,0,7,0.99721 8,81,1197,37,75,113,0,7,0.99723 1,82,506,133,55,174,1,1,0.21633 2,82,505,134,55,173,1,1,0.21182 3,82,505,135,55,173,1,1,0.19037 4,82,505,136,55,173,1,1,0.16872 5,82,504,137,55,173,1,1,0.16359 6,82,504,138,55,173,1,1,0.14163 7,82,504,139,55,173,1,1,0.11946 8,82,503,140,55,173,1,1,0.11412 1,83,514,148,88,180,1,1,1.0 2,83,513,148,89,181,1,1,1.0 3,83,512,148,91,182,1,1,1.0 4,83,511,148,93,183,1,1,1.0 5,83,510,148,94,184,1,1,1.0 6,83,509,148,96,186,1,1,1.0 7,83,508,148,98,187,1,1,1.0 8,83,507,148,99,188,1,1,1.0 1,84,463,85,52,173,1,1,0.68337 2,84,463,83,51,173,1,1,0.69993 3,84,463,82,51,173,1,1,0.70214 4,84,463,81,51,173,1,1,0.70535 5,84,463,80,51,172,1,1,0.69509 6,84,463,79,51,172,1,1,0.69853 7,84,463,77,50,173,1,1,0.72774 8,84,463,76,50,172,1,1,0.71812 1,85,417,93,55,167,1,1,1.0 2,85,417,92,54,167,1,1,1.0 3,85,417,91,54,168,1,1,1.0 4,85,417,91,54,168,1,1,1.0 5,85,417,90,54,169,1,1,1.0 6,85,417,90,54,169,1,1,1.0 7,85,417,89,53,169,1,1,1.0 8,85,417,88,53,170,1,1,1.0 1,86,541,64,41,167,1,1,0.45536 2,86,540,64,42,167,1,1,0.4593 3,86,540,64,42,167,1,1,0.46221 4,86,540,64,42,167,1,1,0.46512 5,86,540,64,42,167,1,1,0.46955 6,86,540,64,42,167,1,1,0.47231 7,86,540,64,42,167,1,1,0.47508 8,86,540,64,42,167,1,1,0.47896 1,87,491,42,49,161,1,1,0.41358 2,87,490,42,50,160,1,1,0.40762 3,87,490,42,50,160,1,1,0.40762 4,87,490,42,50,160,1,1,0.40762 5,87,490,42,50,160,1,1,0.40762 6,87,490,42,50,160,1,1,0.40762 7,87,490,42,50,160,1,1,0.41213 8,87,490,42,50,160,1,1,0.41237 1,88,356,105,52,179,1,1,1.0 2,88,356,105,52,178,1,1,1.0 3,88,356,105,52,178,1,1,1.0 4,88,356,105,52,178,1,1,1.0 5,88,356,105,52,178,1,1,1.0 6,88,356,105,52,178,1,1,1.0 7,88,356,105,52,178,1,1,1.0 8,88,356,105,52,178,1,1,1.0 1,89,373,77,47,155,1,1,0.27431 2,89,372,77,47,154,1,1,0.27621 3,89,372,77,47,154,1,1,0.27581 4,89,371,77,47,154,1,1,0.27513 5,89,371,77,47,154,1,1,0.27487 6,89,371,77,47,154,1,1,0.27487 7,89,370,77,47,154,1,1,0.27419 8,89,370,77,47,154,1,1,0.27406 1,90,287,124,53,170,1,1,1.0 2,90,286,123,53,170,1,1,1.0 3,90,286,123,53,170,1,1,1.0 4,90,286,123,53,170,1,1,1.0 5,90,286,123,53,170,1,1,1.0 6,90,286,123,53,170,1,1,1.0 7,90,286,123,53,170,1,1,1.0 8,90,286,123,53,170,1,1,1.0 1,91,337,86,49,175,1,1,0.3842 2,91,336,86,49,174,1,1,0.40206 3,91,336,86,49,174,1,1,0.40206 4,91,336,86,49,174,1,1,0.40206 5,91,336,86,49,174,1,1,0.40206 6,91,336,86,49,174,1,1,0.40206 7,91,336,86,49,174,1,1,0.40206 8,91,336,86,49,174,1,1,0.40206 1,92,223,129,46,164,1,1,0.96699 2,92,222,128,46,165,1,1,0.96193 3,92,222,128,45,165,1,1,0.96111 4,92,221,128,46,165,1,1,0.9577 5,92,221,128,45,165,1,1,0.95678 6,92,220,128,46,165,1,1,0.95347 7,92,220,128,45,165,1,1,0.95246 8,92,219,128,45,165,1,1,0.94814 1,93,266,92,56,180,1,1,0.42425 2,93,265,92,56,180,1,1,0.42037 3,93,264,92,56,180,1,1,0.43491 4,93,263,92,57,180,1,1,0.43084 5,93,262,93,57,180,1,1,0.44142 6,93,261,93,58,180,1,1,0.43721 7,93,260,93,58,180,1,1,0.45135 8,93,259,94,58,180,1,1,0.46193 1,94,242,85,58,170,1,1,0.089305 2,94,242,85,58,169,1,1,0.088136 3,94,242,85,58,169,1,1,0.084546 4,94,242,85,58,169,1,1,0.081256 5,94,242,85,58,169,1,1,0.081555 6,94,242,85,58,169,1,1,0.078066 7,94,242,85,58,169,1,1,0.074875 8,94,242,85,58,169,1,1,0.075573 1,95,264,71,54,167,1,1,0.09697 2,95,264,71,54,166,1,1,0.09755 3,95,264,71,54,166,1,1,0.09755 4,95,264,71,54,166,1,1,0.09755 5,95,264,71,54,166,1,1,0.09951 6,95,264,71,54,166,1,1,0.09951 7,95,264,71,54,166,1,1,0.09951 8,95,264,71,54,166,1,1,0.10463 1,96,209,95,42,180,1,1,0.2702 2,96,209,95,41,179,1,1,0.2541 3,96,209,95,41,179,1,1,0.2541 4,96,209,96,41,178,1,1,0.23996 5,96,209,96,41,178,1,1,0.23996 6,96,209,96,41,178,1,1,0.22479 7,96,209,97,41,177,1,1,0.22566 8,96,209,97,41,177,1,1,0.21041 1,97,914,-107,38,115,1,1,0.068966 2,97,914,-107,38,115,1,1,0.068966 3,97,914,-107,38,115,1,1,0.068966 4,97,914,-107,38,115,1,1,0.068966 5,97,914,-107,38,115,1,1,0.068966 6,97,914,-107,38,115,1,1,0.068966 7,97,914,-107,38,115,1,1,0.068966 8,97,914,-107,38,115,1,1,0.068966 1,116,1220,-14,63,148,1,1,0.36871 2,116,1218,-14,64,147,1,1,0.35343 3,116,1217,-14,65,147,1,1,0.35197 4,116,1216,-14,66,147,1,1,0.35054 5,116,1214,-14,68,147,1,1,0.34215 6,116,1213,-14,69,147,1,1,0.33378 7,116,1212,-14,70,146,1,1,0.33429 8,116,1210,-14,72,146,1,1,0.32616 1,137,39,309,115,117,0,11,1.0 2,137,39,309,115,117,0,11,1.0 3,137,39,309,115,117,0,11,1.0 4,137,39,309,115,117,0,11,1.0 5,137,39,309,115,117,0,11,1.0 6,137,39,309,115,117,0,11,1.0 7,137,39,309,115,117,0,11,1.0 8,137,39,309,115,117,0,11,1.0 ================================================ FILE: assets/MOT17-mini/train/MOT17-04-FRCNN/gt/gt_temp.txt ================================================ 1.000000,1.000000,1363.000000,569.000000,103.000000,241.000000,1.000000,1.000000,0.860140 2.000000,1.000000,1362.000000,568.000000,103.000000,241.000000,1.000000,1.000000,0.861730 3.000000,1.000000,1362.000000,568.000000,103.000000,241.000000,1.000000,1.000000,0.861730 4.000000,1.000000,1362.000000,568.000000,103.000000,241.000000,1.000000,1.000000,0.861730 5.000000,1.000000,1362.000000,568.000000,103.000000,241.000000,1.000000,1.000000,0.861730 6.000000,1.000000,1362.000000,568.000000,103.000000,241.000000,1.000000,1.000000,0.861730 7.000000,1.000000,1362.000000,568.000000,103.000000,241.000000,1.000000,1.000000,0.861730 8.000000,1.000000,1362.000000,568.000000,103.000000,241.000000,1.000000,1.000000,0.861730 1.000000,2.000000,371.000000,410.000000,80.000000,239.000000,1.000000,1.000000,1.000000 2.000000,2.000000,371.000000,408.000000,80.000000,239.000000,1.000000,1.000000,1.000000 3.000000,2.000000,372.000000,407.000000,80.000000,239.000000,1.000000,1.000000,1.000000 4.000000,2.000000,372.000000,406.000000,81.000000,239.000000,1.000000,1.000000,1.000000 5.000000,2.000000,373.000000,405.000000,81.000000,239.000000,1.000000,1.000000,1.000000 6.000000,2.000000,373.000000,404.000000,82.000000,238.000000,1.000000,1.000000,1.000000 7.000000,2.000000,374.000000,403.000000,81.000000,238.000000,1.000000,1.000000,1.000000 8.000000,2.000000,374.000000,402.000000,82.000000,238.000000,1.000000,1.000000,1.000000 1.000000,3.000000,103.000000,549.000000,83.000000,251.000000,1.000000,1.000000,1.000000 2.000000,3.000000,102.000000,549.000000,83.000000,250.000000,1.000000,1.000000,1.000000 3.000000,3.000000,102.000000,549.000000,83.000000,250.000000,1.000000,1.000000,1.000000 4.000000,3.000000,102.000000,549.000000,83.000000,250.000000,1.000000,1.000000,1.000000 5.000000,3.000000,102.000000,549.000000,83.000000,250.000000,1.000000,1.000000,1.000000 6.000000,3.000000,102.000000,549.000000,83.000000,250.000000,1.000000,1.000000,1.000000 7.000000,3.000000,102.000000,549.000000,83.000000,250.000000,1.000000,1.000000,1.000000 8.000000,3.000000,102.000000,549.000000,83.000000,250.000000,1.000000,1.000000,1.000000 1.000000,4.000000,1734.000000,457.000000,76.000000,213.000000,1.000000,1.000000,0.983860 2.000000,4.000000,1733.000000,457.000000,76.000000,212.000000,1.000000,1.000000,0.975860 3.000000,4.000000,1732.000000,457.000000,76.000000,212.000000,1.000000,1.000000,0.967810 4.000000,4.000000,1731.000000,457.000000,76.000000,212.000000,1.000000,1.000000,0.959760 5.000000,4.000000,1730.000000,457.000000,76.000000,211.000000,1.000000,1.000000,0.951850 6.000000,4.000000,1730.000000,457.000000,75.000000,211.000000,1.000000,1.000000,0.951220 7.000000,4.000000,1729.000000,457.000000,75.000000,211.000000,1.000000,1.000000,0.943090 8.000000,4.000000,1728.000000,457.000000,75.000000,210.000000,1.000000,1.000000,0.935150 1.000000,5.000000,1098.000000,980.000000,78.000000,208.000000,1.000000,1.000000,0.483250 2.000000,5.000000,1101.000000,979.000000,78.000000,209.000000,1.000000,1.000000,0.485710 3.000000,5.000000,1104.000000,978.000000,78.000000,210.000000,1.000000,1.000000,0.488150 4.000000,5.000000,1107.000000,977.000000,78.000000,211.000000,1.000000,1.000000,0.490570 5.000000,5.000000,1111.000000,977.000000,77.000000,211.000000,1.000000,1.000000,0.490570 6.000000,5.000000,1114.000000,976.000000,78.000000,212.000000,1.000000,1.000000,0.492960 7.000000,5.000000,1117.000000,975.000000,78.000000,213.000000,1.000000,1.000000,0.495330 8.000000,5.000000,1121.000000,975.000000,77.000000,213.000000,1.000000,1.000000,0.495330 1.000000,6.000000,632.000000,761.000000,100.000000,251.000000,1.000000,1.000000,0.319030 2.000000,6.000000,631.000000,761.000000,100.000000,251.000000,1.000000,1.000000,0.319030 3.000000,6.000000,631.000000,761.000000,100.000000,251.000000,1.000000,1.000000,0.319030 4.000000,6.000000,631.000000,761.000000,100.000000,251.000000,1.000000,1.000000,0.319030 5.000000,6.000000,631.000000,761.000000,100.000000,251.000000,1.000000,1.000000,0.319030 6.000000,6.000000,631.000000,761.000000,100.000000,251.000000,1.000000,1.000000,0.319030 7.000000,6.000000,631.000000,761.000000,100.000000,251.000000,1.000000,1.000000,0.319030 8.000000,6.000000,631.000000,761.000000,100.000000,251.000000,1.000000,1.000000,0.319030 1.000000,7.000000,623.000000,901.000000,144.000000,123.000000,0.000000,11.000000,1.000000 2.000000,7.000000,623.000000,901.000000,144.000000,123.000000,0.000000,11.000000,1.000000 3.000000,7.000000,623.000000,901.000000,144.000000,123.000000,0.000000,11.000000,1.000000 4.000000,7.000000,623.000000,901.000000,144.000000,123.000000,0.000000,11.000000,1.000000 5.000000,7.000000,623.000000,901.000000,144.000000,123.000000,0.000000,11.000000,1.000000 6.000000,7.000000,623.000000,901.000000,144.000000,123.000000,0.000000,11.000000,1.000000 7.000000,7.000000,623.000000,901.000000,144.000000,123.000000,0.000000,11.000000,1.000000 8.000000,7.000000,623.000000,901.000000,144.000000,123.000000,0.000000,11.000000,1.000000 1.000000,8.000000,671.000000,427.000000,42.000000,652.000000,0.000000,10.000000,0.800630 2.000000,8.000000,671.000000,427.000000,42.000000,652.000000,0.000000,10.000000,0.800630 3.000000,8.000000,671.000000,427.000000,42.000000,652.000000,0.000000,10.000000,0.800630 4.000000,8.000000,671.000000,427.000000,42.000000,652.000000,0.000000,10.000000,0.800630 5.000000,8.000000,671.000000,427.000000,42.000000,652.000000,0.000000,10.000000,0.800630 6.000000,8.000000,671.000000,427.000000,42.000000,652.000000,0.000000,10.000000,0.800630 7.000000,8.000000,671.000000,427.000000,42.000000,652.000000,0.000000,10.000000,0.800630 8.000000,8.000000,671.000000,427.000000,42.000000,652.000000,0.000000,10.000000,0.800630 1.000000,9.000000,1516.000000,126.000000,100.000000,73.000000,0.000000,11.000000,1.000000 2.000000,9.000000,1516.000000,126.000000,100.000000,73.000000,0.000000,11.000000,1.000000 3.000000,9.000000,1516.000000,126.000000,100.000000,73.000000,0.000000,11.000000,1.000000 4.000000,9.000000,1516.000000,126.000000,100.000000,73.000000,0.000000,11.000000,1.000000 5.000000,9.000000,1516.000000,126.000000,100.000000,73.000000,0.000000,11.000000,1.000000 6.000000,9.000000,1516.000000,126.000000,100.000000,73.000000,0.000000,11.000000,1.000000 7.000000,9.000000,1516.000000,126.000000,100.000000,73.000000,0.000000,11.000000,1.000000 8.000000,9.000000,1516.000000,126.000000,100.000000,73.000000,0.000000,11.000000,1.000000 1.000000,10.000000,1556.000000,-1.000000,25.000000,129.000000,0.000000,11.000000,1.000000 2.000000,10.000000,1556.000000,-1.000000,25.000000,129.000000,0.000000,11.000000,1.000000 3.000000,10.000000,1556.000000,-1.000000,25.000000,129.000000,0.000000,11.000000,1.000000 4.000000,10.000000,1556.000000,-1.000000,25.000000,129.000000,0.000000,11.000000,1.000000 5.000000,10.000000,1556.000000,-1.000000,25.000000,129.000000,0.000000,11.000000,1.000000 6.000000,10.000000,1556.000000,-1.000000,25.000000,129.000000,0.000000,11.000000,1.000000 7.000000,10.000000,1556.000000,-1.000000,25.000000,129.000000,0.000000,11.000000,1.000000 8.000000,10.000000,1556.000000,-1.000000,25.000000,129.000000,0.000000,11.000000,1.000000 1.000000,11.000000,1545.000000,196.000000,28.000000,81.000000,0.000000,10.000000,0.719090 2.000000,11.000000,1545.000000,196.000000,28.000000,81.000000,0.000000,10.000000,0.701010 3.000000,11.000000,1545.000000,196.000000,28.000000,81.000000,0.000000,10.000000,0.687130 4.000000,11.000000,1545.000000,196.000000,28.000000,81.000000,0.000000,10.000000,0.672410 5.000000,11.000000,1545.000000,196.000000,28.000000,81.000000,0.000000,10.000000,0.659800 6.000000,11.000000,1545.000000,196.000000,28.000000,81.000000,0.000000,10.000000,0.643400 7.000000,11.000000,1545.000000,196.000000,28.000000,81.000000,0.000000,10.000000,0.626160 8.000000,11.000000,1545.000000,196.000000,28.000000,81.000000,0.000000,10.000000,0.611860 1.000000,12.000000,1513.000000,266.000000,95.000000,80.000000,0.000000,11.000000,1.000000 2.000000,12.000000,1513.000000,266.000000,95.000000,80.000000,0.000000,11.000000,1.000000 3.000000,12.000000,1513.000000,266.000000,95.000000,80.000000,0.000000,11.000000,1.000000 4.000000,12.000000,1513.000000,266.000000,95.000000,80.000000,0.000000,11.000000,1.000000 5.000000,12.000000,1513.000000,266.000000,95.000000,80.000000,0.000000,11.000000,1.000000 6.000000,12.000000,1513.000000,266.000000,95.000000,80.000000,0.000000,11.000000,1.000000 7.000000,12.000000,1513.000000,266.000000,95.000000,80.000000,0.000000,11.000000,1.000000 8.000000,12.000000,1513.000000,266.000000,95.000000,80.000000,0.000000,11.000000,1.000000 1.000000,13.000000,1537.000000,342.000000,29.000000,197.000000,0.000000,10.000000,0.171210 2.000000,13.000000,1537.000000,342.000000,29.000000,197.000000,0.000000,10.000000,0.171210 3.000000,13.000000,1537.000000,342.000000,29.000000,197.000000,0.000000,10.000000,0.171210 4.000000,13.000000,1537.000000,342.000000,29.000000,197.000000,0.000000,10.000000,0.171210 5.000000,13.000000,1537.000000,342.000000,29.000000,197.000000,0.000000,10.000000,0.171210 6.000000,13.000000,1537.000000,342.000000,29.000000,197.000000,0.000000,10.000000,0.171210 7.000000,13.000000,1537.000000,342.000000,29.000000,197.000000,0.000000,10.000000,0.171210 8.000000,13.000000,1537.000000,342.000000,29.000000,197.000000,0.000000,10.000000,0.171210 1.000000,14.000000,1537.000000,381.000000,94.000000,212.000000,0.000000,10.000000,0.443540 2.000000,14.000000,1537.000000,381.000000,93.000000,212.000000,0.000000,10.000000,0.440420 3.000000,14.000000,1537.000000,381.000000,93.000000,212.000000,0.000000,10.000000,0.440420 4.000000,14.000000,1537.000000,381.000000,93.000000,212.000000,0.000000,10.000000,0.440420 5.000000,14.000000,1537.000000,381.000000,93.000000,212.000000,0.000000,10.000000,0.440420 6.000000,14.000000,1537.000000,381.000000,93.000000,212.000000,0.000000,10.000000,0.440420 7.000000,14.000000,1537.000000,381.000000,93.000000,212.000000,0.000000,10.000000,0.440420 8.000000,14.000000,1537.000000,381.000000,93.000000,212.000000,0.000000,10.000000,0.440420 1.000000,15.000000,1299.000000,74.000000,76.000000,92.000000,0.000000,10.000000,0.803240 2.000000,15.000000,1299.000000,74.000000,76.000000,92.000000,0.000000,10.000000,0.803520 3.000000,15.000000,1299.000000,74.000000,76.000000,92.000000,0.000000,10.000000,0.803520 4.000000,15.000000,1299.000000,74.000000,76.000000,92.000000,0.000000,10.000000,0.803520 5.000000,15.000000,1299.000000,74.000000,76.000000,92.000000,0.000000,10.000000,0.803520 6.000000,15.000000,1299.000000,74.000000,76.000000,92.000000,0.000000,10.000000,0.803520 7.000000,15.000000,1299.000000,74.000000,76.000000,92.000000,0.000000,10.000000,0.803520 8.000000,15.000000,1299.000000,74.000000,76.000000,92.000000,0.000000,10.000000,0.803520 1.000000,16.000000,1311.000000,2.000000,49.000000,73.000000,0.000000,11.000000,1.000000 2.000000,16.000000,1311.000000,1.000000,48.000000,74.000000,0.000000,11.000000,1.000000 3.000000,16.000000,1311.000000,1.000000,48.000000,74.000000,0.000000,11.000000,1.000000 4.000000,16.000000,1311.000000,1.000000,48.000000,74.000000,0.000000,11.000000,1.000000 5.000000,16.000000,1311.000000,1.000000,48.000000,74.000000,0.000000,11.000000,1.000000 6.000000,16.000000,1311.000000,1.000000,48.000000,74.000000,0.000000,11.000000,1.000000 7.000000,16.000000,1311.000000,1.000000,48.000000,74.000000,0.000000,11.000000,1.000000 8.000000,16.000000,1311.000000,1.000000,48.000000,74.000000,0.000000,11.000000,1.000000 1.000000,17.000000,1564.000000,380.000000,53.000000,110.000000,0.000000,11.000000,1.000000 2.000000,17.000000,1564.000000,380.000000,53.000000,110.000000,0.000000,11.000000,1.000000 3.000000,17.000000,1564.000000,380.000000,53.000000,110.000000,0.000000,11.000000,1.000000 4.000000,17.000000,1564.000000,380.000000,53.000000,110.000000,0.000000,11.000000,1.000000 5.000000,17.000000,1564.000000,380.000000,53.000000,110.000000,0.000000,11.000000,1.000000 6.000000,17.000000,1564.000000,380.000000,53.000000,110.000000,0.000000,11.000000,1.000000 7.000000,17.000000,1564.000000,380.000000,53.000000,110.000000,0.000000,11.000000,1.000000 8.000000,17.000000,1564.000000,380.000000,53.000000,110.000000,0.000000,11.000000,1.000000 1.000000,18.000000,1842.000000,581.000000,80.000000,78.000000,0.000000,11.000000,1.000000 2.000000,18.000000,1842.000000,581.000000,80.000000,78.000000,0.000000,11.000000,1.000000 3.000000,18.000000,1842.000000,581.000000,80.000000,78.000000,0.000000,11.000000,1.000000 4.000000,18.000000,1842.000000,581.000000,80.000000,78.000000,0.000000,11.000000,1.000000 5.000000,18.000000,1842.000000,581.000000,80.000000,78.000000,0.000000,11.000000,1.000000 6.000000,18.000000,1842.000000,581.000000,80.000000,78.000000,0.000000,11.000000,1.000000 7.000000,18.000000,1842.000000,581.000000,80.000000,78.000000,0.000000,11.000000,1.000000 8.000000,18.000000,1842.000000,581.000000,80.000000,78.000000,0.000000,11.000000,1.000000 1.000000,19.000000,1817.000000,918.000000,19.000000,101.000000,0.000000,10.000000,0.741180 2.000000,19.000000,1817.000000,918.000000,19.000000,101.000000,0.000000,10.000000,0.741180 3.000000,19.000000,1817.000000,918.000000,19.000000,101.000000,0.000000,10.000000,0.741180 4.000000,19.000000,1817.000000,918.000000,19.000000,101.000000,0.000000,10.000000,0.741180 5.000000,19.000000,1817.000000,918.000000,19.000000,101.000000,0.000000,10.000000,0.741180 6.000000,19.000000,1817.000000,918.000000,19.000000,101.000000,0.000000,10.000000,0.741180 7.000000,19.000000,1817.000000,918.000000,19.000000,101.000000,0.000000,10.000000,0.741180 8.000000,19.000000,1817.000000,918.000000,19.000000,101.000000,0.000000,10.000000,0.741180 1.000000,20.000000,1860.000000,978.000000,19.000000,106.000000,0.000000,10.000000,0.915890 2.000000,20.000000,1860.000000,978.000000,19.000000,106.000000,0.000000,10.000000,0.915890 3.000000,20.000000,1860.000000,978.000000,19.000000,106.000000,0.000000,10.000000,0.915890 4.000000,20.000000,1860.000000,978.000000,19.000000,106.000000,0.000000,10.000000,0.915890 5.000000,20.000000,1860.000000,978.000000,19.000000,106.000000,0.000000,10.000000,0.915890 6.000000,20.000000,1860.000000,978.000000,19.000000,106.000000,0.000000,10.000000,0.915890 7.000000,20.000000,1860.000000,978.000000,19.000000,106.000000,0.000000,10.000000,0.915890 8.000000,20.000000,1860.000000,978.000000,19.000000,106.000000,0.000000,10.000000,0.915890 1.000000,21.000000,1838.000000,655.000000,15.000000,53.000000,0.000000,10.000000,0.708330 2.000000,21.000000,1837.000000,655.000000,16.000000,52.000000,0.000000,10.000000,0.725860 3.000000,21.000000,1837.000000,655.000000,16.000000,52.000000,0.000000,10.000000,0.725860 4.000000,21.000000,1837.000000,655.000000,16.000000,52.000000,0.000000,10.000000,0.725860 5.000000,21.000000,1837.000000,655.000000,16.000000,52.000000,0.000000,10.000000,0.725860 6.000000,21.000000,1837.000000,655.000000,16.000000,52.000000,0.000000,10.000000,0.725860 7.000000,21.000000,1837.000000,655.000000,16.000000,52.000000,0.000000,10.000000,0.725860 8.000000,21.000000,1837.000000,655.000000,16.000000,52.000000,0.000000,10.000000,0.725860 1.000000,22.000000,1856.000000,724.000000,35.000000,258.000000,0.000000,11.000000,1.000000 2.000000,22.000000,1856.000000,724.000000,35.000000,258.000000,0.000000,11.000000,1.000000 3.000000,22.000000,1856.000000,724.000000,35.000000,258.000000,0.000000,11.000000,1.000000 4.000000,22.000000,1856.000000,724.000000,35.000000,258.000000,0.000000,11.000000,1.000000 5.000000,22.000000,1856.000000,724.000000,35.000000,258.000000,0.000000,11.000000,1.000000 6.000000,22.000000,1856.000000,724.000000,35.000000,258.000000,0.000000,11.000000,1.000000 7.000000,22.000000,1856.000000,724.000000,35.000000,258.000000,0.000000,11.000000,1.000000 8.000000,22.000000,1856.000000,724.000000,35.000000,258.000000,0.000000,11.000000,1.000000 1.000000,23.000000,1826.000000,697.000000,42.000000,268.000000,0.000000,11.000000,1.000000 2.000000,23.000000,1826.000000,697.000000,42.000000,268.000000,0.000000,11.000000,1.000000 3.000000,23.000000,1826.000000,697.000000,42.000000,268.000000,0.000000,11.000000,1.000000 4.000000,23.000000,1826.000000,697.000000,42.000000,268.000000,0.000000,11.000000,1.000000 5.000000,23.000000,1826.000000,697.000000,42.000000,268.000000,0.000000,11.000000,1.000000 6.000000,23.000000,1826.000000,697.000000,42.000000,268.000000,0.000000,11.000000,1.000000 7.000000,23.000000,1826.000000,697.000000,42.000000,268.000000,0.000000,11.000000,1.000000 8.000000,23.000000,1826.000000,697.000000,42.000000,268.000000,0.000000,11.000000,1.000000 1.000000,24.000000,622.000000,274.000000,91.000000,90.000000,0.000000,11.000000,1.000000 2.000000,24.000000,622.000000,274.000000,91.000000,90.000000,0.000000,11.000000,1.000000 3.000000,24.000000,622.000000,274.000000,91.000000,90.000000,0.000000,11.000000,1.000000 4.000000,24.000000,622.000000,274.000000,91.000000,90.000000,0.000000,11.000000,1.000000 5.000000,24.000000,622.000000,274.000000,91.000000,90.000000,0.000000,11.000000,1.000000 6.000000,24.000000,622.000000,274.000000,91.000000,90.000000,0.000000,11.000000,1.000000 7.000000,24.000000,622.000000,274.000000,91.000000,90.000000,0.000000,11.000000,1.000000 8.000000,24.000000,622.000000,274.000000,91.000000,90.000000,0.000000,11.000000,1.000000 1.000000,25.000000,616.000000,129.000000,101.000000,71.000000,0.000000,11.000000,1.000000 2.000000,25.000000,616.000000,129.000000,101.000000,71.000000,0.000000,11.000000,1.000000 3.000000,25.000000,616.000000,129.000000,101.000000,71.000000,0.000000,11.000000,1.000000 4.000000,25.000000,616.000000,129.000000,101.000000,71.000000,0.000000,11.000000,1.000000 5.000000,25.000000,616.000000,129.000000,101.000000,71.000000,0.000000,11.000000,1.000000 6.000000,25.000000,616.000000,129.000000,101.000000,71.000000,0.000000,11.000000,1.000000 7.000000,25.000000,616.000000,129.000000,101.000000,71.000000,0.000000,11.000000,1.000000 8.000000,25.000000,616.000000,129.000000,101.000000,71.000000,0.000000,11.000000,1.000000 1.000000,26.000000,650.000000,1.000000,29.000000,133.000000,0.000000,11.000000,1.000000 2.000000,26.000000,650.000000,1.000000,29.000000,133.000000,0.000000,11.000000,1.000000 3.000000,26.000000,650.000000,1.000000,29.000000,133.000000,0.000000,11.000000,1.000000 4.000000,26.000000,650.000000,1.000000,29.000000,133.000000,0.000000,11.000000,1.000000 5.000000,26.000000,650.000000,1.000000,29.000000,133.000000,0.000000,11.000000,1.000000 6.000000,26.000000,650.000000,1.000000,29.000000,133.000000,0.000000,11.000000,1.000000 7.000000,26.000000,650.000000,1.000000,29.000000,133.000000,0.000000,11.000000,1.000000 8.000000,26.000000,650.000000,1.000000,29.000000,133.000000,0.000000,11.000000,1.000000 1.000000,27.000000,654.000000,194.000000,26.000000,84.000000,0.000000,11.000000,1.000000 2.000000,27.000000,654.000000,194.000000,26.000000,84.000000,0.000000,11.000000,1.000000 3.000000,27.000000,654.000000,194.000000,26.000000,84.000000,0.000000,11.000000,1.000000 4.000000,27.000000,654.000000,194.000000,26.000000,84.000000,0.000000,11.000000,1.000000 5.000000,27.000000,654.000000,194.000000,26.000000,84.000000,0.000000,11.000000,1.000000 6.000000,27.000000,654.000000,194.000000,26.000000,84.000000,0.000000,11.000000,1.000000 7.000000,27.000000,654.000000,194.000000,26.000000,84.000000,0.000000,11.000000,1.000000 8.000000,27.000000,654.000000,194.000000,26.000000,84.000000,0.000000,11.000000,1.000000 1.000000,28.000000,654.000000,363.000000,30.000000,82.000000,0.000000,11.000000,1.000000 2.000000,28.000000,654.000000,363.000000,30.000000,82.000000,0.000000,11.000000,1.000000 3.000000,28.000000,654.000000,363.000000,30.000000,82.000000,0.000000,11.000000,1.000000 4.000000,28.000000,654.000000,363.000000,30.000000,82.000000,0.000000,11.000000,1.000000 5.000000,28.000000,654.000000,363.000000,30.000000,82.000000,0.000000,11.000000,1.000000 6.000000,28.000000,654.000000,363.000000,30.000000,82.000000,0.000000,11.000000,1.000000 7.000000,28.000000,654.000000,363.000000,30.000000,82.000000,0.000000,11.000000,1.000000 8.000000,28.000000,654.000000,363.000000,30.000000,82.000000,0.000000,11.000000,1.000000 1.000000,29.000000,621.000000,437.000000,55.000000,245.000000,0.000000,10.000000,0.881750 2.000000,29.000000,620.000000,437.000000,56.000000,245.000000,0.000000,10.000000,0.883830 3.000000,29.000000,620.000000,437.000000,56.000000,245.000000,0.000000,10.000000,0.883830 4.000000,29.000000,620.000000,437.000000,56.000000,245.000000,0.000000,10.000000,0.883830 5.000000,29.000000,620.000000,437.000000,56.000000,245.000000,0.000000,10.000000,0.883830 6.000000,29.000000,620.000000,437.000000,56.000000,245.000000,0.000000,10.000000,0.883830 7.000000,29.000000,620.000000,437.000000,56.000000,245.000000,0.000000,10.000000,0.883830 8.000000,29.000000,620.000000,437.000000,56.000000,245.000000,0.000000,10.000000,0.883830 1.000000,30.000000,616.000000,-1.000000,40.000000,137.000000,0.000000,10.000000,0.324500 2.000000,30.000000,616.000000,-1.000000,40.000000,137.000000,0.000000,10.000000,0.324500 3.000000,30.000000,616.000000,-1.000000,40.000000,137.000000,0.000000,10.000000,0.324500 4.000000,30.000000,616.000000,-1.000000,40.000000,137.000000,0.000000,10.000000,0.324500 5.000000,30.000000,616.000000,-1.000000,40.000000,137.000000,0.000000,10.000000,0.324500 6.000000,30.000000,616.000000,-1.000000,40.000000,137.000000,0.000000,10.000000,0.324500 7.000000,30.000000,616.000000,-1.000000,40.000000,137.000000,0.000000,10.000000,0.324500 8.000000,30.000000,616.000000,-1.000000,40.000000,137.000000,0.000000,10.000000,0.324500 1.000000,31.000000,1413.000000,723.000000,39.000000,100.000000,0.000000,10.000000,1.000000 2.000000,31.000000,1413.000000,723.000000,39.000000,100.000000,0.000000,10.000000,1.000000 3.000000,31.000000,1413.000000,723.000000,39.000000,100.000000,0.000000,10.000000,1.000000 4.000000,31.000000,1413.000000,723.000000,39.000000,100.000000,0.000000,10.000000,1.000000 5.000000,31.000000,1413.000000,723.000000,39.000000,100.000000,0.000000,10.000000,1.000000 6.000000,31.000000,1413.000000,723.000000,39.000000,100.000000,0.000000,10.000000,1.000000 7.000000,31.000000,1413.000000,723.000000,39.000000,100.000000,0.000000,10.000000,1.000000 8.000000,31.000000,1413.000000,723.000000,39.000000,100.000000,0.000000,10.000000,1.000000 1.000000,32.000000,1468.000000,864.000000,43.000000,102.000000,0.000000,10.000000,1.000000 2.000000,32.000000,1468.000000,864.000000,43.000000,102.000000,0.000000,10.000000,1.000000 3.000000,32.000000,1468.000000,864.000000,43.000000,102.000000,0.000000,10.000000,1.000000 4.000000,32.000000,1468.000000,864.000000,43.000000,102.000000,0.000000,10.000000,1.000000 5.000000,32.000000,1468.000000,864.000000,43.000000,102.000000,0.000000,10.000000,1.000000 6.000000,32.000000,1468.000000,864.000000,43.000000,102.000000,0.000000,10.000000,1.000000 7.000000,32.000000,1468.000000,864.000000,43.000000,102.000000,0.000000,10.000000,1.000000 8.000000,32.000000,1468.000000,864.000000,43.000000,102.000000,0.000000,10.000000,1.000000 1.000000,33.000000,706.000000,590.000000,36.000000,93.000000,0.000000,10.000000,0.783780 2.000000,33.000000,706.000000,590.000000,36.000000,93.000000,0.000000,10.000000,0.783780 3.000000,33.000000,706.000000,590.000000,36.000000,93.000000,0.000000,10.000000,0.783780 4.000000,33.000000,706.000000,590.000000,36.000000,93.000000,0.000000,10.000000,0.783780 5.000000,33.000000,706.000000,590.000000,36.000000,93.000000,0.000000,10.000000,0.783780 6.000000,33.000000,706.000000,590.000000,36.000000,93.000000,0.000000,10.000000,0.783780 7.000000,33.000000,706.000000,590.000000,36.000000,93.000000,0.000000,10.000000,0.783780 8.000000,33.000000,706.000000,590.000000,36.000000,93.000000,0.000000,10.000000,0.783780 1.000000,34.000000,92.000000,0.000000,115.000000,219.000000,0.000000,11.000000,1.000000 2.000000,34.000000,92.000000,0.000000,115.000000,219.000000,0.000000,11.000000,1.000000 3.000000,34.000000,92.000000,0.000000,115.000000,219.000000,0.000000,11.000000,1.000000 4.000000,34.000000,92.000000,0.000000,115.000000,219.000000,0.000000,11.000000,1.000000 5.000000,34.000000,92.000000,0.000000,115.000000,219.000000,0.000000,11.000000,1.000000 6.000000,34.000000,92.000000,0.000000,115.000000,219.000000,0.000000,11.000000,1.000000 7.000000,34.000000,92.000000,0.000000,115.000000,219.000000,0.000000,11.000000,1.000000 8.000000,34.000000,92.000000,0.000000,115.000000,219.000000,0.000000,11.000000,1.000000 1.000000,35.000000,198.000000,33.000000,32.000000,127.000000,0.000000,11.000000,1.000000 2.000000,35.000000,198.000000,33.000000,32.000000,127.000000,0.000000,11.000000,1.000000 3.000000,35.000000,198.000000,33.000000,32.000000,127.000000,0.000000,11.000000,1.000000 4.000000,35.000000,198.000000,33.000000,32.000000,127.000000,0.000000,11.000000,1.000000 5.000000,35.000000,198.000000,33.000000,32.000000,127.000000,0.000000,11.000000,1.000000 6.000000,35.000000,198.000000,33.000000,32.000000,127.000000,0.000000,11.000000,1.000000 7.000000,35.000000,198.000000,33.000000,32.000000,127.000000,0.000000,11.000000,1.000000 8.000000,35.000000,198.000000,33.000000,32.000000,127.000000,0.000000,11.000000,1.000000 1.000000,36.000000,224.000000,42.000000,23.000000,65.000000,0.000000,11.000000,1.000000 2.000000,36.000000,224.000000,42.000000,23.000000,65.000000,0.000000,11.000000,1.000000 3.000000,36.000000,224.000000,42.000000,23.000000,65.000000,0.000000,11.000000,1.000000 4.000000,36.000000,224.000000,42.000000,23.000000,65.000000,0.000000,11.000000,1.000000 5.000000,36.000000,224.000000,42.000000,23.000000,65.000000,0.000000,11.000000,1.000000 6.000000,36.000000,224.000000,42.000000,23.000000,65.000000,0.000000,11.000000,1.000000 7.000000,36.000000,224.000000,42.000000,23.000000,65.000000,0.000000,11.000000,1.000000 8.000000,36.000000,224.000000,42.000000,23.000000,65.000000,0.000000,11.000000,1.000000 1.000000,37.000000,1871.000000,257.000000,26.000000,69.000000,0.000000,10.000000,1.000000 2.000000,37.000000,1871.000000,257.000000,26.000000,69.000000,0.000000,10.000000,1.000000 3.000000,37.000000,1871.000000,257.000000,26.000000,69.000000,0.000000,10.000000,1.000000 4.000000,37.000000,1871.000000,257.000000,26.000000,69.000000,0.000000,10.000000,1.000000 5.000000,37.000000,1871.000000,257.000000,26.000000,69.000000,0.000000,10.000000,1.000000 6.000000,37.000000,1871.000000,257.000000,26.000000,69.000000,0.000000,10.000000,1.000000 7.000000,37.000000,1871.000000,257.000000,26.000000,69.000000,0.000000,10.000000,1.000000 8.000000,37.000000,1871.000000,257.000000,26.000000,69.000000,0.000000,10.000000,1.000000 1.000000,38.000000,1584.000000,777.000000,34.000000,50.000000,0.000000,10.000000,1.000000 2.000000,38.000000,1584.000000,777.000000,34.000000,50.000000,0.000000,10.000000,1.000000 3.000000,38.000000,1584.000000,777.000000,34.000000,50.000000,0.000000,10.000000,1.000000 4.000000,38.000000,1584.000000,777.000000,34.000000,50.000000,0.000000,10.000000,1.000000 5.000000,38.000000,1584.000000,777.000000,34.000000,50.000000,0.000000,10.000000,1.000000 6.000000,38.000000,1584.000000,777.000000,34.000000,50.000000,0.000000,10.000000,1.000000 7.000000,38.000000,1584.000000,777.000000,34.000000,50.000000,0.000000,10.000000,1.000000 8.000000,38.000000,1584.000000,777.000000,34.000000,50.000000,0.000000,10.000000,1.000000 1.000000,39.000000,1658.000000,915.000000,36.000000,56.000000,0.000000,10.000000,1.000000 2.000000,39.000000,1658.000000,915.000000,36.000000,56.000000,0.000000,10.000000,1.000000 3.000000,39.000000,1658.000000,915.000000,36.000000,56.000000,0.000000,10.000000,1.000000 4.000000,39.000000,1658.000000,915.000000,36.000000,56.000000,0.000000,10.000000,1.000000 5.000000,39.000000,1658.000000,915.000000,36.000000,56.000000,0.000000,10.000000,1.000000 6.000000,39.000000,1658.000000,915.000000,36.000000,56.000000,0.000000,10.000000,1.000000 7.000000,39.000000,1658.000000,915.000000,36.000000,56.000000,0.000000,10.000000,1.000000 8.000000,39.000000,1658.000000,915.000000,36.000000,56.000000,0.000000,10.000000,1.000000 1.000000,40.000000,1340.000000,288.000000,28.000000,36.000000,0.000000,10.000000,0.864860 2.000000,40.000000,1340.000000,288.000000,28.000000,36.000000,0.000000,10.000000,0.864860 3.000000,40.000000,1340.000000,288.000000,28.000000,36.000000,0.000000,10.000000,0.864860 4.000000,40.000000,1340.000000,288.000000,28.000000,36.000000,0.000000,10.000000,0.864860 5.000000,40.000000,1340.000000,288.000000,28.000000,36.000000,0.000000,10.000000,0.864860 6.000000,40.000000,1340.000000,288.000000,28.000000,36.000000,0.000000,10.000000,0.864860 7.000000,40.000000,1340.000000,288.000000,28.000000,36.000000,0.000000,10.000000,0.864860 8.000000,40.000000,1340.000000,288.000000,28.000000,36.000000,0.000000,10.000000,0.864860 1.000000,41.000000,1249.000000,111.000000,27.000000,32.000000,0.000000,10.000000,0.178570 2.000000,41.000000,1249.000000,111.000000,27.000000,32.000000,0.000000,10.000000,0.178570 3.000000,41.000000,1249.000000,111.000000,27.000000,32.000000,0.000000,10.000000,0.178570 4.000000,41.000000,1249.000000,111.000000,27.000000,32.000000,0.000000,10.000000,0.178570 5.000000,41.000000,1249.000000,111.000000,27.000000,32.000000,0.000000,10.000000,0.178570 6.000000,41.000000,1249.000000,111.000000,27.000000,32.000000,0.000000,10.000000,0.142860 7.000000,41.000000,1249.000000,111.000000,27.000000,32.000000,0.000000,10.000000,0.142860 8.000000,41.000000,1249.000000,111.000000,27.000000,32.000000,0.000000,10.000000,0.142860 1.000000,42.000000,718.000000,790.000000,30.000000,48.000000,0.000000,10.000000,0.516130 2.000000,42.000000,718.000000,790.000000,30.000000,48.000000,0.000000,10.000000,0.548390 3.000000,42.000000,718.000000,790.000000,30.000000,48.000000,0.000000,10.000000,0.548390 4.000000,42.000000,718.000000,790.000000,30.000000,48.000000,0.000000,10.000000,0.548390 5.000000,42.000000,718.000000,790.000000,30.000000,48.000000,0.000000,10.000000,0.548390 6.000000,42.000000,718.000000,790.000000,30.000000,48.000000,0.000000,10.000000,0.548390 7.000000,42.000000,718.000000,790.000000,30.000000,48.000000,0.000000,10.000000,0.548390 8.000000,42.000000,718.000000,790.000000,30.000000,48.000000,0.000000,10.000000,0.548390 1.000000,43.000000,703.000000,503.000000,30.000000,43.000000,0.000000,10.000000,0.645160 2.000000,43.000000,703.000000,503.000000,30.000000,43.000000,0.000000,10.000000,0.645160 3.000000,43.000000,703.000000,503.000000,30.000000,43.000000,0.000000,10.000000,0.645160 4.000000,43.000000,703.000000,503.000000,30.000000,43.000000,0.000000,10.000000,0.645160 5.000000,43.000000,703.000000,503.000000,30.000000,43.000000,0.000000,10.000000,0.645160 6.000000,43.000000,703.000000,503.000000,30.000000,43.000000,0.000000,10.000000,0.645160 7.000000,43.000000,703.000000,503.000000,30.000000,43.000000,0.000000,10.000000,0.645160 8.000000,43.000000,703.000000,503.000000,30.000000,43.000000,0.000000,10.000000,0.645160 1.000000,44.000000,699.000000,428.000000,30.000000,42.000000,0.000000,10.000000,0.516130 2.000000,44.000000,699.000000,428.000000,30.000000,42.000000,0.000000,10.000000,0.516130 3.000000,44.000000,699.000000,428.000000,30.000000,42.000000,0.000000,10.000000,0.516130 4.000000,44.000000,699.000000,428.000000,30.000000,42.000000,0.000000,10.000000,0.516130 5.000000,44.000000,699.000000,428.000000,30.000000,42.000000,0.000000,10.000000,0.516130 6.000000,44.000000,699.000000,428.000000,30.000000,42.000000,0.000000,10.000000,0.516130 7.000000,44.000000,699.000000,428.000000,30.000000,42.000000,0.000000,10.000000,0.516130 8.000000,44.000000,699.000000,428.000000,30.000000,42.000000,0.000000,10.000000,0.516130 1.000000,45.000000,687.000000,206.000000,77.000000,112.000000,0.000000,7.000000,0.792260 2.000000,45.000000,687.000000,206.000000,77.000000,112.000000,0.000000,7.000000,0.792260 3.000000,45.000000,687.000000,206.000000,77.000000,112.000000,0.000000,7.000000,0.792260 4.000000,45.000000,687.000000,206.000000,77.000000,112.000000,0.000000,7.000000,0.792260 5.000000,45.000000,687.000000,206.000000,77.000000,112.000000,0.000000,7.000000,0.792260 6.000000,45.000000,687.000000,206.000000,77.000000,112.000000,0.000000,7.000000,0.792260 7.000000,45.000000,687.000000,206.000000,77.000000,112.000000,0.000000,7.000000,0.792260 8.000000,45.000000,687.000000,206.000000,77.000000,112.000000,0.000000,7.000000,0.792260 1.000000,46.000000,678.000000,291.000000,57.000000,121.000000,0.000000,7.000000,0.576030 2.000000,46.000000,678.000000,291.000000,57.000000,121.000000,0.000000,7.000000,0.576030 3.000000,46.000000,678.000000,291.000000,57.000000,121.000000,0.000000,7.000000,0.576030 4.000000,46.000000,678.000000,291.000000,57.000000,121.000000,0.000000,7.000000,0.576030 5.000000,46.000000,678.000000,291.000000,57.000000,121.000000,0.000000,7.000000,0.576030 6.000000,46.000000,678.000000,291.000000,57.000000,121.000000,0.000000,7.000000,0.576030 7.000000,46.000000,678.000000,291.000000,57.000000,121.000000,0.000000,7.000000,0.576030 8.000000,46.000000,678.000000,291.000000,57.000000,121.000000,0.000000,7.000000,0.576030 1.000000,47.000000,1543.000000,628.000000,176.000000,116.000000,0.000000,4.000000,1.000000 2.000000,47.000000,1543.000000,628.000000,176.000000,116.000000,0.000000,4.000000,1.000000 3.000000,47.000000,1543.000000,628.000000,176.000000,116.000000,0.000000,4.000000,1.000000 4.000000,47.000000,1543.000000,628.000000,176.000000,116.000000,0.000000,4.000000,1.000000 5.000000,47.000000,1543.000000,628.000000,176.000000,116.000000,0.000000,4.000000,1.000000 6.000000,47.000000,1543.000000,628.000000,176.000000,116.000000,0.000000,4.000000,1.000000 7.000000,47.000000,1543.000000,628.000000,176.000000,116.000000,0.000000,4.000000,1.000000 8.000000,47.000000,1543.000000,628.000000,176.000000,116.000000,0.000000,4.000000,1.000000 1.000000,48.000000,1193.000000,320.000000,270.000000,255.000000,0.000000,3.000000,0.989810 2.000000,48.000000,1193.000000,320.000000,270.000000,255.000000,0.000000,3.000000,0.988240 3.000000,48.000000,1193.000000,320.000000,270.000000,255.000000,0.000000,3.000000,0.988240 4.000000,48.000000,1193.000000,320.000000,270.000000,255.000000,0.000000,3.000000,0.988240 5.000000,48.000000,1193.000000,320.000000,270.000000,255.000000,0.000000,3.000000,0.988240 6.000000,48.000000,1193.000000,320.000000,270.000000,255.000000,0.000000,3.000000,0.988240 7.000000,48.000000,1193.000000,320.000000,270.000000,255.000000,0.000000,3.000000,0.988240 8.000000,48.000000,1193.000000,320.000000,270.000000,255.000000,0.000000,3.000000,0.988240 1.000000,49.000000,1790.000000,94.000000,152.000000,105.000000,0.000000,4.000000,0.856210 2.000000,49.000000,1790.000000,94.000000,152.000000,105.000000,0.000000,4.000000,0.856210 3.000000,49.000000,1790.000000,94.000000,152.000000,105.000000,0.000000,4.000000,0.856210 4.000000,49.000000,1790.000000,94.000000,152.000000,105.000000,0.000000,4.000000,0.856210 5.000000,49.000000,1790.000000,94.000000,152.000000,105.000000,0.000000,4.000000,0.856210 6.000000,49.000000,1790.000000,94.000000,152.000000,105.000000,0.000000,4.000000,0.856210 7.000000,49.000000,1790.000000,94.000000,152.000000,105.000000,0.000000,4.000000,0.856210 8.000000,49.000000,1790.000000,94.000000,152.000000,105.000000,0.000000,4.000000,0.856210 1.000000,50.000000,1483.000000,538.000000,252.000000,181.000000,0.000000,5.000000,0.646350 2.000000,50.000000,1483.000000,538.000000,252.000000,181.000000,0.000000,5.000000,0.646350 3.000000,50.000000,1483.000000,538.000000,252.000000,181.000000,0.000000,5.000000,0.646350 4.000000,50.000000,1483.000000,538.000000,252.000000,181.000000,0.000000,5.000000,0.646350 5.000000,50.000000,1483.000000,538.000000,252.000000,181.000000,0.000000,5.000000,0.646350 6.000000,50.000000,1483.000000,538.000000,252.000000,181.000000,0.000000,5.000000,0.646350 7.000000,50.000000,1483.000000,538.000000,252.000000,181.000000,0.000000,5.000000,0.646350 8.000000,50.000000,1483.000000,538.000000,252.000000,181.000000,0.000000,5.000000,0.646350 1.000000,51.000000,1279.000000,173.000000,129.000000,104.000000,0.000000,4.000000,1.000000 2.000000,51.000000,1279.000000,173.000000,129.000000,104.000000,0.000000,4.000000,1.000000 3.000000,51.000000,1279.000000,173.000000,129.000000,104.000000,0.000000,4.000000,1.000000 4.000000,51.000000,1279.000000,173.000000,129.000000,104.000000,0.000000,4.000000,1.000000 5.000000,51.000000,1279.000000,173.000000,129.000000,104.000000,0.000000,4.000000,1.000000 6.000000,51.000000,1279.000000,173.000000,129.000000,104.000000,0.000000,4.000000,1.000000 7.000000,51.000000,1279.000000,173.000000,129.000000,104.000000,0.000000,4.000000,1.000000 8.000000,51.000000,1279.000000,173.000000,129.000000,104.000000,0.000000,4.000000,1.000000 1.000000,52.000000,1280.000000,153.000000,162.000000,96.000000,0.000000,4.000000,0.126810 2.000000,52.000000,1280.000000,153.000000,162.000000,96.000000,0.000000,4.000000,0.118650 3.000000,52.000000,1280.000000,153.000000,162.000000,96.000000,0.000000,4.000000,0.113660 4.000000,52.000000,1280.000000,153.000000,162.000000,96.000000,0.000000,4.000000,0.106820 5.000000,52.000000,1280.000000,153.000000,162.000000,96.000000,0.000000,4.000000,0.101570 6.000000,52.000000,1280.000000,153.000000,162.000000,96.000000,0.000000,4.000000,0.098096 7.000000,52.000000,1280.000000,153.000000,162.000000,96.000000,0.000000,4.000000,0.089115 8.000000,52.000000,1280.000000,153.000000,162.000000,96.000000,0.000000,4.000000,0.083486 1.000000,53.000000,1249.000000,150.000000,160.000000,99.000000,0.000000,4.000000,0.211990 2.000000,53.000000,1249.000000,150.000000,160.000000,99.000000,0.000000,4.000000,0.211990 3.000000,53.000000,1249.000000,150.000000,160.000000,99.000000,0.000000,4.000000,0.211990 4.000000,53.000000,1249.000000,150.000000,160.000000,99.000000,0.000000,4.000000,0.211990 5.000000,53.000000,1249.000000,150.000000,160.000000,99.000000,0.000000,4.000000,0.211990 6.000000,53.000000,1249.000000,150.000000,160.000000,99.000000,0.000000,4.000000,0.211990 7.000000,53.000000,1249.000000,150.000000,160.000000,99.000000,0.000000,4.000000,0.211990 8.000000,53.000000,1249.000000,150.000000,160.000000,99.000000,0.000000,4.000000,0.211990 1.000000,54.000000,1185.000000,-7.000000,153.000000,95.000000,0.000000,4.000000,0.275910 2.000000,54.000000,1185.000000,-7.000000,153.000000,95.000000,0.000000,4.000000,0.273130 3.000000,54.000000,1185.000000,-7.000000,153.000000,95.000000,0.000000,4.000000,0.270560 4.000000,54.000000,1185.000000,-7.000000,153.000000,95.000000,0.000000,4.000000,0.271370 5.000000,54.000000,1185.000000,-7.000000,153.000000,95.000000,0.000000,4.000000,0.265020 6.000000,54.000000,1185.000000,-7.000000,153.000000,95.000000,0.000000,4.000000,0.265960 7.000000,54.000000,1185.000000,-7.000000,153.000000,95.000000,0.000000,4.000000,0.263460 8.000000,54.000000,1185.000000,-7.000000,153.000000,95.000000,0.000000,4.000000,0.257580 1.000000,55.000000,563.000000,162.000000,166.000000,97.000000,0.000000,4.000000,0.278200 2.000000,55.000000,562.000000,161.000000,166.000000,97.000000,0.000000,4.000000,0.273490 3.000000,55.000000,562.000000,161.000000,166.000000,97.000000,0.000000,4.000000,0.267510 4.000000,55.000000,562.000000,161.000000,166.000000,97.000000,0.000000,4.000000,0.261520 5.000000,55.000000,562.000000,161.000000,166.000000,97.000000,0.000000,4.000000,0.261520 6.000000,55.000000,562.000000,161.000000,166.000000,97.000000,0.000000,4.000000,0.255530 7.000000,55.000000,562.000000,161.000000,166.000000,97.000000,0.000000,4.000000,0.249540 8.000000,55.000000,562.000000,161.000000,166.000000,97.000000,0.000000,4.000000,0.249540 1.000000,56.000000,550.000000,84.000000,172.000000,88.000000,0.000000,4.000000,0.384750 2.000000,56.000000,550.000000,84.000000,172.000000,88.000000,0.000000,4.000000,0.383580 3.000000,56.000000,550.000000,84.000000,172.000000,88.000000,0.000000,4.000000,0.382740 4.000000,56.000000,550.000000,84.000000,172.000000,88.000000,0.000000,4.000000,0.381890 5.000000,56.000000,550.000000,84.000000,172.000000,88.000000,0.000000,4.000000,0.381890 6.000000,56.000000,550.000000,84.000000,172.000000,88.000000,0.000000,4.000000,0.381050 7.000000,56.000000,550.000000,84.000000,172.000000,88.000000,0.000000,4.000000,0.380200 8.000000,56.000000,550.000000,84.000000,172.000000,88.000000,0.000000,4.000000,0.380200 1.000000,57.000000,517.000000,55.000000,170.000000,89.000000,0.000000,4.000000,0.165890 2.000000,57.000000,517.000000,55.000000,170.000000,89.000000,0.000000,4.000000,0.165890 3.000000,57.000000,517.000000,55.000000,170.000000,89.000000,0.000000,4.000000,0.165890 4.000000,57.000000,517.000000,55.000000,170.000000,89.000000,0.000000,4.000000,0.165890 5.000000,57.000000,517.000000,55.000000,170.000000,89.000000,0.000000,4.000000,0.165890 6.000000,57.000000,517.000000,55.000000,170.000000,89.000000,0.000000,4.000000,0.165890 7.000000,57.000000,517.000000,55.000000,170.000000,89.000000,0.000000,4.000000,0.165890 8.000000,57.000000,517.000000,55.000000,170.000000,89.000000,0.000000,4.000000,0.165890 1.000000,58.000000,574.000000,15.000000,139.000000,107.000000,0.000000,4.000000,0.205290 2.000000,58.000000,574.000000,15.000000,139.000000,107.000000,0.000000,4.000000,0.205290 3.000000,58.000000,574.000000,15.000000,139.000000,107.000000,0.000000,4.000000,0.205290 4.000000,58.000000,574.000000,15.000000,139.000000,107.000000,0.000000,4.000000,0.205290 5.000000,58.000000,574.000000,15.000000,139.000000,107.000000,0.000000,4.000000,0.205290 6.000000,58.000000,574.000000,15.000000,139.000000,107.000000,0.000000,4.000000,0.205290 7.000000,58.000000,574.000000,15.000000,139.000000,107.000000,0.000000,4.000000,0.205290 8.000000,58.000000,574.000000,15.000000,139.000000,107.000000,0.000000,4.000000,0.205290 1.000000,59.000000,1725.000000,882.000000,196.000000,134.000000,0.000000,4.000000,0.683290 2.000000,59.000000,1725.000000,882.000000,196.000000,134.000000,0.000000,4.000000,0.683290 3.000000,59.000000,1725.000000,882.000000,196.000000,134.000000,0.000000,4.000000,0.683290 4.000000,59.000000,1725.000000,882.000000,196.000000,134.000000,0.000000,4.000000,0.683290 5.000000,59.000000,1725.000000,882.000000,196.000000,134.000000,0.000000,4.000000,0.683290 6.000000,59.000000,1725.000000,882.000000,196.000000,134.000000,0.000000,4.000000,0.683290 7.000000,59.000000,1725.000000,882.000000,196.000000,134.000000,0.000000,4.000000,0.683290 8.000000,59.000000,1725.000000,882.000000,196.000000,134.000000,0.000000,4.000000,0.683290 1.000000,60.000000,796.000000,149.000000,60.000000,175.000000,1.000000,1.000000,1.000000 2.000000,60.000000,795.000000,149.000000,60.000000,174.000000,1.000000,1.000000,1.000000 3.000000,60.000000,795.000000,149.000000,60.000000,174.000000,1.000000,1.000000,1.000000 4.000000,60.000000,795.000000,149.000000,60.000000,174.000000,1.000000,1.000000,1.000000 5.000000,60.000000,795.000000,149.000000,60.000000,174.000000,1.000000,1.000000,1.000000 6.000000,60.000000,795.000000,149.000000,60.000000,174.000000,1.000000,1.000000,1.000000 7.000000,60.000000,795.000000,149.000000,60.000000,174.000000,1.000000,1.000000,1.000000 8.000000,60.000000,795.000000,149.000000,60.000000,174.000000,1.000000,1.000000,1.000000 1.000000,61.000000,1789.000000,206.000000,65.000000,184.000000,1.000000,1.000000,1.000000 2.000000,61.000000,1790.000000,207.000000,65.000000,183.000000,1.000000,1.000000,1.000000 3.000000,61.000000,1791.000000,208.000000,65.000000,183.000000,1.000000,1.000000,1.000000 4.000000,61.000000,1792.000000,209.000000,65.000000,182.000000,1.000000,1.000000,1.000000 5.000000,61.000000,1794.000000,210.000000,64.000000,182.000000,1.000000,1.000000,1.000000 6.000000,61.000000,1795.000000,211.000000,65.000000,181.000000,1.000000,1.000000,1.000000 7.000000,61.000000,1796.000000,212.000000,65.000000,181.000000,1.000000,1.000000,1.000000 8.000000,61.000000,1798.000000,213.000000,64.000000,180.000000,1.000000,1.000000,1.000000 1.000000,62.000000,1487.000000,71.000000,53.000000,145.000000,1.000000,1.000000,0.765350 2.000000,62.000000,1487.000000,71.000000,53.000000,145.000000,1.000000,1.000000,0.765350 3.000000,62.000000,1487.000000,70.000000,53.000000,146.000000,1.000000,1.000000,0.766940 4.000000,62.000000,1487.000000,70.000000,53.000000,146.000000,1.000000,1.000000,0.766940 5.000000,62.000000,1487.000000,70.000000,53.000000,146.000000,1.000000,1.000000,0.766940 6.000000,62.000000,1487.000000,70.000000,53.000000,146.000000,1.000000,1.000000,0.766940 7.000000,62.000000,1487.000000,70.000000,53.000000,146.000000,1.000000,1.000000,0.766940 8.000000,62.000000,1487.000000,70.000000,53.000000,146.000000,1.000000,1.000000,0.766940 1.000000,63.000000,1636.000000,265.000000,66.000000,181.000000,1.000000,1.000000,1.000000 2.000000,63.000000,1634.000000,264.000000,66.000000,181.000000,1.000000,1.000000,1.000000 3.000000,63.000000,1633.000000,263.000000,65.000000,182.000000,1.000000,1.000000,1.000000 4.000000,63.000000,1632.000000,263.000000,64.000000,182.000000,1.000000,1.000000,1.000000 5.000000,63.000000,1631.000000,262.000000,63.000000,182.000000,1.000000,1.000000,1.000000 6.000000,63.000000,1630.000000,262.000000,63.000000,182.000000,1.000000,1.000000,0.994540 7.000000,63.000000,1629.000000,261.000000,62.000000,183.000000,1.000000,1.000000,0.988960 8.000000,63.000000,1628.000000,260.000000,61.000000,183.000000,1.000000,1.000000,0.983430 1.000000,64.000000,1358.000000,612.000000,42.000000,89.000000,0.000000,10.000000,0.116280 2.000000,64.000000,1358.000000,612.000000,42.000000,89.000000,0.000000,10.000000,0.093023 3.000000,64.000000,1358.000000,612.000000,42.000000,89.000000,0.000000,10.000000,0.093023 4.000000,64.000000,1358.000000,612.000000,42.000000,89.000000,0.000000,10.000000,0.093023 5.000000,64.000000,1358.000000,612.000000,42.000000,89.000000,0.000000,10.000000,0.093023 6.000000,64.000000,1358.000000,612.000000,42.000000,89.000000,0.000000,10.000000,0.093023 7.000000,64.000000,1358.000000,612.000000,42.000000,89.000000,0.000000,10.000000,0.093023 8.000000,64.000000,1358.000000,612.000000,42.000000,89.000000,0.000000,10.000000,0.093023 1.000000,65.000000,1557.000000,254.000000,60.000000,192.000000,1.000000,1.000000,0.267050 2.000000,65.000000,1555.000000,253.000000,60.000000,192.000000,1.000000,1.000000,0.252870 3.000000,65.000000,1554.000000,252.000000,60.000000,192.000000,1.000000,1.000000,0.248360 4.000000,65.000000,1553.000000,251.000000,60.000000,192.000000,1.000000,1.000000,0.243860 5.000000,65.000000,1551.000000,251.000000,60.000000,192.000000,1.000000,1.000000,0.224500 6.000000,65.000000,1550.000000,250.000000,60.000000,192.000000,1.000000,1.000000,0.219990 7.000000,65.000000,1549.000000,249.000000,60.000000,192.000000,1.000000,1.000000,0.215490 8.000000,65.000000,1547.000000,249.000000,60.000000,192.000000,1.000000,1.000000,0.203010 1.000000,66.000000,1104.000000,212.000000,56.000000,181.000000,1.000000,1.000000,1.000000 2.000000,66.000000,1097.000000,211.000000,61.000000,181.000000,1.000000,1.000000,1.000000 3.000000,66.000000,1091.000000,211.000000,66.000000,180.000000,1.000000,1.000000,1.000000 4.000000,66.000000,1085.000000,210.000000,70.000000,180.000000,1.000000,1.000000,1.000000 5.000000,66.000000,1079.000000,210.000000,75.000000,180.000000,1.000000,1.000000,1.000000 6.000000,66.000000,1073.000000,209.000000,79.000000,180.000000,1.000000,1.000000,1.000000 7.000000,66.000000,1067.000000,209.000000,84.000000,179.000000,1.000000,1.000000,1.000000 8.000000,66.000000,1061.000000,208.000000,88.000000,180.000000,1.000000,1.000000,1.000000 1.000000,67.000000,1031.000000,133.000000,80.000000,183.000000,1.000000,1.000000,0.943640 2.000000,67.000000,1031.000000,133.000000,79.000000,183.000000,1.000000,1.000000,0.899180 3.000000,67.000000,1031.000000,134.000000,78.000000,182.000000,1.000000,1.000000,0.860690 4.000000,67.000000,1031.000000,135.000000,77.000000,181.000000,1.000000,1.000000,0.819100 5.000000,67.000000,1031.000000,135.000000,76.000000,181.000000,1.000000,1.000000,0.778580 6.000000,67.000000,1031.000000,136.000000,75.000000,180.000000,1.000000,1.000000,0.733060 7.000000,67.000000,1031.000000,137.000000,74.000000,179.000000,1.000000,1.000000,0.688000 8.000000,67.000000,1031.000000,137.000000,73.000000,179.000000,1.000000,1.000000,0.639940 1.000000,68.000000,228.000000,401.000000,63.000000,203.000000,1.000000,1.000000,1.000000 2.000000,68.000000,226.000000,399.000000,63.000000,202.000000,1.000000,1.000000,1.000000 3.000000,68.000000,224.000000,398.000000,64.000000,201.000000,1.000000,1.000000,1.000000 4.000000,68.000000,223.000000,397.000000,63.000000,200.000000,1.000000,1.000000,1.000000 5.000000,68.000000,221.000000,395.000000,64.000000,200.000000,1.000000,1.000000,1.000000 6.000000,68.000000,220.000000,394.000000,64.000000,199.000000,1.000000,1.000000,1.000000 7.000000,68.000000,218.000000,393.000000,64.000000,197.000000,1.000000,1.000000,1.000000 8.000000,68.000000,216.000000,391.000000,65.000000,197.000000,1.000000,1.000000,1.000000 1.000000,69.000000,264.000000,365.000000,60.000000,221.000000,1.000000,1.000000,0.615420 2.000000,69.000000,262.000000,363.000000,60.000000,221.000000,1.000000,1.000000,0.615420 3.000000,69.000000,260.000000,362.000000,60.000000,220.000000,1.000000,1.000000,0.602030 4.000000,69.000000,259.000000,361.000000,59.000000,219.000000,1.000000,1.000000,0.609700 5.000000,69.000000,257.000000,360.000000,59.000000,218.000000,1.000000,1.000000,0.593910 6.000000,69.000000,256.000000,359.000000,58.000000,217.000000,1.000000,1.000000,0.587390 7.000000,69.000000,254.000000,357.000000,58.000000,217.000000,1.000000,1.000000,0.589640 8.000000,69.000000,252.000000,356.000000,58.000000,216.000000,1.000000,1.000000,0.573540 1.000000,70.000000,872.000000,122.000000,58.000000,180.000000,1.000000,1.000000,1.000000 2.000000,70.000000,872.000000,122.000000,59.000000,180.000000,1.000000,1.000000,1.000000 3.000000,70.000000,873.000000,123.000000,59.000000,180.000000,1.000000,1.000000,1.000000 4.000000,70.000000,874.000000,124.000000,59.000000,179.000000,1.000000,1.000000,1.000000 5.000000,70.000000,874.000000,124.000000,60.000000,180.000000,1.000000,1.000000,1.000000 6.000000,70.000000,875.000000,125.000000,60.000000,179.000000,1.000000,1.000000,1.000000 7.000000,70.000000,876.000000,126.000000,60.000000,179.000000,1.000000,1.000000,1.000000 8.000000,70.000000,876.000000,126.000000,61.000000,179.000000,1.000000,1.000000,1.000000 1.000000,71.000000,912.000000,129.000000,48.000000,161.000000,1.000000,1.000000,0.612240 2.000000,71.000000,912.000000,130.000000,48.000000,161.000000,1.000000,1.000000,0.591840 3.000000,71.000000,912.000000,131.000000,49.000000,161.000000,1.000000,1.000000,0.580000 4.000000,71.000000,912.000000,132.000000,49.000000,161.000000,1.000000,1.000000,0.560000 5.000000,71.000000,913.000000,134.000000,49.000000,160.000000,1.000000,1.000000,0.560000 6.000000,71.000000,913.000000,135.000000,50.000000,160.000000,1.000000,1.000000,0.549020 7.000000,71.000000,913.000000,136.000000,50.000000,160.000000,1.000000,1.000000,0.529410 8.000000,71.000000,914.000000,138.000000,50.000000,159.000000,1.000000,1.000000,0.529410 1.000000,72.000000,1040.000000,-39.000000,46.000000,123.000000,1.000000,1.000000,0.677420 2.000000,72.000000,1039.000000,-40.000000,46.000000,123.000000,1.000000,1.000000,0.669350 3.000000,72.000000,1039.000000,-40.000000,46.000000,122.000000,1.000000,1.000000,0.666670 4.000000,72.000000,1039.000000,-41.000000,46.000000,123.000000,1.000000,1.000000,0.661290 5.000000,72.000000,1039.000000,-41.000000,46.000000,122.000000,1.000000,1.000000,0.658540 6.000000,72.000000,1039.000000,-42.000000,46.000000,123.000000,1.000000,1.000000,0.653230 7.000000,72.000000,1039.000000,-42.000000,46.000000,122.000000,1.000000,1.000000,0.650410 8.000000,72.000000,1039.000000,-43.000000,46.000000,122.000000,1.000000,1.000000,0.642280 1.000000,73.000000,996.000000,-41.000000,47.000000,121.000000,1.000000,1.000000,0.601090 2.000000,73.000000,996.000000,-41.000000,47.000000,121.000000,1.000000,1.000000,0.587430 3.000000,73.000000,996.000000,-42.000000,47.000000,121.000000,1.000000,1.000000,0.580090 4.000000,73.000000,997.000000,-43.000000,47.000000,121.000000,1.000000,1.000000,0.559430 5.000000,73.000000,997.000000,-43.000000,47.000000,120.000000,1.000000,1.000000,0.556820 6.000000,73.000000,998.000000,-44.000000,47.000000,121.000000,1.000000,1.000000,0.539110 7.000000,73.000000,998.000000,-44.000000,47.000000,120.000000,1.000000,1.000000,0.536500 8.000000,73.000000,999.000000,-45.000000,47.000000,120.000000,1.000000,1.000000,0.516530 1.000000,74.000000,1449.000000,251.000000,55.000000,171.000000,1.000000,1.000000,0.839600 2.000000,74.000000,1448.000000,250.000000,54.000000,170.000000,1.000000,1.000000,0.828180 3.000000,74.000000,1447.000000,249.000000,53.000000,170.000000,1.000000,1.000000,0.815900 4.000000,74.000000,1446.000000,248.000000,53.000000,170.000000,1.000000,1.000000,0.807020 5.000000,74.000000,1445.000000,247.000000,52.000000,170.000000,1.000000,1.000000,0.794550 6.000000,74.000000,1444.000000,246.000000,52.000000,170.000000,1.000000,1.000000,0.785940 7.000000,74.000000,1443.000000,245.000000,51.000000,169.000000,1.000000,1.000000,0.774320 8.000000,74.000000,1442.000000,244.000000,50.000000,169.000000,1.000000,1.000000,0.761480 1.000000,75.000000,1420.000000,198.000000,46.000000,171.000000,1.000000,1.000000,0.555670 2.000000,75.000000,1418.000000,197.000000,46.000000,171.000000,1.000000,1.000000,0.567910 3.000000,75.000000,1417.000000,196.000000,46.000000,171.000000,1.000000,1.000000,0.571620 4.000000,75.000000,1415.000000,196.000000,46.000000,171.000000,1.000000,1.000000,0.578430 5.000000,75.000000,1414.000000,195.000000,46.000000,171.000000,1.000000,1.000000,0.582260 6.000000,75.000000,1413.000000,195.000000,46.000000,171.000000,1.000000,1.000000,0.580280 7.000000,75.000000,1411.000000,194.000000,46.000000,171.000000,1.000000,1.000000,0.593390 8.000000,75.000000,1410.000000,193.000000,46.000000,171.000000,1.000000,1.000000,0.597350 1.000000,76.000000,704.000000,-5.000000,53.000000,163.000000,1.000000,1.000000,0.802510 2.000000,76.000000,704.000000,-5.000000,53.000000,163.000000,1.000000,1.000000,0.802510 3.000000,76.000000,704.000000,-5.000000,53.000000,163.000000,1.000000,1.000000,0.802510 4.000000,76.000000,704.000000,-5.000000,53.000000,163.000000,1.000000,1.000000,0.802510 5.000000,76.000000,704.000000,-5.000000,53.000000,163.000000,1.000000,1.000000,0.802510 6.000000,76.000000,704.000000,-5.000000,53.000000,163.000000,1.000000,1.000000,0.802510 7.000000,76.000000,704.000000,-5.000000,53.000000,163.000000,1.000000,1.000000,0.802510 8.000000,76.000000,704.000000,-5.000000,53.000000,163.000000,1.000000,1.000000,0.802510 1.000000,77.000000,759.000000,-59.000000,40.000000,110.000000,1.000000,1.000000,0.459460 2.000000,77.000000,758.000000,-60.000000,40.000000,110.000000,1.000000,1.000000,0.450450 3.000000,77.000000,758.000000,-61.000000,40.000000,110.000000,1.000000,1.000000,0.441440 4.000000,77.000000,757.000000,-62.000000,40.000000,110.000000,1.000000,1.000000,0.421890 5.000000,77.000000,757.000000,-62.000000,40.000000,109.000000,1.000000,1.000000,0.416850 6.000000,77.000000,756.000000,-63.000000,40.000000,110.000000,1.000000,1.000000,0.402770 7.000000,77.000000,756.000000,-64.000000,40.000000,110.000000,1.000000,1.000000,0.394200 8.000000,77.000000,755.000000,-64.000000,40.000000,109.000000,1.000000,1.000000,0.379160 1.000000,78.000000,551.000000,-43.000000,37.000000,132.000000,1.000000,1.000000,0.287300 2.000000,78.000000,551.000000,-43.000000,37.000000,131.000000,1.000000,1.000000,0.289470 3.000000,78.000000,551.000000,-43.000000,37.000000,131.000000,1.000000,1.000000,0.289470 4.000000,78.000000,551.000000,-43.000000,37.000000,131.000000,1.000000,1.000000,0.289470 5.000000,78.000000,551.000000,-43.000000,37.000000,131.000000,1.000000,1.000000,0.289470 6.000000,78.000000,551.000000,-43.000000,38.000000,131.000000,1.000000,1.000000,0.284770 7.000000,78.000000,551.000000,-43.000000,38.000000,131.000000,1.000000,1.000000,0.284770 8.000000,78.000000,551.000000,-43.000000,38.000000,131.000000,1.000000,1.000000,0.284770 1.000000,79.000000,598.000000,-7.000000,61.000000,77.000000,0.000000,7.000000,0.052109 2.000000,79.000000,598.000000,-7.000000,61.000000,77.000000,0.000000,7.000000,0.052109 3.000000,79.000000,598.000000,-7.000000,61.000000,77.000000,0.000000,7.000000,0.052109 4.000000,79.000000,598.000000,-7.000000,61.000000,77.000000,0.000000,7.000000,0.052109 5.000000,79.000000,598.000000,-7.000000,61.000000,77.000000,0.000000,7.000000,0.052109 6.000000,79.000000,598.000000,-7.000000,61.000000,77.000000,0.000000,7.000000,0.052109 7.000000,79.000000,598.000000,-7.000000,61.000000,77.000000,0.000000,7.000000,0.052109 8.000000,79.000000,598.000000,-7.000000,61.000000,77.000000,0.000000,7.000000,0.052109 1.000000,80.000000,-30.000000,877.000000,72.000000,241.000000,1.000000,1.000000,0.485000 2.000000,80.000000,-30.000000,875.000000,72.000000,243.000000,1.000000,1.000000,0.485740 3.000000,80.000000,-30.000000,874.000000,72.000000,244.000000,1.000000,1.000000,0.486110 4.000000,80.000000,-30.000000,872.000000,72.000000,246.000000,1.000000,1.000000,0.486830 5.000000,80.000000,-30.000000,871.000000,72.000000,247.000000,1.000000,1.000000,0.487190 6.000000,80.000000,-29.000000,869.000000,72.000000,249.000000,1.000000,1.000000,0.499510 7.000000,80.000000,-29.000000,868.000000,72.000000,250.000000,1.000000,1.000000,0.499860 8.000000,80.000000,-29.000000,866.000000,72.000000,252.000000,1.000000,1.000000,0.500570 1.000000,81.000000,1195.000000,40.000000,76.000000,112.000000,0.000000,7.000000,0.992070 2.000000,81.000000,1195.000000,39.000000,76.000000,112.000000,0.000000,7.000000,0.994710 3.000000,81.000000,1195.000000,39.000000,76.000000,112.000000,0.000000,7.000000,0.994710 4.000000,81.000000,1196.000000,39.000000,75.000000,112.000000,0.000000,7.000000,0.994640 5.000000,81.000000,1196.000000,38.000000,75.000000,113.000000,0.000000,7.000000,0.994690 6.000000,81.000000,1197.000000,38.000000,75.000000,113.000000,0.000000,7.000000,0.994460 7.000000,81.000000,1197.000000,38.000000,75.000000,112.000000,0.000000,7.000000,0.997210 8.000000,81.000000,1197.000000,37.000000,75.000000,113.000000,0.000000,7.000000,0.997230 1.000000,82.000000,506.000000,133.000000,55.000000,174.000000,1.000000,1.000000,0.216330 2.000000,82.000000,505.000000,134.000000,55.000000,173.000000,1.000000,1.000000,0.211820 3.000000,82.000000,505.000000,135.000000,55.000000,173.000000,1.000000,1.000000,0.190370 4.000000,82.000000,505.000000,136.000000,55.000000,173.000000,1.000000,1.000000,0.168720 5.000000,82.000000,504.000000,137.000000,55.000000,173.000000,1.000000,1.000000,0.163590 6.000000,82.000000,504.000000,138.000000,55.000000,173.000000,1.000000,1.000000,0.141630 7.000000,82.000000,504.000000,139.000000,55.000000,173.000000,1.000000,1.000000,0.119460 8.000000,82.000000,503.000000,140.000000,55.000000,173.000000,1.000000,1.000000,0.114120 1.000000,83.000000,514.000000,148.000000,88.000000,180.000000,1.000000,1.000000,1.000000 2.000000,83.000000,513.000000,148.000000,89.000000,181.000000,1.000000,1.000000,1.000000 3.000000,83.000000,512.000000,148.000000,91.000000,182.000000,1.000000,1.000000,1.000000 4.000000,83.000000,511.000000,148.000000,93.000000,183.000000,1.000000,1.000000,1.000000 5.000000,83.000000,510.000000,148.000000,94.000000,184.000000,1.000000,1.000000,1.000000 6.000000,83.000000,509.000000,148.000000,96.000000,186.000000,1.000000,1.000000,1.000000 7.000000,83.000000,508.000000,148.000000,98.000000,187.000000,1.000000,1.000000,1.000000 8.000000,83.000000,507.000000,148.000000,99.000000,188.000000,1.000000,1.000000,1.000000 1.000000,84.000000,463.000000,85.000000,52.000000,173.000000,1.000000,1.000000,0.683370 2.000000,84.000000,463.000000,83.000000,51.000000,173.000000,1.000000,1.000000,0.699930 3.000000,84.000000,463.000000,82.000000,51.000000,173.000000,1.000000,1.000000,0.702140 4.000000,84.000000,463.000000,81.000000,51.000000,173.000000,1.000000,1.000000,0.705350 5.000000,84.000000,463.000000,80.000000,51.000000,172.000000,1.000000,1.000000,0.695090 6.000000,84.000000,463.000000,79.000000,51.000000,172.000000,1.000000,1.000000,0.698530 7.000000,84.000000,463.000000,77.000000,50.000000,173.000000,1.000000,1.000000,0.727740 8.000000,84.000000,463.000000,76.000000,50.000000,172.000000,1.000000,1.000000,0.718120 1.000000,85.000000,417.000000,93.000000,55.000000,167.000000,1.000000,1.000000,1.000000 2.000000,85.000000,417.000000,92.000000,54.000000,167.000000,1.000000,1.000000,1.000000 3.000000,85.000000,417.000000,91.000000,54.000000,168.000000,1.000000,1.000000,1.000000 4.000000,85.000000,417.000000,91.000000,54.000000,168.000000,1.000000,1.000000,1.000000 5.000000,85.000000,417.000000,90.000000,54.000000,169.000000,1.000000,1.000000,1.000000 6.000000,85.000000,417.000000,90.000000,54.000000,169.000000,1.000000,1.000000,1.000000 7.000000,85.000000,417.000000,89.000000,53.000000,169.000000,1.000000,1.000000,1.000000 8.000000,85.000000,417.000000,88.000000,53.000000,170.000000,1.000000,1.000000,1.000000 1.000000,86.000000,541.000000,64.000000,41.000000,167.000000,1.000000,1.000000,0.455360 2.000000,86.000000,540.000000,64.000000,42.000000,167.000000,1.000000,1.000000,0.459300 3.000000,86.000000,540.000000,64.000000,42.000000,167.000000,1.000000,1.000000,0.462210 4.000000,86.000000,540.000000,64.000000,42.000000,167.000000,1.000000,1.000000,0.465120 5.000000,86.000000,540.000000,64.000000,42.000000,167.000000,1.000000,1.000000,0.469550 6.000000,86.000000,540.000000,64.000000,42.000000,167.000000,1.000000,1.000000,0.472310 7.000000,86.000000,540.000000,64.000000,42.000000,167.000000,1.000000,1.000000,0.475080 8.000000,86.000000,540.000000,64.000000,42.000000,167.000000,1.000000,1.000000,0.478960 1.000000,87.000000,491.000000,42.000000,49.000000,161.000000,1.000000,1.000000,0.413580 2.000000,87.000000,490.000000,42.000000,50.000000,160.000000,1.000000,1.000000,0.407620 3.000000,87.000000,490.000000,42.000000,50.000000,160.000000,1.000000,1.000000,0.407620 4.000000,87.000000,490.000000,42.000000,50.000000,160.000000,1.000000,1.000000,0.407620 5.000000,87.000000,490.000000,42.000000,50.000000,160.000000,1.000000,1.000000,0.407620 6.000000,87.000000,490.000000,42.000000,50.000000,160.000000,1.000000,1.000000,0.407620 7.000000,87.000000,490.000000,42.000000,50.000000,160.000000,1.000000,1.000000,0.412130 8.000000,87.000000,490.000000,42.000000,50.000000,160.000000,1.000000,1.000000,0.412370 1.000000,88.000000,356.000000,105.000000,52.000000,179.000000,1.000000,1.000000,1.000000 2.000000,88.000000,356.000000,105.000000,52.000000,178.000000,1.000000,1.000000,1.000000 3.000000,88.000000,356.000000,105.000000,52.000000,178.000000,1.000000,1.000000,1.000000 4.000000,88.000000,356.000000,105.000000,52.000000,178.000000,1.000000,1.000000,1.000000 5.000000,88.000000,356.000000,105.000000,52.000000,178.000000,1.000000,1.000000,1.000000 6.000000,88.000000,356.000000,105.000000,52.000000,178.000000,1.000000,1.000000,1.000000 7.000000,88.000000,356.000000,105.000000,52.000000,178.000000,1.000000,1.000000,1.000000 8.000000,88.000000,356.000000,105.000000,52.000000,178.000000,1.000000,1.000000,1.000000 1.000000,89.000000,373.000000,77.000000,47.000000,155.000000,1.000000,1.000000,0.274310 2.000000,89.000000,372.000000,77.000000,47.000000,154.000000,1.000000,1.000000,0.276210 3.000000,89.000000,372.000000,77.000000,47.000000,154.000000,1.000000,1.000000,0.275810 4.000000,89.000000,371.000000,77.000000,47.000000,154.000000,1.000000,1.000000,0.275130 5.000000,89.000000,371.000000,77.000000,47.000000,154.000000,1.000000,1.000000,0.274870 6.000000,89.000000,371.000000,77.000000,47.000000,154.000000,1.000000,1.000000,0.274870 7.000000,89.000000,370.000000,77.000000,47.000000,154.000000,1.000000,1.000000,0.274190 8.000000,89.000000,370.000000,77.000000,47.000000,154.000000,1.000000,1.000000,0.274060 1.000000,90.000000,287.000000,124.000000,53.000000,170.000000,1.000000,1.000000,1.000000 2.000000,90.000000,286.000000,123.000000,53.000000,170.000000,1.000000,1.000000,1.000000 3.000000,90.000000,286.000000,123.000000,53.000000,170.000000,1.000000,1.000000,1.000000 4.000000,90.000000,286.000000,123.000000,53.000000,170.000000,1.000000,1.000000,1.000000 5.000000,90.000000,286.000000,123.000000,53.000000,170.000000,1.000000,1.000000,1.000000 6.000000,90.000000,286.000000,123.000000,53.000000,170.000000,1.000000,1.000000,1.000000 7.000000,90.000000,286.000000,123.000000,53.000000,170.000000,1.000000,1.000000,1.000000 8.000000,90.000000,286.000000,123.000000,53.000000,170.000000,1.000000,1.000000,1.000000 1.000000,91.000000,337.000000,86.000000,49.000000,175.000000,1.000000,1.000000,0.384200 2.000000,91.000000,336.000000,86.000000,49.000000,174.000000,1.000000,1.000000,0.402060 3.000000,91.000000,336.000000,86.000000,49.000000,174.000000,1.000000,1.000000,0.402060 4.000000,91.000000,336.000000,86.000000,49.000000,174.000000,1.000000,1.000000,0.402060 5.000000,91.000000,336.000000,86.000000,49.000000,174.000000,1.000000,1.000000,0.402060 6.000000,91.000000,336.000000,86.000000,49.000000,174.000000,1.000000,1.000000,0.402060 7.000000,91.000000,336.000000,86.000000,49.000000,174.000000,1.000000,1.000000,0.402060 8.000000,91.000000,336.000000,86.000000,49.000000,174.000000,1.000000,1.000000,0.402060 1.000000,92.000000,223.000000,129.000000,46.000000,164.000000,1.000000,1.000000,0.966990 2.000000,92.000000,222.000000,128.000000,46.000000,165.000000,1.000000,1.000000,0.961930 3.000000,92.000000,222.000000,128.000000,45.000000,165.000000,1.000000,1.000000,0.961110 4.000000,92.000000,221.000000,128.000000,46.000000,165.000000,1.000000,1.000000,0.957700 5.000000,92.000000,221.000000,128.000000,45.000000,165.000000,1.000000,1.000000,0.956780 6.000000,92.000000,220.000000,128.000000,46.000000,165.000000,1.000000,1.000000,0.953470 7.000000,92.000000,220.000000,128.000000,45.000000,165.000000,1.000000,1.000000,0.952460 8.000000,92.000000,219.000000,128.000000,45.000000,165.000000,1.000000,1.000000,0.948140 1.000000,93.000000,266.000000,92.000000,56.000000,180.000000,1.000000,1.000000,0.424250 2.000000,93.000000,265.000000,92.000000,56.000000,180.000000,1.000000,1.000000,0.420370 3.000000,93.000000,264.000000,92.000000,56.000000,180.000000,1.000000,1.000000,0.434910 4.000000,93.000000,263.000000,92.000000,57.000000,180.000000,1.000000,1.000000,0.430840 5.000000,93.000000,262.000000,93.000000,57.000000,180.000000,1.000000,1.000000,0.441420 6.000000,93.000000,261.000000,93.000000,58.000000,180.000000,1.000000,1.000000,0.437210 7.000000,93.000000,260.000000,93.000000,58.000000,180.000000,1.000000,1.000000,0.451350 8.000000,93.000000,259.000000,94.000000,58.000000,180.000000,1.000000,1.000000,0.461930 1.000000,94.000000,242.000000,85.000000,58.000000,170.000000,1.000000,1.000000,0.089305 2.000000,94.000000,242.000000,85.000000,58.000000,169.000000,1.000000,1.000000,0.088136 3.000000,94.000000,242.000000,85.000000,58.000000,169.000000,1.000000,1.000000,0.084546 4.000000,94.000000,242.000000,85.000000,58.000000,169.000000,1.000000,1.000000,0.081256 5.000000,94.000000,242.000000,85.000000,58.000000,169.000000,1.000000,1.000000,0.081555 6.000000,94.000000,242.000000,85.000000,58.000000,169.000000,1.000000,1.000000,0.078066 7.000000,94.000000,242.000000,85.000000,58.000000,169.000000,1.000000,1.000000,0.074875 8.000000,94.000000,242.000000,85.000000,58.000000,169.000000,1.000000,1.000000,0.075573 1.000000,95.000000,264.000000,71.000000,54.000000,167.000000,1.000000,1.000000,0.096970 2.000000,95.000000,264.000000,71.000000,54.000000,166.000000,1.000000,1.000000,0.097550 3.000000,95.000000,264.000000,71.000000,54.000000,166.000000,1.000000,1.000000,0.097550 4.000000,95.000000,264.000000,71.000000,54.000000,166.000000,1.000000,1.000000,0.097550 5.000000,95.000000,264.000000,71.000000,54.000000,166.000000,1.000000,1.000000,0.099510 6.000000,95.000000,264.000000,71.000000,54.000000,166.000000,1.000000,1.000000,0.099510 7.000000,95.000000,264.000000,71.000000,54.000000,166.000000,1.000000,1.000000,0.099510 8.000000,95.000000,264.000000,71.000000,54.000000,166.000000,1.000000,1.000000,0.104630 1.000000,96.000000,209.000000,95.000000,42.000000,180.000000,1.000000,1.000000,0.270200 2.000000,96.000000,209.000000,95.000000,41.000000,179.000000,1.000000,1.000000,0.254100 3.000000,96.000000,209.000000,95.000000,41.000000,179.000000,1.000000,1.000000,0.254100 4.000000,96.000000,209.000000,96.000000,41.000000,178.000000,1.000000,1.000000,0.239960 5.000000,96.000000,209.000000,96.000000,41.000000,178.000000,1.000000,1.000000,0.239960 6.000000,96.000000,209.000000,96.000000,41.000000,178.000000,1.000000,1.000000,0.224790 7.000000,96.000000,209.000000,97.000000,41.000000,177.000000,1.000000,1.000000,0.225660 8.000000,96.000000,209.000000,97.000000,41.000000,177.000000,1.000000,1.000000,0.210410 1.000000,97.000000,914.000000,-107.000000,38.000000,115.000000,1.000000,1.000000,0.068966 2.000000,97.000000,914.000000,-107.000000,38.000000,115.000000,1.000000,1.000000,0.068966 3.000000,97.000000,914.000000,-107.000000,38.000000,115.000000,1.000000,1.000000,0.068966 4.000000,97.000000,914.000000,-107.000000,38.000000,115.000000,1.000000,1.000000,0.068966 5.000000,97.000000,914.000000,-107.000000,38.000000,115.000000,1.000000,1.000000,0.068966 6.000000,97.000000,914.000000,-107.000000,38.000000,115.000000,1.000000,1.000000,0.068966 7.000000,97.000000,914.000000,-107.000000,38.000000,115.000000,1.000000,1.000000,0.068966 8.000000,97.000000,914.000000,-107.000000,38.000000,115.000000,1.000000,1.000000,0.068966 1.000000,116.000000,1220.000000,-14.000000,63.000000,148.000000,1.000000,1.000000,0.368710 2.000000,116.000000,1218.000000,-14.000000,64.000000,147.000000,1.000000,1.000000,0.353430 3.000000,116.000000,1217.000000,-14.000000,65.000000,147.000000,1.000000,1.000000,0.351970 4.000000,116.000000,1216.000000,-14.000000,66.000000,147.000000,1.000000,1.000000,0.350540 5.000000,116.000000,1214.000000,-14.000000,68.000000,147.000000,1.000000,1.000000,0.342150 6.000000,116.000000,1213.000000,-14.000000,69.000000,147.000000,1.000000,1.000000,0.333780 7.000000,116.000000,1212.000000,-14.000000,70.000000,146.000000,1.000000,1.000000,0.334290 8.000000,116.000000,1210.000000,-14.000000,72.000000,146.000000,1.000000,1.000000,0.326160 1.000000,137.000000,39.000000,309.000000,115.000000,117.000000,0.000000,11.000000,1.000000 2.000000,137.000000,39.000000,309.000000,115.000000,117.000000,0.000000,11.000000,1.000000 3.000000,137.000000,39.000000,309.000000,115.000000,117.000000,0.000000,11.000000,1.000000 4.000000,137.000000,39.000000,309.000000,115.000000,117.000000,0.000000,11.000000,1.000000 5.000000,137.000000,39.000000,309.000000,115.000000,117.000000,0.000000,11.000000,1.000000 6.000000,137.000000,39.000000,309.000000,115.000000,117.000000,0.000000,11.000000,1.000000 7.000000,137.000000,39.000000,309.000000,115.000000,117.000000,0.000000,11.000000,1.000000 8.000000,137.000000,39.000000,309.000000,115.000000,117.000000,0.000000,11.000000,1.000000 ================================================ FILE: assets/MOT17-mini/train/MOT17-04-FRCNN/seqinfo.ini ================================================ [Sequence] name=MOT17-04-FRCNN imDir=img1 frameRate=30 seqLength=1050 imWidth=1920 imHeight=1080 imExt=.jpg ================================================ FILE: assets/file_banner.txt ================================================ Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license ================================================ FILE: boxmot/__init__.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license __version__ = '16.0.11' from boxmot.engine.results import track from boxmot.reid.core import ReID from boxmot.trackers.boosttrack.boosttrack import BoostTrack from boxmot.trackers.botsort.botsort import BotSort from boxmot.trackers.bytetrack.bytetrack import ByteTrack from boxmot.trackers.deepocsort.deepocsort import DeepOcSort from boxmot.trackers.hybridsort.hybridsort import HybridSort from boxmot.trackers.ocsort.ocsort import OcSort from boxmot.trackers.sfsort.sfsort import SFSORT from boxmot.trackers.strongsort.strongsort import StrongSort from boxmot.trackers.tracker_zoo import create_tracker, get_tracker_config TRACKERS = [ "bytetrack", "botsort", "strongsort", "ocsort", "deepocsort", "hybridsort", "boosttrack", "sfsort", ] __all__ = ( "__version__", "StrongSort", "OcSort", "ByteTrack", "BotSort", "DeepOcSort", "HybridSort", "BoostTrack", "SFSORT", "create_tracker", "get_tracker_config", "gsi", ) ================================================ FILE: boxmot/configs/datasets/FastTracker-Benchmark-MOT.yaml ================================================ # FastTracker Benchmark MOT – multi-object tracking in traffic scenes # 12 sequences, 15 classes, ~800K detections # # Frame-based layout (trackeval): ///img/*.jpg, /gt/gt.txt download: runs_url: null dataset_url: "hf://Fleyderer/FastTracker-Benchmark-MOT/FastTracker-Benchmark-MOT" benchmark: source: "boxmot/engine/trackeval/data/FastTracker-Benchmark-MOT" split: "train" eval_classes: 1: person 2: bus_small 3: bus_big 4: truck_small 5: truck_big 6: car 7: bike 8: motorbike 10: tractor 11: trailor 12: wheelchair 13: heavy_equipment 14: pm 15: umbrella distractor_classes: 9: ignore_region ================================================ FILE: boxmot/configs/datasets/MOT17-ablation.yaml ================================================ # https://motchallenge.net/data/MOT17/ download: runs_url: "https://github.com/mikel-brostrom/boxmot/releases/download/v16.0.11/runs.zip" dataset_url: "https://github.com/mikel-brostrom/boxmot/releases/download/v13.0.9/MOT17-ablation.zip" benchmark: source: "boxmot/engine/trackeval/data/MOT17-ablation" split: "train" eval_classes: 1: pedestrian distractor_classes: 2: person_on_vehicle 7: static_person 8: distractor 12: reflection ================================================ FILE: boxmot/configs/datasets/MOT20-ablation.yaml ================================================ # https://motchallenge.net/data/MOT20/ download: runs_url: "https://github.com/mikel-brostrom/boxmot/releases/download/v16.0.11/runs.zip" dataset_url: "https://github.com/mikel-brostrom/boxmot/releases/download/v13.0.9/MOT20-ablation.zip" benchmark: source: "boxmot/engine/trackeval/data/MOT20-ablation" split: "train" eval_classes: 1: pedestrian distractor_classes: 2: person_on_vehicle 6: non_mot_vehicle 7: static_person 8: distractor 12: reflection ================================================ FILE: boxmot/configs/datasets/SportsMOT.yaml ================================================ # https://github.com/SportsMOT/SportsMOT download: runs_url: "" dataset_url: "https://github.com/mikel-brostrom/boxmot/releases/download/v13.0.9/SportsMOT.zip" benchmark: source: "boxmot/engine/trackeval/data/SportsMOT" split: "val" eval_classes: 1: player ================================================ FILE: boxmot/configs/datasets/custom.yaml ================================================ # https://motchallenge.net/data/MOT17/ download: runs_url: "" dataset_url: "" benchmark: source: "assets/MOT17-mini" split: "train" eval_classes: 1: pedestrian distractor_classes: 2: person_on_vehicle 7: static_person 8: distractor 12: reflection ================================================ FILE: boxmot/configs/datasets/dancetrack-ablation.yaml ================================================ # https://huggingface.co/datasets/noahcao/dancetrack/tree/main download: runs_url: null dataset_url: "https://huggingface.co/datasets/noahcao/dancetrack/resolve/main/test1.zip" benchmark: source: "boxmot/engine/trackeval/data/test1" split: "val" eval_classes: 1: pedestrian ================================================ FILE: boxmot/configs/datasets/visdrone-ablation.yaml ================================================ # https://github.com/VisDrone/VisDrone-Dataset # object_category ids: 0 ignored regions*, 1 pedestrian, 2 people, 3 bicycle, 4 car, 5 van, 6 truck, # 7 tricycle, 8 awning-tricycle, 9 bus, 10 motor, 11 others*; *0 and 11 are ignored/distractors. # Many YOLO/Ultralytics conversions drop 0 & 11 and reindex 1-10 to 0-9. download: runs_url: "" dataset_url: "https://drive.google.com/uc?export=download&id=14z8Acxopj1d86-qhsF1NwS4Bv3KYa4Wu" benchmark: source: "boxmot/engine/trackeval/data/VisDrone2019-MOT-test-dev" split: "sequences" eval_classes: 1: pedestrian 2: people 3: bicycle 4: car 5: van 6: truck 7: tricycle 8: awning-tricycle 9: bus 10: motor distractor_classes: 0: ignored regions 11: others ================================================ FILE: boxmot/configs/trackers/__init__.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license ================================================ FILE: boxmot/configs/trackers/boosttrack.yaml ================================================ max_age: type: randint default: 60 range: [15, 90] min_hits: type: randint default: 3 range: [1, 5] det_thresh: type: uniform default: 0.6 range: [0.1, 0.9] iou_threshold: type: uniform default: 0.3 range: [0.1, 0.9] use_ecc: type: choice default: True options: [False, True] min_box_area: type: randint default: 10 range: [5, 100] aspect_ratio_thresh: type: uniform default: 1.6 range: [0.1, 2.0] lambda_iou: type: uniform default: 0.5 range: [0.3, 2.0] lambda_mhd: type: uniform default: 0.25 range: [0.5, 2.0] lambda_shape: type: uniform default: 0.25 range: [0.5, 2.0] use_dlo_boost: type: choice default: True options: [False, True] use_duo_boost: type: choice default: True options: [False, True] dlo_boost_coef: type: uniform default: 0.65 range: [0.3, 2.0] s_sim_corr: type: choice default: False options: [False, True] use_rich_s: type: choice default: True # True for BoostTrack++ options: [False, True] use_sb: type: choice default: True # True for BoostTrack++ options: [False, True] use_vt: type: choice default: True # True for BoostTrack++ options: [False, True] with_reid: type: choice default: True # True for BoostTrack+ and BoostTrack++ options: [False, True] ================================================ FILE: boxmot/configs/trackers/botsort.yaml ================================================ track_high_thresh: type: uniform default: 0.6 # from the default parameters range: [0.3, 0.7] track_low_thresh: type: uniform default: 0.1 # from the default parameters range: [0.1, 0.3] new_track_thresh: type: uniform default: 0.7 # from the default parameters range: [0.1, 0.8] track_buffer: type: randint default: 30 # from the default parameters range: [20, 81] match_thresh: type: uniform default: 0.8 # from the default parameters range: [0.1, 0.9] proximity_thresh: type: uniform default: 0.5 # from the default parameters range: [0.25, 0.75] appearance_thresh: type: uniform default: 0.25 # from the default parameters range: [0.1, 0.8] cmc_method: type: choice default: ecc # from the default parameters options: [sof, ecc] ================================================ FILE: boxmot/configs/trackers/bytetrack.yaml ================================================ min_conf: type: uniform default: 0.1 # from the default parameters range: [0.1, 0.3] track_thresh: type: uniform default: 0.6 # from the default parameters range: [0.4, 0.7] track_buffer: type: qrandint default: 30 # from the default parameters range: [10, 61, 10] # step size of 10, upper bound exclusive match_thresh: type: uniform default: 0.9 # from the default parameters range: [0.7, 0.9] frame_rate: type: choice default: 30 # from the default parameters options: [25, 30] # static choice for Ray Search ================================================ FILE: boxmot/configs/trackers/deepocsort.yaml ================================================ det_thresh: type: uniform default: 0.5 # from the default parameters range: [0.3, 0.6] max_age: type: qrandint default: 30 # from the default parameters range: [10, 61, 10] # step size of 10, upper bound exclusive min_hits: type: randint default: 3 # from the default parameters range: [1, 6] # upper bound exclusive iou_thresh: type: uniform default: 0.3 # from the default parameters range: [0.1, 0.4] delta_t: type: randint default: 3 # from the default parameters range: [1, 6] # upper bound exclusive asso_func: type: choice default: iou # from the default parameters options: ['iou', 'giou', 'diou', 'ciou', 'hmiou'] inertia: type: uniform default: 0.2 # from the default parameters range: [0.1, 0.4] w_association_emb: type: uniform default: 0.75 # from the default parameters range: [0.5, 0.9] alpha_fixed_emb: type: uniform default: 0.95 # from the default parameters range: [0.9, 0.999] aw_param: type: uniform default: 0.5 # from the default parameters range: [0.3, 0.7] embedding_off: type: choice default: false # from the default parameters options: [True, False] cmc_off: type: choice default: false # from the default parameters options: [True, False] aw_off: type: choice default: false # from the default parameters options: [True, False] Q_xy_scaling: type: uniform default: 0.01 # from the default parameters range: [0.01, 1] Q_s_scaling: type: uniform default: 0.0001 # from the default parameters range: [0.0001, 1] ================================================ FILE: boxmot/configs/trackers/hybridsort.yaml ================================================ low_thresh: type: uniform default: 0.1 range: [0.05, 0.5] delta_t: type: randint default: 3 range: [1, 6] # upper bound exclusive inertia: type: uniform default: 0.05 range: [0.01, 0.2] use_byte: type: choice default: True options: [True, False] use_custom_kf: type: choice default: True options: [True, False] longterm_bank_length: type: qrandint default: 30 range: [10, 61, 10] # step size 10 alpha: type: uniform default: 0.9 range: [0.7, 0.99] adapfs: type: choice default: False options: [True, False] track_thresh: type: uniform default: 0.5 range: [0.3, 0.7] EG_weight_high_score: type: uniform default: 4.6 range: [2.0, 8.0] EG_weight_low_score: type: uniform default: 1.3 range: [0.5, 3.0] TCM_first_step: type: choice default: True options: [True, False] TCM_byte_step: type: choice default: True options: [True, False] TCM_byte_step_weight: type: uniform default: 1.0 range: [0.5, 2.0] high_score_matching_thresh: type: uniform default: 0.7 range: [0.5, 0.9] with_longterm_reid: type: choice default: True options: [True, False] longterm_reid_weight: type: uniform default: 0.0 range: [0.0, 2.0] with_longterm_reid_correction: type: choice default: True options: [True, False] longterm_reid_correction_thresh: type: uniform default: 0.4 range: [0.1, 0.7] longterm_reid_correction_thresh_low: type: uniform default: 0.4 range: [0.1, 0.7] ================================================ FILE: boxmot/configs/trackers/imprassoc.yaml ================================================ track_high_thresh: type: uniform default: 0.5 # from the default parameters range: [0.3, 0.7] track_low_thresh: type: uniform default: 0.1 # from the default parameters range: [0.05, 0.3] new_track_thresh: type: uniform default: 0.5 # from the default parameters range: [0.5, 0.9] track_buffer: type: qrandint default: 35 # from the default parameters range: [20, 80, 10] # step size of 10, upper bound exclusive match_thresh: type: uniform default: 0.65 # from the default parameters range: [0.1, 0.9] second_match_thresh: type: uniform default: 0.19 # from the default parameters range: [0.1, 0.4] overlap_thresh: type: uniform default: 0.55 # from the default parameters range: [0.3, 0.6] proximity_thresh: type: uniform default: 0.1 # from the default parameters range: [0.1, 0.8] appearance_thresh: type: uniform default: 0.25 # from the default parameters range: [0.1, 0.8] cmc_method: type: choice default: sparseOptFlow # from the default parameters options: ['sparseOptFlow'] frame_rate: type: choice default: 30 # from the default parameters options: [30] lambda_: type: uniform default: 0.05 # from the default parameters range: [0.05, 0.3] ================================================ FILE: boxmot/configs/trackers/ocsort.yaml ================================================ min_conf: type: uniform default: 0.1 # from the default parameters range: [0.1, 0.3] det_thresh: type: uniform default: 0.6 # from the default parameters range: [0, 0.6] max_age: type: grid_search default: 30 # from the default parameters values: [10, 20, 30, 40, 50, 60] min_hits: type: grid_search default: 3 # from the default parameters values: [1, 2, 3, 4, 5] delta_t: type: grid_search default: 3 # from the default parameters values: [1, 2, 3, 4, 5] asso_func: type: choice default: iou # from the default parameters options: ['iou', 'giou', 'diou', 'ciou', 'hmiou'] use_byte: type: choice default: false # from the default parameters options: [True, False] inertia: type: uniform default: 0.1 # from the default parameters range: [0.1, 0.4] Q_xy_scaling: type: loguniform default: 0.01 # from the default parameters range: [0.01, 1] Q_s_scaling: type: loguniform default: 0.0001 # from the default parameters range: [0.0001, 1] ================================================ FILE: boxmot/configs/trackers/sfsort.yaml ================================================ high_th: type: uniform default: 0.6 range: [0.4, 0.9] match_th_first: type: uniform default: 0.67 range: [0.4, 0.67] new_track_th: type: uniform default: 0.7 range: [0.6, 0.95] low_th: type: uniform default: 0.1 range: [0.05, 0.4] match_th_second: type: uniform default: 0.3 range: [0.1, 0.6] dynamic_tuning: type: choice default: false options: [true, false] cth: type: uniform default: 0.5 range: [0.2, 0.8] high_th_m: type: uniform default: 0.0 range: [0.02, 0.1] new_track_th_m: type: uniform default: 0.0 range: [0.02, 0.08] match_th_first_m: type: uniform default: 0.0 range: [0.02, 0.08] marginal_timeout: type: qrandint default: 0 range: [0, 501, 50] central_timeout: type: qrandint default: 0 range: [0, 1001, 100] horizontal_margin: type: qrandint default: 0 range: [0, 641, 50] vertical_margin: type: qrandint default: 0 range: [0, 641, 50] ================================================ FILE: boxmot/configs/trackers/strongsort.yaml ================================================ min_conf: type: uniform default: 0.6 # from the default parameters range: [0.2, 0.8] ema_alpha: type: uniform default: 0.9 # from the default parameters range: [0.7, 0.95] max_cos_dist: type: uniform default: 0.4 # from the default parameters range: [0.1, 0.4] max_iou_dist: type: uniform default: 0.7 # from the default parameters range: [0.5, 0.95] max_age: type: randint default: 30 # from the default parameters range: [10, 151] # upper bound exclusive n_init: type: randint default: 3 # from the default parameters range: [1, 4] # upper bound exclusive mc_lambda: type: uniform default: 0.98 # from the default parameters range: [0.90, 0.999] nn_budget: type: choice default: 100 # from the default parameters options: [100] ================================================ FILE: boxmot/detectors/__init__.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license from boxmot.utils import logger as LOGGER from boxmot.utils.checks import RequirementsChecker checker = RequirementsChecker() ULTRALYTICS_MODELS = {"yolov8", "yolov9", "yolov10", "yolo11", "yolo12", "yolo26", "sam"} RTDETR_MODELS = {"rtdetr_v2_r50vd", "rtdetr_v2_r18vd", "rtdetr_v2_r101vd"} YOLOX_MODELS = {"yolox_n", "yolox_s", "yolox_m", "yolox_l", "yolox_x"} def _check_model(name, markers): """Check if model name contains any of the markers.""" return any(m in str(name) for m in markers) def is_ultralytics_model(yolo_name): return _check_model(yolo_name, ULTRALYTICS_MODELS) def is_yolox_model(yolo_name): return _check_model(yolo_name, YOLOX_MODELS) def is_rtdetr_model(yolo_name): return _check_model(yolo_name, RTDETR_MODELS) def default_imgsz(yolo_name): if is_ultralytics_model(yolo_name): return [640, 640] elif is_yolox_model(yolo_name): return [1080, 1920] else: return [640, 640] def get_yolo_inferer(yolo_model): """ Determines and returns the appropriate inference strategy class based on the model name. Handles dependency checks and imports dynamically. """ model_name = str(yolo_model) strategies = [ ( is_yolox_model, ("yolox", "tabulate", "thop"), {"yolox": ["--no-deps"]}, "boxmot.detectors.yolox", "YoloXStrategy", ), ( is_ultralytics_model, (), {}, "boxmot.detectors.ultralytics", "UltralyticsStrategy", ), ( is_rtdetr_model, ("transformers[torch]", "timm"), {}, "boxmot.detectors.rtdetr", "RTDetrStrategy", ), ] for check_func, packages, extra_args, module_path, class_name in strategies: if check_func(model_name): for package in packages: try: # Simple import check for package name (stripping version/extras) pkg_name = package.split("[")[0].split("=")[0] __import__(pkg_name) except ImportError: args = extra_args.get(pkg_name, []) checker.check_packages((package,), extra_args=args) module = __import__(module_path, fromlist=[class_name]) return getattr(module, class_name) LOGGER.error(f"Failed to infer inference mode from yolo model name: {model_name}") LOGGER.error("Supported models must contain one of the following:") LOGGER.error(f" Ultralytics: {ULTRALYTICS_MODELS}") LOGGER.error(f" RTDetr: {RTDETR_MODELS}") LOGGER.error(f" YOLOX: {YOLOX_MODELS}") LOGGER.error( "By using these names, the default COCO-trained models will be downloaded automatically. " "For custom models, the filename must include one of these substrings to route it to the correct package and architecture." ) exit() ================================================ FILE: boxmot/detectors/detector.py ================================================ from pathlib import Path from typing import Any, Union import cv2 import numpy as np import torch def resolve_image(image: Union[np.ndarray, str]) -> np.ndarray: """ Resolves an image input to a numpy array (cv2 BGR format). """ if isinstance(image, str) or isinstance(image, Path): image_path = str(image) img = cv2.imread(image_path) if img is None: raise FileNotFoundError(f"Could not load image from {image_path}") return img elif isinstance(image, np.ndarray): return image else: raise ValueError(f"Unsupported image type: {type(image)}") def load_weights(path: str) -> Any: """ Generic weight loader. By default uses torch.load """ if isinstance(path, str) and not Path(path).exists(): raise FileNotFoundError(f"Weights file not found: {path}") # This is a placeholder. Real models often need architecture init before loading weights. # But strictly following the user snippet: return torch.load(path, map_location='cpu') class Detector: def __init__(self, path: str): self.path = path self.model = self._load_model(path) def _load_model(self, path: str): return load_weights(path) def preprocess(self, frame: np.ndarray, **kwargs): raise NotImplementedError() def process(self, frame, **kwargs): raise NotImplementedError() def postprocess(self, boxes, **kwargs): raise NotImplementedError() def __call__(self, image: Union[np.ndarray, str], **kwargs): image = resolve_image(image) frame = self.preprocess(image, **kwargs) boxes = self.process(frame, **kwargs) boxes = self.postprocess(boxes, **kwargs) return boxes ================================================ FILE: boxmot/detectors/rtdetr.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license from pathlib import Path import cv2 import numpy as np import torch from PIL import Image from transformers import RTDetrImageProcessor, RTDetrV2ForObjectDetection from ultralytics.engine.results import Results from ultralytics.models.yolo.detect import DetectionPredictor from boxmot.utils import logger as LOGGER class RTDetrStrategy: pt = False stride = 32 fp16 = False triton = False ch = 3 def __init__(self, model, device, args): self.args = args self.device = device model = Path(str(model)).name while model.endswith(".pt"): model = model[:-3] if not model.startswith("PekingU/"): model = f"PekingU/{model}" LOGGER.info(f"Loading RTDetr model: {model}") # Load model and processor from Hugging Face self.image_processor = RTDetrImageProcessor.from_pretrained(model) self.model = RTDetrV2ForObjectDetection.from_pretrained(model).to(device) # Get class names from model config self.names = self.model.config.id2label @torch.no_grad() def __call__(self, im, augment, visualize, embed): if isinstance(im, torch.Tensor): im = im.cpu().numpy() if im.ndim == 3 and im.shape[0] == 3: im = im.transpose(1, 2, 0) im = np.ascontiguousarray(im) # Convert numpy image (BGR) to PIL Image (RGB) image = Image.fromarray(cv2.cvtColor(im, cv2.COLOR_BGR2RGB)) inputs = self.image_processor(images=image, return_tensors="pt").to(self.device) outputs = self.model(**inputs) results = self.image_processor.post_process_object_detection( outputs, target_sizes=torch.tensor([(image.height, image.width)], device=self.device), threshold=self.args.conf ) # Format results: [x1, y1, x2, y2, conf, cls] detections = [] for result in results: for score, label, box in zip(result["scores"], result["labels"], result["boxes"]): box = box.cpu().numpy() score = score.item() label = label.item() detections.append([*box, score, label]) if not detections: return torch.zeros((1, 0, 6), device=self.device) return torch.tensor(detections, device=self.device).unsqueeze(0) def warmup(self, imgsz): pass def update_im_paths(self, predictor: DetectionPredictor): """ This function saves image paths for the current batch, being passed as callback on_predict_batch_start """ assert isinstance( predictor, DetectionPredictor ), "Only ultralytics predictors are supported" self.im_paths = predictor.batch[0] def preprocess(self, im) -> torch.Tensor: # RTDetr expects PIL images or list of them, but here we just pass through # The actual preprocessing happens in __call__ assert isinstance(im, list) return im[0] def postprocess(self, preds, im, im0s): results = [] for i, pred in enumerate(preds): im_path = self.im_paths[i] if hasattr(self, 'im_paths') and len(self.im_paths) else "" if pred is None or len(pred) == 0: pred = torch.empty((0, 6), device=self.device) results.append( Results(path=im_path, boxes=pred, orig_img=im0s[i], names=self.names) ) continue if self.args.classes: pred = pred[ torch.isin(pred[:, 5].cpu(), torch.as_tensor(self.args.classes)) ] results.append( Results(path=im_path, boxes=pred, orig_img=im0s[i], names=self.names) ) return results ================================================ FILE: boxmot/detectors/ultralytics.py ================================================ from pathlib import Path import numpy as np from ultralytics import YOLO from boxmot.detectors.detector import Detector from boxmot.utils import WEIGHTS class Ultralytics(Detector): def __init__(self, path: str, device='cpu', conf=0.25, iou=0.45, imgsz=640): self.device = device self.conf = conf self.iou = iou self.imgsz = imgsz # Load Ultralytics model # path could be 'yolov8n.pt' or local path super().__init__(path) def _load_model(self, path: str): # We rely on ultralytics own loading mechanism return YOLO(WEIGHTS / Path(path).name) def preprocess(self, image: np.ndarray, **kwargs): # Ultralytics handles preprocessing internally in __call__ usually, # but to adhere to strict pipeline if needed: # Here we just pass the image through, as model() call handles it. return image def process(self, frame, **kwargs): # frame is just the image here # Return results object results = self.model( frame, conf=self.conf, iou=self.iou, imgsz=self.imgsz, device=self.device, verbose=False, classes=kwargs.get('classes') ) return results def postprocess(self, results, **kwargs): # results is a list of [Results] object (batch size 1 usually) result = results[0] # Extract boxes: x1, y1, x2, y2, conf, cls if result.boxes is None or len(result.boxes) == 0: return np.empty((0, 6)) # boxes.data is often (N, 6) tensor: x1, y1, x2, y2, conf, cls dets = result.boxes.data.cpu().numpy() return dets def __call__(self, image, **kwargs): # Let ultralytics handle loading if passed to predict return super().__call__(image, **kwargs) ================================================ FILE: boxmot/detectors/yolox.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license import fnmatch import cv2 import numpy as np import torch from ultralytics.engine.results import Results from ultralytics.models.yolo.detect import DetectionPredictor from yolox.exp import get_exp from yolox.utils import postprocess from yolox.utils.model_utils import fuse_model from boxmot.utils import logger as LOGGER # default model weigths for these model names YOLOX_ZOO = { "yolox_n.pt": "https://drive.google.com/uc?id=1AoN2AxzVwOLM0gJ15bcwqZUpFjlDV1dX", "yolox_s.pt": "https://drive.google.com/uc?id=1uSmhXzyV1Zvb4TJJCzpsZOIcw7CCJLxj", "yolox_m.pt": "https://drive.google.com/uc?id=11Zb0NN_Uu7JwUd9e6Nk8o2_EUfxWqsun", "yolox_l.pt": "https://drive.google.com/uc?id=1XwfUuCBF4IgWBWK2H7oOhQgEj9Mrb3rz", "yolox_x.pt": "https://drive.google.com/uc?id=1P4mY0Yyd3PPTybgZkjMYhFri88nTmJX5", # the source for the models below is SparseTrack: https://github.com/hustvl/SparseTrack#model-zoo "yolox_x_MOT17_ablation.pt": "https://drive.google.com/uc?id=1iqhM-6V_r1FpOlOzrdP_Ejshgk0DxOob", "yolox_x_MOT20_ablation.pt": "https://drive.google.com/uc?id=1H1BxOfinONCSdQKnjGq0XlRxVUo_4M8o", "yolox_x_dancetrack_ablation.pt": "https://drive.google.com/uc?id=1ZKpYmFYCsRdXuOL60NRuc7VXAFYRskXB", "yolox_x_visdrone.pt": "https://drive.google.com/uc?id=1ajehBs9enBHhuBqGIoQPGqkkzasE9d3o" } def _coerce_torch_dtype(dtype, fallback: torch.Tensor) -> torch.dtype: """Map YOLOX's dtype strings (e.g., 'torch.mps.FloatTensor') to real torch dtypes.""" if isinstance(dtype, torch.dtype): return dtype if isinstance(dtype, str): lowered = dtype.lower() if "bfloat16" in lowered: return torch.bfloat16 if "float16" in lowered or "half" in lowered: return torch.float16 # Default to the fallback tensor's dtype or float32. return fallback.dtype if isinstance(fallback, torch.Tensor) else torch.float32 def _patch_yolox_head_decode_outputs_for_mps() -> None: """Monkeypatch YOLOXHead.decode_outputs to work on MPS (avoids .type with dtype strings).""" try: from yolox.models.yolo_head import YOLOXHead from yolox.utils import meshgrid except Exception: return if getattr(YOLOXHead, "_boxmot_mps_patched", False): return def decode_outputs(self, outputs, dtype): dtype = _coerce_torch_dtype(dtype, outputs) device = outputs.device grids = [] strides = [] for (hsize, wsize), stride in zip(self.hw, self.strides): yv, xv = meshgrid([ torch.arange(hsize, device=device), torch.arange(wsize, device=device), ]) grid = torch.stack((xv, yv), 2).view(1, -1, 2) grids.append(grid) shape = grid.shape[:2] strides.append(torch.full((*shape, 1), stride, device=device, dtype=grid.dtype)) grids = torch.cat(grids, dim=1).to(device=device, dtype=dtype) strides = torch.cat(strides, dim=1).to(device=device, dtype=dtype) outputs = outputs.clone() outputs[..., :2] = (outputs[..., :2] + grids) * strides outputs[..., 2:4] = torch.exp(outputs[..., 2:4]) * strides return outputs YOLOXHead.decode_outputs = decode_outputs YOLOXHead._boxmot_mps_patched = True _patch_yolox_head_decode_outputs_for_mps() class YoloXStrategy: """YOLOX strategy for use with Ultralytics predictor workflow.""" pt = False stride = 32 fp16 = False triton = False names = { 0: "person", 1: "bicycle", 2: "car", 3: "motorcycle", 4: "airplane", 5: "bus", 6: "train", 7: "truck", 8: "boat", 9: "traffic light", 10: "fire hydrant", 11: "stop sign", 12: "parking meter", 13: "bench", 14: "bird", 15: "cat", 16: "dog", 17: "horse", 18: "sheep", 19: "cow", 20: "elephant", 21: "bear", 22: "zebra", 23: "giraffe", 24: "backpack", 25: "umbrella", 26: "handbag", 27: "tie", 28: "suitcase", 29: "frisbee", 30: "skis", 31: "snowboard", 32: "sports ball", 33: "kite", 34: "baseball bat", 35: "baseball glove", 36: "skateboard", 37: "surfboard", 38: "tennis racket", 39: "bottle", 40: "wine glass", 41: "cup", 42: "fork", 43: "knife", 44: "spoon", 45: "bowl", 46: "banana", 47: "apple", 48: "sandwich", 49: "orange", 50: "broccoli", 51: "carrot", 52: "hot dog", 53: "pizza", 54: "donut", 55: "cake", 56: "chair", 57: "couch", 58: "potted plant", 59: "bed", 60: "dining table", 61: "toilet", 62: "tv", 63: "laptop", 64: "mouse", 65: "remote", 66: "keyboard", 67: "cell phone", 68: "microwave", 69: "oven", 70: "toaster", 71: "sink", 72: "refrigerator", 73: "book", 74: "clock", 75: "vase", 76: "scissors", 77: "teddy bear", 78: "hair drier", 79: "toothbrush", } def __init__(self, model, device, args): self.ch = 3 self.args = args raw = getattr(args, 'imgsz', None) or 640 vals = raw if isinstance(raw, (list, tuple)) else (raw,) w, h = (vals * 2)[:2] self.imgsz = [w, h] self.pt = False self.stride = 32 # max stride in YOLOX # model_type one of: 'yolox_n', 'yolox_s', 'yolox_m', 'yolox_l', 'yolox_x' model_type = self.get_model_from_weigths(YOLOX_ZOO.keys(), model) # Map model type to YOLOX experiment name # Custom trained models (e.g., yolox_x_MOT17_ablation) use the base architecture if model_type == "yolox_n": exp_name = "yolox_nano" elif "_MOT" in model_type or "_dancetrack" in model_type or "_visdrone" in model_type: # Extract base model: yolox_x_MOT17_ablation / yolox_x_visdrone -> yolox_x exp_name = ( model_type.split("_MOT")[0] .split("_dancetrack")[0] .split("_visdrone")[0] ) else: exp_name = model_type exp = get_exp(None, exp_name) LOGGER.info(f"Loading {model_type} with {str(model)}") # download crowdhuman bytetrack models if not model.exists() and ( model.stem == model_type or fnmatch.fnmatch(model.stem, "yolox_x_*_ablation") ): LOGGER.info("Downloading pretrained weights...") from boxmot.utils.download import download_file download_file( url=YOLOX_ZOO[model.stem + ".pt"], dest=model, overwrite=False ) # needed for bytetrack yolox people models # update with your custom model needs exp.num_classes = 1 elif model.stem.startswith(model_type): exp.num_classes = 1 ckpt = torch.load(str(model), map_location=torch.device("cpu")) self.device = device self.model = exp.get_model() self.model.eval() # folow official yolox loading procedure # https://github.com/Megvii-BaseDetection/YOLOX/blob/d872c71b/tools/eval.py#L148-L176 self.model.to(self.device) self.model.eval() self.model.load_state_dict(ckpt["model"]) self.model = fuse_model(self.model) self.im_paths = [] self._preproc_data = [] def get_model_from_weigths(self, model_names, weight_path): for name in model_names: if name in str(weight_path): return name.split('.')[0] return "yolox_s" # default @torch.no_grad() def __call__(self, im, augment, visualize, embed): if isinstance(im, list): if len(im[0].shape) == 3: im = torch.stack(im) else: im = torch.vstack(im) if len(im.shape) == 3: im = im.unsqueeze(0) assert len(im.shape) == 4, f"Expected 4D tensor as input, got {im.shape}" preds = self.model(im) return preds def warmup(self, imgsz): pass def update_im_paths(self, predictor: DetectionPredictor): """ This function saves image paths for the current batch, being passed as callback on_predict_batch_start """ assert isinstance( predictor, DetectionPredictor ), "Only ultralytics predictors are supported" self.im_paths = predictor.batch[0] # This preprocess differs from the current version of YOLOX preprocess, but ByteTrack uses it # https://github.com/ifzhang/ByteTrack/blob/d1bf0191adff59bc8fcfeaa0b33d3d1642552a99/yolox/data/data_augment.py\#L189 def yolox_preprocess( self, image, input_size, mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225), swap=(2, 0, 1), ): if len(image.shape) == 3: padded_img = np.ones((input_size[0], input_size[1], 3)) * 114.0 else: padded_img = np.ones(input_size) * 114.0 img = np.array(image) r = min(input_size[0] / img.shape[0], input_size[1] / img.shape[1]) resized_img = cv2.resize( img, (int(img.shape[1] * r), int(img.shape[0] * r)), interpolation=cv2.INTER_LINEAR, ).astype(np.float32) padded_img[: int(img.shape[0] * r), : int(img.shape[1] * r)] = resized_img padded_img = padded_img[:, :, ::-1] padded_img /= 255.0 if mean is not None: padded_img -= mean if std is not None: padded_img /= std padded_img = padded_img.transpose(swap) padded_img = np.ascontiguousarray(padded_img, dtype=np.float32) return padded_img, r def preprocess(self, im) -> torch.Tensor: assert isinstance(im, list) im_preprocessed = [] self._preproc_data = [] for i, img in enumerate(im): img_pre, ratio = self.yolox_preprocess(img, input_size=self.imgsz) img_pre = torch.Tensor(img_pre).unsqueeze(0).to(self.device) im_preprocessed.append(img_pre) self._preproc_data.append(ratio) im_preprocessed = torch.vstack(im_preprocessed) return im_preprocessed def postprocess(self, preds, im, im0s): results = [] for i, pred in enumerate(preds): im_path = self.im_paths[i] if len(self.im_paths) else "" pred = postprocess( pred.unsqueeze(0), # YOLOX postprocessor expects 3D arary 1, conf_thre=self.args.conf, nms_thre=self.args.iou, class_agnostic=self.args.agnostic_nms, )[0] if pred is None: pred = torch.empty((0, 6)) r = Results( path=im_path, boxes=pred, orig_img=im0s[i], names=self.names ) results.append(r) else: ratio = self._preproc_data[i] pred[:, 0] = pred[:, 0] / ratio pred[:, 1] = pred[:, 1] / ratio pred[:, 2] = pred[:, 2] / ratio pred[:, 3] = pred[:, 3] / ratio pred[:, 4] *= pred[:, 5] pred = pred[:, [0, 1, 2, 3, 4, 6]] # filter boxes by classes if self.args.classes: pred = pred[ torch.isin(pred[:, 5].cpu(), torch.as_tensor(self.args.classes)) ] r = Results( path=im_path, boxes=pred, orig_img=im0s[i], names=self.names ) results.append(r) return results # Alias for backward compatibility YOLOX = YoloXStrategy ================================================ FILE: boxmot/engine/__init__.py ================================================ ================================================ FILE: boxmot/engine/cli.py ================================================ #!/usr/bin/env python3 """ CLI for BoxMOT: multi-step multiple object tracking pipeline. Provides commands to track, generate detections and embeddings, evaluate performance, tune models, or run all steps. """ import multiprocessing as mp mp.set_start_method("spawn", force=True) from pathlib import Path from types import SimpleNamespace import yaml import click from boxmot.utils import ROOT, WEIGHTS, DATASET_CONFIGS, TRACKEVAL from boxmot.utils.download import download_eval_data from boxmot.utils.misc import parse_imgsz, resolve_model_path def load_dataset_cfg(name: str) -> dict: """Load the dict from boxmot/configs/datasets/{name}.yaml.""" path = DATASET_CONFIGS / f"{name}.yaml" with open(path, 'r') as f: return yaml.safe_load(f) def ensure_model_extension(model_path): """ Ensure model path has the default `.pt` suffix when omitted and preserve explicit paths. Args: model_path: Path to model file (str or Path) Returns: Resolved model path. """ if model_path is None: return None model_path = Path(model_path) # If no extension, add .pt if not model_path.suffix and "openvino" not in model_path.name: model_path = model_path.with_suffix('.pt') return resolve_model_path(model_path) # Core options (excluding model & classes) def core_options(func): options = [ click.option('--source', type=str, default='0', help='file/dir/URL/glob, 0 for webcam'), click.option('--imgsz', callback=parse_imgsz, default=640, type=str, help='desired image size for the model input. Can be an integer for square images or a tuple (height, width) for specific dimensions.'), click.option('--fps', type=int, default=30, help='video frame-rate'), click.option('--conf', type=float, default=0.01, help='min confidence threshold'), click.option('--iou', type=float, default=0.7, help='IoU threshold for NMS'), click.option('--device', default='', help='cuda device(s), e.g. 0 or 0,1,2,3 or cpu'), click.option('--batch-size', type=int, default=16, show_default=True, help='micro-batch size for batched detection/embedding'), click.option('--auto-batch/--no-auto-batch', default=True, show_default=True, help='probe GPU memory with a dummy pass to pick a safe batch size'), click.option('--resume/--no-resume', default=True, show_default=True, help='resume detection/embedding generation from progress checkpoints'), click.option('--read-threads', type=int, default=None, help='CPU threads for image decoding; defaults to min(8, cpu_count)'), click.option('--project', type=Path, default=ROOT / 'runs', help='save results to project/name'), click.option('--name', default='', help='save results to project/name'), click.option('--exist-ok', is_flag=True, default=True, help='existing project/name ok, do not increment'), click.option('--half', is_flag=True, help='use FP16 half-precision inference'), click.option('--vid-stride', type=int, default=1, help='video frame-rate stride'), click.option('--ci', is_flag=True, help='reuse existing runs in CI (no UI)'), click.option('--tracking-method', type=str, default='deepocsort', help='deepocsort, botsort, strongsort, ...'), click.option('--verbose', is_flag=True, help='print detailed logs'), click.option('--agnostic-nms', is_flag=True, help='class-agnostic NMS'), click.option( "--postprocessing", type=click.Choice(["none", "gsi", "gbrc"], case_sensitive=False), default="none", help="Postprocess tracker output: none | gsi (Gaussian smoothed interpolation) | gbrc (gradient boosting smooth).", ), click.option('--show', is_flag=True, help='display tracking in a window'), click.option('--show-labels/--hide-labels', default=True, help='show or hide detection labels'), click.option('--show-conf/--hide-conf', default=True, help='show or hide detection confidences'), click.option('--show-trajectories', is_flag=True, help='overlay past trajectories'), click.option('--show-lost', is_flag=True, help='show lost tracks'), click.option('--save-txt', is_flag=True, help='save results to a .txt file'), click.option('--save-crop', is_flag=True, help='save cropped detections'), click.option('--save', is_flag=True, help='save annotated video'), click.option('--line-width', type=int, help='bounding box line width'), click.option('--per-class', is_flag=True, help='track each class separately'), click.option('--target-id', type=int, default=None, help='ID to highlight in green') ] for opt in reversed(options): func = opt(func) return func def parse_classes(classes_input): """ Parse classes input which can be a tuple of ints (from multiple=True), a string (comma/space separated), or None. Returns a list of integers or None. """ if classes_input is None: return None if isinstance(classes_input, (list, tuple)): # If it's already a list/tuple of ints (from multiple=True) if not classes_input: return None return list(classes_input) if isinstance(classes_input, str): # Handle string input: "0,1" or "0 1" classes_input = classes_input.replace(',', ' ') return [int(x) for x in classes_input.split()] return [int(classes_input)] def singular_model_options(func): options = [ click.option('--yolo-model', type=Path, default=WEIGHTS / 'yolov8n.pt', help='path to YOLO weights for detection'), click.option('--reid-model', type=Path, default=WEIGHTS / 'osnet_x0_25_msmt17.pt', help='path to ReID model weights'), click.option('--classes', type=str, default=None, help='filter by class indices, e.g. 0 or "0,1"') ] for opt in reversed(options): func = opt(func) return func def plural_model_options(func): options = [ click.option('--yolo-model', type=Path, multiple=True, default=[WEIGHTS / 'yolov8n.pt'], help='one or more YOLO weights for detection'), click.option('--reid-model', type=Path, multiple=True, default=[WEIGHTS / 'osnet_x0_25_msmt17.pt'], help='one or more ReID model weights'), click.option('--classes', type=str, default=None, help='filter by class indices, e.g. 0 or "0,1"') ] for opt in reversed(options): func = opt(func) return func def export_options(func): """ Decorator adding ReID export options (ported from argparse export script). """ options = [ click.option('--batch-size', type=int, default=1, help='Batch size for export'), click.option('--imgsz', '--img', '--img-size', callback=parse_imgsz, type=str, default=640, help='Image size as H,W (e.g. 256,128)'), click.option('--device', default='cpu', help="CUDA device (e.g., '0', '0,1,2,3', or 'cpu')"), click.option('--optimize', is_flag=True, help='Optimize TorchScript for mobile (CPU export only)'), click.option('--dynamic', is_flag=True, help='Enable dynamic axes for ONNX/TF/TensorRT export'), click.option('--simplify', is_flag=True, help='Simplify ONNX model'), click.option('--opset', type=int, default=18, help='ONNX opset version'), click.option('--workspace', type=int, default=4, help='TensorRT workspace size (GB)'), click.option('--verbose', is_flag=True, help='Enable verbose logging for TensorRT'), click.option('--weights', type=Path, default=WEIGHTS / 'osnet_x0_25_msmt17.pt', help='Path to the model weights (.pt file)'), click.option('--half', is_flag=True, help='Enable FP16 half-precision export (GPU only)'), click.option('--include', multiple=True, default=('torchscript',), help='Export formats to include. Options: torchscript, onnx, openvino, engine, tflite'), ] for opt in reversed(options): func = opt(func) return func def tune_options(func): """ Decorator adding ReID export options (ported from argparse export script). """ options = [ click.option('--n-trials', type=int, default=4, help='number of trials for evolutionary tuning'), click.option('--objectives', type=str, multiple=True, default=["HOTA", "MOTA", "IDF1"], help='objectives for tuning: HOTA, MOTA, IDF1'), ] for opt in reversed(options): func = opt(func) return func class CommandFirstGroup(click.Group): """Custom Click Group with improved help formatting - Ultralytics-style.""" def format_help(self, ctx, formatter): """Override to show custom help with Ultralytics-style formatting.""" # Main heading formatter.write_paragraph() formatter.write_text( "BoxMOT 'boxmot' commands use the following syntax:" ) formatter.write_paragraph() # Command syntax with formatter.indentation(): formatter.write_text("boxmot MODE [OPTIONS] [DETECTOR] [REID] [TRACKER]") formatter.write_paragraph() # Argument descriptions formatter.width = 120 # Increase formatter width to prevent wrapping with formatter.indentation(): formatter.write_text("Where MODE (required) is one of [track, eval, tune, generate, export]") formatter.write_text(" DETECTOR (optional) YOLO model like yolov8n, yolov9c, yolo11m, yolox_x") formatter.write_text(" REID (optional) ReID model like osnet_x0_25_msmt17, mobilenetv2_x1_4") formatter.write_text(" TRACKER (optional) is one of [deepocsort, botsort, bytetrack, strongsort, ocsort, hybridsort, boosttrack, sfsort]") formatter.write_text(" OPTIONS (optional) flags like '--source 0' '--imgsz 640' that override defaults.") formatter.write_text(" See all options at https://github.com/mikel-brostrom/boxmot or 'boxmot MODE --help'") formatter.write_paragraph() # Examples formatter.write_text("Examples:") with formatter.indentation(): formatter.write_text("1. Track with webcam using defaults:") with formatter.indentation(): formatter.write_text("boxmot track yolov8n osnet_x0_25_msmt17 deepocsort --source 0 --show") formatter.write_paragraph() formatter.write_text("2. Track a video file:") with formatter.indentation(): formatter.write_text("boxmot track yolov8n osnet_x0_25_msmt17 botsort --source video.mp4 --save") formatter.write_paragraph() formatter.write_text("3. Evaluate on MOT dataset:") with formatter.indentation(): formatter.write_text("boxmot eval yolov8n osnet_x0_25_msmt17 deepocsort --source MOT17-mini/train") formatter.write_paragraph() formatter.write_text("4. Tune tracker hyperparameters:") with formatter.indentation(): formatter.write_text("boxmot tune --source MOT17-mini/train --tracking-method deepocsort --n-trials 10") formatter.write_paragraph() formatter.write_text("5. Export ReID model:") with formatter.indentation(): formatter.write_text("boxmot export --weights osnet_x0_25_msmt17.pt --include onnx --include engine --dynamic") formatter.write_paragraph() # Available modes formatter.write_text("Modes:") with formatter.indentation(): formatter.write_text("track Track objects in video/webcam stream") formatter.write_text("eval Evaluate tracker performance on MOT dataset") formatter.write_text("tune Optimize tracker hyperparameters") formatter.write_text("generate Generate detections and embeddings") formatter.write_text("export Export ReID models to different formats") formatter.write_paragraph() # Resources formatter.write_text("Docs: https://github.com/mikel-brostrom/boxmot") formatter.write_text("Community: https://github.com/mikel-brostrom/boxmot/discussions") @click.group(cls=CommandFirstGroup) @click.pass_context def boxmot(ctx): """ BoxMOT: Pluggable SOTA multi-object tracking modules for segmentation, object detection and pose estimation models """ pass @boxmot.command(help='Run tracking only') @click.argument('detector', required=False) @click.argument('reid', required=False) @click.argument('tracker', required=False) @core_options @singular_model_options @click.pass_context def track(ctx, detector, reid, tracker, yolo_model, reid_model, classes, **kwargs): # Override options with positional args if provided if detector: yolo_model = ensure_model_extension(detector) if reid: reid_model = ensure_model_extension(reid) if tracker: kwargs['tracking_method'] = tracker src = kwargs.pop('source') source_path = Path(src) bench, split = source_path.parent.name, source_path.name # Auto-append .pt extension if missing yolo_model = ensure_model_extension(yolo_model) reid_model = ensure_model_extension(reid_model) params = {**kwargs, 'yolo_model': yolo_model, 'reid_model': reid_model, 'classes': parse_classes(classes), 'source': src, 'benchmark': bench, 'split': split} args = SimpleNamespace(**params) # 2) if doing MOT17/20-ablation, pull down the dataset and rewire args.source/split if (DATASET_CONFIGS / f"{args.source}.yaml").exists(): cfg = load_dataset_cfg(str(args.source)) # Determine dataset destination (under trackeval/data so benchmarks don't mix with TrackEval code) bench_name = Path(cfg["benchmark"]["source"]).name if cfg["download"]["dataset_url"]: dataset_dest = TRACKEVAL / "data" / f"{bench_name}.zip" else: # For custom datasets without URL, use the path from config if available, or default to assets dataset_dest = Path(cfg["download"].get("dataset_dest", f"assets/{bench_name}")) download_eval_data( runs_url=cfg["download"]["runs_url"], dataset_url=cfg["download"]["dataset_url"], dataset_dest=dataset_dest, overwrite=False ) args.benchmark = bench_name args.split = cfg["benchmark"]["split"] if cfg["download"]["dataset_url"]: args.source = TRACKEVAL / "data" / f"{args.benchmark}/{args.split}" elif "source" in cfg["benchmark"]: args.source = Path(cfg["benchmark"]["source"]) / args.split else: args.source = dataset_dest / args.split from boxmot.engine.tracker import main as run_track run_track(args) @boxmot.command(help='Generate detections and embeddings') @click.argument('detector', required=False) @click.argument('reid', required=False) @core_options @plural_model_options @click.pass_context def generate(ctx, detector, reid, yolo_model, reid_model, classes, **kwargs): # Override options with positional args if provided # Note: Plural options are tuples, so handle single arg input as list if detector: yolo_model = [ensure_model_extension(detector)] if reid: reid_model = [ensure_model_extension(reid)] src = kwargs.pop('source') source_path = Path(src) bench, split = source_path.parent.name, source_path.name # Auto-append .pt extension if missing yolo_model = [ensure_model_extension(m) for m in yolo_model] reid_model = [ensure_model_extension(m) for m in reid_model] params = {**kwargs, 'yolo_model': list(yolo_model), 'reid_model': list(reid_model), 'classes': parse_classes(classes), 'source': src, 'benchmark': bench, 'split': split} args = SimpleNamespace(**params) from boxmot.engine.evaluator import run_generate_dets_embs run_generate_dets_embs(args) @boxmot.command(help='Evaluate tracking performance') @click.argument('detector', required=False) @click.argument('reid', required=False) @click.argument('tracker', required=False) @core_options @plural_model_options @click.pass_context def eval(ctx, detector, reid, tracker, yolo_model, reid_model, classes, **kwargs): # Override options with positional args if provided # Note: Plural options are tuples, so handle single arg input as list if detector: yolo_model = [ensure_model_extension(detector)] if reid: reid_model = [ensure_model_extension(reid)] if tracker: kwargs['tracking_method'] = tracker src = kwargs.pop('source') source_path = Path(src) bench, split = source_path.parent.name, source_path.name # Auto-append .pt extension if missing yolo_model = [ensure_model_extension(m) for m in yolo_model] reid_model = [ensure_model_extension(m) for m in reid_model] params = {**kwargs, 'yolo_model': list(yolo_model), 'reid_model': list(reid_model), 'classes': parse_classes(classes), 'source': src, 'benchmark': bench, 'split': split, 'imgsz': [1088, 1920]} args = SimpleNamespace(**params) from boxmot.engine.evaluator import main as run_eval run_eval(args) @boxmot.command(help='Tune models via evolutionary algorithms') @click.argument('detector', required=False) @click.argument('reid', required=False) @click.argument('tracker', required=False) @core_options @tune_options @plural_model_options @click.pass_context def tune(ctx, detector, reid, tracker, yolo_model, reid_model, classes, **kwargs): # Override options with positional args if provided # Note: Plural options are tuples, so handle single arg input as list if detector: yolo_model = [ensure_model_extension(detector)] if reid: reid_model = [ensure_model_extension(reid)] if tracker: kwargs['tracking_method'] = tracker src = kwargs.pop('source') source_path = Path(src) bench, split = source_path.parent.name, source_path.name # Auto-append .pt extension if missing yolo_model = [ensure_model_extension(m) for m in yolo_model] reid_model = [ensure_model_extension(m) for m in reid_model] params = {**kwargs, 'yolo_model': list(yolo_model), 'reid_model': list(reid_model), 'classes': parse_classes(classes), 'source': src, 'benchmark': bench, 'split': split} args = SimpleNamespace(**params) from boxmot.engine.tuner import main as run_tuning run_tuning(args) @boxmot.command(help='Export ReID models') @export_options @click.pass_context def export(ctx, **kwargs): """ Command 'export': export ReID model weights and configurations for deployment. Mirrors the standalone argparse-based export script. """ # kwargs already contains all export args; convert imgsz tuple -> list args = SimpleNamespace(**kwargs) from boxmot.engine.export import main as run_export run_export(args) @boxmot.command(help='Show BoxMOT version') def version(): """Display the current BoxMOT version.""" from boxmot import __version__ click.echo(f"BoxMOT {__version__}") @boxmot.command(help='Show help information') @click.pass_context def help(ctx): """Display help information.""" # Get the parent context (main boxmot group) parent_ctx = ctx.parent click.echo(parent_ctx.get_help()) main = boxmot if __name__ == "__main__": boxmot() ================================================ FILE: boxmot/engine/evaluator.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license import multiprocessing as mp mp.set_start_method("spawn", force=True) import argparse import subprocess from pathlib import Path import numpy as np from tqdm import tqdm import json import yaml import cv2 import os import torch import sys import concurrent.futures from contextlib import nullcontext from boxmot.trackers.tracker_zoo import create_tracker from boxmot.utils import NUM_THREADS, ROOT, WEIGHTS, TRACKER_CONFIGS, DATASET_CONFIGS, logger as LOGGER, TRACKEVAL from boxmot.utils.checks import RequirementsChecker from boxmot.utils.torch_utils import select_device from boxmot.utils.plots import MetricsPlotter from boxmot.utils.misc import increment_path, prompt_overwrite from boxmot.utils.timing import TimingStats, wrap_tracker_reid from typing import Optional, List, Dict, Generator, Union from boxmot.utils.dataloaders.dataset import MOTDataset from boxmot.postprocessing.gsi import gsi from boxmot.engine.inference import DetectorReIDPipeline, extract_detections, filter_detections from boxmot.detectors import default_imgsz from boxmot.utils.mot_utils import convert_to_mot_format, write_mot_results from boxmot.utils.download import download_eval_data, download_trackeval checker = RequirementsChecker() checker.check_packages(('ultralytics', )) # install COCO_CLASSES = [ 'person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train', 'truck', 'boat', 'traffic light', 'fire hydrant', 'stop sign', 'parking meter', 'bench', 'bird', 'cat', 'dog', 'horse', 'sheep', 'cow', 'elephant', 'bear', 'zebra', 'giraffe', 'backpack', 'umbrella', 'handbag', 'tie', 'suitcase', 'frisbee', 'skis', 'snowboard', 'sports ball', 'kite', 'baseball bat', 'baseball glove', 'skateboard', 'surfboard', 'tennis racket', 'bottle', 'wine glass', 'cup', 'fork', 'knife', 'spoon', 'bowl', 'banana', 'apple', 'sandwich', 'orange', 'broccoli', 'carrot', 'hot dog', 'pizza', 'donut', 'cake', 'chair', 'couch', 'potted plant', 'bed', 'dining table', 'toilet', 'tv', 'laptop', 'mouse', 'remote', 'keyboard', 'cell phone', 'microwave', 'oven', 'toaster', 'sink', 'refrigerator', 'book', 'clock', 'vase', 'scissors', 'teddy bear', 'hair drier', 'toothbrush' ] def load_dataset_cfg(name: str) -> dict: """Load the dict from boxmot/configs/datasets/{name}.yaml.""" path = DATASET_CONFIGS / f"{name}.yaml" with open(path, 'r') as f: return yaml.safe_load(f) def eval_init(args, trackeval_dest: Path = TRACKEVAL, branch: str = "master", overwrite: bool = False ) -> None: """ Common initialization: download TrackEval and (if needed) the MOT-challenge data for ablation runs, then canonicalize args.source. Modifies args in place. """ # 1) download the TrackEval code download_trackeval(dest=trackeval_dest, branch=branch, overwrite=overwrite) # 2) if doing MOT17/20-ablation, pull down the dataset and rewire args.source/split if (DATASET_CONFIGS / f"{args.source}.yaml").exists(): cfg = load_dataset_cfg(str(args.source)) # Determine dataset destination (under trackeval/data so benchmarks don't mix with TrackEval code) bench_name = Path(cfg["benchmark"]["source"]).name dataset_url = cfg["download"]["dataset_url"] if dataset_url and dataset_url.startswith("hf://"): dataset_dest = TRACKEVAL / "data" / bench_name elif dataset_url: dataset_dest = TRACKEVAL / "data" / f"{bench_name}.zip" else: # For custom datasets without URL, use the path from config if available, or default to assets dataset_dest = Path(cfg["download"].get("dataset_dest", f"assets/{bench_name}")) download_eval_data( runs_url=cfg["download"]["runs_url"], dataset_url=cfg["download"]["dataset_url"], dataset_dest=dataset_dest, overwrite=overwrite ) args.benchmark = bench_name args.split = cfg["benchmark"]["split"] if cfg["download"]["dataset_url"]: args.source = TRACKEVAL / "data" / f"{args.benchmark}/{args.split}" elif "source" in cfg["benchmark"]: args.source = Path(cfg["benchmark"]["source"]) / args.split else: args.source = dataset_dest / args.split # 3) finally, make source an absolute Path everywhere args.source = Path(args.source).resolve() args.project = Path(args.project).resolve() args.project.mkdir(parents=True, exist_ok=True) def parse_mot_results(results: str) -> dict: """ Extracts COMBINED HOTA, MOTA, IDF1, AssA, AssRe, IDSW, and IDs from MOTChallenge evaluation output. Returns a dictionary keyed by class name. """ metric_specs = { 'HOTA': ('HOTA:', {'HOTA': 0, 'AssA': 2, 'AssRe': 5}), 'MOTA': ('CLEAR:', {'MOTA': 0, 'IDSW': 12}), 'IDF1': ('Identity:', {'IDF1': 0}), 'IDs': ('Count:', {'IDs': 2}), } int_fields = {'IDSW', 'IDs'} parsed_results = {} lines = results.splitlines() current_class = None current_metric_type = None for line in lines: line = line.strip() if not line: continue # Check for header lines is_header = False for metric_name, (prefix, _) in metric_specs.items(): if line.startswith(prefix): is_header = True current_metric_type = metric_name # Format: "HOTA: tracker-classHOTA ..." content = line[len(prefix):].strip() first_word = content.split()[0] if first_word.endswith(metric_name): tracker_class = first_word[:-len(metric_name)] if '-' in tracker_class: current_class = tracker_class.split('-')[-1] else: current_class = 'default' if current_class not in parsed_results: parsed_results[current_class] = {'per_sequence': {}} break if is_header: continue # Check for data rows (COMBINED or sequence names) if current_class and current_metric_type: fields = line.split() if len(fields) > 1: row_name = fields[0] # Either 'COMBINED' or sequence name like 'MOT17-02-FRCNN' values = fields[1:] _, field_map = metric_specs[current_metric_type] if row_name == 'COMBINED': # Store COMBINED metrics at class level (backward compatible) for key, idx in field_map.items(): if idx < len(values): val = values[idx] parsed_results[current_class][key] = max(0, int(val) if key in int_fields else float(val)) else: # Store per-sequence metrics if row_name not in parsed_results[current_class]['per_sequence']: parsed_results[current_class]['per_sequence'][row_name] = {} for key, idx in field_map.items(): if idx < len(values): val = values[idx] parsed_results[current_class]['per_sequence'][row_name][key] = max(0, int(val) if key in int_fields else float(val)) return parsed_results # --------------------------- # Batched det+emb generation # --------------------------- def _sequence_img_dir(seq_dir: Path) -> Path: img1 = seq_dir / "img1" return img1 if img1.exists() else seq_dir def _list_sequence_frames(img_dir: Path) -> list[Path]: return sorted(list(img_dir.glob("*.jpg")) + list(img_dir.glob("*.png"))) def _sequence_name_from_img_dir(img_dir: Path) -> str: return img_dir.parent.name if img_dir.name == "img1" else img_dir.name def _read_image_cv2(p: Path): im = cv2.imread(str(p), cv2.IMREAD_COLOR) if im is None: raise RuntimeError(f"Failed to read image: {p}") return im def _collect_seq_info(source: Path) -> tuple[list[Path], dict[str, int]]: seq_paths = [] seq_info: dict[str, int] = {} for seq_dir in sorted(p for p in source.iterdir() if p.is_dir()): img_dir = _sequence_img_dir(seq_dir) frame_files = sorted(list(img_dir.glob("*.jpg")) + list(img_dir.glob("*.png"))) if not frame_files: continue seq_paths.append(img_dir) seq_info[seq_dir.name] = len(frame_files) return seq_paths, seq_info def _autotune_batch_size(yolo, device: str, imgsz, requested: int) -> int: dev_lower = str(device).lower() use_accel = dev_lower.startswith(("cuda", "0", "1", "2", "3", "4", "5", "6", "7", "mps", "metal")) if not use_accel: return max(1, requested) def _empty_cache(): if dev_lower.startswith("cuda") and torch.cuda.is_available(): torch.cuda.empty_cache() elif dev_lower.startswith(("mps", "metal")) and hasattr(torch, "mps"): try: torch.mps.empty_cache() except Exception: pass if isinstance(imgsz, (list, tuple)): h, w = int(imgsz[0]), int(imgsz[1]) else: h = w = int(imgsz) dummy = np.zeros((h, w, 3), dtype=np.uint8) bs = max(1, int(requested)) while bs >= 1: try: yolo.predict(source=[dummy] * bs, device=device, verbose=False, imgsz=imgsz) if bs < requested: LOGGER.warning(f"Auto-tuned batch size from {requested} -> {bs} to fit device memory.") return bs except RuntimeError as e: if "out of memory" not in str(e).lower(): raise _empty_cache() next_bs = max(1, bs // 2) LOGGER.warning(f"Batch size {bs} OOM; retrying with {next_bs}.") if next_bs == bs: break bs = next_bs raise RuntimeError("Unable to run even batch size 1; reduce image size or move to CPU.") def _clear_device_cache(device: str) -> None: dev_lower = str(device).lower() if dev_lower.startswith("cuda") and torch.cuda.is_available(): torch.cuda.empty_cache() elif dev_lower.startswith(("mps", "metal")) and hasattr(torch, "mps"): try: torch.mps.empty_cache() except Exception: pass def _count_data_lines(path: Path, skip_header: bool = False) -> int: """Count non-header lines in a txt file, tolerating missing files.""" try: with open(path, "r") as fh: if skip_header: return sum(1 for line in fh if not line.startswith("#")) return sum(1 for _ in fh) except FileNotFoundError: return 0 def _max_frame_id(path: Path) -> int: """Return the maximum frame id (first column) in a dets txt, skipping headers.""" max_f = 0 try: with open(path, "r") as fh: for line in fh: line = line.strip() if not line or line.startswith("#"): continue parts = line.split() if not parts: continue try: f_val = int(float(parts[0])) except Exception: continue if f_val > max_f: max_f = f_val except FileNotFoundError: return 0 return max_f @torch.inference_mode() def generate_dets_embs_batched(args: argparse.Namespace, y: Path, source_root: Path, timing_stats: Optional[TimingStats] = None) -> None: """ Generate detections and embeddings in batches for evaluation. Args: args: CLI arguments. y: Path to YOLO model weights. source_root: Root path containing sequence folders. timing_stats: Optional TimingStats for timing instrumentation. """ WEIGHTS.mkdir(parents=True, exist_ok=True) batch_size = int(getattr(args, "batch_size", 16)) read_threads_val = getattr(args, "read_threads", None) if read_threads_val is None: read_threads_val = min(8, (os.cpu_count() or 8)) read_threads = int(read_threads_val) auto_batch = bool(getattr(args, "auto_batch", True)) resume = bool(getattr(args, "resume", True)) if args.imgsz is None: args.imgsz = default_imgsz(y) # Use unified DetectorReIDPipeline with timing for both detection and ReID pipeline = DetectorReIDPipeline( yolo_model_path=y, reid_model_paths=args.reid_model, device=args.device, imgsz=args.imgsz, half=args.half, timing_stats=timing_stats, ) # Warmup the model pipeline.warmup() if auto_batch: batch_size = pipeline.autotune_batch_size(batch_size) args.batch_size = batch_size mot_folder_paths = sorted([p for p in Path(source_root).iterdir() if p.is_dir()]) seq_states = {} det_fhs = {} emb_fhs = {r.stem: {} for r in args.reid_model} # runs/dets_n_embs//y.stem/... when benchmark is set benchmark = getattr(args, "benchmark", None) dets_base = Path(args.project) / "dets_n_embs" if benchmark: dets_base = dets_base / benchmark dets_folder = dets_base / y.stem / "dets" embs_root = dets_base / y.stem / "embs" total_frames = 0 initial_done = 0 for seq_dir in mot_folder_paths: img_dir = _sequence_img_dir(seq_dir) frames = _list_sequence_frames(img_dir) if not frames: continue seq_name = _sequence_name_from_img_dir(img_dir) dets_path = dets_folder / f"{seq_name}.txt" processed = 0 emb_paths = {} any_emb_cached = False for r in args.reid_model: ep = embs_root / r.stem / f"{seq_name}.txt" emb_paths[r.stem] = ep if ep.exists(): any_emb_cached = True expected_files = False rows_match = False det_rows = 0 det_max_frame = 0 emb_rows: dict[str, int] = {} if resume: det_rows = _count_data_lines(dets_path, skip_header=True) det_max_frame = _max_frame_id(dets_path) emb_rows = {stem: _count_data_lines(ep) for stem, ep in emb_paths.items()} expected_files = dets_path.exists() and all(ep.exists() for ep in emb_paths.values()) rows_match = len(set([det_rows, *emb_rows.values()])) == 1 if expected_files else False if expected_files and rows_match and det_rows > 0: processed = min(det_max_frame, len(frames)) elif expected_files and not rows_match: LOGGER.warning( f"Cached det/emb rows mismatch for {seq_name}; resetting cached data." ) for p in [dets_path, *emb_paths.values()]: try: p.unlink() except FileNotFoundError: pass processed = 0 if resume and processed >= len(frames) and dets_path.exists() and all(ep.exists() for ep in emb_paths.values()): if expected_files and rows_match and det_rows: LOGGER.info( f"Skipping {seq_name} (cached complete; {processed}/{len(frames)} frames)." ) else: LOGGER.info(f"Skipping {seq_name} (resume: already complete).") initial_done += len(frames) continue if resume and 0 < processed < len(frames): LOGGER.info(f"Resuming {seq_name}: cached {processed}/{len(frames)} frames.") if (not resume) and dets_path.exists() and any_emb_cached: if not prompt_overwrite('Detections and Embeddings', dets_path, args.ci): LOGGER.debug(f"Skipping {seq_name} (cached).") continue dets_path.parent.mkdir(parents=True, exist_ok=True) mode = 'ab' if (resume and dets_path.exists()) else 'wb' det_fhs[seq_name] = open(dets_path, mode, buffering=1024 * 1024) if mode == 'wb' or dets_path.stat().st_size == 0: np.savetxt(det_fhs[seq_name], [], fmt='%f', header=str(img_dir)) for r in args.reid_model: ep = emb_paths[r.stem] ep.parent.mkdir(parents=True, exist_ok=True) emb_mode = 'ab' if (resume and ep.exists()) else 'wb' emb_fhs[r.stem][seq_name] = open(ep, emb_mode, buffering=1024 * 1024) seq_states[seq_name] = {"frames": frames, "i": processed, "img_dir": img_dir} total_frames += len(frames) initial_done += processed if not seq_states: LOGGER.info("No sequences to process (all cached or no images).") return seq_names = list(seq_states.keys()) rr = 0 use_cuda = str(args.device).startswith("cuda") amp_ctx = ( torch.autocast(device_type="cuda", dtype=torch.float16) if (use_cuda and getattr(args, "half", False)) else nullcontext() ) pbar = tqdm(total=total_frames, desc=f"Batched YOLO+ReID ({y.name}, bs={batch_size})", unit="frame") reid_pbar = tqdm(total=0, desc="ReID embeddings", unit="det", dynamic_ncols=True) if initial_done: pbar.update(initial_done) from concurrent.futures import ThreadPoolExecutor try: with ThreadPoolExecutor(max_workers=read_threads) as pool, amp_ctx: alive = True while alive: batch_items = [] tried = 0 while len(batch_items) < batch_size and tried < len(seq_names): seq_name = seq_names[rr % len(seq_names)] rr += 1 tried += 1 st = seq_states[seq_name] if st["i"] >= len(st["frames"]): continue frame_id = st["i"] + 1 img_path = st["frames"][st["i"]] st["i"] += 1 batch_items.append((seq_name, frame_id, img_path)) if not batch_items: alive = False break futures = [pool.submit(_read_image_cv2, p) for _, _, p in batch_items] imgs = [f.result() for f in futures] yolo_results = None while True: try: # Use unified batch inference from pipeline yolo_results = pipeline.predict_batch( images=imgs[:batch_size], conf=args.conf, iou=args.iou, agnostic_nms=args.agnostic_nms, classes=args.classes, verbose=False, ) break except RuntimeError as e: if "out of memory" not in str(e).lower(): raise if batch_size == 1: raise _clear_device_cache(args.device) for seq_name, _, _ in batch_items: seq_states[seq_name]["i"] -= 1 new_bs = max(1, batch_size // 2) LOGGER.warning(f"YOLO predict OOM at batch size {batch_size}; retrying with {new_bs}.") batch_size = new_bs args.batch_size = batch_size yolo_results = None break if yolo_results is None: continue det_counts = [int(r.boxes.shape[0]) if r.boxes is not None else 0 for r in yolo_results] emb_dims: dict[str, int] = {} LOGGER.info( f"YOLO batch frames={len(batch_items)} | dets/frame={det_counts} | total_dets={sum(det_counts)}" ) touched: set[str] = set() for (seq_name, frame_id, _), r, img in zip(batch_items, yolo_results, imgs): # Use unified detection extraction and filtering dets = extract_detections(r) dets = filter_detections(dets, min_area=10.0, remove_degenerate=True) if len(dets) == 0: if timing_stats: timing_stats.frames += 1 pbar.update(1) continue boxes = dets[:, :4] confs = dets[:, 4:5] # Keep as 2D for concatenation clss = dets[:, 5:6] # Keep as 2D for concatenation # Build detection array with frame_id column: [frame_id, x1, y1, x2, y2, conf, cls] frame_col = np.full((boxes.shape[0], 1), float(frame_id), dtype=np.float32) dets_np = np.concatenate([frame_col, boxes, confs, clss], axis=1) dets_np[:, 1:5] = np.rint(dets_np[:, 1:5]) # round xyxy only np.savetxt(det_fhs[seq_name], dets_np, fmt="%f") det_boxes_np = dets_np[:, 1:5] # Use pipeline's ReID models (with timing instrumentation) all_embs = pipeline.get_all_reid_features(det_boxes_np, img) for reid_name, embs in all_embs.items(): if embs.shape[0] != det_boxes_np.shape[0]: raise RuntimeError( f"Embedding count mismatch: dets={det_boxes_np.shape[0]} embs={embs.shape[0]}" ) if embs.ndim >= 2 and reid_name not in emb_dims: emb_dims[reid_name] = embs.shape[1] np.savetxt(emb_fhs[reid_name][seq_name], embs, fmt="%f") reid_pbar.update(det_boxes_np.shape[0]) # Update frame count for timing if timing_stats: timing_stats.frames += 1 pbar.update(1) touched.add(seq_name) if emb_dims: LOGGER.info( "ReID embedding dims per model: " + ", ".join([f"{k}={v}" for k, v in emb_dims.items()]) ) else: LOGGER.info("ReID embedding dims per model: n/a (no detections)") for seq_name in touched: try: det_fhs[seq_name].flush() for per_reid in emb_fhs.values(): if seq_name in per_reid: per_reid[seq_name].flush() except Exception: pass del yolo_results, imgs _clear_device_cache(args.device) finally: pbar.close() reid_pbar.close() for fh in det_fhs.values(): try: fh.close() except Exception: pass for per_reid in emb_fhs.values(): for fh in per_reid.values(): try: fh.close() except Exception: pass def run_generate_dets_embs(args: argparse.Namespace, timing_stats: Optional[TimingStats] = None) -> None: """ Generate detections and embeddings for all sequences. Args: args: CLI arguments. timing_stats: Optional TimingStats for timing instrumentation. """ source_root = Path(args.source) args.batch_size = int(getattr(args, "batch_size", 16)) if getattr(args, "read_threads", None) is None: args.read_threads = min(8, (os.cpu_count() or 8)) if not hasattr(args, "auto_batch"): args.auto_batch = True if not hasattr(args, "resume"): args.resume = True for y in args.yolo_model: LOGGER.info(f"Generating dets+embs (batched single-process): {y.name}") generate_dets_embs_batched(args, y, source_root, timing_stats=timing_stats) def build_dataset_eval_settings( args: argparse.Namespace, gt_folder: Path, seq_info: dict[str, int], ) -> dict: """Derive dataset-specific evaluation settings (classes, ids, distractors, gt path format). This centralizes logic for MOT-style datasets and non-MOT layouts such as VisDrone. """ cfg = {} try: if hasattr(args, "benchmark"): cfg = load_dataset_cfg(args.benchmark) except FileNotFoundError: cfg = {} except Exception as e: # noqa: BLE001 LOGGER.warning(f"Error loading dataset config: {e}") cfg = {} bench_cfg = cfg.get("benchmark", {}) if isinstance(cfg, dict) else {} eval_classes_cfg = bench_cfg.get("eval_classes") if isinstance(bench_cfg, dict) else None distractor_cfg = bench_cfg.get("distractor_classes") if isinstance(bench_cfg, dict) else None classes_to_eval = [] class_ids = [] # Filter classes by user provided classes if hasattr(args, "classes") and args.classes is not None: class_indices = args.classes if isinstance(args.classes, list) else [args.classes] classes_to_eval = [COCO_CLASSES[int(i)] for i in class_indices] class_ids = [int(i) + 1 for i in class_indices] # Match classes by benchmark config if isinstance(eval_classes_cfg, dict) and len(eval_classes_cfg) > 0: ordered = sorted(((int(k), v) for k, v in eval_classes_cfg.items()), key=lambda kv: kv[0]) if class_ids: class_ids = [k for k, _ in ordered if class_ids and k in class_ids] classes_to_eval = [v for k, v in ordered if class_ids and k in class_ids] else: class_ids = [k for k, _ in ordered] classes_to_eval = [v for k, v in ordered] # Default classes if not classes_to_eval: classes_to_eval = ["person"] if not class_ids: class_ids = [1] # Distractors distractor_ids: list[int] = [] if isinstance(distractor_cfg, dict) and len(distractor_cfg) > 0: distractor_ids = [int(k) for k in distractor_cfg.keys()] # Remove duplicates while preserving order seen = set() pairs = [] for name, cid in zip(classes_to_eval, class_ids): if name in seen: continue seen.add(name) pairs.append((name, cid)) classes_to_eval = [name for name, _ in pairs] class_ids = [cid for _, cid in pairs] # GT path format (VisDrone uses flat txt under annotations) gt_loc_format = "{gt_folder}/{seq}/gt/gt_temp.txt" is_visdrone = "visdrone" in getattr(args, "benchmark", "").lower() or "visdrone" in str(gt_folder).lower() if is_visdrone: gt_loc_format = "{gt_folder}/{seq}.txt" benchmark_name = getattr(args, "benchmark", "") return { "classes_to_eval": classes_to_eval, "class_ids": class_ids, "distractor_ids": distractor_ids, "gt_loc_format": gt_loc_format, "benchmark_name": benchmark_name, "seq_info": seq_info, } def trackeval( args: argparse.Namespace, seq_paths: list, save_dir: Path, gt_folder: Path, metrics: list = ["HOTA", "CLEAR", "Identity"], seq_info: Optional[dict] = None, ) -> str: """ Executes a Python script to evaluate MOT challenge tracking results using specified metrics. Args: seq_paths (list): List of sequence paths. save_dir (Path): Directory to save evaluation results. gt_folder (Path): Folder containing ground truth data. metrics (list, optional): List of metrics to use for evaluation. Defaults to ["HOTA", "CLEAR", "Identity"]. Returns: str: Standard output from the evaluation script. """ if not seq_info: seq_names = [seq_path.parent.name if seq_path.name == "img1" else seq_path.name for seq_path in seq_paths] seq_info = {name: None for name in seq_names} seq_info_args = [] for name in sorted(seq_info.keys()): length = seq_info[name] seq_info_args.append(f"{name}:{length}" if length else name) dataset_settings = build_dataset_eval_settings(args, gt_folder, seq_info) classes_to_eval = dataset_settings["classes_to_eval"] class_ids = dataset_settings["class_ids"] distractor_ids = dataset_settings["distractor_ids"] gt_loc_format = dataset_settings["gt_loc_format"] benchmark_name = dataset_settings["benchmark_name"] cmd_args = [ sys.executable, ROOT / 'boxmot' / 'utils' / 'run_mot_challenge.py', "--GT_FOLDER", str(gt_folder), "--BENCHMARK", benchmark_name, "--TRACKERS_FOLDER", str(args.exp_dir.parent), "--TRACKERS_TO_EVAL", args.exp_dir.name, "--SPLIT_TO_EVAL", args.split, "--METRICS", *metrics, "--USE_PARALLEL", "True", "--TRACKER_SUB_FOLDER", "", "--NUM_PARALLEL_CORES", str(4), "--SKIP_SPLIT_FOL", "True", "--GT_LOC_FORMAT", gt_loc_format, "--CLASSES_TO_EVAL", *classes_to_eval, "--CLASS_IDS", *[str(i) for i in class_ids], "--DISTRACTOR_CLASS_IDS", *[str(i) for i in distractor_ids], "--SEQ_INFO", *seq_info_args ] p = subprocess.Popen( args=cmd_args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True ) stdout, stderr = p.communicate() if stderr: print("Standard Error:\n", stderr) return stdout def process_sequence(seq_name: str, mot_root: str, project_root: str, model_name: str, reid_name: str, tracking_method: str, exp_folder: str, target_fps: Optional[int], device: str, cfg_dict: Optional[Dict] = None, dataset_name: Optional[str] = None, ): """ Process a single sequence: run tracker on pre-computed detections/embeddings. Returns: Tuple of (seq_name, kept_frame_ids, timing_dict) where timing_dict contains 'track_time_ms' and 'num_frames' for aggregating timing stats. """ import time device = select_device(device) tracker = create_tracker( tracker_type=tracking_method, tracker_config=TRACKER_CONFIGS / (tracking_method + ".yaml"), reid_weights=WEIGHTS / f"{reid_name}.pt", device=device, half=False, per_class=False, evolve_param_dict=cfg_dict, ) # load with the user’s FPS # runs/dets_n_embs// when dataset_name is set det_emb_root = Path(project_root) / "dets_n_embs" if dataset_name: det_emb_root = det_emb_root / dataset_name dataset = MOTDataset( mot_root=mot_root, det_emb_root=str(det_emb_root), model_name=model_name, reid_name=reid_name, target_fps=target_fps ) sequence = dataset.get_sequence(seq_name) all_tracks = [] kept_frame_ids = [] total_track_time_ms = 0.0 num_frames = 0 for frame in sequence: fid = int(frame['frame_id']) dets = frame['dets'] embs = frame['embs'] img = frame['img'] kept_frame_ids.append(fid) num_frames += 1 if dets.size and embs.size: if dets.shape[0] != embs.shape[0]: msg = ( f"Detection/embedding count mismatch for {seq_name} frame {fid}: " f"dets={dets.shape[0]} embs={embs.shape[0]}" ) LOGGER.error(msg) raise ValueError(msg) # Time the tracker update (association only, embeddings pre-computed) t0 = time.perf_counter() tracks = tracker.update(dets, img, embs) total_track_time_ms += (time.perf_counter() - t0) * 1000 if tracks.size: all_tracks.append(convert_to_mot_format(tracks, fid)) out_arr = np.vstack(all_tracks) if all_tracks else np.empty((0, 0)) write_mot_results(Path(exp_folder) / f"{seq_name}.txt", out_arr) timing_dict = { 'track_time_ms': total_track_time_ms, 'num_frames': num_frames, } return seq_name, kept_frame_ids, timing_dict from boxmot.utils import configure_logging as _configure_logging def _worker_init(): # each spawned process needs its own sinks _configure_logging() def run_generate_mot_results(args: argparse.Namespace, evolve_config: dict = None, timing_stats: Optional[TimingStats] = None) -> None: """ Run tracker on pre-computed detections/embeddings and generate MOT result files. Args: args: CLI arguments. evolve_config: Optional config dict for hyperparameter tuning. timing_stats: Optional TimingStats to record tracking/association time. """ # Prepare experiment folder: runs/mot//model_reid_tracker when benchmark is set base = args.project / "mot" if getattr(args, "benchmark", None): base = base / args.benchmark base = base / f"{args.yolo_model[0].stem}_{args.reid_model[0].stem}_{args.tracking_method}" exp_dir = increment_path(base, sep="_", exist_ok=False) exp_dir.mkdir(parents=True, exist_ok=True) args.exp_dir = exp_dir # Just collect sequence names by scanning directory names sequence_names = [] for d in Path(args.source).iterdir(): if not d.is_dir(): continue img_dir = d / "img1" if (d / "img1").exists() else d if any(img_dir.glob("*.jpg")) or any(img_dir.glob("*.png")): sequence_names.append(d.name) sequence_names.sort() # Build task arguments (include dataset_name for det_emb_root path) dataset_name = getattr(args, "benchmark", None) task_args = [ ( seq, str(args.source), str(args.project), args.yolo_model[0].stem, args.reid_model[0].stem, args.tracking_method, str(exp_dir), getattr(args, "fps", None), args.device, evolve_config, dataset_name, ) for seq in sequence_names ] seq_frame_nums = {} total_track_time_ms = 0.0 total_track_frames = 0 with concurrent.futures.ProcessPoolExecutor(max_workers=NUM_THREADS, initializer=_worker_init) as executor: futures = { executor.submit(process_sequence, *args): args[0] for args in task_args } for fut in concurrent.futures.as_completed(futures): seq = futures[fut] try: seq_name, kept_ids, timing_dict = fut.result() seq_frame_nums[seq_name] = kept_ids # Aggregate timing from worker process total_track_time_ms += timing_dict.get('track_time_ms', 0) total_track_frames += timing_dict.get('num_frames', 0) except Exception: LOGGER.exception(f"Error processing {seq}") # Record aggregated tracking time in timing_stats if timing_stats is not None: timing_stats.totals['track'] += total_track_time_ms # Also update frame count if not already set (from batch mode) if timing_stats.frames == 0 and total_track_frames > 0: timing_stats.frames = total_track_frames # Log summary if total_track_frames > 0: avg_track = total_track_time_ms / total_track_frames LOGGER.opt(colors=True).info( f"Tracking: {total_track_frames} frames, " f"total: {total_track_time_ms:.1f}ms, " f"avg: {avg_track:.2f}ms/frame" ) # Optional GSI postprocessing if getattr(args, "postprocessing", "none") == "gsi": LOGGER.opt(colors=True).info("[3b/4] Applying GSI postprocessing...") from boxmot.postprocessing.gsi import gsi gsi(mot_results_folder=exp_dir) elif getattr(args, "postprocessing", "none") == "gbrc": LOGGER.opt(colors=True).info("[3b/4] Applying GBRC postprocessing...") from boxmot.postprocessing.gbrc import gbrc gbrc(mot_results_folder=exp_dir) def run_trackeval(args: argparse.Namespace, verbose: bool = True) -> dict: """ Runs the trackeval function to evaluate tracking results. Args: args (Namespace): Parsed command line arguments. verbose (bool): Whether to print results summary. Default True. """ seq_paths, seq_info = _collect_seq_info(args.source) annotations_dir = args.source.parent / "annotations" gt_folder = annotations_dir if annotations_dir.exists() else args.source if not seq_paths: raise ValueError(f"No sequences with images found under {args.source}") if annotations_dir.exists(): for seq_name in list(seq_info.keys()): ann_file = annotations_dir / f"{seq_name}.txt" if not ann_file.exists(): continue try: with open(ann_file, "r") as f: max_frame = 0 for line in f: if not line.strip(): continue frame_id = int(float(line.split(",", 1)[0])) if frame_id > max_frame: max_frame = frame_id if max_frame: seq_info[seq_name] = max(seq_info.get(seq_name, 0) or 0, max_frame) except Exception: LOGGER.warning(f"Failed to read annotation file {ann_file} for sequence length inference") # runs// when benchmark is set if getattr(args, "benchmark", None): save_dir = Path(args.project) / args.benchmark / args.name else: save_dir = Path(args.project) / args.name trackeval_results = trackeval(args, seq_paths, save_dir, gt_folder, seq_info=seq_info) parsed_results = parse_mot_results(trackeval_results) # Load config to filter classes # Try to load config from benchmark name first, then fallback to source parent name cfg_name = getattr(args, 'benchmark', str(args.source.parent.name)) try: cfg = load_dataset_cfg(cfg_name) except FileNotFoundError: # If config not found, try to find it by checking if source path ends with a known config name # This handles cases where source is a custom path found = False for config_file in DATASET_CONFIGS.glob("*.yaml"): if config_file.stem in str(args.source): cfg = load_dataset_cfg(config_file.stem) found = True break if not found: LOGGER.warning(f"Could not find dataset config for {cfg_name}. Class filtering might be incorrect.") cfg = {} # Filter parsed_results based on user provided classes (args.classes) single_class_mode = False # Priority 1: Benchmark config classes (overrides user classes) if "benchmark" in cfg: bench_cfg = cfg["benchmark"] bench_classes = None if isinstance(bench_cfg, dict): if "eval_classes" in bench_cfg: bench_classes = [v for _, v in sorted(bench_cfg["eval_classes"].items(), key=lambda kv: int(kv[0]))] elif "classes" in bench_cfg: bench_classes = bench_cfg["classes"].split() if bench_classes: parsed_results = {k: v for k, v in parsed_results.items() if k in bench_classes} if len(bench_classes) == 1: single_class_mode = True # Priority 2: User provided classes elif hasattr(args, 'classes') and args.classes is not None: class_indices = args.classes if isinstance(args.classes, list) else [args.classes] user_classes = [COCO_CLASSES[int(i)] for i in class_indices] parsed_results = {k: v for k, v in parsed_results.items() if k in user_classes} if len(user_classes) == 1: single_class_mode = True if single_class_mode and len(parsed_results) > 0: final_results = list(parsed_results.values())[0] else: final_results = parsed_results # Print results summary if verbose: LOGGER.info("") LOGGER.opt(colors=True).info("" + "="*105 + "") LOGGER.opt(colors=True).info(f"{'📊 RESULTS SUMMARY':^105}") LOGGER.opt(colors=True).info("" + "="*105 + "") headers = ["Sequence", "HOTA", "MOTA", "IDF1", "AssA", "AssRe", "IDSW", "IDs"] header_str = "{:<25} {:>10} {:>10} {:>10} {:>10} {:>10} {:>10} {:>10}".format(*headers) LOGGER.opt(colors=True).info(f"{header_str}") LOGGER.opt(colors=True).info("" + "-"*105 + "") for cls, class_metrics in parsed_results.items(): # Print per-sequence metrics first per_sequence = class_metrics.get('per_sequence', {}) for seq_name in sorted(per_sequence.keys()): seq_metrics = per_sequence[seq_name] name_col = f"{seq_name:<25}" vals = [ f"{seq_metrics.get('HOTA', 0):>10.2f}", f"{seq_metrics.get('MOTA', 0):>10.2f}", f"{seq_metrics.get('IDF1', 0):>10.2f}", f"{seq_metrics.get('AssA', 0):>10.2f}", f"{seq_metrics.get('AssRe', 0):>10.2f}", f"{seq_metrics.get('IDSW', 0):>10}", f"{seq_metrics.get('IDs', 0):>10}" ] vals_str = " ".join([f"{v}" for v in vals]) LOGGER.opt(colors=True).info(f"{name_col} {vals_str}") # Print COMBINED row (bold, highlighted) LOGGER.opt(colors=True).info("" + "-"*105 + "") name_col = f"{'COMBINED (' + cls + ')':<25}" vals = [ f"{class_metrics.get('HOTA', 0):>10.2f}", f"{class_metrics.get('MOTA', 0):>10.2f}", f"{class_metrics.get('IDF1', 0):>10.2f}", f"{class_metrics.get('AssA', 0):>10.2f}", f"{class_metrics.get('AssRe', 0):>10.2f}", f"{class_metrics.get('IDSW', 0):>10}", f"{class_metrics.get('IDs', 0):>10}" ] vals_str = " ".join([f"{v}" for v in vals]) LOGGER.opt(colors=True).info(f"{name_col} {vals_str}") LOGGER.opt(colors=True).info("" + "="*105 + "") if args.ci: with open(args.tracking_method + "_output.json", "w") as outfile: outfile.write(json.dumps(final_results)) return final_results def main(args): # Print evaluation pipeline header (blue palette) LOGGER.info("") LOGGER.opt(colors=True).info("" + "="*60 + "") LOGGER.opt(colors=True).info("🚀 BoxMOT Evaluation Pipeline") LOGGER.opt(colors=True).info("" + "="*60 + "") LOGGER.opt(colors=True).info(f"Detector: {args.yolo_model[0]}") LOGGER.opt(colors=True).info(f"ReID: {args.reid_model[0]}") LOGGER.opt(colors=True).info(f"Tracker: {args.tracking_method}") LOGGER.opt(colors=True).info(f"Benchmark: {args.source}") LOGGER.opt(colors=True).info(f"Image size: {getattr(args, 'imgsz', None)}") LOGGER.opt(colors=True).info("" + "="*60 + "") # Initialize timing stats for the evaluation pipeline timing_stats = TimingStats() # Step 1: Download TrackEval LOGGER.opt(colors=True).info("[1/4] Setting up TrackEval...") eval_init(args) # Step 2: Generate detections and embeddings (with timing) LOGGER.opt(colors=True).info("[2/4] Generating detections and embeddings...") run_generate_dets_embs(args, timing_stats=timing_stats) # Step 3: Generate MOT results (with tracking timing) LOGGER.opt(colors=True).info("[3/4] Running tracker...") run_generate_mot_results(args, timing_stats=timing_stats) # Step 4: Evaluate with TrackEval LOGGER.opt(colors=True).info("[4/4] Evaluating results...") results = run_trackeval(args) # Print timing summary if we collected timing data if timing_stats.frames > 0: timing_stats.print_summary() # Only plot if we have results for a single class or handle multi-class plotting differently # For now, let's just skip the radar chart if we have multiple classes or complex structure # Or pick the first class found? # The original code expected a flat dict of metrics. Now we have {class: {metric: val}} # Let's try to plot for each class or just skip for now to avoid breaking # If 'pedestrian' is in results, use that, otherwise use the first key # Check if results is flat (single class backward compatibility) or nested is_flat = False if results and isinstance(list(results.values())[0], (int, float)): is_flat = True metrics_data = results plot_class = 'single_class' else: plot_class = 'pedestrian' if plot_class not in results and len(results) > 0: plot_class = list(results.keys())[0] metrics_data = results.get(plot_class, {}) if metrics_data: plotter = MetricsPlotter(args.exp_dir) # Filter only the metrics we want to plot plot_metrics = ['HOTA', 'MOTA', 'IDF1'] plot_values = [metrics_data.get(m, 0) for m in plot_metrics] plotter.plot_radar_chart( {args.tracking_method: plot_values}, plot_metrics, title=f"MOT metrics radar Chart ({plot_class})", ylim=(0, 100), yticks=[20, 40, 60, 80, 100], ytick_labels=['20', '40', '60', '80', '100'] ) if __name__ == "__main__": main() ================================================ FILE: boxmot/engine/export.py ================================================ #!/usr/bin/env python3 import time import torch from boxmot.reid.core import export_formats from boxmot.reid.core.auto_backend import ReidAutoBackend from boxmot.reid.core.registry import ReIDModelRegistry from boxmot.reid.exporters.base_exporter import BaseExporter from boxmot.utils import WEIGHTS from boxmot.utils import logger as LOGGER from boxmot.utils.torch_utils import select_device def validate_export_formats(include): available_formats = tuple(export_formats()["Argument"][1:]) include_lower = [fmt.lower() for fmt in include] flags = [fmt in include_lower for fmt in available_formats] if sum(flags) != len(include_lower): raise AssertionError( f"ERROR: Invalid --include {include}, valid arguments are {available_formats}" ) return tuple(flags) def setup_model(args): args.device = select_device(args.device) if args.half and args.device.type == "cpu": raise AssertionError("--half only compatible with GPU export, use --device 0 for GPU") auto_backend = ReidAutoBackend(weights=args.weights, device=args.device, half=args.half) model_name = ReIDModelRegistry.get_model_name(args.weights) model = auto_backend.model.model.eval() if args.optimize and args.device.type != "cpu": raise AssertionError("--optimize not compatible with CUDA devices, use --device cpu") if "vehicleid" in args.weights.name or "veri" in args.weights.name: args.imgsz = (256, 256) elif "lmbn" in model_name: args.imgsz = (384, 128) elif "hacnn" in model_name: args.imgsz = (160, 64) else: args.imgsz = (256, 128) if args.half: model = model.half() first_param = next(model.parameters(), None) if first_param is not None: model_dtype = first_param.dtype else: first_buffer = next(model.buffers(), None) model_dtype = first_buffer.dtype if first_buffer is not None else torch.float32 dummy_input = torch.empty( args.batch_size, 3, args.imgsz[0], args.imgsz[1], device=args.device, dtype=model_dtype, ) for _ in range(2): _ = model(dummy_input) return model, dummy_input def create_export_tasks(args, model, dummy_input): torchscript_flag, onnx_flag, openvino_flag, engine_flag, tflite_flag = validate_export_formats(args.include) tasks = {} if torchscript_flag: from boxmot.reid.exporters.torchscript_exporter import \ TorchScriptExporter tasks["torchscript"] = ( True, TorchScriptExporter, (model, dummy_input, args.weights, args.optimize), ) if onnx_flag: from boxmot.reid.exporters.onnx_exporter import ONNXExporter tasks["onnx"] = ( True, ONNXExporter, (model, dummy_input, args.weights, args.opset, args.dynamic, args.half, args.simplify), ) if engine_flag: from boxmot.reid.exporters.tensorrt_exporter import EngineExporter tasks["engine"] = ( True, EngineExporter, (model, dummy_input, args.weights, args.half, args.dynamic, args.simplify, args.verbose), ) if tflite_flag: from boxmot.reid.exporters.tflite_exporter import TFLiteExporter tasks["tflite"] = ( True, TFLiteExporter, (model, dummy_input, args.weights, args.opset, args.dynamic, args.half, args.simplify), ) if openvino_flag: from boxmot.reid.exporters.openvino_exporter import OpenVINOExporter tasks["openvino"] = ( True, OpenVINOExporter, (model, dummy_input, args.weights, args.half), ) return tasks def perform_exports(export_tasks): exported_files = {} for fmt, (flag, exporter_class, exp_args) in export_tasks.items(): if flag: exporter = exporter_class(*exp_args) # Exporters can optionally declare: # group="...", or extra="...", and extra_args=["--upgrade"] # The BaseExporter decorator will auto-install them. exported_files[fmt] = exporter.export() return exported_files def main(args): start_time = time.time() WEIGHTS.mkdir(parents=True, exist_ok=True) args.weights = WEIGHTS / args.weights.name # Print header LOGGER.info("") LOGGER.opt(colors=True).info("" + "="*60 + "") LOGGER.opt(colors=True).info("🚀 BoxMOT ReID Export") LOGGER.opt(colors=True).info("" + "="*60 + "") LOGGER.opt(colors=True).info(f"Weights: {args.weights}") LOGGER.opt(colors=True).info(f"Formats: {', '.join(args.include)}") LOGGER.opt(colors=True).info(f"Device: {args.device}") LOGGER.opt(colors=True).info(f"Half: {args.half}") LOGGER.opt(colors=True).info("" + "-"*60 + "") LOGGER.opt(colors=True).info("[1/3] Setting up model...") model, dummy_input = setup_model(args) output = model(dummy_input) output_tensor = output[0] if isinstance(output, tuple) else output output_shape = tuple(output_tensor.shape) LOGGER.opt(colors=True).info( f"Input shape: {tuple(dummy_input.shape)}" ) LOGGER.opt(colors=True).info( f"Output shape: {output_shape} " f"({BaseExporter.file_size(args.weights):.1f} MB)" ) LOGGER.opt(colors=True).info("[2/3] Exporting to formats...") export_tasks = create_export_tasks(args, model, dummy_input) exported_files = perform_exports(export_tasks) if exported_files: elapsed_time = time.time() - start_time LOGGER.opt(colors=True).info("[3/3] Export complete!") LOGGER.info("") LOGGER.opt(colors=True).info("" + "="*60 + "") LOGGER.opt(colors=True).info("✅ Export Summary") LOGGER.opt(colors=True).info("" + "="*60 + "") LOGGER.opt(colors=True).info(f"Time: {elapsed_time:.1f}s") LOGGER.opt(colors=True).info(f"Saved to: {args.weights.parent.resolve()}") for fmt, fpath in exported_files.items(): LOGGER.opt(colors=True).info(f" • {fmt}: {fpath}") LOGGER.opt(colors=True).info("Visualize: https://netron.app") LOGGER.opt(colors=True).info("" + "="*60 + "") if __name__ == "__main__": main() ================================================ FILE: boxmot/engine/inference.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license """ Unified inference module for BoxMOT. This module provides a consistent interface for running YOLO inference across both real-time tracking (tracker.py) and batch evaluation (evaluator.py) workflows. It handles model initialization, callbacks, and timing instrumentation. """ import time from functools import partial from pathlib import Path from typing import Any, Callable, Generator, List, Optional, Union import numpy as np import torch from boxmot.detectors import ( default_imgsz, get_yolo_inferer, is_ultralytics_model, is_rtdetr_model, is_yolox_model, ) from boxmot.utils import WEIGHTS, logger as LOGGER from boxmot.utils.checks import RequirementsChecker from boxmot.utils.misc import resolve_model_path from boxmot.utils.timing import TimingStats checker = RequirementsChecker() checker.check_packages(("ultralytics",)) from ultralytics import YOLO def resolve_yolo_model_path(yolo_model_path: Union[str, Path]) -> Path: """Resolve detector weights while preserving RT-DETR model names.""" model_path = Path(yolo_model_path) if is_rtdetr_model(yolo_model_path): return Path(model_path.name) return WEIGHTS / model_path.name class TimedReIDModel: """ Wrapper around ReID model to track timing. This wrapper intercepts calls to get_features() and records the time spent in ReID feature extraction. """ def __init__(self, model, timing_stats: Optional[TimingStats] = None): """ Initialize the timed ReID model wrapper. Args: model: The underlying ReID model with get_features() method. timing_stats: Optional TimingStats to record ReID timing. """ self._model = model self._timing_stats = timing_stats def get_features(self, xyxys: np.ndarray, img: np.ndarray) -> np.ndarray: """ Extract ReID features with timing instrumentation. Args: xyxys: Bounding boxes as numpy array of shape (N, 4) with [x1, y1, x2, y2]. img: The image as numpy array (BGR). Returns: Feature embeddings as numpy array of shape (N, feature_dim). """ t0 = time.perf_counter() features = self._model.get_features(xyxys, img) elapsed_ms = (time.perf_counter() - t0) * 1000 if self._timing_stats is not None: self._timing_stats.add_reid_time(elapsed_ms) return features def __getattr__(self, name): """Forward all other attributes to the wrapped model.""" return getattr(self._model, name) class DetectorReIDPipeline: """ Unified pipeline for detection and ReID inference with timing instrumentation. This class provides a consistent interface for running YOLO detection and ReID feature extraction across both real-time tracking and batch evaluation. It handles: - YOLO model initialization (Ultralytics and non-Ultralytics models) - ReID model initialization with timing wrappers - Batch and streaming inference - Comprehensive timing statistics Attributes: yolo_model_path: Path to the YOLO model weights. reid_model_paths: List of paths to ReID model weights. device: Device to run inference on. timing_stats: TimingStats instance for timing instrumentation. """ def __init__( self, yolo_model_path: Union[str, Path], reid_model_paths: Optional[Union[str, Path, List[Union[str, Path]]]] = None, device: str = "", imgsz: Optional[Union[int, List[int]]] = None, half: bool = False, timing_stats: Optional[TimingStats] = None, ): """ Initialize the detector and ReID pipeline. Args: yolo_model_path: Path to the YOLO model weights. reid_model_paths: Path(s) to ReID model weights. Can be single path or list. device: Device to run inference on (e.g., 'cuda:0', 'cpu', 'mps'). imgsz: Image size for inference. If None, uses model-specific defaults. half: Whether to use half precision (FP16). timing_stats: Optional TimingStats instance. If None, creates a new one. """ # Determine model type self.is_ultralytics = is_ultralytics_model(yolo_model_path) self.is_yolox = is_yolox_model(yolo_model_path) self.is_rtdetr = is_rtdetr_model(yolo_model_path) self.yolo_model_path = resolve_yolo_model_path(yolo_model_path) self.device = device self.half = half # Initialize or use provided timing stats self.timing_stats = timing_stats if timing_stats is not None else TimingStats() # Set default image size based on model type if imgsz is None: imgsz = default_imgsz(yolo_model_path) self.imgsz = imgsz # Initialize the base YOLO model placeholder = self.yolo_model_path if self.is_ultralytics else WEIGHTS / "yolov8n.pt" self.yolo = YOLO(placeholder) # Custom model instance for non-ultralytics models self._custom_model = None # Store user callbacks self._user_callbacks = { "on_predict_start": [], "on_predict_batch_start": [], "on_predict_postprocess_end": [], "on_predict_batch_end": [], } # Setup internal callbacks for YOLO self._setup_yolo_callbacks() # Initialize ReID models with timing wrappers self.reid_models: List[TimedReIDModel] = [] self.reid_model_names: List[str] = [] if reid_model_paths is not None: self._init_reid_models(reid_model_paths) def _init_reid_models(self, reid_model_paths: Union[str, Path, List[Union[str, Path]]]): """ Initialize ReID models with timing wrappers. Args: reid_model_paths: Path(s) to ReID model weights. """ # Import here to avoid circular imports from boxmot.reid.core.auto_backend import ReidAutoBackend # Normalize to list if isinstance(reid_model_paths, (str, Path)): reid_model_paths = [reid_model_paths] for reid_path in reid_model_paths: reid_path = resolve_model_path(reid_path) reid_backend = ReidAutoBackend( weights=reid_path, device=self.device, half=self.half, ) # Wrap with timing timed_model = TimedReIDModel(reid_backend.model, self.timing_stats) self.reid_models.append(timed_model) self.reid_model_names.append(reid_path.stem) def _setup_yolo_callbacks(self): """Setup internal callbacks for model initialization and timing.""" # Add callback to setup custom models (YOLOX, RT-DETR) if not self.is_ultralytics: self.yolo.add_callback("on_predict_start", self._setup_custom_model) # Add callback to update image paths for YOLOX/RT-DETR if self.is_yolox or self.is_rtdetr: self.yolo.add_callback("on_predict_batch_start", self._update_custom_paths) # Add timing callback for frame start self.yolo.add_callback("on_predict_batch_start", self._on_frame_start) def _setup_custom_model(self, predictor): """Setup callback for non-ultralytics models (YOLOX, RT-DETR).""" if self._custom_model is not None: return # Already initialized # Get the appropriate model class model_class = get_yolo_inferer(self.yolo_model_path) # Instantiate the model self._custom_model = model_class( model=self.yolo_model_path, device=predictor.device, args=predictor.args, ) # Replace predictor's model predictor.model = self._custom_model # Override preprocess and postprocess for YOLOX/RT-DETR if self.is_yolox or self.is_rtdetr: predictor.preprocess = lambda im: self._custom_model.preprocess(im=im) predictor.postprocess = lambda preds, im, im0s: self._custom_model.postprocess( preds=preds, im=im, im0s=im0s ) def _update_custom_paths(self, predictor): """Update image paths for custom models.""" if self._custom_model is not None: self._custom_model.update_im_paths(predictor) def _on_frame_start(self, predictor): """Callback to mark start of frame processing for timing.""" self.timing_stats.start_frame() def add_callback(self, event: str, callback: Callable): """ Add a callback for a specific event. Args: event: Event name (e.g., 'on_predict_start', 'on_predict_postprocess_end'). callback: Callback function to call. """ # Register with the underlying YOLO model self.yolo.add_callback(event, callback) # Also track user callbacks if event in self._user_callbacks: self._user_callbacks[event].append(callback) def get_reid_features( self, xyxys: np.ndarray, img: np.ndarray, reid_index: int = 0, ) -> np.ndarray: """ Extract ReID features for detections with timing. Args: xyxys: Bounding boxes as numpy array of shape (N, 4) with [x1, y1, x2, y2]. img: The image as numpy array (BGR). reid_index: Index of the ReID model to use (default 0). Returns: Feature embeddings as numpy array of shape (N, feature_dim). """ if not self.reid_models: raise ValueError("No ReID models initialized. Pass reid_model_paths to constructor.") if reid_index >= len(self.reid_models): raise ValueError(f"ReID index {reid_index} out of range. Have {len(self.reid_models)} models.") return self.reid_models[reid_index].get_features(xyxys, img) def get_all_reid_features( self, xyxys: np.ndarray, img: np.ndarray, ) -> dict[str, np.ndarray]: """ Extract ReID features from all loaded ReID models. Args: xyxys: Bounding boxes as numpy array of shape (N, 4) with [x1, y1, x2, y2]. img: The image as numpy array (BGR). Returns: Dictionary mapping model name to feature embeddings. """ results = {} for model, name in zip(self.reid_models, self.reid_model_names): results[name] = model.get_features(xyxys, img) return results def predict( self, source: Union[str, Path, List, np.ndarray], conf: float = 0.25, iou: float = 0.7, agnostic_nms: bool = False, classes: Optional[List[int]] = None, stream: bool = False, verbose: bool = False, **kwargs, ) -> Generator: """ Run YOLO inference on the source. Args: source: Source for inference (path, list of images, or numpy array). conf: Confidence threshold for detections. iou: IoU threshold for NMS. agnostic_nms: Whether to use class-agnostic NMS. classes: List of class indices to filter. stream: Whether to return a generator (for memory efficiency). verbose: Whether to print verbose output. **kwargs: Additional arguments passed to YOLO.predict(). Yields: Results from inference. """ results = self.yolo.predict( source=source, conf=conf, iou=iou, agnostic_nms=agnostic_nms, device=self.device, classes=classes, imgsz=self.imgsz, stream=stream, verbose=verbose, **kwargs, ) # Wrap results to record timing from Ultralytics for result in results: # Record Ultralytics timing if hasattr(result, 'speed') and result.speed: self.timing_stats.totals['preprocess'] += result.speed.get('preprocess', 0) or 0 self.timing_stats.totals['inference'] += result.speed.get('inference', 0) or 0 self.timing_stats.totals['postprocess'] += result.speed.get('postprocess', 0) or 0 yield result def predict_batch( self, images: List[np.ndarray], conf: float = 0.25, iou: float = 0.7, agnostic_nms: bool = False, classes: Optional[List[int]] = None, verbose: bool = False, **kwargs, ) -> List: """ Run batch inference on a list of images. This is more efficient for batch processing in evaluation workflows. Args: images: List of numpy arrays (BGR images). conf: Confidence threshold for detections. iou: IoU threshold for NMS. agnostic_nms: Whether to use class-agnostic NMS. classes: List of class indices to filter. verbose: Whether to print verbose output. **kwargs: Additional arguments passed to YOLO.predict(). Returns: List of Results from inference. """ results = self.yolo.predict( source=images, conf=conf, iou=iou, agnostic_nms=agnostic_nms, device=self.device, classes=classes, imgsz=self.imgsz, stream=False, verbose=verbose, **kwargs, ) # Record timing for batch for result in results: if hasattr(result, 'speed') and result.speed: self.timing_stats.totals['preprocess'] += result.speed.get('preprocess', 0) or 0 self.timing_stats.totals['inference'] += result.speed.get('inference', 0) or 0 self.timing_stats.totals['postprocess'] += result.speed.get('postprocess', 0) or 0 return results def warmup(self): """ Warmup the model with a dummy inference. This helps ensure consistent timing for the first real inference. """ try: if isinstance(self.imgsz, (list, tuple)): h, w = int(self.imgsz[0]), int(self.imgsz[1]) else: h = w = int(self.imgsz) dummy = np.zeros((h, w, 3), dtype=np.uint8) _ = self.yolo.predict( source=[dummy], device=self.device, verbose=False, imgsz=self.imgsz, ) except Exception as e: LOGGER.warning(f"Warmup failed: {e}") def autotune_batch_size(self, requested_batch_size: int) -> int: """ Autotune batch size to find the maximum that fits in memory. Args: requested_batch_size: Initial batch size to try. Returns: The maximum batch size that fits in memory. """ dev_lower = str(self.device).lower() use_accel = dev_lower.startswith(("cuda", "0", "1", "2", "3", "4", "5", "6", "7", "mps", "metal")) if not use_accel: return max(1, requested_batch_size) def _empty_cache(): if dev_lower.startswith("cuda") and torch.cuda.is_available(): torch.cuda.empty_cache() elif dev_lower.startswith(("mps", "metal")) and hasattr(torch, "mps"): try: torch.mps.empty_cache() except Exception: pass if isinstance(self.imgsz, (list, tuple)): h, w = int(self.imgsz[0]), int(self.imgsz[1]) else: h = w = int(self.imgsz) dummy = np.zeros((h, w, 3), dtype=np.uint8) bs = max(1, int(requested_batch_size)) while bs >= 1: try: self.yolo.predict( source=[dummy] * bs, device=self.device, verbose=False, imgsz=self.imgsz, ) if bs < requested_batch_size: LOGGER.info(f"Auto-tuned batch size: {bs} (requested: {requested_batch_size})") return bs except RuntimeError as e: if "out of memory" not in str(e).lower(): raise _empty_cache() next_bs = max(1, bs // 2) LOGGER.warning(f"Batch size {bs} OOM; trying {next_bs}.") if next_bs == bs: break bs = next_bs raise RuntimeError("Unable to run even batch size 1; reduce image size or move to CPU.") def print_timing_summary(self): """Print the timing summary.""" self.timing_stats.print_summary() @property def custom_model(self): """Get the custom model instance (for YOLOX/RT-DETR).""" return self._custom_model # Backwards compatibility alias YOLOInference = DetectorReIDPipeline def extract_detections(result) -> np.ndarray: """ Extract detections from a YOLO result in a consistent format. Args: result: A YOLO result object. Returns: numpy array of shape (N, 6) for AABB models with columns [x1, y1, x2, y2, conf, cls], or shape (N, 7) for OBB models with columns [cx, cy, w, h, angle, conf, cls]. Returns an empty array with the correct width when no detections are present. """ if getattr(result, "boxes", None) is not None: if len(result.boxes) == 0: return np.empty((0, 6), dtype=np.float32) return result.boxes.data.cpu().numpy() if getattr(result, "obb", None) is not None: if len(result.obb) == 0: return np.empty((0, 7), dtype=np.float32) return result.obb.data.cpu().numpy() return np.empty((0, 6), dtype=np.float32) def filter_detections( dets: np.ndarray, min_area: float = 10.0, remove_degenerate: bool = True, ) -> np.ndarray: """ Filter detections to remove invalid boxes. Args: dets: Detection array of shape (N, 6+) with [x1, y1, x2, y2, conf, cls, ...]. min_area: Minimum box area to keep. remove_degenerate: Whether to remove boxes with non-positive dimensions. Returns: Filtered detection array. """ if len(dets) == 0: return dets if dets.shape[1] == 7: widths, heights = dets[:, 2], dets[:, 3] if remove_degenerate: valid = (widths > 0) & (heights > 0) dets = dets[valid] if len(dets) == 0: return dets widths, heights = dets[:, 2], dets[:, 3] areas = widths * heights return dets[areas >= min_area] x1, y1, x2, y2 = dets[:, 0], dets[:, 1], dets[:, 2], dets[:, 3] # Remove degenerate boxes if remove_degenerate: valid = (x2 > x1) & (y2 > y1) dets = dets[valid] if len(dets) == 0: return dets x1, y1, x2, y2 = dets[:, 0], dets[:, 1], dets[:, 2], dets[:, 3] # Remove tiny boxes areas = (x2 - x1) * (y2 - y1) valid_area = areas >= min_area return dets[valid_area] ================================================ FILE: boxmot/engine/results.py ================================================ import time from pathlib import Path from typing import Any, Callable, Iterator, Union import cv2 import numpy as np try: from ultralytics.utils.plotting import Annotator, colors except ImportError: Annotator = None class Tracks: def __init__(self, frame: np.ndarray, tracks: np.ndarray, get_drawer: Callable[[], Callable]): self.frame = frame self.tracks = tracks self._get_drawer = get_drawer def show(self) -> bool: drawer = self._get_drawer() if drawer is None: drawn_frame = self._default_draw(self.frame, self.tracks) else: drawn_frame = drawer(self.frame, self.tracks) cv2.imshow("Tracking", drawn_frame) key = cv2.waitKey(1) & 0xFF if key == ord('q') or key == 27: # 'q' or ESC return False return True def _default_draw(self, frame, tracks): if Annotator is None: return frame annotator = Annotator(frame, line_width=2, example=str(" ")) for t in tracks: bbox = t[:4] id = int(t[4]) conf = t[5] # cls maps to coco classes, but let's check length # Some trackers might output differently. # Standard BoxMOT output is: [x1, y1, x2, y2, id, conf, cls, det_ind] label = f"{id} {conf:.2f}" annotator.box_label(bbox, label, color=colors(id, True)) return annotator.result() class Results: def __init__(self, source: Union[str, int, Path], detector: Any, reid: Any, tracker: Any, verbose: bool = True): self.source = source self.detector = detector self.reid = reid self.tracker = tracker self.verbose = verbose self.drawer = None self._generator = None self._cache = [] # Timing accumulators self.totals = { 'det': 0.0, 'reid': 0.0, 'track': 0.0, 'total': 0.0, 'frames': 0 } def __iter__(self) -> Iterator[Tracks]: if self._generator is None: self._generator = self._process() return self def __next__(self) -> Tracks: if self._generator is None: self._generator = self._process() tracks = next(self._generator) self._cache.append(tracks) return tracks def _log_frame_timings(self, frame_num: int, det_time: float, reid_time: float, track_time: float) -> None: """Log timing information for a single frame.""" total = det_time + reid_time + track_time log_msg = f"Frame {frame_num} | Det: {det_time:.1f}ms" if self.reid: log_msg += f" | ReID: {reid_time:.1f}ms" log_msg += f" | Track: {track_time:.1f}ms | Total: {total:.1f}ms" print(log_msg) # Accumulate self.totals['det'] += det_time self.totals['reid'] += reid_time self.totals['track'] += track_time self.totals['total'] += total self.totals['frames'] += 1 def _print_summary(self): """Print execution time summary table.""" if self.totals['frames'] == 0: return frames = self.totals['frames'] det_avg = self.totals['det'] / frames reid_avg = self.totals['reid'] / frames track_avg = self.totals['track'] / frames total_avg = self.totals['total'] / frames print("\n" + "="*65) print(f"{'Component':<15} | {'Total Time (ms)':<20} | {'Average Time (ms)':<20}") print("-" * 65) print(f"{'Detection':<15} | {self.totals['det']:<20.1f} | {det_avg:<20.1f}") if self.reid: print(f"{'ReID':<15} | {self.totals['reid']:<20.1f} | {reid_avg:<20.1f}") print(f"{'Tracking':<15} | {self.totals['track']:<20.1f} | {track_avg:<20.1f}") print("-" * 65) print(f"{'Total':<15} | {self.totals['total']:<20.1f} | {total_avg:<20.1f}") print("="*65 + "\n") def _get_frames(self): src = self.source # Check source type for directory if isinstance(src, (str, Path)) and Path(src).is_dir(): path_src = Path(src) exts = ['*.jpg', '*.jpeg', '*.png', '*.bmp', '*.tif', '*.tiff', '*.JPG', '*.JPEG', '*.PNG'] images = [] for ext in exts: images.extend(path_src.glob(ext)) images = sorted(images) if not images: raise ValueError(f"No images found in {src}") for img_path in images: frame = cv2.imread(str(img_path)) if frame is None: continue yield frame return # Video source logic if isinstance(src, (str, Path)): if str(src).isdigit(): src = int(src) else: src = str(src) cap = cv2.VideoCapture(src) if not cap.isOpened(): raise ValueError(f"Could not open video source: {src}") try: while True: ret, frame = cap.read() if not ret: break yield frame finally: cap.release() def _process(self): frame_generator = self._get_frames() frame_num = 0 try: for frame in frame_generator: frame_num += 1 # 1. Detect t0 = time.time() dets = self.detector(frame) det_time = (time.time() - t0) * 1000 # 2. ReID if self.reid: t1 = time.time() features = self.reid(frame, dets) reid_time = (time.time() - t1) * 1000 else: features = None reid_time = 0.0 # 3. Track t2 = time.time() tracks = self.tracker.update(dets, frame, features) track_time = (time.time() - t2) * 1000 # Log timings (accumulates automatically) if self.verbose: self._log_frame_timings(frame_num, det_time, reid_time, track_time) yield Tracks(frame, tracks, get_drawer=lambda: self.drawer) finally: if self.verbose: self._print_summary() def show(self): for track_result in self: if not track_result.show(): break cv2.destroyAllWindows() def track(source, detector, reid, tracker, verbose: bool = True) -> Results: return Results(source, detector, reid, tracker, verbose=verbose) ================================================ FILE: boxmot/engine/tracker.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license from functools import partial from pathlib import Path import cv2 import numpy as np import torch from boxmot import TRACKERS from boxmot.detectors import default_imgsz from boxmot.engine.inference import DetectorReIDPipeline, extract_detections from boxmot.trackers.tracker_zoo import create_tracker from boxmot.utils import TRACKER_CONFIGS from boxmot.utils import logger as LOGGER from boxmot.utils.timing import TimingStats, wrap_tracker_reid class VideoWriter: """Handles video writing for tracking results.""" def __init__(self, output_path, fps=30): self.output_path = Path(output_path) self.output_path.parent.mkdir(parents=True, exist_ok=True) self.fps = fps self.writer = None self.frame_size = None def write(self, frame): """Write a frame to the video.""" if self.writer is None: h, w = frame.shape[:2] self.frame_size = (w, h) fourcc = cv2.VideoWriter_fourcc(*'mp4v') self.writer = cv2.VideoWriter( str(self.output_path), fourcc, self.fps, self.frame_size ) LOGGER.opt(colors=True).info(f"Saving video to: {self.output_path}") self.writer.write(frame) def release(self): """Release the video writer.""" if self.writer is not None: self.writer.release() LOGGER.opt(colors=True).info(f"Video saved: {self.output_path}") def on_predict_start(predictor, args, timing_stats=None): """ Initialize trackers for object tracking during prediction. Args: predictor (object): The predictor object to initialize trackers for. args: CLI arguments containing tracking configuration. timing_stats: Optional TimingStats for ReID timing instrumentation. """ assert args.tracking_method in TRACKERS, \ f"'{args.tracking_method}' is not supported. Supported ones are {TRACKERS}" tracking_config = TRACKER_CONFIGS / (args.tracking_method + '.yaml') trackers = [] # Ensure at least 1 tracker is created (bs might be 0 for some sources) batch_size = max(1, predictor.dataset.bs) for i in range(batch_size): tracker = create_tracker( args.tracking_method, tracking_config, args.reid_model, predictor.device, args.half, args.per_class, ) # set target_id if user passed it if args.target_id is not None: tracker.target_id = args.target_id # Wrap ReID model for timing instrumentation if timing_stats is not None: wrap_tracker_reid(tracker, timing_stats) trackers.append(tracker) predictor.trackers = trackers predictor.custom_args = args # Store for later use def plot_trajectories(predictor, timing_stats=None, video_writer=None): """ Callback to run tracking update and plot trajectories on each frame. Args: predictor (object): The predictor object containing results and trackers. timing_stats (TimingStats, optional): Timing statistics tracker. video_writer (VideoWriter, optional): Video writer for saving output. """ # Ensure trackers are initialized if not hasattr(predictor, 'trackers') or not predictor.trackers: LOGGER.warning("Trackers not initialized, skipping frame") return # predictor.results is a list of Results, one per frame in the batch for i, result in enumerate(predictor.results): if i >= len(predictor.trackers): LOGGER.warning(f"No tracker for batch index {i}, skipping") continue tracker = predictor.trackers[i] # Get detections from result using unified extraction dets = extract_detections(result) img = result.orig_img # Reset per-frame ReID accumulator if timing_stats: timing_stats.reset_frame_reid() # Run tracking update (includes ReID) if timing_stats: timing_stats.start_tracking() tracks = tracker.update(dets, img) track_time = reid_time = assoc_time = 0 if timing_stats: timing_stats.end_tracking() track_time = timing_stats.get_last_track_time() reid_time = timing_stats.get_last_reid_time() assoc_time = track_time - reid_time # Store tracks in result for downstream use result.tracks = tracks n_tracks = len(tracks) if tracks is not None and len(tracks) > 0 else 0 # Log per-frame tracking info (detection time shown by ultralytics above) LOGGER.opt(colors=True).info( f"Track: {n_tracks} IDs, " f"reid: {reid_time:.1f}ms, " f"assoc: {assoc_time:.1f}ms, " f"total: {track_time:.1f}ms" ) # Plot results if timing_stats: timing_stats.start_plot() result.orig_img = tracker.plot_results( img, predictor.custom_args.show_trajectories, show_lost=predictor.custom_args.show_lost ) if timing_stats: timing_stats.end_plot() # Save frame to video if video_writer is not None: video_writer.write(result.orig_img) # Show the frame if requested if predictor.custom_args.show: cv2.imshow("BoxMOT", result.orig_img) key = cv2.waitKey(1) & 0xFF # Exit on 'q' key press - set flag for clean shutdown if key == ord('q'): predictor.custom_args._user_quit = True # End frame timing if timing_stats: timing_stats.end_frame() @torch.no_grad() def main(args): """ Run tracking using the integrated Ultralytics workflow. Args: args: Arguments from CLI (SimpleNamespace from cli.py) """ # Print tracking pipeline header (blue palette) LOGGER.info("") LOGGER.opt(colors=True).info("" + "="*60 + "") LOGGER.opt(colors=True).info("🎯 BoxMOT Tracking Pipeline") LOGGER.opt(colors=True).info("" + "="*60 + "") LOGGER.opt(colors=True).info(f"Detector: {args.yolo_model}") LOGGER.opt(colors=True).info(f"ReID: {args.reid_model}") LOGGER.opt(colors=True).info(f"Tracker: {args.tracking_method}") LOGGER.opt(colors=True).info(f"Source: {args.source}") LOGGER.opt(colors=True).info("" + "="*60 + "") # Set default image size based on model type if args.imgsz is None: args.imgsz = default_imgsz(args.yolo_model) # Initialize timing stats timing_stats = TimingStats() # Initialize video writer if saving is enabled video_writer = None if args.save: # Determine output path project = Path(args.project) if args.project else Path("runs/track") name = args.name if args.name else "exp" save_dir = project / name # Handle exist_ok if not args.exist_ok: i = 1 while save_dir.exists(): save_dir = project / f"{name}{i}" i += 1 # Determine video filename from source source_path = Path(args.source) if source_path.is_file(): video_name = source_path.stem + "_tracked.mp4" elif source_path.is_dir(): video_name = source_path.name + "_tracked.mp4" else: video_name = "tracking_output.mp4" video_writer = VideoWriter(save_dir / video_name, fps=30) # Initialize unified detector + ReID pipeline with timing support pipeline = DetectorReIDPipeline( yolo_model_path=args.yolo_model, reid_model_paths=None, # ReID handled by tracker for real-time tracking device=args.device, imgsz=args.imgsz, half=args.half, timing_stats=timing_stats, ) # Add callbacks for tracker initialization and trajectory plotting # Pass args, timing_stats and video_writer through partial to make them available in callbacks pipeline.add_callback("on_predict_start", partial(on_predict_start, args=args, timing_stats=timing_stats)) pipeline.add_callback("on_predict_postprocess_end", partial(plot_trajectories, timing_stats=timing_stats, video_writer=video_writer)) # Use predict() instead of track() to avoid Ultralytics' default tracking callbacks results = pipeline.predict( source=args.source, conf=args.conf, iou=args.iou, agnostic_nms=args.agnostic_nms, show=False, stream=True, show_conf=args.show_conf, save_txt=args.save_txt, show_labels=args.show_labels, save=False, # We handle video saving ourselves with tracking overlays verbose=args.verbose, exist_ok=args.exist_ok, project=args.project, name=args.name, classes=args.classes, vid_stride=args.vid_stride, line_width=args.line_width, save_crop=args.save_crop, ) # Initialize quit flag args._user_quit = False # Iterate through results to run the tracking pipeline # The YOLOInference.predict() generator handles timing automatically try: for result in results: # Check if user requested quit if args._user_quit: break except KeyboardInterrupt: pass # Handle Ctrl+C gracefully finally: # Release video writer if video_writer is not None: video_writer.release() # Always print timing summary when done timing_stats.print_summary() # Clean up windows cv2.destroyAllWindows() if __name__ == "__main__": raise SystemExit("Run via CLI: boxmot track [options]") ================================================ FILE: boxmot/engine/tuner.py ================================================ #!/usr/bin/env python3 """ This script runs a hyperparameter tuning process for a multi-object tracking (MOT) tracker using Ray Tune, with support for resuming (restoring) previous tuning runs. """ import os os.environ["RAY_CHDIR_TO_TRIAL_DIR"] = "0" # keep CWD constant for all trials from pathlib import Path import yaml from boxmot.engine.evaluator import (eval_init, run_generate_dets_embs, run_generate_mot_results, run_trackeval) from boxmot.utils import NUM_THREADS, TRACKER_CONFIGS from boxmot.utils import logger as LOGGER def load_yaml_config(tracking_method: str) -> dict: """ Loads the YAML configuration file for the given tracking method. """ config_path = TRACKER_CONFIGS / f"{tracking_method}.yaml" with open(config_path, "r") as file: return yaml.safe_load(file) def yaml_to_search_space(config: dict, tune) -> dict: """ Converts a YAML configuration dictionary to a Ray Tune search space. Args: config: YAML configuration dictionary tune: Ray Tune module (passed to avoid import at module level) """ space = {} for param, details in config.items(): t = details.get("type") if t == "uniform": space[param] = tune.uniform(*details["range"]) elif t == "randint": space[param] = tune.randint(*details["range"]) elif t == "qrandint": space[param] = tune.qrandint(*details["range"]) elif t == "choice": space[param] = tune.choice(details.get("options")) elif t == "grid_search": # Optuna doesn't support grid_search directly in the same way as basic Tune # Mapping grid_search to choice for Optuna compatibility space[param] = tune.choice(details["values"]) elif t == "loguniform": space[param] = tune.loguniform(*details["range"]) return space class Tracker: """ Encapsulates the evaluation of a tracking configuration. """ def __init__(self, opt): self.opt = opt def objective_function(self, config: dict) -> dict: # Generate MOT-compliant results run_generate_mot_results(self.opt, config) # Evaluate and extract objectives results = run_trackeval(self.opt) if not results: return {k: 0 for k in self.opt.objectives} # Drop per-sequence breakdown if present; we only tune on combined metrics. if isinstance(results, dict) and "per_sequence" in results: results = {k: v for k, v in results.items() if k != "per_sequence"} values = list(results.values()) # If results are nested (multi-class), average the metrics if values and all(isinstance(v, dict) for v in values): return { k: max( 0, sum( c.get(k, 0) for c in results.values() if isinstance(c, dict) ) / max(1, len(results)), ) for k in self.opt.objectives } return {k: max(0, results.get(k, 0)) for k in self.opt.objectives} def main(args): # Install evolve dependencies only once in main process from boxmot.utils.checks import RequirementsChecker checker = RequirementsChecker() checker.sync_extra(extra="evolve") # Import ray after dependencies are installed from ray import tune from ray.tune import RunConfig from ray.tune.search.optuna import OptunaSearch # Print tuning pipeline header (blue palette) LOGGER.info("") LOGGER.opt(colors=True).info("" + "="*60 + "") LOGGER.opt(colors=True).info("🔧 BoxMOT Hyperparameter Tuning") LOGGER.opt(colors=True).info("" + "="*60 + "") LOGGER.opt(colors=True).info(f"Tracker: {args.tracking_method}") LOGGER.opt(colors=True).info(f"Detector: {args.yolo_model}") LOGGER.opt(colors=True).info(f"ReID: {args.reid_model}") LOGGER.opt(colors=True).info(f"Trials: {args.n_trials}") LOGGER.opt(colors=True).info(f"Objectives: {', '.join(args.objectives)}") LOGGER.opt(colors=True).info("" + "="*60 + "") # --- initial setup --- args.yolo_model = [Path(y).resolve() for y in args.yolo_model] args.reid_model = [Path(r).resolve() for r in args.reid_model] # Load search space yaml_cfg = load_yaml_config(args.tracking_method) search_space = yaml_to_search_space(yaml_cfg, tune) tracker = Tracker(args) # Optuna search setup primary_metric = args.objectives[0] optuna_search = OptunaSearch(metric=primary_metric, mode="max") def tune_wrapper(cfg): return tracker.objective_function(cfg) # Paths for storage and restore tune_name = f"{args.tracking_method}_tune" results_dir = args.project / "ray" restore_path = results_dir / tune_name # Define trainable trainable = tune.with_resources(tune_wrapper, {"cpu": NUM_THREADS, "gpu": 0}) # Ensure evaluation tools are available LOGGER.opt(colors=True).info("[1/3] Setting up evaluation environment...") eval_init(args) LOGGER.opt(colors=True).info("[2/3] Generating detections and embeddings...") run_generate_dets_embs(args) # Check for existing run to resume LOGGER.opt(colors=True).info("[3/3] Running hyperparameter optimization...") if tune.Tuner.can_restore(restore_path): LOGGER.opt(colors=True).info(f"Resuming tuning from: {restore_path}") tuner = tune.Tuner.restore( str(restore_path), trainable=trainable, resume_errored=True, ) else: tuner = tune.Tuner( trainable, param_space=search_space, tune_config=tune.TuneConfig( num_samples=args.n_trials, search_alg=optuna_search, ), run_config=RunConfig( storage_path=results_dir, name=tune_name, ), ) # Run or resume tuner.fit() # Print results summary results = tuner.get_results() LOGGER.info("") LOGGER.opt(colors=True).info("" + "="*60 + "") LOGGER.opt(colors=True).info("📊 Tuning Results") LOGGER.opt(colors=True).info("" + "="*60 + "") LOGGER.info(results) LOGGER.opt(colors=True).info("" + "="*60 + "") if __name__ == "__main__": main() ================================================ FILE: boxmot/motion/__init__.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license ================================================ FILE: boxmot/motion/cmc/__init__.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license from __future__ import annotations from dataclasses import dataclass from importlib import import_module from typing import Callable, Dict, Iterable, Mapping, Optional, Type from boxmot.motion.cmc.base_cmc import BaseCMC def _normalize(name: str) -> str: """Normalize user input to a canonical registry key.""" return name.strip().lower().replace("-", "_") @dataclass(frozen=True) class _LazyLoader: """Lazily import and return a CMC class by module and attribute name.""" module: str attr: str def __call__(self) -> Type[BaseCMC]: mod = import_module(self.module) cls = getattr(mod, self.attr) # Optional: basic sanity check to fail fast if registry is misconfigured. if not issubclass(cls, BaseCMC): raise TypeError(f"{self.module}.{self.attr} is not a BaseCMC subclass.") return cls # Registry of known methods (lazy-loaded). _CMC_REGISTRY: Mapping[str, Callable[[], Type[BaseCMC]]] = { "ecc": _LazyLoader("boxmot.motion.cmc.ecc", "ECC"), "orb": _LazyLoader("boxmot.motion.cmc.orb", "ORB"), "sof": _LazyLoader("boxmot.motion.cmc.sof", "SOF"), "sift": _LazyLoader("boxmot.motion.cmc.sift", "SIFT"), } def available_cmc_methods() -> tuple[str, ...]: """Return the list of supported CMC method keys.""" return tuple(sorted(_CMC_REGISTRY.keys())) def get_cmc_method(name: Optional[str]) -> Optional[Type[BaseCMC]]: """ Resolve a CMC method name to its class. Returns None only when name is None (useful for "disabled" configs). Raises ValueError for unknown non-None names to fail fast and clearly. """ if name is None: return None key = _normalize(name) loader = _CMC_REGISTRY.get(key) if loader is None: raise ValueError( f"Unknown cmc_method={name!r}. " f"Supported values: {', '.join(available_cmc_methods())}" ) return loader() def create_cmc(name: Optional[str], /, **kwargs) -> Optional[BaseCMC]: """ Convenience factory: create and return an instance. """ cls = get_cmc_method(name) return None if cls is None else cls(**kwargs) ================================================ FILE: boxmot/motion/cmc/base_cmc.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license from __future__ import annotations from abc import ABC, abstractmethod from typing import Optional, Tuple, Union import cv2 import numpy as np Scale = Union[float, Tuple[int, int], None] class BaseCMC(ABC): """ Base class for camera motion compensation (CMC) modules. Contract: - `apply(img, dets)` returns an affine warp matrix (2x3) or homography (3x3), depending on the method and configuration. - `dets` is expected in tlbr format (x1, y1, x2, y2) in *original image scale*. """ grayscale: bool = True scale: Scale = 0.15 @abstractmethod def apply(self, img: np.ndarray, dets: Optional[np.ndarray] = None) -> np.ndarray: raise NotImplementedError def preprocess(self, img: np.ndarray) -> np.ndarray: """ Convert BGR->GRAY (optional) and resize (optional). Supports: - scale as float (fx, fy) - scale as (W, H) target size - None => no resize """ if img is None or not hasattr(img, "shape"): raise ValueError("Expected img to be a valid numpy array.") out = img if getattr(self, "grayscale", True): # assume BGR input out = cv2.cvtColor(out, cv2.COLOR_BGR2GRAY) sc = getattr(self, "scale", None) if sc is None: return out if isinstance(sc, (int, float)): if sc <= 0: raise ValueError(f"scale must be > 0, got {sc}") out = cv2.resize(out, (0, 0), fx=float(sc), fy=float(sc), interpolation=cv2.INTER_LINEAR) else: # treat as explicit size (W, H) w, h = int(sc[0]), int(sc[1]) if w <= 0 or h <= 0: raise ValueError(f"Invalid target size for scale: {(w, h)}") out = cv2.resize(out, (w, h), interpolation=cv2.INTER_LINEAR) return out def generate_mask(self, img_gray: np.ndarray, dets: Optional[np.ndarray], scale: float) -> np.ndarray: """ Create a mask that: - keeps a central safe region - removes detected dynamic objects (dets) `img_gray` must be a 2D grayscale image (after preprocess). """ if img_gray.ndim != 2: raise ValueError("generate_mask expects a 2D grayscale image.") h, w = img_gray.shape[:2] mask = np.zeros((h, w), dtype=np.uint8) # Keep most of the image, drop extreme borders (often noisy for motion estimation). y1, y2 = int(0.02 * h), int(0.98 * h) x1, x2 = int(0.02 * w), int(0.98 * w) mask[y1:y2, x1:x2] = 255 if dets is None: return mask dets = np.asarray(dets) if dets.size == 0: return mask # dets in original scale -> map to preprocessed scale for det in dets: # guard shape issues if len(det) < 4: continue tlbr = (np.asarray(det[:4], dtype=np.float32) * float(scale)).astype(int) x1b, y1b, x2b, y2b = tlbr.tolist() x1b = max(0, min(w, x1b)) x2b = max(0, min(w, x2b)) y1b = max(0, min(h, y1b)) y2b = max(0, min(h, y2b)) if x2b > x1b and y2b > y1b: mask[y1b:y2b, x1b:x2b] = 0 return mask ================================================ FILE: boxmot/motion/cmc/ecc.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license from __future__ import annotations from typing import Optional import cv2 import numpy as np from boxmot.motion.cmc.base_cmc import BaseCMC from boxmot.utils import logger as LOGGER class ECC(BaseCMC): """ OpenCV ECC-based motion estimation using cv2.findTransformECC. Produces: - 2x3 affine-like matrix for TRANSLATION/EUCLIDEAN/AFFINE - 3x3 homography matrix for HOMOGRAPHY """ def __init__( self, warp_mode: int = cv2.MOTION_TRANSLATION, eps: float = 1e-5, max_iter: int = 100, scale: float = 0.15, align: bool = False, grayscale: bool = True, ) -> None: self.align = bool(align) self.grayscale = bool(grayscale) self.scale = float(scale) self.warp_mode = int(warp_mode) self.termination_criteria = ( cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, int(max_iter), float(eps), ) self.prev_img: Optional[np.ndarray] = None self.prev_img_aligned: Optional[np.ndarray] = None def apply(self, img: np.ndarray, dets: Optional[np.ndarray] = None) -> np.ndarray: if self.warp_mode == cv2.MOTION_HOMOGRAPHY: warp_matrix = np.eye(3, 3, dtype=np.float32) else: warp_matrix = np.eye(2, 3, dtype=np.float32) if self.prev_img is None: self.prev_img = self.preprocess(img) self.prev_img_aligned = None return warp_matrix curr = self.preprocess(img) try: _, warp_matrix = cv2.findTransformECC( self.prev_img, curr, warp_matrix, self.warp_mode, self.termination_criteria, None, 1, ) except cv2.error as e: # StsNoConv => ECC did not converge; return identity (common in practice). try: if e.code == cv2.Error.StsNoConv: LOGGER.warning("ECC did not converge; returning identity warp.") self.prev_img = curr self.prev_img_aligned = None return warp_matrix except Exception: pass raise # upscale translation back to original image coordinates if self.scale < 1.0: warp_matrix = warp_matrix.copy() warp_matrix[0, 2] /= self.scale warp_matrix[1, 2] /= self.scale if self.align: h, w = self.prev_img.shape[:2] if self.warp_mode == cv2.MOTION_HOMOGRAPHY: self.prev_img_aligned = cv2.warpPerspective(self.prev_img, warp_matrix, (w, h), flags=cv2.INTER_LINEAR) else: self.prev_img_aligned = cv2.warpAffine(self.prev_img, warp_matrix, (w, h), flags=cv2.INTER_LINEAR) else: self.prev_img_aligned = None self.prev_img = curr return warp_matrix ================================================ FILE: boxmot/motion/cmc/orb.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license from __future__ import annotations import copy from typing import Optional import cv2 import numpy as np from boxmot.motion.cmc.base_cmc import BaseCMC class ORB(BaseCMC): """ FAST + ORB descriptors + BFMatcher (KNN) to estimate a 2x3 affine partial transform. """ def __init__( self, feature_detector_threshold: int = 20, matcher_norm_type: int = cv2.NORM_HAMMING, scale: float = 0.15, grayscale: bool = True, draw_keypoint_matches: bool = False, align: bool = False, ) -> None: self.grayscale = bool(grayscale) self.scale = float(scale) self.detector = cv2.FastFeatureDetector_create(threshold=int(feature_detector_threshold)) self.extractor = cv2.ORB_create() self.matcher = cv2.BFMatcher(int(matcher_norm_type)) self.prev_img: Optional[np.ndarray] = None self.prev_keypoints = None self.prev_descriptors: Optional[np.ndarray] = None self.prev_dets: Optional[np.ndarray] = None self.draw_keypoint_matches = bool(draw_keypoint_matches) self.align = bool(align) self.prev_img_aligned: Optional[np.ndarray] = None self.matches_img: Optional[np.ndarray] = None def apply(self, img: np.ndarray, dets: Optional[np.ndarray] = None) -> np.ndarray: H = np.eye(2, 3, dtype=np.float32) img_p = self.preprocess(img) h, w = img_p.shape[:2] # dynamic object mask mask = self.generate_mask(img_p, dets, self.scale) # detect/describe keypoints = self.detector.detect(img_p, mask) keypoints, descriptors = self.extractor.compute(img_p, keypoints) if descriptors is None or len(keypoints) < 4: # Not enough features; just update prev and return identity self._store_state(img_p, keypoints, descriptors, dets) self.prev_img_aligned = None self.matches_img = None return H # first frame init if self.prev_img is None or self.prev_descriptors is None or self.prev_keypoints is None: self._store_state(img_p, keypoints, descriptors, dets) self.prev_img_aligned = None self.matches_img = None return H # match descriptors knn = self.matcher.knnMatch(self.prev_descriptors, descriptors, k=2) if not knn: self._store_state(img_p, keypoints, descriptors, dets) self.prev_img_aligned = None self.matches_img = None return H # Lowe ratio + spatial gating matches = [] spatial_distances = [] max_spatial_distance = 0.25 * np.array([w, h], dtype=np.float32) for pair in knn: if len(pair) != 2: continue m, n = pair if m.distance >= 0.9 * n.distance: continue prev_pt = np.array(self.prev_keypoints[m.queryIdx].pt, dtype=np.float32) curr_pt = np.array(keypoints[m.trainIdx].pt, dtype=np.float32) dxy = prev_pt - curr_pt if (abs(dxy[0]) < max_spatial_distance[0]) and (abs(dxy[1]) < max_spatial_distance[1]): matches.append(m) spatial_distances.append(dxy) if len(matches) < 4: self._store_state(img_p, keypoints, descriptors, dets) self.prev_img_aligned = None self.matches_img = None return H spatial_distances = np.asarray(spatial_distances, dtype=np.float32) mean = spatial_distances.mean(axis=0) std = spatial_distances.std(axis=0) + 1e-6 inliers_spatial = np.all((spatial_distances - mean) < 2.5 * std, axis=1) good_matches = [matches[i] for i in range(len(matches)) if inliers_spatial[i]] if len(good_matches) < 4: self._store_state(img_p, keypoints, descriptors, dets) self.prev_img_aligned = None self.matches_img = None return H prev_pts = np.array([self.prev_keypoints[m.queryIdx].pt for m in good_matches], dtype=np.float32) curr_pts = np.array([keypoints[m.trainIdx].pt for m in good_matches], dtype=np.float32) H_est, ransac_inliers = cv2.estimateAffinePartial2D(prev_pts, curr_pts, method=cv2.RANSAC) if H_est is None: H_est = H else: H_est = H_est.astype(np.float32, copy=False) # upscale translation back to original image coordinates if self.scale < 1.0: H_est = H_est.copy() H_est[0, 2] /= self.scale H_est[1, 2] /= self.scale if self.align: self.prev_img_aligned = cv2.warpAffine(self.prev_img, H_est, (w, h), flags=cv2.INTER_LINEAR) else: self.prev_img_aligned = None # optional debug visualization if self.draw_keypoint_matches: self.matches_img = self._draw_matches(self.prev_img, img_p, self.prev_keypoints, keypoints, good_matches, dets) else: self.matches_img = None # store for next iteration self._store_state(img_p, keypoints, descriptors, dets) return H_est def _store_state(self, img_p: np.ndarray, keypoints, descriptors, dets) -> None: self.prev_img = img_p.copy() self.prev_keypoints = copy.copy(keypoints) self.prev_descriptors = None if descriptors is None else descriptors.copy() self.prev_dets = None if dets is None else np.asarray(dets).copy() @staticmethod def _draw_matches(prev_img: np.ndarray, curr_img: np.ndarray, prev_kp, curr_kp, matches, dets): # prev_img/curr_img are grayscale canvas = np.hstack((prev_img, curr_img)) canvas = cv2.cvtColor(canvas, cv2.COLOR_GRAY2BGR) W = prev_img.shape[1] for m in matches: p = np.array(prev_kp[m.queryIdx].pt, dtype=np.int32) c = np.array(curr_kp[m.trainIdx].pt, dtype=np.int32) c[0] += W cv2.line(canvas, tuple(p), tuple(c), (255, 255, 255), 1, cv2.LINE_AA) cv2.circle(canvas, tuple(p), 2, (255, 255, 255), -1) cv2.circle(canvas, tuple(c), 2, (255, 255, 255), -1) if dets is not None: # draw detections on the right image for context h, w = curr_img.shape[:2] for det in np.asarray(dets): if len(det) < 4: continue x1, y1, x2, y2 = det[:4].astype(int).tolist() cv2.rectangle(canvas, (x1 + W, y1), (x2 + W, y2), (0, 0, 255), 2) return canvas ================================================ FILE: boxmot/motion/cmc/sift.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license from __future__ import annotations import copy from typing import Optional import cv2 import numpy as np from boxmot.motion.cmc.base_cmc import BaseCMC class SIFT(BaseCMC): """ SIFT keypoints + BFMatcher(L2) to estimate a 2x3 affine partial transform. """ def __init__( self, warp_mode: int = cv2.MOTION_EUCLIDEAN, # kept for API compatibility; we still output 2x3 eps: float = 1e-5, max_iter: int = 100, scale: float = 0.15, grayscale: bool = True, draw_keypoint_matches: bool = False, align: bool = False, ) -> None: self.grayscale = bool(grayscale) self.scale = float(scale) self.warp_mode = int(warp_mode) # not strictly used (kept as parameter) self.detector = cv2.SIFT_create(nOctaveLayers=2, contrastThreshold=0.5, edgeThreshold=10) self.extractor = cv2.SIFT_create(nOctaveLayers=2, contrastThreshold=0.5, edgeThreshold=10) self.matcher = cv2.BFMatcher(cv2.NORM_L2) self.prev_img: Optional[np.ndarray] = None self.prev_keypoints = None self.prev_descriptors: Optional[np.ndarray] = None self.prev_dets: Optional[np.ndarray] = None self.draw_keypoint_matches = bool(draw_keypoint_matches) self.align = bool(align) self.prev_img_aligned: Optional[np.ndarray] = None self.matches_img: Optional[np.ndarray] = None def apply(self, img: np.ndarray, dets: Optional[np.ndarray] = None) -> np.ndarray: H = np.eye(2, 3, dtype=np.float32) img_p = self.preprocess(img) h, w = img_p.shape[:2] mask = self.generate_mask(img_p, dets, self.scale) keypoints = self.detector.detect(img_p, mask) keypoints, descriptors = self.extractor.compute(img_p, keypoints) if descriptors is None or len(keypoints) < 4: self._store_state(img_p, keypoints, descriptors, dets) self.prev_img_aligned = None self.matches_img = None return H if self.prev_img is None or self.prev_descriptors is None or self.prev_keypoints is None: self._store_state(img_p, keypoints, descriptors, dets) self.prev_img_aligned = None self.matches_img = None return H knn = self.matcher.knnMatch(self.prev_descriptors, descriptors, k=2) if not knn: self._store_state(img_p, keypoints, descriptors, dets) self.prev_img_aligned = None self.matches_img = None return H matches = [] spatial_distances = [] max_spatial_distance = 0.25 * np.array([w, h], dtype=np.float32) for pair in knn: if len(pair) != 2: continue m, n = pair if m.distance >= 0.9 * n.distance: continue prev_pt = np.array(self.prev_keypoints[m.queryIdx].pt, dtype=np.float32) curr_pt = np.array(keypoints[m.trainIdx].pt, dtype=np.float32) dxy = prev_pt - curr_pt if (abs(dxy[0]) < max_spatial_distance[0]) and (abs(dxy[1]) < max_spatial_distance[1]): spatial_distances.append(dxy) matches.append(m) if len(matches) < 4: self._store_state(img_p, keypoints, descriptors, dets) self.prev_img_aligned = None self.matches_img = None return H spatial_distances = np.asarray(spatial_distances, dtype=np.float32) mean = spatial_distances.mean(axis=0) std = spatial_distances.std(axis=0) + 1e-6 inliers_spatial = np.all((spatial_distances - mean) < 2.5 * std, axis=1) good_matches = [matches[i] for i in range(len(matches)) if inliers_spatial[i]] if len(good_matches) < 4: self._store_state(img_p, keypoints, descriptors, dets) self.prev_img_aligned = None self.matches_img = None return H prev_pts = np.array([self.prev_keypoints[m.queryIdx].pt for m in good_matches], dtype=np.float32) curr_pts = np.array([keypoints[m.trainIdx].pt for m in good_matches], dtype=np.float32) H_est, ransac_inliers = cv2.estimateAffinePartial2D(prev_pts, curr_pts, method=cv2.RANSAC) if H_est is None: H_est = H else: H_est = H_est.astype(np.float32, copy=False) if self.scale < 1.0: H_est = H_est.copy() H_est[0, 2] /= self.scale H_est[1, 2] /= self.scale if self.align: self.prev_img_aligned = cv2.warpAffine(self.prev_img, H_est, (w, h), flags=cv2.INTER_LINEAR) else: self.prev_img_aligned = None if self.draw_keypoint_matches: self.matches_img = ORBLikeDraw.draw(prev=self.prev_img, curr=img_p, prev_kp=self.prev_keypoints, curr_kp=keypoints, matches=good_matches, dets=dets) else: self.matches_img = None self._store_state(img_p, keypoints, descriptors, dets) return H_est def _store_state(self, img_p: np.ndarray, keypoints, descriptors, dets) -> None: self.prev_img = img_p.copy() self.prev_keypoints = copy.copy(keypoints) self.prev_descriptors = None if descriptors is None else descriptors.copy() self.prev_dets = None if dets is None else np.asarray(dets).copy() class ORBLikeDraw: @staticmethod def draw(prev: np.ndarray, curr: np.ndarray, prev_kp, curr_kp, matches, dets): canvas = np.hstack((prev, curr)) canvas = cv2.cvtColor(canvas, cv2.COLOR_GRAY2BGR) W = prev.shape[1] for m in matches: p = np.array(prev_kp[m.queryIdx].pt, dtype=np.int32) c = np.array(curr_kp[m.trainIdx].pt, dtype=np.int32) c[0] += W cv2.line(canvas, tuple(p), tuple(c), (255, 255, 255), 1, cv2.LINE_AA) cv2.circle(canvas, tuple(p), 2, (255, 255, 255), -1) cv2.circle(canvas, tuple(c), 2, (255, 255, 255), -1) if dets is not None: for det in np.asarray(dets): if len(det) < 4: continue x1, y1, x2, y2 = det[:4].astype(int).tolist() cv2.rectangle(canvas, (x1 + W, y1), (x2 + W, y2), (0, 0, 255), 2) return canvas ================================================ FILE: boxmot/motion/cmc/sof.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license from __future__ import annotations from typing import Optional import cv2 import numpy as np from boxmot.motion.cmc.base_cmc import BaseCMC from boxmot.utils import logger as LOGGER class SOF(BaseCMC): """ Sparse Optical Flow tracker estimating a 2x3 affine partial transform between frames. Uses: - goodFeaturesToTrack for keypoints - calcOpticalFlowPyrLK for tracking - estimateAffinePartial2D (RANSAC) for robust motion estimation """ def __init__(self, scale: float = 0.15) -> None: self.scale = float(scale) self.grayscale = True self.feature_params = dict( maxCorners=1000, qualityLevel=0.01, minDistance=1, blockSize=3, useHarrisDetector=False, k=0.04, ) self.lk_params = dict( winSize=(21, 21), maxLevel=3, criteria=(cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, 30, 0.01), ) self.prev_frame: Optional[np.ndarray] = None self.prev_keypoints: Optional[np.ndarray] = None self.initialized: bool = False def apply(self, img: np.ndarray, dets: Optional[np.ndarray] = None) -> np.ndarray: frame_gray = self.preprocess(img) H = np.eye(2, 3, dtype=np.float32) # First frame init if not self.initialized or self.prev_frame is None or self.prev_keypoints is None: kps = cv2.goodFeaturesToTrack(frame_gray, mask=None, **self.feature_params) if kps is None or len(kps) < 4: # can't initialize reliably; keep trying on next frame self.prev_frame = frame_gray.copy() self.prev_keypoints = kps self.initialized = False return H # optional refinement for stability term_crit = (cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, 30, 0.01) cv2.cornerSubPix(frame_gray, kps, winSize=(5, 5), zeroZone=(-1, -1), criteria=term_crit) self.prev_frame = frame_gray.copy() self.prev_keypoints = kps.copy() self.initialized = True return H # Track keypoints next_kps, status, _ = cv2.calcOpticalFlowPyrLK( self.prev_frame, frame_gray, self.prev_keypoints, None, **self.lk_params ) if next_kps is None or status is None: self._reset(frame_gray) return H status = status.reshape(-1) prev_valid = self.prev_keypoints[status == 1] next_valid = next_kps[status == 1] if prev_valid is None or next_valid is None or len(prev_valid) < 4: # not enough matches -> re-detect self._reset(frame_gray) return H # estimate transform H_est, inliers = cv2.estimateAffinePartial2D(prev_valid, next_valid, method=cv2.RANSAC) if H_est is None: H_est = H else: H_est = H_est.astype(np.float32, copy=False) if self.scale < 1.0: H_est = H_est.copy() H_est[0, 2] /= self.scale H_est[1, 2] /= self.scale # refresh keypoints each frame (more stable long-term than purely tracking) new_kps = cv2.goodFeaturesToTrack(frame_gray, mask=None, **self.feature_params) if new_kps is None or len(new_kps) < 4: # fallback: keep tracked points new_kps = next_valid self.prev_frame = frame_gray.copy() self.prev_keypoints = new_kps.copy() self.initialized = True return H_est def _reset(self, frame_gray: np.ndarray) -> None: kps = cv2.goodFeaturesToTrack(frame_gray, mask=None, **self.feature_params) self.prev_frame = frame_gray.copy() self.prev_keypoints = kps self.initialized = kps is not None and len(kps) >= 4 ================================================ FILE: boxmot/motion/kalman_filters/__init__.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license from .base import BaseKalmanFilter from .xyah import KalmanFilterXYAH from .xyhr import KalmanFilterXYHR from .xysr import KalmanFilterXYSR from .xywh import KalmanFilterXYWH __all__ = [ "BaseKalmanFilter", "KalmanFilterXYWH", "KalmanFilterXYAH", "KalmanFilterXYHR", "KalmanFilterXYSR", ] ================================================ FILE: boxmot/motion/kalman_filters/base.py ================================================ from collections import deque from typing import Optional, Tuple, Union import numpy as np import scipy.linalg """ Table for the 0.95 quantile of the chi-square distribution with N degrees of freedom (contains values for N=1, ..., 9). Taken from MATLAB/Octave's chi2inv function and used as Mahalanobis gating threshold. """ chi2inv95 = { 1: 3.8415, 2: 5.9915, 3: 7.8147, 4: 9.4877, 5: 11.070, 6: 12.592, 7: 14.067, 8: 15.507, 9: 16.919, } class BaseKalmanFilter: """ Base class for Kalman filters tracking bounding boxes in image space. """ def __init__( self, ndim: int, *, dim_x: Optional[int] = None, dim_z: Optional[int] = None, motion_mat: Optional[np.ndarray] = None, update_mat: Optional[np.ndarray] = None, max_obs: int = 50, ): self.ndim = ndim self.dim_z = dim_z if dim_z is not None else ndim self.dim_x = dim_x if dim_x is not None else 2 * self.ndim self.dt = 1.0 # Create Kalman filter model matrices. self._motion_mat = ( motion_mat.astype(float).copy() if motion_mat is not None else self._default_motion_matrix(self.dim_x, self.dim_z) ) self._update_mat = ( update_mat.astype(float).copy() if update_mat is not None else np.eye(self.dim_z, self.dim_x) ) self.F = self._motion_mat.copy() self.H = self._update_mat.copy() # Motion and observation uncertainty weights. self._std_weight_position = 1.0 / 20 self._std_weight_velocity = 1.0 / 160 # Stateful Kalman filter members used by matrix-based subclasses. self.x = np.zeros((self.dim_x, 1)) self.P = np.eye(self.dim_x) self.Q = np.eye(self.dim_x) self.R = np.eye(self.dim_z) self.B = None self._alpha_sq = 1.0 self.M = np.zeros((self.dim_x, self.dim_z)) self.z = np.array([[None] * self.dim_z]).T self.K = np.zeros((self.dim_x, self.dim_z)) self.y = np.zeros((self.dim_z, 1)) self.S = np.zeros((self.dim_z, self.dim_z)) self.SI = np.zeros((self.dim_z, self.dim_z)) self._I = np.eye(self.dim_x) self.x_prior = self.x.copy() self.P_prior = self.P.copy() self.x_post = self.x.copy() self.P_post = self.P.copy() self.max_obs = max_obs self.history_obs = deque([], maxlen=self.max_obs) self.attr_saved = None self.observed = False self.last_measurement = None @staticmethod def _default_motion_matrix(dim_x: int, dim_z: int) -> np.ndarray: """Build a simple constant-velocity transition matrix.""" motion_mat = np.eye(dim_x) velocity_dims = min(dim_z, max(0, dim_x - dim_z)) for i in range(velocity_dims): motion_mat[i, dim_z + i] = 1.0 return motion_mat def _resolve_matrix(self, matrix: Optional[np.ndarray], fallback: np.ndarray) -> np.ndarray: return matrix if matrix is not None else fallback @staticmethod def _reshape_measurement(z: np.ndarray, dim_z: int) -> np.ndarray: measurement = np.asarray(z, dtype=float) if measurement.ndim == 1: measurement = measurement.reshape((-1, 1)) if measurement.shape != (dim_z, 1): measurement = measurement.reshape((dim_z, 1)) return measurement @staticmethod def _wrap_angle(angle: Union[np.ndarray, float]) -> Union[np.ndarray, float]: wrapped = (np.asarray(angle, dtype=float) + np.pi) % (2.0 * np.pi) - np.pi if np.isscalar(angle): return float(wrapped) return wrapped @classmethod def _align_angle_to_reference(cls, angle: float, reference_angle: float) -> float: return float(reference_angle + cls._wrap_angle(float(angle) - float(reference_angle))) @staticmethod def _theta_velocity_index(dim_x: int) -> int: return dim_x - 1 @classmethod def _select_obb_candidate( cls, *, reference_sizes: Tuple[float, float], reference_angle: float, candidates: Tuple[Tuple[float, float, float], ...], size_weight: float = 0.05, eps: float = 1e-6, ) -> Tuple[float, float, float]: """Choose equivalent OBB parameterization closest to reference state.""" ref_s0 = max(float(reference_sizes[0]), eps) ref_s1 = max(float(reference_sizes[1]), eps) ref_theta = float(reference_angle) best_cost = float("inf") best: Tuple[float, float, float] = candidates[0] for cand_s0, cand_s1, cand_theta in candidates: s0 = max(float(cand_s0), eps) s1 = max(float(cand_s1), eps) theta_aligned = cls._align_angle_to_reference(cand_theta, ref_theta) angle_cost = abs(theta_aligned - ref_theta) size_cost = abs(np.log(s0 / ref_s0)) + abs(np.log(s1 / ref_s1)) cost = angle_cost + (size_weight * size_cost) if cost < best_cost: best_cost = cost best = (s0, s1, theta_aligned) return best @classmethod def _enforce_state_geometry( cls, mean: np.ndarray, *, positive_indices: Tuple[int, ...], angle_index: Optional[int] = None, min_size: float = 1e-4, ) -> np.ndarray: """Clamp geometry dimensions positive and optionally wrap angle.""" if mean.ndim == 1: for idx in positive_indices: mean[idx] = max(float(mean[idx]), min_size) if angle_index is not None: mean[angle_index] = float(cls._wrap_angle(mean[angle_index])) return mean for idx in positive_indices: mean[idx, :] = np.maximum(mean[idx, :], min_size) if angle_index is not None: mean[angle_index, :] = cls._wrap_angle(mean[angle_index, :]) return mean @staticmethod def _prepare_gating_inputs( mean: np.ndarray, covariance: np.ndarray, measurements: np.ndarray, project_fn, ) -> Tuple[np.ndarray, np.ndarray, np.ndarray]: projected_mean, projected_cov = project_fn(mean, covariance) projected_mean = np.asarray(projected_mean, dtype=float).reshape(-1) measurements = np.asarray(measurements, dtype=float).copy() if measurements.ndim == 1: measurements = measurements.reshape(1, -1) return projected_mean, projected_cov, measurements @staticmethod def _gating_from_residuals( residuals: np.ndarray, covariance: np.ndarray, metric: str ) -> np.ndarray: if metric == "gaussian": return np.sum(residuals * residuals, axis=1) if metric == "maha": cholesky_factor = np.linalg.cholesky(covariance) solved = scipy.linalg.solve_triangular( cholesky_factor, residuals.T, lower=True, check_finite=False, overwrite_b=True, ) return np.sum(solved * solved, axis=0) raise ValueError("invalid distance metric") def _zero_theta_velocity(self, mean: np.ndarray) -> np.ndarray: theta_vel_idx = self._theta_velocity_index(self.dim_x) if mean.ndim == 2: mean[theta_vel_idx, :] = 0.0 else: mean[theta_vel_idx] = 0.0 return mean def _damp_theta_velocity( self, mean: np.ndarray, damping: float = 0.8 ) -> np.ndarray: """Damp angular velocity to reduce jitter while preserving turn dynamics.""" theta_vel_idx = self._theta_velocity_index(self.dim_x) damping = float(np.clip(damping, 0.0, 1.0)) if mean.ndim == 2: mean[theta_vel_idx, :] *= damping else: mean[theta_vel_idx] *= damping return mean def initiate(self, measurement: np.ndarray) -> Tuple[np.ndarray, np.ndarray]: """ Create track from unassociated measurement. """ mean_pos = measurement mean_vel = np.zeros_like(mean_pos) mean = np.r_[mean_pos, mean_vel] std = self._get_initial_covariance_std(measurement) covariance = np.diag(np.square(std)) return mean, covariance def _get_initial_covariance_std(self, measurement: np.ndarray) -> np.ndarray: """ Return initial standard deviations for the covariance matrix. Should be implemented by subclasses. """ raise NotImplementedError def predict( self, mean: np.ndarray, covariance: np.ndarray ) -> Tuple[np.ndarray, np.ndarray]: """ Run Kalman filter prediction step. """ std_pos, std_vel = self._get_process_noise_std(mean) motion_cov = np.diag(np.square(np.r_[std_pos, std_vel])) mean = np.dot(mean, self._motion_mat.T) covariance = ( np.linalg.multi_dot((self._motion_mat, covariance, self._motion_mat.T)) + motion_cov ) return mean, covariance def _get_process_noise_std(self, mean: np.ndarray) -> Tuple[np.ndarray, np.ndarray]: """ Return standard deviations for process noise. Should be implemented by subclasses. """ raise NotImplementedError def _get_measurement_noise_std( self, mean: np.ndarray, confidence: float ) -> np.ndarray: """ Return standard deviations for measurement noise. Should be implemented by stateless subclasses. """ raise NotImplementedError def project( self, mean: np.ndarray, covariance: np.ndarray, confidence: float = 0.0 ) -> Tuple[np.ndarray, np.ndarray]: """ Project state distribution to measurement space. """ std = self._get_measurement_noise_std(mean, confidence) # NSA Kalman algorithm from GIAOTracker, which proposes a formula to # adaptively calculate the noise covariance Rek: # Rk = (1 − ck) Rk # where Rk is the preset constant measurement noise covariance # and ck is the detection confidence score at state k. Intuitively, # the detection has a higher score ck when it has less noise, # which results in a low Re. std = [(1 - confidence) * x for x in std] innovation_cov = np.diag(np.square(std)) mean = np.dot(self._update_mat, mean) covariance = np.linalg.multi_dot( (self._update_mat, covariance, self._update_mat.T) ) return mean, covariance + innovation_cov def multi_predict( self, mean: np.ndarray, covariance: np.ndarray ) -> Tuple[np.ndarray, np.ndarray]: """ Run Kalman filter prediction step (Vectorized version). """ std_pos, std_vel = self._get_multi_process_noise_std(mean) sqr = np.square(np.r_[std_pos, std_vel]).T motion_cov = [np.diag(sqr[i]) for i in range(len(mean))] motion_cov = np.asarray(motion_cov) mean = np.dot(mean, self._motion_mat.T) left = np.dot(self._motion_mat, covariance).transpose((1, 0, 2)) covariance = np.dot(left, self._motion_mat.T) + motion_cov return mean, covariance def update( self, mean: np.ndarray, covariance: np.ndarray, measurement: np.ndarray, confidence: float = 0.0, ) -> Tuple[np.ndarray, np.ndarray]: """ Run Kalman filter correction step. """ projected_mean, projected_cov = self.project(mean, covariance, confidence) chol_factor, lower = scipy.linalg.cho_factor( projected_cov, lower=True, check_finite=False ) kalman_gain = scipy.linalg.cho_solve( (chol_factor, lower), np.dot(covariance, self._update_mat.T).T, check_finite=False, ).T innovation = measurement - projected_mean new_mean = mean + np.dot(innovation, kalman_gain.T) new_covariance = covariance - np.linalg.multi_dot( (kalman_gain, projected_cov, kalman_gain.T) ) return new_mean, new_covariance def _get_multi_process_noise_std( self, mean: np.ndarray ) -> Tuple[np.ndarray, np.ndarray]: """ Return standard deviations for process noise in vectorized form. Should be implemented by subclasses. """ raise NotImplementedError def predict_state( self, u: Optional[np.ndarray] = None, B: Optional[np.ndarray] = None, F: Optional[np.ndarray] = None, Q: Optional[np.ndarray] = None, ) -> Tuple[np.ndarray, np.ndarray]: """ Stateful predict step for matrix-based filters. """ B = self._resolve_matrix(B, self.B) F = self._resolve_matrix(F, self.F) Q = self._resolve_matrix(Q, self.Q) if np.isscalar(Q): Q = np.eye(self.dim_x) * float(Q) if B is not None and u is not None: self.x = np.dot(F, self.x) + np.dot(B, u) else: self.x = np.dot(F, self.x) self.P = self._alpha_sq * np.dot(np.dot(F, self.P), F.T) + Q self.x_prior = self.x.copy() self.P_prior = self.P.copy() return self.x, self.P def project_state( self, x: Optional[np.ndarray] = None, P: Optional[np.ndarray] = None, H: Optional[np.ndarray] = None, R: Optional[np.ndarray] = None, ) -> Tuple[np.ndarray, np.ndarray]: """ Project a state distribution into measurement space. """ state = self.x if x is None else x covariance = self.P if P is None else P H = self._resolve_matrix(H, self.H) R = self._resolve_matrix(R, self.R) if np.isscalar(R): R = np.eye(self.dim_z) * float(R) projected_mean = np.dot(H, state) projected_covariance = np.dot(np.dot(H, covariance), H.T) + R return projected_mean, projected_covariance def update_state( self, z: np.ndarray, R: Optional[np.ndarray] = None, H: Optional[np.ndarray] = None, ) -> Tuple[np.ndarray, np.ndarray]: """ Stateful update step for matrix-based filters. """ H = self._resolve_matrix(H, self.H) R = self._resolve_matrix(R, self.R) if np.isscalar(R): R = np.eye(self.dim_z) * float(R) measurement = self._reshape_measurement(z, self.dim_z) projected_mean, projected_cov = self.project_state(H=H, R=R) chol_factor, lower = scipy.linalg.cho_factor( projected_cov, lower=True, check_finite=False ) self.K = scipy.linalg.cho_solve( (chol_factor, lower), np.dot(self.P, H.T).T, check_finite=False, ).T self.y = measurement - projected_mean self.S = projected_cov self.SI = scipy.linalg.cho_solve( (chol_factor, lower), np.eye(self.dim_z), check_finite=False ) self.x = self.x + np.dot(self.K, self.y) self.P = self.P - np.linalg.multi_dot((self.K, projected_cov, self.K.T)) self.z = measurement.copy() self.x_post = self.x.copy() self.P_post = self.P.copy() return self.x, self.P def mahalanobis_distance( self, z: np.ndarray, H: Optional[np.ndarray] = None, R: Optional[np.ndarray] = None, ) -> float: """ Compute Mahalanobis distance for a candidate measurement. """ measurement = self._reshape_measurement(z, self.dim_z) projected_mean, projected_cov = self.project_state(H=H, R=R) innovation = measurement - projected_mean chol_factor = np.linalg.cholesky(projected_cov) solved = scipy.linalg.solve_triangular( chol_factor, innovation, lower=True, check_finite=False, ) return float(np.sqrt(np.dot(solved.T, solved)).item()) def gating_distance( self, mean: np.ndarray, covariance: np.ndarray, measurements: np.ndarray, only_position: bool = False, metric: str = "maha", ) -> np.ndarray: """ Compute gating distance between state distribution and measurements. """ mean, covariance = self.project(mean, covariance) if only_position: mean, covariance = mean[:2], covariance[:2, :2] measurements = measurements[:, :2] d = measurements - mean if metric == "gaussian": return np.sum(d * d, axis=1) elif metric == "maha": cholesky_factor = np.linalg.cholesky(covariance) z = scipy.linalg.solve_triangular( cholesky_factor, d.T, lower=True, check_finite=False, overwrite_b=True ) squared_maha = np.sum(z * z, axis=0) return squared_maha else: raise ValueError("invalid distance metric") ================================================ FILE: boxmot/motion/kalman_filters/xyah.py ================================================ from typing import Tuple import numpy as np from boxmot.motion.kalman_filters.base import BaseKalmanFilter class KalmanFilterXYAH(BaseKalmanFilter): """ Kalman filter for XYAH state with optional OBB angle extension. - `ndim=4`: [x, y, a, h] - `ndim=5`: [x, y, a, h, theta] """ def __init__(self, ndim: int = 4): if ndim not in (4, 5): raise ValueError("ndim must be 4 (AABB) or 5 (OBB)") super().__init__(ndim=ndim) self._is_obb = ndim == 5 def _get_initial_covariance_std(self, measurement: np.ndarray) -> np.ndarray: # low uncertainty for aspect ratio and its velocity to keep ratio stable. std = [ 2 * self._std_weight_position * measurement[3], # x 2 * self._std_weight_position * measurement[3], # y 1e-2, # a 2 * self._std_weight_position * measurement[3], # h 10 * self._std_weight_velocity * measurement[3], # vx 10 * self._std_weight_velocity * measurement[3], # vy 1e-5, # va 10 * self._std_weight_velocity * measurement[3], # vh ] if self._is_obb: std.insert(4, 1e-2) # theta std.append(1e-5) # v_theta return std def _get_process_noise_std(self, mean: np.ndarray) -> Tuple[np.ndarray, np.ndarray]: std_pos = [ self._std_weight_position * mean[3], self._std_weight_position * mean[3], 1e-2, self._std_weight_position * mean[3], ] std_vel = [ self._std_weight_velocity * mean[3], self._std_weight_velocity * mean[3], 1e-5, self._std_weight_velocity * mean[3], ] if self._is_obb: std_pos.append(1e-2) std_vel.append(1e-5) return std_pos, std_vel def _get_measurement_noise_std( self, mean: np.ndarray, confidence: float ) -> np.ndarray: std_noise = [ self._std_weight_position * mean[3], self._std_weight_position * mean[3], 1e-1, self._std_weight_position * mean[3], ] if self._is_obb: std_noise.append(1e-1) return std_noise def _get_multi_process_noise_std( self, mean: np.ndarray ) -> Tuple[np.ndarray, np.ndarray]: std_pos = [ self._std_weight_position * mean[:, 3], self._std_weight_position * mean[:, 3], 1e-2 * np.ones_like(mean[:, 3]), self._std_weight_position * mean[:, 3], ] std_vel = [ self._std_weight_velocity * mean[:, 3], self._std_weight_velocity * mean[:, 3], 1e-5 * np.ones_like(mean[:, 3]), self._std_weight_velocity * mean[:, 3], ] if self._is_obb: std_pos.append(1e-2 * np.ones_like(mean[:, 3])) std_vel.append(1e-5 * np.ones_like(mean[:, 3])) return std_pos, std_vel @classmethod def _enforce_xyah_constraints(cls, mean: np.ndarray, is_obb: bool) -> np.ndarray: return cls._enforce_state_geometry( mean, positive_indices=(2, 3), angle_index=4 if is_obb else None, min_size=1e-4, ) def initiate(self, measurement: np.ndarray) -> Tuple[np.ndarray, np.ndarray]: measurement = np.asarray(measurement, dtype=float).copy() if self._is_obb: measurement[4] = self._wrap_angle(measurement[4]) mean, covariance = super().initiate(measurement) mean = self._enforce_xyah_constraints(mean, self._is_obb) return mean, covariance def predict(self, mean: np.ndarray, covariance: np.ndarray) -> Tuple[np.ndarray, np.ndarray]: mean, covariance = super().predict(mean, covariance) mean = self._enforce_xyah_constraints(mean, self._is_obb) return mean, covariance def multi_predict( self, mean: np.ndarray, covariance: np.ndarray ) -> Tuple[np.ndarray, np.ndarray]: mean, covariance = super().multi_predict(mean, covariance) mean[:, 2] = np.maximum(mean[:, 2], 1e-4) mean[:, 3] = np.maximum(mean[:, 3], 1e-4) if self._is_obb: mean[:, 4] = self._wrap_angle(mean[:, 4]) return mean, covariance def update( self, mean: np.ndarray, covariance: np.ndarray, measurement: np.ndarray, confidence: float = 0.0, ) -> Tuple[np.ndarray, np.ndarray]: if self._is_obb: mean_arr = np.asarray(mean, dtype=float) measurement_arr = np.asarray(measurement, dtype=float).copy() if mean_arr.ndim == 2: measurement_arr = measurement_arr.reshape((self.ndim, 1)) reference_theta = float(mean_arr[4, 0]) measurement_arr[4, 0] = self._align_angle_to_reference( measurement_arr[4, 0], reference_theta ) else: measurement_arr = measurement_arr.reshape((self.ndim,)) reference_theta = float(mean_arr[4]) measurement_arr[4] = self._align_angle_to_reference( measurement_arr[4], reference_theta ) measurement = measurement_arr new_mean, new_covariance = super().update(mean, covariance, measurement, confidence) new_mean = self._enforce_xyah_constraints(new_mean, self._is_obb) return new_mean, new_covariance def gating_distance( self, mean: np.ndarray, covariance: np.ndarray, measurements: np.ndarray, only_position: bool = False, metric: str = "maha", ) -> np.ndarray: if not self._is_obb or only_position: return super().gating_distance(mean, covariance, measurements, only_position, metric) projected_mean, projected_cov, measurements = self._prepare_gating_inputs( mean, covariance, measurements, self.project ) measurements[:, 4] = np.array( [ self._align_angle_to_reference(angle, projected_mean[4]) for angle in measurements[:, 4] ], dtype=float, ) residuals = measurements - projected_mean return self._gating_from_residuals(residuals, projected_cov, metric) ================================================ FILE: boxmot/motion/kalman_filters/xyhr.py ================================================ from copy import deepcopy from typing import Optional, Tuple import numpy as np import scipy.linalg from boxmot.motion.kalman_filters.base import BaseKalmanFilter class ConstantNoiseXYHR: """Constant process/measurement noise policy used by BoostTrack.""" def __init__(self, dim_x: int, dim_z: int = 4): self.dim_x = dim_x self.dim_z = dim_z def get_init_state_cov(self) -> np.ndarray: covariance = np.eye(self.dim_x, dtype=float) covariance[self.dim_z :, self.dim_z :] *= 1000.0 covariance *= 10.0 return covariance def get_r(self) -> np.ndarray: if self.dim_z == 5: return np.diag([1.0, 1.0, 10.0, 0.01, 0.01]).astype(float) return np.diag([1.0, 1.0, 10.0, 0.01]).astype(float) def get_q(self) -> np.ndarray: process_noise = np.eye(self.dim_x, dtype=float) process_noise[self.dim_z :, self.dim_z :] *= 0.01 if self.dim_z == 5: process_noise[4, 4] = 0.01 return process_noise class KalmanFilterXYHR(BaseKalmanFilter): """ Constant-noise Kalman filter for XYHR with optional OBB extension. - `dim_z=4, dim_x=8`: [x, y, h, r, vx, vy, vh, vr] - `dim_z=5, dim_x=10`: [x, y, h, r, theta, vx, vy, vh, vr, vtheta] This preserves BoostTrack's original constant-noise model while exposing the filter under the shared `boxmot.motion.kalman_filters` namespace. """ def __init__( self, z: Optional[np.ndarray] = None, ndim: int = 8, dim_z: Optional[int] = None, dt: float = 1.0, track_id: int = -1, ): inferred_dim_z = 4 if z is not None: z_size = int(np.asarray(z).size) inferred_dim_z = 5 if z_size >= 5 else 4 if dim_z is None: dim_z = inferred_dim_z if dim_z not in (4, 5): raise ValueError("dim_z must be 4 (AABB) or 5 (OBB)") if dim_z == 5 and ndim == 8: ndim = 10 min_dim_x = 2 * dim_z if ndim < min_dim_x: raise ValueError(f"ndim must be >= {min_dim_x} when dim_z is {dim_z}") self._is_obb = dim_z == 5 motion_mat = np.eye(ndim, dtype=float) velocity_dims = min(dim_z, max(0, ndim - dim_z)) for i in range(velocity_dims): motion_mat[i, dim_z + i] = float(dt) update_mat = np.eye(dim_z, ndim, dtype=float) super().__init__( ndim=dim_z, dim_x=ndim, dim_z=dim_z, motion_mat=motion_mat, update_mat=update_mat, ) self.dt = float(dt) self.id = track_id self.cov_update_policy = ConstantNoiseXYHR(ndim, dim_z) # Keep BoostTrack-compatible 1D state vector semantics. self.x = np.zeros((ndim,), dtype=float) self.covariance = self.cov_update_policy.get_init_state_cov() if z is not None: self.x[: self.dim_z] = self._reshape_measurement_vector(z) self._enforce_state_constraints() @property def covariance(self) -> np.ndarray: return self.P @covariance.setter def covariance(self, value: np.ndarray) -> None: self.P = np.asarray(value, dtype=float) def _reshape_measurement_vector(self, z: np.ndarray) -> np.ndarray: measurement = np.asarray(z, dtype=float) if measurement.ndim == 2: measurement = deepcopy(measurement.reshape((-1,))) else: measurement = measurement.reshape(-1) if measurement.size < self.dim_z: raise ValueError( f"measurement must have at least {self.dim_z} values, got {measurement.size}" ) measurement = measurement[: self.dim_z] measurement[2] = max(float(measurement[2]), 1e-4) measurement[3] = max(float(measurement[3]), 1e-4) if self._is_obb: measurement[4] = float(self._wrap_angle(measurement[4])) return measurement def _enforce_state_constraints(self) -> None: self.x = self._enforce_state_geometry( self.x, positive_indices=(2, 3), angle_index=4 if self._is_obb else None, min_size=1e-4, ) self.covariance = 0.5 * (self.covariance + self.covariance.T) def _get_initial_covariance_std(self, measurement: np.ndarray) -> np.ndarray: del measurement return np.sqrt(np.diag(self.cov_update_policy.get_init_state_cov())) def _get_process_noise_std(self, mean: np.ndarray) -> Tuple[np.ndarray, np.ndarray]: del mean q_diag = np.sqrt(np.diag(self.cov_update_policy.get_q())) velocity_dims = min(self.dim_z, max(0, self.dim_x - self.dim_z)) std_pos = q_diag[: self.dim_z] std_vel = q_diag[self.dim_z : self.dim_z + velocity_dims] return std_pos, std_vel def _get_measurement_noise_std( self, mean: np.ndarray, confidence: float ) -> np.ndarray: del mean, confidence return np.sqrt(np.diag(self.cov_update_policy.get_r())) def _get_multi_process_noise_std( self, mean: np.ndarray ) -> Tuple[np.ndarray, np.ndarray]: if mean.ndim != 2: raise ValueError("Expected mean to have shape (n, dim_x)") n = mean.shape[0] std_pos, std_vel = self._get_process_noise_std(mean[0]) std_pos_multi = [np.full(n, float(v), dtype=float) for v in std_pos] std_vel_multi = [np.full(n, float(v), dtype=float) for v in std_vel] return std_pos_multi, std_vel_multi def initiate(self, measurement: np.ndarray) -> Tuple[np.ndarray, np.ndarray]: mean = np.zeros((self.dim_x,), dtype=float) mean[: self.dim_z] = self._reshape_measurement_vector(measurement) covariance = self.cov_update_policy.get_init_state_cov() if self._is_obb: mean[4] = float(self._wrap_angle(mean[4])) return mean, covariance def predict( self, mean: Optional[np.ndarray] = None, covariance: Optional[np.ndarray] = None, ) -> Tuple[np.ndarray, np.ndarray]: update = mean is None if mean is None: mean = self.x covariance = self.covariance mean = np.asarray(mean, dtype=float).reshape(-1) covariance = np.asarray(covariance, dtype=float) motion_cov = self.cov_update_policy.get_q() mean = np.dot(self._motion_mat, mean) covariance = ( np.linalg.multi_dot((self._motion_mat, covariance, self._motion_mat.T)) + motion_cov ) if update: self.x = mean self.covariance = covariance self._enforce_state_constraints() return mean, covariance def project( self, mean: Optional[np.ndarray] = None, covariance: Optional[np.ndarray] = None, ) -> Tuple[np.ndarray, np.ndarray]: if mean is None: mean = self.x covariance = self.covariance mean = np.asarray(mean, dtype=float).reshape(-1) covariance = np.asarray(covariance, dtype=float) innovation_cov = self.cov_update_policy.get_r() projected_mean = np.dot(self._update_mat, mean) projected_cov = np.linalg.multi_dot( (self._update_mat, covariance, self._update_mat.T) ) return projected_mean, projected_cov + innovation_cov def update(self, z: np.ndarray) -> Tuple[np.ndarray, np.ndarray]: measurement = self._reshape_measurement_vector(z) if self._is_obb: reference_theta = float(self.x[4]) measurement[4] = self._align_angle_to_reference( measurement[4], reference_theta ) projected_mean, projected_cov = self.project() chol_factor, lower = scipy.linalg.cho_factor( projected_cov, lower=True, check_finite=False ) kalman_gain = scipy.linalg.cho_solve( (chol_factor, lower), np.dot(self.covariance, self._update_mat.T).T, check_finite=False, ).T innovation = measurement - projected_mean self.x = self.x + np.dot(innovation, kalman_gain.T) self.covariance = self.covariance - np.linalg.multi_dot( (kalman_gain, projected_cov, kalman_gain.T) ) self._enforce_state_constraints() return self.x, self.covariance ================================================ FILE: boxmot/motion/kalman_filters/xysr.py ================================================ from collections import deque from copy import deepcopy from typing import Optional, Tuple import numpy as np from boxmot.motion.kalman_filters.base import BaseKalmanFilter class KalmanFilterXYSR(BaseKalmanFilter): """ Linear Kalman filter for XYSR with optional OBB angle extension. - `dim_z=4, dim_x=7`: [x, y, s, r, vx, vy, vs] - `dim_z=5, dim_x=9`: [x, y, s, r, theta, vx, vy, vs, vtheta] """ def __init__(self, dim_x: int = 7, dim_z: int = 4, dim_u: int = 0, max_obs: int = 50): if dim_x < 1: raise ValueError("dim_x must be 1 or greater") if dim_z < 1: raise ValueError("dim_z must be 1 or greater") if dim_u < 0: raise ValueError("dim_u must be 0 or greater") if dim_z == 5 and dim_x != 9: raise ValueError("dim_x must be 9 when dim_z is 5 (XYSR + theta)") if dim_z > 5: raise ValueError("dim_z > 5 is not supported for XYSR") motion_mat = self._build_motion_matrix(dim_x=dim_x, dim_z=dim_z) update_mat = np.zeros((dim_z, dim_x), dtype=float) update_mat[:, :dim_z] = np.eye(dim_z, dtype=float) super().__init__( ndim=dim_z, dim_x=dim_x, dim_z=dim_z, motion_mat=motion_mat, update_mat=update_mat, max_obs=max_obs, ) self.dim_u = dim_u self._is_obb = dim_z >= 5 self.inv = np.linalg.inv self.max_obs = max_obs self.history_obs = deque([], maxlen=self.max_obs) self.attr_saved = None self.observed = False self.last_measurement = None @staticmethod def _build_motion_matrix(dim_x: int, dim_z: int) -> np.ndarray: """Build xysr-compatible transition matrix with a fallback for custom dims.""" motion_mat = np.eye(dim_x, dtype=float) if dim_x >= 9 and dim_z >= 5: # [x, y, s, r, theta, vx, vy, vs, vtheta] motion_mat[0, 5] = 1.0 motion_mat[1, 6] = 1.0 motion_mat[2, 7] = 1.0 motion_mat[4, 8] = 1.0 return motion_mat if dim_x >= 7 and dim_z >= 4: # [x, y, s, r, vx, vy, vs] motion_mat[0, 4] = 1.0 motion_mat[1, 5] = 1.0 motion_mat[2, 6] = 1.0 return motion_mat velocity_dims = min(dim_z, max(0, dim_x - dim_z)) for i in range(velocity_dims): motion_mat[i, dim_z + i] = 1.0 return motion_mat @staticmethod def _scale_from_measurement(z: np.ndarray) -> float: arr = np.asarray(z, dtype=float).reshape(-1) if arr.size < 4: return 1.0 s = max(arr[2], 1e-6) r = max(abs(arr[3]), 1e-6) w = np.sqrt(s * r) h = np.sqrt(s / r) return float(max(0.5 * (w + h), 1.0)) def _measurement_reference_state(self) -> Optional[np.ndarray]: if self._is_obb: return np.asarray(self.x[: self.dim_z, 0], dtype=float).copy() return None @classmethod def _align_obb_measurement( cls, measurement: np.ndarray, reference: np.ndarray ) -> np.ndarray: """ Resolve equivalent OBB forms in XYSR space before update. In XYSR-OBB, a rectangle can be represented as: - (s, r, theta) - (s, r, theta + pi) - (s, 1/r, theta + pi/2) - (s, 1/r, theta - pi/2) Choose the form closest to the reference state to prevent angle flips. """ aligned = np.asarray(measurement, dtype=float).copy().reshape((-1,)) ref = np.asarray(reference, dtype=float).reshape((-1,)) ref_r = max(float(ref[3]), 1e-6) ref_theta = float(ref[4]) s = max(float(aligned[2]), 1e-6) r = max(float(aligned[3]), 1e-6) theta = float(aligned[4]) candidates = ( (s, r, theta), (s, r, theta + np.pi), (s, 1.0 / r, theta + (np.pi / 2.0)), (s, 1.0 / r, theta - (np.pi / 2.0)), ) ratio_candidates = tuple( (1.0, cand_r, cand_theta) for _, cand_r, cand_theta in candidates ) _, best_r, best_theta = cls._select_obb_candidate( reference_sizes=(1.0, ref_r), reference_angle=ref_theta, candidates=ratio_candidates, ) aligned[2] = max(s, 1e-6) aligned[3] = max(best_r, 1e-6) aligned[4] = best_theta return aligned def _prepare_measurement( self, z: np.ndarray, reference_state: Optional[np.ndarray] = None ) -> np.ndarray: measurement = self._reshape_measurement(z, self.dim_z) measurement[2, 0] = max(float(measurement[2, 0]), 1e-6) measurement[3, 0] = max(float(measurement[3, 0]), 1e-6) if self._is_obb: raw = float(self._wrap_angle(measurement[4, 0])) measurement[4, 0] = raw if reference_state is not None: aligned = self._align_obb_measurement( measurement[:, 0], np.asarray(reference_state, dtype=float).reshape(-1) ) measurement[:, 0] = aligned return measurement def _enforce_state_constraints(self) -> None: self.x = self._enforce_state_geometry( self.x, positive_indices=(2, 3), angle_index=4 if self._is_obb else None, min_size=1e-6, ) self.P = 0.5 * (self.P + self.P.T) @staticmethod def _affine_components(m: np.ndarray) -> Tuple[float, float, float]: u, _, vh = np.linalg.svd(m) rot = u @ vh if np.linalg.det(rot) < 0: u[:, -1] *= -1.0 rot = u @ vh angle = float(np.arctan2(rot[1, 0], rot[0, 0])) scale_x = max(float(np.linalg.norm(m[:, 0])), 1e-6) scale_y = max(float(np.linalg.norm(m[:, 1])), 1e-6) return scale_x, scale_y, angle def _get_initial_covariance_std(self, measurement: np.ndarray) -> np.ndarray: scale = self._scale_from_measurement(measurement) if self._is_obb: return np.array( [ 2.0 * self._std_weight_position * scale, # x 2.0 * self._std_weight_position * scale, # y 2.0 * self._std_weight_position * scale, # s 1e-2, # r 1e-2, # theta 10.0 * self._std_weight_velocity * scale, # vx 10.0 * self._std_weight_velocity * scale, # vy 10.0 * self._std_weight_velocity * scale, # vs 1e-5, # vtheta ], dtype=float, ) return np.array( [ 2.0 * self._std_weight_position * scale, 2.0 * self._std_weight_position * scale, 2.0 * self._std_weight_position * scale, 1e-2, 10.0 * self._std_weight_velocity * scale, 10.0 * self._std_weight_velocity * scale, 10.0 * self._std_weight_velocity * scale, ], dtype=float, ) def _get_process_noise_std(self, mean: np.ndarray) -> Tuple[np.ndarray, np.ndarray]: scale = self._scale_from_measurement(mean) if self._is_obb: std_pos = [ self._std_weight_position * scale, self._std_weight_position * scale, self._std_weight_position * scale, 1e-2, 1e-2, ] std_vel = [ self._std_weight_velocity * scale, self._std_weight_velocity * scale, self._std_weight_velocity * scale, 1e-5, ] return std_pos, std_vel std_pos = [ self._std_weight_position * scale, self._std_weight_position * scale, self._std_weight_position * scale, 1e-2, ] std_vel = [ self._std_weight_velocity * scale, self._std_weight_velocity * scale, self._std_weight_velocity * scale, 1e-5, ] return std_pos, std_vel def _get_measurement_noise_std(self, mean: np.ndarray, confidence: float) -> np.ndarray: scale = self._scale_from_measurement(mean) if self._is_obb: return np.array( [ self._std_weight_position * scale, self._std_weight_position * scale, self._std_weight_position * scale, 1e-1, 1e-1, ], dtype=float, ) return np.array( [ self._std_weight_position * scale, self._std_weight_position * scale, self._std_weight_position * scale, 1e-1, ], dtype=float, ) def _get_multi_process_noise_std( self, mean: np.ndarray ) -> Tuple[np.ndarray, np.ndarray]: if mean.ndim != 2: raise ValueError("Expected mean to have shape (n, dim_x)") scales = np.array([self._scale_from_measurement(row) for row in mean], dtype=float) if self._is_obb: std_pos = [ self._std_weight_position * scales, self._std_weight_position * scales, self._std_weight_position * scales, 1e-2 * np.ones_like(scales), 1e-2 * np.ones_like(scales), ] std_vel = [ self._std_weight_velocity * scales, self._std_weight_velocity * scales, self._std_weight_velocity * scales, 1e-5 * np.ones_like(scales), ] return std_pos, std_vel std_pos = [ self._std_weight_position * scales, self._std_weight_position * scales, self._std_weight_position * scales, 1e-2 * np.ones_like(scales), ] std_vel = [ self._std_weight_velocity * scales, self._std_weight_velocity * scales, self._std_weight_velocity * scales, 1e-5 * np.ones_like(scales), ] return std_pos, std_vel def initiate(self, measurement: np.ndarray) -> Tuple[np.ndarray, np.ndarray]: """Initialize xysr state [x, y, s, r, vx, vy, vs] from a measurement.""" mean = np.zeros((self.dim_x, 1), dtype=float) measurement = self._prepare_measurement(measurement, reference_state=None) mean[: self.dim_z] = measurement std = self._get_initial_covariance_std(measurement) covariance = np.eye(self.dim_x, dtype=float) covariance[: std.shape[0], : std.shape[0]] = np.diag(np.square(std)) mean[2, 0] = max(float(mean[2, 0]), 1e-6) mean[3, 0] = max(float(mean[3, 0]), 1e-6) if self._is_obb: mean[4, 0] = float(self._wrap_angle(mean[4, 0])) covariance = 0.5 * (covariance + covariance.T) return mean, covariance def apply_affine_correction(self, m: np.ndarray, t: np.ndarray) -> None: """Apply affine correction to state and covariance (used by DeepOcSort CMC).""" m = np.asarray(m, dtype=float).reshape((2, 2)) t = np.asarray(t, dtype=float).reshape((2, 1)) scale_x, scale_y, rot = self._affine_components(m) area_scale = scale_x * scale_y ratio_scale = scale_x / scale_y vel_slice = slice(5, 7) if self._is_obb else slice(4, 6) self.x[:2] = m @ self.x[:2] + t self.x[vel_slice] = m @ self.x[vel_slice] if self._is_obb: self.x[2, 0] *= area_scale self.x[3, 0] *= ratio_scale self.x[4, 0] = float(self._wrap_angle(self.x[4, 0] + rot)) self.x[7, 0] *= area_scale self.P[:2, :2] = m @ self.P[:2, :2] @ m.T self.P[vel_slice, vel_slice] = m @ self.P[vel_slice, vel_slice] @ m.T if self._is_obb: self.P[2, 2] *= area_scale**2 self.P[3, 3] *= ratio_scale**2 self.P[7, 7] *= area_scale**2 if not self.observed and self.attr_saved is not None: self.attr_saved["x"][:2] = m @ self.attr_saved["x"][:2] + t self.attr_saved["x"][vel_slice] = m @ self.attr_saved["x"][vel_slice] if self._is_obb: self.attr_saved["x"][2, 0] *= area_scale self.attr_saved["x"][3, 0] *= ratio_scale self.attr_saved["x"][4, 0] = float( self._wrap_angle(self.attr_saved["x"][4, 0] + rot) ) self.attr_saved["x"][7, 0] *= area_scale self.attr_saved["P"][:2, :2] = m @ self.attr_saved["P"][:2, :2] @ m.T self.attr_saved["P"][vel_slice, vel_slice] = ( m @ self.attr_saved["P"][vel_slice, vel_slice] @ m.T ) if self._is_obb: self.attr_saved["P"][2, 2] *= area_scale**2 self.attr_saved["P"][3, 3] *= ratio_scale**2 self.attr_saved["P"][7, 7] *= area_scale**2 if self.attr_saved["last_measurement"] is not None: self.attr_saved["last_measurement"][:2] = ( m @ self.attr_saved["last_measurement"][:2] + t ) if self._is_obb: self.attr_saved["last_measurement"][2, 0] *= area_scale self.attr_saved["last_measurement"][3, 0] *= ratio_scale self.attr_saved["last_measurement"][4, 0] = float( self._wrap_angle(self.attr_saved["last_measurement"][4, 0] + rot) ) self._enforce_state_constraints() def predict( self, u: Optional[np.ndarray] = None, B: Optional[np.ndarray] = None, F: Optional[np.ndarray] = None, Q: Optional[np.ndarray] = None, ) -> None: """Predict one state step using shared base framework.""" self.predict_state(u=u, B=B, F=F, Q=Q) self._enforce_state_constraints() def freeze(self) -> None: """Save parameters before non-observation forward pass.""" self.attr_saved = deepcopy(self.__dict__) def unfreeze(self) -> None: """ Restore the previously frozen state and replay interpolated observations. """ if self.attr_saved is None: return new_history = deepcopy(list(self.history_obs)) self.__dict__ = self.attr_saved self.history_obs = deque(list(self.history_obs)[:-1], maxlen=self.max_obs) occur = [int(obs is None) for obs in new_history] indices = np.where(np.array(occur) == 0)[0] if len(indices) < 2: return index1, index2 = indices[-2], indices[-1] box1, box2 = new_history[index1], new_history[index2] box1 = np.asarray(box1, dtype=float).reshape(-1) box2 = np.asarray(box2, dtype=float).reshape(-1) if box1.size < self.dim_z or box2.size < self.dim_z: return x1, y1, s1, r1 = box1[:4] w1, h1 = np.sqrt(s1 * r1), np.sqrt(s1 / r1) x2, y2, s2, r2 = box2[:4] w2, h2 = np.sqrt(s2 * r2), np.sqrt(s2 / r2) time_gap = index2 - index1 if time_gap <= 0: return dx, dy = (x2 - x1) / time_gap, (y2 - y1) / time_gap dw, dh = (w2 - w1) / time_gap, (h2 - h1) / time_gap if self._is_obb: t1, t2 = box1[4], box2[4] dtheta = float(self._wrap_angle(t2 - t1)) / time_gap for i in range(index2 - index1): x = x1 + (i + 1) * dx y = y1 + (i + 1) * dy w = w1 + (i + 1) * dw h = h1 + (i + 1) * dh s, r = w * h, w / float(h) if self._is_obb: theta = float(self._wrap_angle(t1 + (i + 1) * dtheta)) new_box = np.array([x, y, s, r, theta], dtype=float).reshape((5, 1)) else: new_box = np.array([x, y, s, r], dtype=float).reshape((4, 1)) self.update(new_box) if i != (index2 - index1 - 1): self.predict() self.history_obs.pop() self.history_obs.pop() def update( self, z: Optional[np.ndarray], R: Optional[np.ndarray] = None, H: Optional[np.ndarray] = None, ) -> None: """Update state with measurement or register missing observation when z is None.""" measurement = None if z is not None: measurement = self._prepare_measurement( z, reference_state=self._measurement_reference_state() ) self.history_obs.append(None if measurement is None else measurement.copy()) if measurement is None: if self.observed and len(self.history_obs) >= 2: self.last_measurement = self.history_obs[-2] self.freeze() self.observed = False self.z = np.array([[None] * self.dim_z]).T self.x_post = self.x.copy() self.P_post = self.P.copy() self.y = np.zeros((self.dim_z, 1)) return if not self.observed: self.unfreeze() self.observed = True self.update_state(z=measurement, R=R, H=H) if self._is_obb and self.dim_x >= 9: self.x = self._damp_theta_velocity(self.x, damping=0.8) self._enforce_state_constraints() # Keep legacy behavior where observed measurements are appended twice. self.history_obs.append(self.z.copy()) def md_for_measurement(self, z: np.ndarray) -> float: """Mahalanobis distance of measurement z against current predicted state.""" measurement = self._prepare_measurement( z, reference_state=self._measurement_reference_state() ) return self.mahalanobis_distance(z=measurement, H=self.H, R=self.R) ================================================ FILE: boxmot/motion/kalman_filters/xywh.py ================================================ from typing import Tuple import numpy as np from boxmot.motion.kalman_filters.base import BaseKalmanFilter class KalmanFilterXYWH(BaseKalmanFilter): """ Kalman filter for XYWH state with optional OBB angle extension. - `ndim=4`: [x, y, w, h] - `ndim=5`: [x, y, w, h, theta] """ def __init__(self, ndim: int = 4): if ndim not in (4, 5): raise ValueError("ndim must be 4 (AABB) or 5 (OBB)") super().__init__(ndim=ndim) self._is_obb = ndim == 5 def _get_initial_covariance_std(self, measurement: np.ndarray) -> np.ndarray: std = [ 2 * self._std_weight_position * measurement[2], 2 * self._std_weight_position * measurement[3], 2 * self._std_weight_position * measurement[2], 2 * self._std_weight_position * measurement[3], 10 * self._std_weight_velocity * measurement[2], 10 * self._std_weight_velocity * measurement[3], 10 * self._std_weight_velocity * measurement[2], 10 * self._std_weight_velocity * measurement[3], ] if self._is_obb: std.insert(4, 1e-2) # theta std.append(1e-5) # v_theta return std def _get_process_noise_std(self, mean: np.ndarray) -> Tuple[np.ndarray, np.ndarray]: std_pos = [ self._std_weight_position * mean[2], self._std_weight_position * mean[3], self._std_weight_position * mean[2], self._std_weight_position * mean[3], ] std_vel = [ self._std_weight_velocity * mean[2], self._std_weight_velocity * mean[3], self._std_weight_velocity * mean[2], self._std_weight_velocity * mean[3], ] if self._is_obb: std_pos.append(1e-2) std_vel.append(1e-5) return std_pos, std_vel def _get_measurement_noise_std(self, mean: np.ndarray, confidence: float) -> np.ndarray: std_noise = [ self._std_weight_position * mean[2], self._std_weight_position * mean[3], self._std_weight_position * mean[2], self._std_weight_position * mean[3], ] if self._is_obb: std_noise.append(1e-1) return std_noise def _get_multi_process_noise_std( self, mean: np.ndarray ) -> Tuple[np.ndarray, np.ndarray]: std_pos = [ self._std_weight_position * mean[:, 2], self._std_weight_position * mean[:, 3], self._std_weight_position * mean[:, 2], self._std_weight_position * mean[:, 3], ] std_vel = [ self._std_weight_velocity * mean[:, 2], self._std_weight_velocity * mean[:, 3], self._std_weight_velocity * mean[:, 2], self._std_weight_velocity * mean[:, 3], ] if self._is_obb: std_pos.append(1e-2 * np.ones_like(mean[:, 2])) std_vel.append(1e-5 * np.ones_like(mean[:, 2])) return std_pos, std_vel @classmethod def _align_obb_measurement( cls, measurement: np.ndarray, reference: np.ndarray ) -> np.ndarray: """ Resolve OBB representation ambiguity before update. A rectangle can be represented by equivalent parameterizations: - (w, h, theta) - (w, h, theta + pi) - (h, w, theta + pi/2) - (h, w, theta - pi/2) Pick the one closest to current state to avoid sudden angle flips. """ aligned = np.asarray(measurement, dtype=float).copy().reshape((-1,)) ref = np.asarray(reference, dtype=float).reshape((-1,)) ref_w = max(float(ref[2]), 1e-6) ref_h = max(float(ref[3]), 1e-6) ref_theta = float(ref[4]) w = max(float(aligned[2]), 1e-6) h = max(float(aligned[3]), 1e-6) theta = float(aligned[4]) candidates = ( (w, h, theta), (w, h, theta + np.pi), (h, w, theta + (np.pi / 2.0)), (h, w, theta - (np.pi / 2.0)), ) best_w, best_h, best_theta = cls._select_obb_candidate( reference_sizes=(ref_w, ref_h), reference_angle=ref_theta, candidates=candidates, ) aligned[2] = best_w aligned[3] = best_h aligned[4] = best_theta return aligned @classmethod def _enforce_xywh_constraints(cls, mean: np.ndarray, is_obb: bool) -> np.ndarray: return cls._enforce_state_geometry( mean, positive_indices=(2, 3), angle_index=4 if is_obb else None, min_size=1e-4, ) def initiate(self, measurement: np.ndarray) -> Tuple[np.ndarray, np.ndarray]: measurement = np.asarray(measurement, dtype=float).copy() if self._is_obb: measurement[4] = self._wrap_angle(measurement[4]) mean, covariance = super().initiate(measurement) mean = self._enforce_xywh_constraints(mean, self._is_obb) return mean, covariance def predict(self, mean: np.ndarray, covariance: np.ndarray) -> Tuple[np.ndarray, np.ndarray]: mean, covariance = super().predict(mean, covariance) mean = self._enforce_xywh_constraints(mean, self._is_obb) return mean, covariance def multi_predict( self, mean: np.ndarray, covariance: np.ndarray ) -> Tuple[np.ndarray, np.ndarray]: mean, covariance = super().multi_predict(mean, covariance) if self._is_obb: mean[:, 2] = np.maximum(mean[:, 2], 1e-4) mean[:, 3] = np.maximum(mean[:, 3], 1e-4) mean[:, 4] = self._wrap_angle(mean[:, 4]) else: mean[:, 2] = np.maximum(mean[:, 2], 1e-4) mean[:, 3] = np.maximum(mean[:, 3], 1e-4) return mean, covariance def update( self, mean: np.ndarray, covariance: np.ndarray, measurement: np.ndarray, confidence: float = 0.0, ) -> Tuple[np.ndarray, np.ndarray]: if self._is_obb: mean_arr = np.asarray(mean, dtype=float) measurement_arr = np.asarray(measurement, dtype=float).copy() if mean_arr.ndim == 2: measurement_arr = measurement_arr.reshape((self.ndim, 1)) aligned = self._align_obb_measurement( measurement_arr[:, 0], mean_arr[:, 0] ) measurement_arr[:, 0] = aligned else: measurement_arr = measurement_arr.reshape((self.ndim,)) measurement_arr = self._align_obb_measurement(measurement_arr, mean_arr) measurement = measurement_arr new_mean, new_covariance = super().update(mean, covariance, measurement, confidence) if self._is_obb: new_mean = self._damp_theta_velocity(new_mean, damping=0.8) new_mean = self._enforce_xywh_constraints(new_mean, self._is_obb) return new_mean, new_covariance def gating_distance( self, mean: np.ndarray, covariance: np.ndarray, measurements: np.ndarray, only_position: bool = False, metric: str = "maha", ) -> np.ndarray: if not self._is_obb or only_position: return super().gating_distance(mean, covariance, measurements, only_position, metric) projected_mean, projected_cov, measurements = self._prepare_gating_inputs( mean, covariance, measurements, self.project ) for i in range(measurements.shape[0]): measurements[i, :] = self._align_obb_measurement(measurements[i, :], projected_mean) residuals = measurements - projected_mean return self._gating_from_residuals(residuals, projected_cov, metric) ================================================ FILE: boxmot/postprocessing/__init__.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license ================================================ FILE: boxmot/postprocessing/gbrc.py ================================================ import argparse import concurrent.futures from pathlib import Path import numpy as np from sklearn.ensemble import GradientBoostingRegressor from tqdm import tqdm from boxmot.utils import logger as LOGGER def linear_interpolation(data: np.ndarray, interval: int) -> np.ndarray: """ Apply linear interpolation between rows in the tracking results. Assumes col0=frame, col1=id. Interpolates gaps: previous_frame + 1 < current_frame < previous_frame + interval """ if data.size == 0: return data # Sort by id then frame (same as your other script style) sorted_data = data[np.lexsort((data[:, 0], data[:, 1]))] result_rows = [] previous_id = None previous_frame = None previous_row = None for row in sorted_data: current_frame, current_id = int(row[0]), int(row[1]) if ( previous_id is not None and current_id == previous_id and previous_frame + 1 < current_frame < previous_frame + interval ): gap = current_frame - previous_frame - 1 for i in range(1, gap + 1): new_row = previous_row + (row - previous_row) * ( i / (current_frame - previous_frame) ) result_rows.append(new_row) result_rows.append(row) previous_id, previous_frame, previous_row = current_id, current_frame, row out = np.array(result_rows) return out[np.lexsort((out[:, 0], out[:, 1]))] def _fit_predict_1d(regr: GradientBoostingRegressor, t: np.ndarray, y: np.ndarray) -> np.ndarray: """Fit regressor on (t -> y) and return predictions shaped (n,).""" regr.fit(t, y.ravel()) return regr.predict(t) def gradient_boosting_smooth( data: np.ndarray, n_estimators: int = 115, learning_rate: float = 0.065, min_samples_split: int = 6, ) -> np.ndarray: """ Smooth columns 2..5 (x,y,w,h) per track id using GradientBoostingRegressor. """ if data.size == 0: return data smoothed_rows = [] unique_ids = np.unique(data[:, 1]) for obj_id in unique_ids: tracks = data[data[:, 1] == obj_id] if len(tracks) == 0: continue t = tracks[:, 0].reshape(-1, 1) # If a track is extremely short, boosting can still fit, # but smoothing isn't really meaningful; we still run it for consistency. regr = GradientBoostingRegressor( n_estimators=n_estimators, learning_rate=learning_rate, min_samples_split=min_samples_split, ) tracks[:, 2] = _fit_predict_1d(regr, t, tracks[:, 2]) tracks[:, 3] = _fit_predict_1d(regr, t, tracks[:, 3]) tracks[:, 4] = _fit_predict_1d(regr, t, tracks[:, 4]) tracks[:, 5] = _fit_predict_1d(regr, t, tracks[:, 5]) smoothed_rows.append(tracks) out = np.concatenate(smoothed_rows) return out[np.lexsort((out[:, 0], out[:, 1]))] def process_file( file_path: Path, interval: int, n_estimators: int, learning_rate: float, min_samples_split: int, ): """ Process a single MOT results file by applying linear interpolation and gradient boosting smoothing. """ LOGGER.info(f"Applying GBRC/GBI to: {file_path}") tracking_results = np.loadtxt(file_path, delimiter=",") if tracking_results.size == 0: LOGGER.warning(f"No tracking results in {file_path}. Skipping...") return interpolated = linear_interpolation(tracking_results, interval) smoothed = gradient_boosting_smooth( interpolated, n_estimators=n_estimators, learning_rate=learning_rate, min_samples_split=min_samples_split, ) # Save like your GSI script: overwrite the same file # Use integer frame/id, floats for bbox, then ints for trailing fields. # Note: if you want commas instead, switch fmt + delimiter. fmt = ["%d", "%d"] + ["%.2f"] * (smoothed.shape[1] - 2) np.savetxt( file_path, smoothed, fmt=fmt, delimiter=",", ) def gbrc( mot_results_folder: Path, interval: int = 20, n_estimators: int = 115, learning_rate: float = 0.065, min_samples_split: int = 6, ): """ Apply GBRC/GBI-style postprocessing to all MOT*.txt files in a folder. """ tracking_files = list(mot_results_folder.glob("MOT*.txt")) total_files = len(tracking_files) LOGGER.debug(f"GBRC: Found {total_files} file(s) to process.") with concurrent.futures.ProcessPoolExecutor() as executor: futures = { executor.submit( process_file, file_path, interval, n_estimators, learning_rate, min_samples_split, ): file_path for file_path in tracking_files } for future in tqdm( concurrent.futures.as_completed(futures), total=total_files, desc="Processing files", ): file_path = futures[future] try: future.result() except Exception as e: LOGGER.error(f"Error processing file {file_path}: {e}") def main(): parser = argparse.ArgumentParser( description="Apply Gradient Boosting Reconnection Context (GBRC/GBI) postprocessing to tracking results." ) parser.add_argument("--path", type=str, required=True, help="Path to MOT results folder") parser.add_argument("--interval", type=int, default=20, help="Maximum gap to interpolate (default: 20)") parser.add_argument("--n_estimators", type=int, default=115, help="GBR n_estimators (default: 115)") parser.add_argument("--learning_rate", type=float, default=0.065, help="GBR learning_rate (default: 0.065)") parser.add_argument("--min_samples_split", type=int, default=6, help="GBR min_samples_split (default: 6)") args = parser.parse_args() mot_results_folder = Path(args.path) gbrc( mot_results_folder, interval=args.interval, n_estimators=args.n_estimators, learning_rate=args.learning_rate, min_samples_split=args.min_samples_split, ) if __name__ == "__main__": main() ================================================ FILE: boxmot/postprocessing/gsi.py ================================================ import argparse import concurrent.futures from pathlib import Path import numpy as np from sklearn.gaussian_process import GaussianProcessRegressor as GPR from sklearn.gaussian_process.kernels import RBF from tqdm import tqdm from boxmot.utils import logger as LOGGER def linear_interpolation(data: np.ndarray, interval: int) -> np.ndarray: """ Apply linear interpolation between rows in the tracking results. The function assumes the first two columns of `data` represent frame number and object ID. Interpolated rows are added when consecutive rows for the same ID have a gap of more than 1 frame but less than the specified interval. Parameters: data (np.ndarray): Input tracking results. interval (int): Maximum gap to perform interpolation. Returns: np.ndarray: Tracking results with interpolated rows included. """ # Sort data by frame and then by ID sorted_data = data[np.lexsort((data[:, 0], data[:, 1]))] result_rows = [] previous_id = None previous_frame = None previous_row = None for row in sorted_data: current_frame, current_id = int(row[0]), int(row[1]) if ( previous_id is not None and current_id == previous_id and previous_frame + 1 < current_frame < previous_frame + interval ): gap = current_frame - previous_frame - 1 for i in range(1, gap + 1): # Linear interpolation for each missing frame new_row = previous_row + (row - previous_row) * ( i / (current_frame - previous_frame) ) result_rows.append(new_row) result_rows.append(row) previous_id, previous_frame, previous_row = current_id, current_frame, row result_array = np.array(result_rows) # Resort the array return result_array[np.lexsort((result_array[:, 0], result_array[:, 1]))] def gaussian_smooth(data: np.ndarray, tau: float) -> np.ndarray: """ Apply Gaussian process smoothing to specified columns in the tracking results. For each unique object ID in the data, this function smooths columns 2 through 5 using a Gaussian Process with an RBF kernel. Additional columns (columns 6 and 7) and a constant value (-1) are appended to each row. Parameters: data (np.ndarray): Tracking results. tau (float): Smoothing parameter. Returns: np.ndarray: Tracking results with smoothed columns. """ smoothed_output = [] unique_ids = np.unique(data[:, 1]) for obj_id in unique_ids: tracks = data[data[:, 1] == obj_id] num_tracks = len(tracks) # Determine length scale using logarithmic scaling with clipping length_scale = np.clip(tau * np.log(tau**3 / num_tracks), tau**-1, tau**2) t = tracks[:, 0].reshape(-1, 1) kernel = RBF(length_scale, length_scale_bounds="fixed") gpr = GPR(kernel) # Smooth columns 2 to 5 simultaneously (if supported by your version of scikit-learn) smoothed_columns = gpr.fit(t, tracks[:, 2:6]).predict(t) # Build new rows with the smoothed data, retaining other columns and appending -1 for i in range(len(tracks)): new_row = np.concatenate( ([tracks[i, 0], obj_id], smoothed_columns[i], tracks[i, 6:8], [-1]) ) smoothed_output.append(new_row) return np.array(smoothed_output) def process_file(file_path: Path, interval: int, tau: float): """ Process a single MOT results file by applying linear interpolation and Gaussian smoothing. Parameters: file_path (Path): Path to the tracking results file. interval (int): Interval for linear interpolation. tau (float): Smoothing parameter for Gaussian process. """ LOGGER.info(f"Applying GSI to: {file_path}") tracking_results = np.loadtxt(file_path, delimiter=",") if tracking_results.size != 0: interpolated_results = linear_interpolation(tracking_results, interval) smoothed_results = gaussian_smooth(interpolated_results, tau) np.savetxt(file_path, smoothed_results, fmt="%d %d %d %d %d %d %d %d %d") else: LOGGER.warning(f"No tracking results in {file_path}. Skipping...") def gsi(mot_results_folder: Path, interval: int = 20, tau: float = 10): """ Apply Gaussian Smoothed Interpolation (GSI) to all tracking result files in a folder. Parameters: mot_results_folder (Path): Path to the folder containing MOT result files. interval (int, optional): Maximum gap to perform interpolation. Defaults to 20. tau (float, optional): Smoothing parameter for Gaussian process. Defaults to 10. """ tracking_files = list(mot_results_folder.glob("MOT*.txt")) total_files = len(tracking_files) LOGGER.debug(f"GSI: Found {total_files} file(s) to process.") with concurrent.futures.ProcessPoolExecutor() as executor: futures = { executor.submit(process_file, file_path, interval, tau): file_path for file_path in tracking_files } for future in tqdm( concurrent.futures.as_completed(futures), total=total_files, desc="Processing files", ): file_path = futures[future] try: future.result() except Exception as e: LOGGER.error(f"Error processing file {file_path}: {e}") def main(): """ Parse command line arguments and run the Gaussian Smoothed Interpolation process. """ parser = argparse.ArgumentParser( description="Apply Gaussian Smoothed Interpolation (GSI) to tracking results." ) parser.add_argument( "--path", type=str, required=True, help="Path to MOT results folder" ) args = parser.parse_args() mot_results_folder = Path(args.path) gsi(mot_results_folder) if __name__ == "__main__": main() ================================================ FILE: boxmot/reid/__init__.py ================================================ ================================================ FILE: boxmot/reid/backbones/__init__.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license ================================================ FILE: boxmot/reid/backbones/clip/__init__.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license ================================================ FILE: boxmot/reid/backbones/clip/clip/__init__.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license ================================================ FILE: boxmot/reid/backbones/clip/clip/clip.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license import hashlib import os import urllib import warnings from typing import List, Union import torch from PIL import Image from torchvision.transforms import (CenterCrop, Compose, Normalize, Resize, ToTensor) from tqdm import tqdm from .model import build_model from .simple_tokenizer import SimpleTokenizer as _Tokenizer try: from torchvision.transforms import InterpolationMode BICUBIC = InterpolationMode.BICUBIC except ImportError: BICUBIC = Image.BICUBIC __all__ = ["available_models", "load", "tokenize"] _tokenizer = _Tokenizer() _MODELS = { "RN50": "https://openaipublic.azureedge.net/clip/models/afeb0e10f9e5a86da6080e35cf09123aca3b358a0c3e3b6c78a7b63bc04b6762/RN50.pt", # noqa: E501 "RN101": "https://openaipublic.azureedge.net/clip/models/8fa8567bab74a42d41c5915025a8e4538c3bdbe8804a470a72f30b0d94fab599/RN101.pt", # noqa: E501 "RN50x4": "https://openaipublic.azureedge.net/clip/models/7e526bd135e493cef0776de27d5f42653e6b4c8bf9e0f653bb11773263205fdd/RN50x4.pt", # noqa: E501 "RN50x16": "https://openaipublic.azureedge.net/clip/models/52378b407f34354e150460fe41077663dd5b39c54cd0bfd2b27167a4a06ec9aa/RN50x16.pt", # noqa: E501 "ViT-B-32": "https://openaipublic.azureedge.net/clip/models/40d365715913c9da98579312b702a82c18be219cc2a73407c4526f58eba950af/ViT-B-32.pt", # noqa: E501 "ViT-B-16": "https://openaipublic.azureedge.net/clip/models/5806e77cd80f8b59890b7e101eabd078d9fb84e6937f9e85e4ecb61988df416f/ViT-B-16.pt", # noqa: E501 } def _download(url: str, root: str = os.path.expanduser("~/.cache/clip")): os.makedirs(root, exist_ok=True) filename = os.path.basename(url) expected_sha256 = url.split("/")[-2] download_target = os.path.join(root, filename) if os.path.exists(download_target) and not os.path.isfile(download_target): raise RuntimeError(f"{download_target} exists and is not a regular file") if os.path.isfile(download_target): if ( hashlib.sha256(open(download_target, "rb").read()).hexdigest() == expected_sha256 ): return download_target else: warnings.warn( f"{download_target} exists, but the SHA256 checksum does not match; re-downloading the file" ) with urllib.request.urlopen(url) as source, open(download_target, "wb") as output: with tqdm( total=int(source.info().get("Content-Length")), ncols=80, unit="iB", unit_scale=True, ) as loop: while True: buffer = source.read(8192) if not buffer: break output.write(buffer) loop.update(len(buffer)) if ( hashlib.sha256(open(download_target, "rb").read()).hexdigest() != expected_sha256 ): raise RuntimeError( "Model has been downloaded but the SHA256 checksum does not not match" ) return download_target def _transform(n_px): return Compose( [ Resize(n_px, interpolation=BICUBIC), CenterCrop(n_px), lambda image: image.convert("RGB"), ToTensor(), Normalize( (0.48145466, 0.4578275, 0.40821073), (0.26862954, 0.26130258, 0.27577711), ), ] ) def available_models() -> List[str]: """Returns the names of available CLIP models""" return list(_MODELS.keys()) def load( name: str, device: Union[str, torch.device] = "cuda" if torch.cuda.is_available() else "cpu", jit=False, ): """Load a CLIP model Parameters ---------- name : str A model name listed by `clip.available_models()`, or the path to a model checkpoint containing the state_dict device : Union[str, torch.device] The device to put the loaded model jit : bool Whether to load the optimized JIT model or more hackable non-JIT model (default). Returns ------- model : torch.nn.Module The CLIP model preprocess : Callable[[PIL.Image], torch.Tensor] A torchvision transform that converts a PIL image into a tensor that the returned model can take as its input """ if name in _MODELS: model_path = _download(_MODELS[name]) elif os.path.isfile(name): model_path = name else: raise RuntimeError( f"Model {name} not found; available models = {available_models()}" ) try: # loading JIT archive model = torch.jit.load(model_path, map_location=device if jit else "cpu").eval() state_dict = None except RuntimeError: # loading saved state dict if jit: warnings.warn( f"File {model_path} is not a JIT archive. Loading as a state dict instead" ) jit = False state_dict = torch.load(model_path, map_location="cpu") if not jit: model = build_model(state_dict or model.state_dict()).to(device) if str(device) == "cpu": model.float() return model, _transform(model.visual.input_resolution) # patch the device names device_holder = torch.jit.trace( lambda: torch.ones([]).to(torch.device(device)), example_inputs=[] ) device_node = [ n for n in device_holder.graph.findAllNodes("prim::Constant") if "Device" in repr(n) ][-1] def patch_device(module): try: graphs = [module.graph] if hasattr(module, "graph") else [] except RuntimeError: graphs = [] if hasattr(module, "forward1"): graphs.append(module.forward1.graph) for graph in graphs: for node in graph.findAllNodes("prim::Constant"): if "value" in node.attributeNames() and str(node["value"]).startswith( "cuda" ): node.copyAttributes(device_node) model.apply(patch_device) patch_device(model.encode_image) patch_device(model.encode_text) # patch dtype to float32 on CPU if str(device) == "cpu": float_holder = torch.jit.trace( lambda: torch.ones([]).float(), example_inputs=[] ) float_input = list(float_holder.graph.findNode("aten::to").inputs())[1] float_node = float_input.node() def patch_float(module): try: graphs = [module.graph] if hasattr(module, "graph") else [] except RuntimeError: graphs = [] if hasattr(module, "forward1"): graphs.append(module.forward1.graph) for graph in graphs: for node in graph.findAllNodes("aten::to"): inputs = list(node.inputs()) for i in [1, 2]: # dtype can be the second or third argument to aten::to() if inputs[i].node()["value"] == 5: inputs[i].node().copyAttributes(float_node) model.apply(patch_float) patch_float(model.encode_image) patch_float(model.encode_text) model.float() return model, _transform(model.input_resolution.item()) def tokenize( texts: Union[str, List[str]], context_length: int = 77, truncate: bool = False ) -> torch.LongTensor: """ Returns the tokenized representation of given input string(s) Parameters ---------- texts : Union[str, List[str]] An input string or a list of input strings to tokenize context_length : int The context length to use; all CLIP models use 77 as the context length truncate: bool Whether to truncate the text in case its encoding is longer than the context length Returns ------- A two-dimensional tensor containing the resulting tokens, shape = [number of input strings, context_length] """ # import pdb # pdb.set_trace() if isinstance(texts, str): texts = [texts] # ['a photo of a face.'] sot_token = _tokenizer.encoder["<|startoftext|>"] # 49406 eot_token = _tokenizer.encoder["<|endoftext|>"] # 49407 all_tokens = [[sot_token] + _tokenizer.encode(text) + [eot_token] for text in texts] result = torch.zeros(len(all_tokens), context_length, dtype=torch.long) # 1,77 for i, tokens in enumerate(all_tokens): if len(tokens) > context_length: # context_length 77 if truncate: tokens = tokens[:context_length] tokens[-1] = eot_token else: raise RuntimeError(f"Input {texts[i]} is too long for context length {context_length}") result[i, :len(tokens)] = torch.tensor(tokens) return result ================================================ FILE: boxmot/reid/backbones/clip/clip/model.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license from collections import OrderedDict from typing import Tuple, Union import numpy as np import torch import torch.nn.functional as F from torch import nn class Bottleneck(nn.Module): expansion = 4 def __init__(self, inplanes, planes, stride=1): super().__init__() # all conv layers have stride 1. an avgpool is performed after the second convolution when stride > 1 self.conv1 = nn.Conv2d(inplanes, planes, 1, bias=False) self.bn1 = nn.BatchNorm2d(planes) self.conv2 = nn.Conv2d(planes, planes, 3, padding=1, bias=False) self.bn2 = nn.BatchNorm2d(planes) self.avgpool = nn.AvgPool2d(stride) if stride > 1 else nn.Identity() self.conv3 = nn.Conv2d(planes, planes * self.expansion, 1, bias=False) self.bn3 = nn.BatchNorm2d(planes * self.expansion) self.relu = nn.ReLU(inplace=True) self.downsample = None self.stride = stride if stride > 1 or inplanes != planes * Bottleneck.expansion: # downsampling layer is prepended with an avgpool, and the subsequent convolution has stride 1 self.downsample = nn.Sequential(OrderedDict([ ("-1", nn.AvgPool2d(stride)), ("0", nn.Conv2d(inplanes, planes * self.expansion, 1, stride=1, bias=False)), ("1", nn.BatchNorm2d(planes * self.expansion)) ])) def forward(self, x: torch.Tensor): identity = x out = self.relu(self.bn1(self.conv1(x))) out = self.relu(self.bn2(self.conv2(out))) out = self.avgpool(out) out = self.bn3(self.conv3(out)) if self.downsample is not None: identity = self.downsample(x) out += identity out = self.relu(out) return out class AttentionPool2d(nn.Module): def __init__(self, spacial_dim: int, embed_dim: int, num_heads: int, output_dim: int = None): super().__init__() self.positional_embedding = nn.Parameter( torch.randn(spacial_dim + 1, embed_dim) / embed_dim**0.5 ) self.k_proj = nn.Linear(embed_dim, embed_dim) self.q_proj = nn.Linear(embed_dim, embed_dim) self.v_proj = nn.Linear(embed_dim, embed_dim) self.c_proj = nn.Linear(embed_dim, output_dim or embed_dim) self.num_heads = num_heads def forward(self, x): # NCHW -> (HW)NC #32,2048,7,7 ->49, 32, 2048 x = x.reshape(x.shape[0], x.shape[1], x.shape[2] * x.shape[3]).permute(2, 0, 1) x = torch.cat([x.mean(dim=0, keepdim=True), x], dim=0) # (HW+1)NC 50,32,2048 x = x + self.positional_embedding[:, None, :].to(x.dtype) # (HW+1)NC x, _ = F.multi_head_attention_forward( query=x, key=x, value=x, embed_dim_to_check=x.shape[-1], num_heads=self.num_heads, q_proj_weight=self.q_proj.weight, k_proj_weight=self.k_proj.weight, v_proj_weight=self.v_proj.weight, in_proj_weight=None, in_proj_bias=torch.cat([self.q_proj.bias, self.k_proj.bias, self.v_proj.bias]), bias_k=None, bias_v=None, add_zero_attn=False, dropout_p=0, out_proj_weight=self.c_proj.weight, out_proj_bias=self.c_proj.bias, use_separate_proj_weight=True, training=self.training, need_weights=False, ) return x class ModifiedResNet(nn.Module): """ A ResNet class that is similar to torchvision's but contains the following changes: - There are now 3 "stem" convolutions as opposed to 1, with an average pool instead of a max pool. - Performs anti-aliasing strided convolutions, where an avgpool is prepended to convolutions with stride > 1 - The final pooling layer is a QKV attention instead of an average pool """ def __init__(self, layers, output_dim, heads, input_resolution=224, width=64): super().__init__() self.output_dim = output_dim self.input_resolution = input_resolution # the 3-layer stem self.conv1 = nn.Conv2d( 3, width // 2, kernel_size=3, stride=2, padding=1, bias=False ) self.bn1 = nn.BatchNorm2d(width // 2) self.conv2 = nn.Conv2d( width // 2, width // 2, kernel_size=3, padding=1, bias=False ) self.bn2 = nn.BatchNorm2d(width // 2) self.conv3 = nn.Conv2d(width // 2, width, kernel_size=3, padding=1, bias=False) self.bn3 = nn.BatchNorm2d(width) self.avgpool = nn.AvgPool2d(2) self.relu = nn.ReLU(inplace=True) # residual layers self._inplanes = width # this is a *mutable* variable used during construction self.layer1 = self._make_layer(width, layers[0]) self.layer2 = self._make_layer(width * 2, layers[1], stride=2) self.layer3 = self._make_layer(width * 4, layers[2], stride=2) self.layer4 = self._make_layer(width * 8, layers[3], stride=1) embed_dim = width * 32 # the ResNet feature dimension self.attnpool = AttentionPool2d(input_resolution, embed_dim, heads, output_dim) def _make_layer(self, planes, blocks, stride=1): layers = [Bottleneck(self._inplanes, planes, stride)] self._inplanes = planes * Bottleneck.expansion for _ in range(1, blocks): layers.append(Bottleneck(self._inplanes, planes)) return nn.Sequential(*layers) def forward(self, x): def stem(x): for conv, bn in [ (self.conv1, self.bn1), (self.conv2, self.bn2), (self.conv3, self.bn3), ]: x = self.relu(bn(conv(x))) x = self.avgpool(x) return x x = x.type(self.conv1.weight.dtype) x = stem(x) x = self.layer1(x) x = self.layer2(x) x3 = self.layer3(x) x4 = self.layer4(x3) xproj = self.attnpool(x4) return x3, x4, xproj class LayerNorm(nn.LayerNorm): """Subclass torch's LayerNorm to handle fp16.""" def forward(self, x: torch.Tensor): orig_type = x.dtype for param in self.parameters(): if param.dtype == torch.float16: param.data = param.data.to(torch.float32) ret = super().forward(x.to(torch.float32)) return ret.to(orig_type) class QuickGELU(nn.Module): def forward(self, x: torch.Tensor): return x * torch.sigmoid(1.702 * x) class ResidualAttentionBlock(nn.Module): def __init__(self, d_model: int, n_head: int, attn_mask: torch.Tensor = None): super().__init__() self.attn = nn.MultiheadAttention(d_model, n_head) self.ln_1 = LayerNorm(d_model) self.mlp = nn.Sequential(OrderedDict([ ("c_fc", nn.Linear(d_model, d_model * 4)), ("gelu", QuickGELU()), ("c_proj", nn.Linear(d_model * 4, d_model)) ])) self.ln_2 = LayerNorm(d_model) self.attn_mask = attn_mask def attention(self, x: torch.Tensor): self.attn_mask = ( self.attn_mask.to(dtype=x.dtype, device=x.device) if self.attn_mask is not None else None ) return self.attn(x, x, x, need_weights=False, attn_mask=self.attn_mask)[0] def forward(self, x: torch.Tensor): x = x + self.attention(self.ln_1(x)) x = x + self.mlp(self.ln_2(x)) return x class Transformer(nn.Module): def __init__( self, width: int, layers: int, heads: int, attn_mask: torch.Tensor = None ): super().__init__() self.width = width self.layers = layers self.resblocks = nn.Sequential( *[ResidualAttentionBlock(width, heads, attn_mask) for _ in range(layers)] ) def forward(self, x: torch.Tensor): return self.resblocks(x) class VisionTransformer(nn.Module): def __init__( self, h_resolution: int, w_resolution: int, patch_size: int, stride_size: int, width: int, layers: int, heads: int, output_dim: int, ): super().__init__() self.h_resolution = h_resolution self.w_resolution = w_resolution self.output_dim = output_dim self.conv1 = nn.Conv2d( in_channels=3, out_channels=width, kernel_size=patch_size, stride=stride_size, bias=False, ) scale = width**-0.5 self.class_embedding = nn.Parameter(scale * torch.randn(width)) self.positional_embedding = nn.Parameter( scale * torch.randn(h_resolution * w_resolution + 1, width) ) self.ln_pre = LayerNorm(width) self.transformer = Transformer(width, layers, heads) self.ln_post = LayerNorm(width) self.proj = nn.Parameter(scale * torch.randn(width, output_dim)) def forward(self, x: torch.Tensor, cv_emb=None): x = self.conv1(x) # shape = [*, width, grid, grid] x = x.reshape(x.shape[0], x.shape[1], -1) # shape = [*, width, grid ** 2] x = x.permute(0, 2, 1) # shape = [*, grid ** 2, width] x = torch.cat( [ self.class_embedding.to(x.dtype) + # shape = [*, grid ** 2 + 1, width] torch.zeros(x.shape[0], 1, x.shape[-1], dtype=x.dtype, device=x.device), x, ], dim=1, ) if cv_emb is not None: x[:, 0] = x[:, 0] + cv_emb x = x + self.positional_embedding.to(x.dtype) x = self.ln_pre(x) x = x.permute(1, 0, 2) # NLD -> LND x11 = self.transformer.resblocks[:11](x) x12 = self.transformer.resblocks[11](x11) x11 = x11.permute(1, 0, 2) # LND -> NLD x12 = x12.permute(1, 0, 2) # LND -> NLD x12 = self.ln_post(x12) if self.proj is not None: xproj = x12 @ self.proj return x11, x12, xproj class CLIP(nn.Module): def __init__(self, embed_dim: int, # vision image_resolution: int, vision_layers: Union[Tuple[int, int, int, int], int], vision_width: int, vision_patch_size: int, vision_stride_size: int, # text context_length: int, vocab_size: int, transformer_width: int, transformer_heads: int, transformer_layers: int, h_resolution: int, w_resolution: int, ): super().__init__() self.context_length = context_length if isinstance(vision_layers, (tuple, list)): vision_heads = vision_width * 32 // 64 self.visual = ModifiedResNet( layers=vision_layers, output_dim=embed_dim, heads=vision_heads, input_resolution=h_resolution * w_resolution, width=vision_width, ) else: vision_heads = vision_width // 64 self.visual = VisionTransformer( h_resolution=h_resolution, w_resolution=w_resolution, patch_size=vision_patch_size, stride_size=vision_stride_size, width=vision_width, layers=vision_layers, heads=vision_heads, output_dim=embed_dim, ) self.transformer = Transformer( width=transformer_width, layers=transformer_layers, heads=transformer_heads, attn_mask=self.build_attention_mask(), ) self.vocab_size = vocab_size self.token_embedding = nn.Embedding(vocab_size, transformer_width) self.positional_embedding = nn.Parameter( torch.empty(self.context_length, transformer_width) ) self.ln_final = LayerNorm(transformer_width) self.text_projection = nn.Parameter(torch.empty(transformer_width, embed_dim)) self.logit_scale = nn.Parameter(torch.ones([]) * np.log(1 / 0.07)) self.initialize_parameters() def initialize_parameters(self): nn.init.normal_(self.token_embedding.weight, std=0.02) nn.init.normal_(self.positional_embedding, std=0.01) if isinstance(self.visual, ModifiedResNet): if self.visual.attnpool is not None: std = self.visual.attnpool.c_proj.in_features**-0.5 nn.init.normal_(self.visual.attnpool.q_proj.weight, std=std) nn.init.normal_(self.visual.attnpool.k_proj.weight, std=std) nn.init.normal_(self.visual.attnpool.v_proj.weight, std=std) nn.init.normal_(self.visual.attnpool.c_proj.weight, std=std) for resnet_block in [ self.visual.layer1, self.visual.layer2, self.visual.layer3, self.visual.layer4, ]: for name, param in resnet_block.named_parameters(): if name.endswith("bn3.weight"): nn.init.zeros_(param) proj_std = (self.transformer.width**-0.5) * ( (2 * self.transformer.layers) ** -0.5 ) attn_std = self.transformer.width**-0.5 fc_std = (2 * self.transformer.width) ** -0.5 for block in self.transformer.resblocks: nn.init.normal_(block.attn.in_proj_weight, std=attn_std) nn.init.normal_(block.attn.out_proj.weight, std=proj_std) nn.init.normal_(block.mlp.c_fc.weight, std=fc_std) nn.init.normal_(block.mlp.c_proj.weight, std=proj_std) if self.text_projection is not None: nn.init.normal_(self.text_projection, std=self.transformer.width**-0.5) def build_attention_mask(self): # lazily create causal attention mask, with full attention between the vision tokens # pytorch uses additive attention mask; fill with -inf mask = torch.empty(self.context_length, self.context_length) mask.fill_(float("-inf")) mask.triu_(1) # zero out the lower diagonal return mask @property def dtype(self): return self.visual.conv1.weight.dtype def encode_image(self, image): return self.visual(image.type(self.dtype)) def encode_text(self, text): x = self.token_embedding(text).type(self.dtype) x = x + self.positional_embedding.type(self.dtype) x = x.permute(1, 0, 2) x = self.transformer(x) x = x.permute(1, 0, 2) x = self.ln_final(x).type(self.dtype) x = x[torch.arange(x.shape[0]), text.argmax(dim=-1)] @ self.text_projection return x def forward(self, image, text): image_features = self.encode_image(image) text_features = self.encode_text(text) # normalized features image_features = image_features / image_features.norm(dim=-1, keepdim=True) text_features = text_features / text_features.norm(dim=-1, keepdim=True) # cosine similarity as logits logit_scale = self.logit_scale.exp() logits_per_image = logit_scale * image_features @ text_features.t() logits_per_text = logit_scale * text_features @ image_features.t() # shape = [global_batch_size, global_batch_size] return logits_per_image, logits_per_text def convert_weights(model: nn.Module): """Convert applicable model parameters to fp16""" def _convert_weights_to_fp16(l): if isinstance(l, (nn.Conv1d, nn.Conv2d, nn.Linear)): l.weight.data = l.weight.data.float() if l.bias is not None: l.bias.data = l.bias.data.float() if isinstance(l, nn.MultiheadAttention): for attr in [ *[f"{s}_proj_weight" for s in ["in", "q", "k", "v"]], "in_proj_bias", "bias_k", "bias_v", ]: tensor = getattr(l, attr) if tensor is not None: tensor.data = tensor.data.float() for name in ["text_projection", "proj"]: if hasattr(l, name): attr = getattr(l, name) if attr is not None: attr.data = attr.data.float() model.apply(_convert_weights_to_fp16) def build_model( state_dict: dict, h_resolution: int, w_resolution: int, vision_stride_size: int ): vit = "visual.proj" in state_dict if vit: vision_width = state_dict["visual.conv1.weight"].shape[0] vision_layers = len( [ k for k in state_dict.keys() if k.startswith("visual.") and k.endswith(".attn.in_proj_weight") ] ) vision_patch_size = state_dict["visual.conv1.weight"].shape[-1] grid_size = round( (state_dict["visual.positional_embedding"].shape[0] - 1) ** 0.5 ) image_resolution = vision_patch_size * grid_size else: # RN50 counts: list = [ len( set( k.split(".")[2] for k in state_dict if k.startswith(f"visual.layer{b}") ) ) for b in [1, 2, 3, 4] ] vision_layers = tuple(counts) vision_width = state_dict["visual.layer1.0.conv1.weight"].shape[0] output_width = round( (state_dict["visual.attnpool.positional_embedding"].shape[0] - 1) ** 0.5 ) vision_patch_size = None assert ( output_width**2 + 1 == state_dict["visual.attnpool.positional_embedding"].shape[0] ) image_resolution = output_width * 32 embed_dim = state_dict["text_projection"].shape[1] context_length = state_dict["positional_embedding"].shape[0] # 77 (77,512) vocab_size = state_dict["token_embedding.weight"].shape[0] transformer_width = state_dict["ln_final.weight"].shape[0] transformer_heads = transformer_width // 64 transformer_layers = len( set( k.split(".")[2] for k in state_dict if k.startswith("transformer.resblocks") ) ) model = CLIP( embed_dim, image_resolution, vision_layers, vision_width, vision_patch_size, vision_stride_size, context_length, vocab_size, transformer_width, transformer_heads, transformer_layers, h_resolution, w_resolution, ) if vit: state_dict["visual.positional_embedding"] = resize_pos_embed( state_dict["visual.positional_embedding"], model.visual.positional_embedding, h_resolution, w_resolution, ) else: # RN50 state_dict["visual.attnpool.positional_embedding"] = resize_pos_embed( state_dict["visual.attnpool.positional_embedding"], model.visual.attnpool.positional_embedding, h_resolution, w_resolution, ) for key in ["input_resolution", "context_length", "vocab_size"]: if key in state_dict: del state_dict[key] convert_weights(model) model.load_state_dict(state_dict) return model.eval() import math def resize_pos_embed(posemb, posemb_new, hight, width): # Rescale the grid of position embeddings when loading from state_dict. Adapted from # https://github.com/google-research/vision_transformer/blob/00883dd691c63a6830751563748663526e811cee/vit_jax/checkpoint.py#L224 print("Resized position embedding: %s to %s", posemb.shape, posemb_new.shape) ntok_new = posemb_new.shape[0] # 129,2048 posemb_token, posemb_grid = posemb[:1], posemb[1:] ntok_new -= 1 gs_old = int(math.sqrt(len(posemb_grid))) # 14 print("Position embedding resize to height:{} width: {}".format(hight, width)) posemb_grid = posemb_grid.reshape(1, gs_old, gs_old, -1).permute(0, 3, 1, 2) posemb_grid = F.interpolate(posemb_grid, size=(hight, width), mode="bilinear") posemb_grid = posemb_grid.permute(0, 2, 3, 1).reshape(1, hight * width, -1) posemb = torch.cat([posemb_token, posemb_grid.squeeze()], dim=0) return posemb ================================================ FILE: boxmot/reid/backbones/clip/clip/simple_tokenizer.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license import gzip import html from functools import lru_cache import ftfy import regex as re from boxmot.utils import BOXMOT @lru_cache() def default_bpe(): return BOXMOT / "reid/backbones/clip/clip/bpe_simple_vocab_16e6.txt.gz" @lru_cache() def bytes_to_unicode(): """ Returns list of utf-8 byte and a corresponding list of unicode strings. The reversible bpe codes work on unicode strings. This means you need a large # of unicode characters in your vocab if you want to avoid UNKs. When you're at something like a 10B token dataset you end up needing around 5K for decent coverage. This is a signficant percentage of your normal, say, 32K bpe vocab. To avoid that, we want lookup tables between utf-8 bytes and unicode strings. And avoids mapping to whitespace/control characters the bpe code barfs on. """ bs = ( list(range(ord("!"), ord("~") + 1)) + list(range(ord("¡"), ord("¬") + 1)) + list(range(ord("®"), ord("ÿ") + 1)) ) cs = bs[:] n = 0 for b in range(2**8): if b not in bs: bs.append(b) cs.append(2**8 + n) n += 1 cs = [chr(n) for n in cs] return dict(zip(bs, cs)) def get_pairs(word): """Return set of symbol pairs in a word. Word is represented as tuple of symbols (symbols being variable-length strings). """ pairs = set() prev_char = word[0] for char in word[1:]: pairs.add((prev_char, char)) prev_char = char return pairs def basic_clean(text): text = ftfy.fix_text(text) text = html.unescape(html.unescape(text)) return text.strip() def whitespace_clean(text): text = re.sub(r"\s+", " ", text) text = text.strip() return text class SimpleTokenizer(object): def __init__(self, bpe_path: str = default_bpe()): self.byte_encoder = bytes_to_unicode() self.byte_decoder = {v: k for k, v in self.byte_encoder.items()} merges = gzip.open(bpe_path).read().decode("utf-8").split("\n") merges = merges[1 : 49152 - 256 - 2 + 1] merges = [tuple(merge.split()) for merge in merges] vocab = list(bytes_to_unicode().values()) vocab = vocab + [v + "" for v in vocab] for merge in merges: vocab.append("".join(merge)) vocab.extend(["<|startoftext|>", "<|endoftext|>"]) self.encoder = dict(zip(vocab, range(len(vocab)))) self.decoder = {v: k for k, v in self.encoder.items()} self.bpe_ranks = dict(zip(merges, range(len(merges)))) self.cache = { "<|startoftext|>": "<|startoftext|>", "<|endoftext|>": "<|endoftext|>", } self.pat = re.compile( r"""<\|startoftext\|>|<\|endoftext\|>|'s|'t|'re|'ve|'m|'ll|'d|[\p{L}]+|[\p{N}]|[^\s\p{L}\p{N}]+""", re.IGNORECASE, ) # noqa: E501 def bpe(self, token): if token in self.cache: return self.cache[token] word = tuple(token[:-1]) + (token[-1] + "",) pairs = get_pairs(word) if not pairs: return token + "" while True: bigram = min(pairs, key=lambda pair: self.bpe_ranks.get(pair, float("inf"))) if bigram not in self.bpe_ranks: break first, second = bigram new_word = [] i = 0 while i < len(word): try: j = word.index(first, i) new_word.extend(word[i:j]) i = j except Exception: new_word.extend(word[i:]) break if word[i] == first and i < len(word) - 1 and word[i + 1] == second: new_word.append(first + second) i += 2 else: new_word.append(word[i]) i += 1 new_word = tuple(new_word) word = new_word if len(word) == 1: break else: pairs = get_pairs(word) word = " ".join(word) self.cache[token] = word return word def encode(self, text): bpe_tokens = [] text = whitespace_clean(basic_clean(text)).lower() for token in re.findall(self.pat, text): token = "".join(self.byte_encoder[b] for b in token.encode("utf-8")) bpe_tokens.extend( self.encoder[bpe_token] for bpe_token in self.bpe(token).split(" ") ) return bpe_tokens def decode(self, tokens): text = "".join([self.decoder[token] for token in tokens]) text = ( bytearray([self.byte_decoder[c] for c in text]) .decode("utf-8", errors="replace") .replace("", " ") ) return text ================================================ FILE: boxmot/reid/backbones/clip/config/__init__.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license ================================================ FILE: boxmot/reid/backbones/clip/config/defaults.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license from yacs.config import CfgNode as CN # ----------------------------------------------------------------------------- # Convention about Training / Test specific parameters # ----------------------------------------------------------------------------- # Whenever an argument can be either used for training or for testing, the # corresponding name will be post-fixed by a _TRAIN for a training parameter, # ----------------------------------------------------------------------------- # Config definition # ----------------------------------------------------------------------------- _C = CN() # ----------------------------------------------------------------------------- # MODEL # ----------------------------------------------------------------------------- _C.MODEL = CN() # Using cuda or cpu for training _C.MODEL.DEVICE = "cuda" # ID number of GPU _C.MODEL.DEVICE_ID = "0" # Name of backbone _C.MODEL.NAME = "ViT-B-16" # Last stride of backbone _C.MODEL.LAST_STRIDE = 1 # Path to pretrained model of backbone _C.MODEL.PRETRAIN_PATH = "/home/mikel.brostrom/boxmot/clip_market1501.pt" # Use ImageNet pretrained model to initialize backbone or use self trained model to initialize the whole model # Options: 'imagenet' , 'self' , 'finetune' _C.MODEL.PRETRAIN_CHOICE = "imagenet" # If train with BNNeck, options: 'bnneck' or 'no' _C.MODEL.NECK = "bnneck" # If train loss include center loss, options: 'yes' or 'no'. Loss with center loss has different optimizer configuration _C.MODEL.IF_WITH_CENTER = "no" _C.MODEL.ID_LOSS_TYPE = "softmax" _C.MODEL.ID_LOSS_WEIGHT = 1.0 _C.MODEL.TRIPLET_LOSS_WEIGHT = 1.0 _C.MODEL.I2T_LOSS_WEIGHT = 1.0 _C.MODEL.METRIC_LOSS_TYPE = "triplet" # If train with multi-gpu ddp mode, options: 'True', 'False' _C.MODEL.DIST_TRAIN = False # If train with soft triplet loss, options: 'True', 'False' _C.MODEL.NO_MARGIN = False # If train with label smooth, options: 'on', 'off' _C.MODEL.IF_LABELSMOOTH = "on" # If train with arcface loss, options: 'True', 'False' _C.MODEL.COS_LAYER = False # Transformer setting _C.MODEL.DROP_PATH = 0.1 _C.MODEL.DROP_OUT = 0.0 _C.MODEL.ATT_DROP_RATE = 0.0 _C.MODEL.TRANSFORMER_TYPE = "None" _C.MODEL.STRIDE_SIZE = [16, 16] # SIE Parameter _C.MODEL.SIE_COE = 3.0 _C.MODEL.SIE_CAMERA = False _C.MODEL.SIE_VIEW = False # ----------------------------------------------------------------------------- # INPUT # ----------------------------------------------------------------------------- _C.INPUT = CN() # Size of the image during training _C.INPUT.SIZE_TRAIN = [256, 128] # Size of the image during test _C.INPUT.SIZE_TEST = [256, 128] # Random probability for image horizontal flip _C.INPUT.PROB = 0.5 # Random probability for random erasing _C.INPUT.RE_PROB = 0.5 # Values to be used for image normalization _C.INPUT.PIXEL_MEAN = [0.485, 0.456, 0.406] # Values to be used for image normalization _C.INPUT.PIXEL_STD = [0.229, 0.224, 0.225] # Value of padding size _C.INPUT.PADDING = 10 # ----------------------------------------------------------------------------- # Dataset # ----------------------------------------------------------------------------- _C.DATASETS = CN() # List of the dataset names for training, as present in paths_catalog.py _C.DATASETS.NAMES = "market1501" # Root directory where datasets should be used (and downloaded if not found) _C.DATASETS.ROOT_DIR = "../data" # ----------------------------------------------------------------------------- # DataLoader # ----------------------------------------------------------------------------- _C.DATALOADER = CN() # Number of data loading threads _C.DATALOADER.NUM_WORKERS = 8 # Sampler for data loading _C.DATALOADER.SAMPLER = "softmax" # Number of instance for one batch _C.DATALOADER.NUM_INSTANCE = 16 # ---------------------------------------------------------------------------- # # Solver _C.SOLVER = CN() _C.SOLVER.SEED = 1234 _C.SOLVER.MARGIN = 0.3 # stage1 # ---------------------------------------------------------------------------- # # Name of optimizer _C.SOLVER.STAGE1 = CN() _C.SOLVER.STAGE1.IMS_PER_BATCH = 64 _C.SOLVER.STAGE1.OPTIMIZER_NAME = "Adam" # Number of max epoches _C.SOLVER.STAGE1.MAX_EPOCHS = 100 # Base learning rate _C.SOLVER.STAGE1.BASE_LR = 3e-4 # Momentum _C.SOLVER.STAGE1.MOMENTUM = 0.9 # Settings of weight decay _C.SOLVER.STAGE1.WEIGHT_DECAY = 0.0005 _C.SOLVER.STAGE1.WEIGHT_DECAY_BIAS = 0.0005 # warm up factor _C.SOLVER.STAGE1.WARMUP_FACTOR = 0.01 # warm up epochs _C.SOLVER.STAGE1.WARMUP_EPOCHS = 5 _C.SOLVER.STAGE1.WARMUP_LR_INIT = 0.01 _C.SOLVER.STAGE1.LR_MIN = 0.000016 _C.SOLVER.STAGE1.WARMUP_ITERS = 500 # method of warm up, option: 'constant','linear' _C.SOLVER.STAGE1.WARMUP_METHOD = "linear" _C.SOLVER.STAGE1.COSINE_MARGIN = 0.5 _C.SOLVER.STAGE1.COSINE_SCALE = 30 # epoch number of saving checkpoints _C.SOLVER.STAGE1.CHECKPOINT_PERIOD = 10 # iteration of display training log _C.SOLVER.STAGE1.LOG_PERIOD = 100 # epoch number of validation # Number of images per batch # This is global, so if we have 8 GPUs and IMS_PER_BATCH = 128, each GPU will # contain 16 images per batch # _C.SOLVER.STAGE1.IMS_PER_BATCH = 64 _C.SOLVER.STAGE1.EVAL_PERIOD = 10 # ---------------------------------------------------------------------------- # # Solver # stage1 # ---------------------------------------------------------------------------- # _C.SOLVER.STAGE2 = CN() _C.SOLVER.STAGE2.IMS_PER_BATCH = 64 # Name of optimizer _C.SOLVER.STAGE2.OPTIMIZER_NAME = "Adam" # Number of max epoches _C.SOLVER.STAGE2.MAX_EPOCHS = 100 # Base learning rate _C.SOLVER.STAGE2.BASE_LR = 3e-4 # Whether using larger learning rate for fc layer _C.SOLVER.STAGE2.LARGE_FC_LR = False # Factor of learning bias _C.SOLVER.STAGE2.BIAS_LR_FACTOR = 1 # Momentum _C.SOLVER.STAGE2.MOMENTUM = 0.9 # Margin of triplet loss # Learning rate of SGD to learn the centers of center loss _C.SOLVER.STAGE2.CENTER_LR = 0.5 # Balanced weight of center loss _C.SOLVER.STAGE2.CENTER_LOSS_WEIGHT = 0.0005 # Settings of weight decay _C.SOLVER.STAGE2.WEIGHT_DECAY = 0.0005 _C.SOLVER.STAGE2.WEIGHT_DECAY_BIAS = 0.0005 # decay rate of learning rate _C.SOLVER.STAGE2.GAMMA = 0.1 # decay step of learning rate _C.SOLVER.STAGE2.STEPS = (40, 70) # warm up factor _C.SOLVER.STAGE2.WARMUP_FACTOR = 0.01 # warm up epochs _C.SOLVER.STAGE2.WARMUP_EPOCHS = 5 _C.SOLVER.STAGE2.WARMUP_LR_INIT = 0.01 _C.SOLVER.STAGE2.LR_MIN = 0.000016 _C.SOLVER.STAGE2.WARMUP_ITERS = 500 # method of warm up, option: 'constant','linear' _C.SOLVER.STAGE2.WARMUP_METHOD = "linear" _C.SOLVER.STAGE2.COSINE_MARGIN = 0.5 _C.SOLVER.STAGE2.COSINE_SCALE = 30 # epoch number of saving checkpoints _C.SOLVER.STAGE2.CHECKPOINT_PERIOD = 10 # iteration of display training log _C.SOLVER.STAGE2.LOG_PERIOD = 100 # epoch number of validation _C.SOLVER.STAGE2.EVAL_PERIOD = 10 # Number of images per batch # This is global, so if we have 8 GPUs and IMS_PER_BATCH = 128, each GPU will # contain 16 images per batch # ---------------------------------------------------------------------------- # # TEST # ---------------------------------------------------------------------------- # _C.TEST = CN() # Number of images per batch during test _C.TEST.IMS_PER_BATCH = 128 # If test with re-ranking, options: 'True','False' _C.TEST.RE_RANKING = False # Path to trained model _C.TEST.WEIGHT = "" # Which feature of BNNeck to be used for test, before or after BNNneck, options: 'before' or 'after' _C.TEST.NECK_FEAT = "after" # Whether feature is nomalized before test, if yes, it is equivalent to cosine distance _C.TEST.FEAT_NORM = "yes" # Name for saving the distmat after testing. _C.TEST.DIST_MAT = "dist_mat.npy" # Whether calculate the eval score option: 'True', 'False' _C.TEST.EVAL = False # ---------------------------------------------------------------------------- # # Misc options # ---------------------------------------------------------------------------- # # Path to checkpoint and saved log of trained model _C.OUTPUT_DIR = "" ================================================ FILE: boxmot/reid/backbones/clip/config/defaults_base.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license from yacs.config import CfgNode as CN # ----------------------------------------------------------------------------- # Convention about Training / Test specific parameters # ----------------------------------------------------------------------------- # Whenever an argument can be either used for training or for testing, the # corresponding name will be post-fixed by a _TRAIN for a training parameter, # ----------------------------------------------------------------------------- # Config definition # ----------------------------------------------------------------------------- _C = CN() # ----------------------------------------------------------------------------- # MODEL # ----------------------------------------------------------------------------- _C.MODEL = CN() # Using cuda or cpu for training _C.MODEL.DEVICE = "cuda" # ID number of GPU _C.MODEL.DEVICE_ID = "0" # Name of backbone _C.MODEL.NAME = "resnet50" # Last stride of backbone _C.MODEL.LAST_STRIDE = 1 # Path to pretrained model of backbone _C.MODEL.PRETRAIN_PATH = "" # Use ImageNet pretrained model to initialize backbone or use self trained model to initialize the whole model # Options: 'imagenet' , 'self' , 'finetune' _C.MODEL.PRETRAIN_CHOICE = "imagenet" # If train with BNNeck, options: 'bnneck' or 'no' _C.MODEL.NECK = "bnneck" # If train loss include center loss, options: 'yes' or 'no'. Loss with center loss has different optimizer configuration _C.MODEL.IF_WITH_CENTER = "no" _C.MODEL.ID_LOSS_TYPE = "softmax" _C.MODEL.ID_LOSS_WEIGHT = 1.0 _C.MODEL.TRIPLET_LOSS_WEIGHT = 1.0 _C.MODEL.I2T_LOSS_WEIGHT = 1.0 _C.MODEL.METRIC_LOSS_TYPE = "triplet" # If train with multi-gpu ddp mode, options: 'True', 'False' _C.MODEL.DIST_TRAIN = False # If train with soft triplet loss, options: 'True', 'False' _C.MODEL.NO_MARGIN = False # If train with label smooth, options: 'on', 'off' _C.MODEL.IF_LABELSMOOTH = "on" # If train with arcface loss, options: 'True', 'False' _C.MODEL.COS_LAYER = False # Transformer setting _C.MODEL.DROP_PATH = 0.1 _C.MODEL.DROP_OUT = 0.0 _C.MODEL.ATT_DROP_RATE = 0.0 _C.MODEL.TRANSFORMER_TYPE = "None" _C.MODEL.STRIDE_SIZE = [16, 16] # SIE Parameter _C.MODEL.SIE_COE = 3.0 _C.MODEL.SIE_CAMERA = False _C.MODEL.SIE_VIEW = False # ----------------------------------------------------------------------------- # INPUT # ----------------------------------------------------------------------------- _C.INPUT = CN() # Size of the image during training _C.INPUT.SIZE_TRAIN = [384, 128] # Size of the image during test _C.INPUT.SIZE_TEST = [384, 128] # Random probability for image horizontal flip _C.INPUT.PROB = 0.5 # Random probability for random erasing _C.INPUT.RE_PROB = 0.5 # Values to be used for image normalization _C.INPUT.PIXEL_MEAN = [0.485, 0.456, 0.406] # Values to be used for image normalization _C.INPUT.PIXEL_STD = [0.229, 0.224, 0.225] # Value of padding size _C.INPUT.PADDING = 10 # ----------------------------------------------------------------------------- # Dataset # ----------------------------------------------------------------------------- _C.DATASETS = CN() # List of the dataset names for training, as present in paths_catalog.py _C.DATASETS.NAMES = "market1501" # Root directory where datasets should be used (and downloaded if not found) _C.DATASETS.ROOT_DIR = "../data" # ----------------------------------------------------------------------------- # DataLoader # ----------------------------------------------------------------------------- _C.DATALOADER = CN() # Number of data loading threads _C.DATALOADER.NUM_WORKERS = 8 # Sampler for data loading _C.DATALOADER.SAMPLER = "softmax" # Number of instance for one batch _C.DATALOADER.NUM_INSTANCE = 16 # ---------------------------------------------------------------------------- # # Solver # ---------------------------------------------------------------------------- # _C.SOLVER = CN() # Name of optimizer _C.SOLVER.OPTIMIZER_NAME = "Adam" # Number of max epoches _C.SOLVER.MAX_EPOCHS = 100 # Base learning rate _C.SOLVER.BASE_LR = 3e-4 # Whether using larger learning rate for fc layer _C.SOLVER.LARGE_FC_LR = False # Factor of learning bias _C.SOLVER.BIAS_LR_FACTOR = 1 # Factor of learning bias _C.SOLVER.SEED = 1234 # Momentum _C.SOLVER.MOMENTUM = 0.9 # Margin of triplet loss _C.SOLVER.MARGIN = 0.3 # Learning rate of SGD to learn the centers of center loss _C.SOLVER.CENTER_LR = 0.5 # Balanced weight of center loss _C.SOLVER.CENTER_LOSS_WEIGHT = 0.0005 # Settings of weight decay _C.SOLVER.WEIGHT_DECAY = 0.0005 _C.SOLVER.WEIGHT_DECAY_BIAS = 0.0005 # decay rate of learning rate _C.SOLVER.GAMMA = 0.1 # decay step of learning rate _C.SOLVER.STEPS = (40, 70) # warm up factor _C.SOLVER.WARMUP_FACTOR = 0.01 # warm up epochs _C.SOLVER.WARMUP_EPOCHS = 5 _C.SOLVER.WARMUP_LR_INIT = 0.01 _C.SOLVER.LR_MIN = 0.000016 _C.SOLVER.WARMUP_ITERS = 500 # method of warm up, option: 'constant','linear' _C.SOLVER.WARMUP_METHOD = "linear" _C.SOLVER.COSINE_MARGIN = 0.5 _C.SOLVER.COSINE_SCALE = 30 # epoch number of saving checkpoints _C.SOLVER.CHECKPOINT_PERIOD = 10 # iteration of display training log _C.SOLVER.LOG_PERIOD = 100 # epoch number of validation _C.SOLVER.EVAL_PERIOD = 10 # Number of images per batch # This is global, so if we have 8 GPUs and IMS_PER_BATCH = 128, each GPU will # contain 16 images per batch _C.SOLVER.IMS_PER_BATCH = 64 # ---------------------------------------------------------------------------- # # TEST # ---------------------------------------------------------------------------- # _C.TEST = CN() # Number of images per batch during test _C.TEST.IMS_PER_BATCH = 128 # If test with re-ranking, options: 'True','False' _C.TEST.RE_RANKING = False # Path to trained model _C.TEST.WEIGHT = "" # Which feature of BNNeck to be used for test, before or after BNNneck, options: 'before' or 'after' _C.TEST.NECK_FEAT = "after" # Whether feature is nomalized before test, if yes, it is equivalent to cosine distance _C.TEST.FEAT_NORM = "yes" # Name for saving the distmat after testing. _C.TEST.DIST_MAT = "dist_mat.npy" # Whether calculate the eval score option: 'True', 'False' _C.TEST.EVAL = False # ---------------------------------------------------------------------------- # # Misc options # ---------------------------------------------------------------------------- # # Path to checkpoint and saved log of trained model _C.OUTPUT_DIR = "" ================================================ FILE: boxmot/reid/backbones/clip/make_model.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license import torch import torch.nn as nn from .clip.simple_tokenizer import SimpleTokenizer as _Tokenizer _tokenizer = _Tokenizer() def weights_init_kaiming(m): classname = m.__class__.__name__ if classname.find("Linear") != -1: nn.init.kaiming_normal_(m.weight, a=0, mode="fan_out") nn.init.constant_(m.bias, 0.0) elif classname.find("Conv") != -1: nn.init.kaiming_normal_(m.weight, a=0, mode="fan_in") if m.bias is not None: nn.init.constant_(m.bias, 0.0) elif classname.find("BatchNorm") != -1: if m.affine: nn.init.constant_(m.weight, 1.0) nn.init.constant_(m.bias, 0.0) def weights_init_classifier(m): classname = m.__class__.__name__ if classname.find("Linear") != -1: nn.init.normal_(m.weight, std=0.001) if m.bias: nn.init.constant_(m.bias, 0.0) class build_transformer(nn.Module): def __init__(self, num_classes, camera_num, view_num, cfg): super(build_transformer, self).__init__() self.model_name = cfg.MODEL.NAME self.cos_layer = cfg.MODEL.COS_LAYER self.neck = cfg.MODEL.NECK self.neck_feat = cfg.TEST.NECK_FEAT if self.model_name == "ViT-B-16": self.in_planes = 768 self.in_planes_proj = 512 elif self.model_name == "RN50": self.in_planes = 2048 self.in_planes_proj = 1024 self.num_classes = num_classes self.camera_num = camera_num self.view_num = view_num self.sie_coe = cfg.MODEL.SIE_COE self.classifier = nn.Linear(self.in_planes, self.num_classes, bias=False) self.classifier.apply(weights_init_classifier) self.classifier_proj = nn.Linear(self.in_planes_proj, self.num_classes, bias=False) self.classifier_proj.apply(weights_init_classifier) self.bottleneck = nn.BatchNorm1d(self.in_planes) self.bottleneck.bias.requires_grad_(False) self.bottleneck.apply(weights_init_kaiming) self.bottleneck_proj = nn.BatchNorm1d(self.in_planes_proj) self.bottleneck_proj.bias.requires_grad_(False) self.bottleneck_proj.apply(weights_init_kaiming) self.h_resolution = int((cfg.INPUT.SIZE_TRAIN[0] - 16) // cfg.MODEL.STRIDE_SIZE[0] + 1) self.w_resolution = int((cfg.INPUT.SIZE_TRAIN[1] - 16) // cfg.MODEL.STRIDE_SIZE[1] + 1) self.vision_stride_size = cfg.MODEL.STRIDE_SIZE[0] clip_model = load_clip_to_cpu( self.model_name, self.h_resolution, self.w_resolution, self.vision_stride_size, ) self.image_encoder = clip_model.visual # if cfg.MODEL.SIE_CAMERA and cfg.MODEL.SIE_VIEW: # self.cv_embed = nn.Parameter(torch.zeros(camera_num * view_num, self.in_planes)) # trunc_normal_(self.cv_embed, std=.02) # print('camera number is : {}'.format(camera_num)) # elif cfg.MODEL.SIE_CAMERA: # self.cv_embed = nn.Parameter(torch.zeros(camera_num, self.in_planes)) # trunc_normal_(self.cv_embed, std=.02) # print('camera number is : {}'.format(camera_num)) # elif cfg.MODEL.SIE_VIEW: # self.cv_embed = nn.Parameter(torch.zeros(view_num, self.in_planes)) # trunc_normal_(self.cv_embed, std=.02) # print('camera number is : {}'.format(view_num)) def forward(self, x, label=None, cam_label=None, view_label=None): if self.model_name == "RN50": image_features_last, image_features, image_features_proj = ( self.image_encoder(x) ) # B,512 B,128,512 img_feature_last = nn.functional.avg_pool2d( image_features_last, image_features_last.shape[2:4] ).view(x.shape[0], -1) img_feature = nn.functional.avg_pool2d( image_features, image_features.shape[2:4] ).view(x.shape[0], -1) img_feature_proj = image_features_proj[0] elif self.model_name == "ViT-B-16": if cam_label is not None and view_label is not None: cv_embed = ( self.sie_coe * self.cv_embed[cam_label * self.view_num + view_label] ) elif cam_label is not None: cv_embed = self.sie_coe * self.cv_embed[cam_label] elif view_label is not None: cv_embed = self.sie_coe * self.cv_embed[view_label] else: cv_embed = None # B,512 B,128,512 image_features_last, image_features, image_features_proj = ( self.image_encoder(x, cv_embed) ) img_feature_last = image_features_last[:, 0] img_feature = image_features[:, 0] img_feature_proj = image_features_proj[:, 0] feat = self.bottleneck(img_feature) feat_proj = self.bottleneck_proj(img_feature_proj) if self.training: cls_score = self.classifier(feat) cls_score_proj = self.classifier_proj(feat_proj) return [cls_score, cls_score_proj], [ img_feature_last, img_feature, img_feature_proj, ] else: if self.neck_feat == "after": # print("Test with feature after BN") return torch.cat([feat, feat_proj], dim=1) else: return torch.cat([img_feature, img_feature_proj], dim=1) def load_param(self, trained_path): param_dict = torch.load(trained_path, map_location=torch.device("cpu")) for i in self.state_dict(): self.state_dict()[i.replace("module.", "")].copy_(param_dict[i]) # print('Loading pretrained model from {}'.format('/home/mikel.brostrom/boxmot/clip_market1501.pt')) def load_param_finetune(self, model_path): param_dict = torch.load(model_path) for i in param_dict: self.state_dict()[i].copy_(param_dict[i]) # print('Loading pretrained model for finetuning from {}'.format(model_path)) def make_model(cfg, num_class, camera_num, view_num): model = build_transformer(num_class, camera_num, view_num, cfg) return model from .clip import clip def load_clip_to_cpu(backbone_name, h_resolution, w_resolution, vision_stride_size): url = clip._MODELS[backbone_name] model_path = clip._download(url) try: # loading JIT archive model = torch.jit.load(model_path, map_location="cpu").eval() state_dict = None except RuntimeError: state_dict = torch.load(model_path, map_location="cpu") model = clip.build_model( state_dict or model.state_dict(), h_resolution, w_resolution, vision_stride_size ) return model ================================================ FILE: boxmot/reid/backbones/clip/make_model_clipreid.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license import torch import torch.nn as nn from .clip.simple_tokenizer import SimpleTokenizer as _Tokenizer _tokenizer = _Tokenizer() def weights_init_kaiming(m): classname = m.__class__.__name__ if classname.find("Linear") != -1: nn.init.kaiming_normal_(m.weight, a=0, mode="fan_out") nn.init.constant_(m.bias, 0.0) elif classname.find("Conv") != -1: nn.init.kaiming_normal_(m.weight, a=0, mode="fan_in") if m.bias is not None: nn.init.constant_(m.bias, 0.0) elif classname.find("BatchNorm") != -1: if m.affine: nn.init.constant_(m.weight, 1.0) nn.init.constant_(m.bias, 0.0) def weights_init_classifier(m): classname = m.__class__.__name__ if classname.find("Linear") != -1: nn.init.normal_(m.weight, std=0.001) if m.bias: nn.init.constant_(m.bias, 0.0) class TextEncoder(nn.Module): def __init__(self, clip_model): super().__init__() self.transformer = clip_model.transformer self.positional_embedding = clip_model.positional_embedding self.ln_final = clip_model.ln_final self.text_projection = clip_model.text_projection self.dtype = clip_model.dtype def forward(self, prompts, tokenized_prompts): x = prompts + self.positional_embedding.type(self.dtype) x = x.permute(1, 0, 2) # NLD -> LND x = self.transformer(x) x = x.permute(1, 0, 2) # LND -> NLD x = self.ln_final(x).type(self.dtype) # x.shape = [batch_size, n_ctx, transformer.width] # take features from the eot embedding (eot_token is the highest number in each sequence) x = x[torch.arange(x.shape[0]), tokenized_prompts.argmax(dim=-1)] @ self.text_projection return x class build_transformer(nn.Module): def __init__(self, num_classes, camera_num, view_num, cfg): super(build_transformer, self).__init__() self.model_name = cfg.MODEL.NAME self.cos_layer = cfg.MODEL.COS_LAYER self.neck = cfg.MODEL.NECK self.neck_feat = cfg.TEST.NECK_FEAT if self.model_name == "ViT-B-16": self.in_planes = 768 self.in_planes_proj = 512 elif self.model_name == "RN50": self.in_planes = 2048 self.in_planes_proj = 1024 self.num_classes = num_classes self.camera_num = camera_num self.view_num = view_num self.sie_coe = cfg.MODEL.SIE_COE self.classifier = nn.Linear(self.in_planes, self.num_classes, bias=False) self.classifier.apply(weights_init_classifier) self.classifier_proj = nn.Linear( self.in_planes_proj, self.num_classes, bias=False ) self.classifier_proj.apply(weights_init_classifier) self.bottleneck = nn.BatchNorm1d(self.in_planes) self.bottleneck.bias.requires_grad_(False) self.bottleneck.apply(weights_init_kaiming) self.bottleneck_proj = nn.BatchNorm1d(self.in_planes_proj) self.bottleneck_proj.bias.requires_grad_(False) self.bottleneck_proj.apply(weights_init_kaiming) self.h_resolution = int((cfg.INPUT.SIZE_TRAIN[0] - 16) // cfg.MODEL.STRIDE_SIZE[0] + 1) self.w_resolution = int((cfg.INPUT.SIZE_TRAIN[1] - 16) // cfg.MODEL.STRIDE_SIZE[1] + 1) self.vision_stride_size = cfg.MODEL.STRIDE_SIZE[0] clip_model = load_clip_to_cpu( self.model_name, self.h_resolution, self.w_resolution, self.vision_stride_size, ) self.image_encoder = clip_model.visual # if cfg.MODEL.SIE_CAMERA and cfg.MODEL.SIE_VIEW: # self.cv_embed = nn.Parameter(torch.zeros(camera_num * view_num, self.in_planes)) # trunc_normal_(self.cv_embed, std=.02) # print('camera number is : {}'.format(camera_num)) # elif cfg.MODEL.SIE_CAMERA: # self.cv_embed = nn.Parameter(torch.zeros(camera_num, self.in_planes)) # trunc_normal_(self.cv_embed, std=.02) # print('camera number is : {}'.format(camera_num)) # elif cfg.MODEL.SIE_VIEW: # self.cv_embed = nn.Parameter(torch.zeros(view_num, self.in_planes)) # trunc_normal_(self.cv_embed, std=.02) # print('camera number is : {}'.format(view_num)) dataset_name = cfg.DATASETS.NAMES self.prompt_learner = PromptLearner( num_classes, dataset_name, clip_model.dtype, clip_model.token_embedding ) self.text_encoder = TextEncoder(clip_model) def forward( self, x=None, label=None, get_image=False, get_text=False, cam_label=None, view_label=None, ): if get_text is True: prompts = self.prompt_learner(label) text_features = self.text_encoder( prompts, self.prompt_learner.tokenized_prompts ) return text_features if get_image is True: image_features_last, image_features, image_features_proj = self.image_encoder(x) if self.model_name == "RN50": return image_features_proj[0] elif self.model_name == "ViT-B-16": return image_features_proj[:, 0] if self.model_name == "RN50": image_features_last, image_features, image_features_proj = ( self.image_encoder(x) ) img_feature_last = nn.functional.avg_pool2d( image_features_last, image_features_last.shape[2:4] ).view(x.shape[0], -1) img_feature = nn.functional.avg_pool2d( image_features, image_features.shape[2:4] ).view(x.shape[0], -1) img_feature_proj = image_features_proj[0] elif self.model_name == "ViT-B-16": if cam_label is not None and view_label is not None: cv_embed = ( self.sie_coe * self.cv_embed[cam_label * self.view_num + view_label] ) elif cam_label is not None: cv_embed = self.sie_coe * self.cv_embed[cam_label] elif view_label is not None: cv_embed = self.sie_coe * self.cv_embed[view_label] else: cv_embed = None image_features_last, image_features, image_features_proj = self.image_encoder(x, cv_embed) img_feature_last = image_features_last[:, 0] img_feature = image_features[:, 0] img_feature_proj = image_features_proj[:, 0] feat = self.bottleneck(img_feature) feat_proj = self.bottleneck_proj(img_feature_proj) if self.training: cls_score = self.classifier(feat) cls_score_proj = self.classifier_proj(feat_proj) return ( [cls_score, cls_score_proj], [img_feature_last, img_feature, img_feature_proj], img_feature_proj, ) else: if self.neck_feat == "after": # print("Test with feature after BN") return torch.cat([feat, feat_proj], dim=1) else: return torch.cat([img_feature, img_feature_proj], dim=1) def load_param(self, trained_path): param_dict = torch.load(trained_path) for i in param_dict: self.state_dict()[i.replace("module.", "")].copy_(param_dict[i]) print("Loaded pretrained model from {}".format(trained_path)) def load_param_finetune(self, model_path): param_dict = torch.load(model_path) for i in param_dict: self.state_dict()[i].copy_(param_dict[i]) print("Loading pretrained model for finetuning from {}".format(model_path)) def make_model(cfg, num_class, camera_num, view_num): model = build_transformer(num_class, camera_num, view_num, cfg) return model from .clip import clip def load_clip_to_cpu(backbone_name, h_resolution, w_resolution, vision_stride_size): url = clip._MODELS[backbone_name] model_path = clip._download(url) try: # loading JIT archive model = torch.jit.load(model_path, map_location="cpu").eval() state_dict = None except RuntimeError: state_dict = torch.load(model_path, map_location="cpu") model = clip.build_model( state_dict or model.state_dict(), h_resolution, w_resolution, vision_stride_size ) return model class PromptLearner(nn.Module): def __init__(self, num_class, dataset_name, dtype, token_embedding): super().__init__() if dataset_name == "VehicleID" or dataset_name == "veri": ctx_init = "A photo of a X X X X vehicle." else: ctx_init = "A photo of a X X X X person." ctx_dim = 512 # use given words to initialize context vectors ctx_init = ctx_init.replace("_", " ") n_ctx = 4 tokenized_prompts = clip.tokenize(ctx_init).cuda() with torch.no_grad(): embedding = token_embedding(tokenized_prompts).type(dtype) self.tokenized_prompts = tokenized_prompts # torch.Tensor n_cls_ctx = 4 cls_vectors = torch.empty(num_class, n_cls_ctx, ctx_dim, dtype=dtype) nn.init.normal_(cls_vectors, std=0.02) self.cls_ctx = nn.Parameter(cls_vectors) # These token vectors will be saved when in save_model(), # but they should be ignored in load_model() as we want to use # those computed using the current class names self.register_buffer("token_prefix", embedding[:, : n_ctx + 1, :]) self.register_buffer("token_suffix", embedding[:, n_ctx + 1 + n_cls_ctx :, :]) self.num_class = num_class self.n_cls_ctx = n_cls_ctx def forward(self, label): cls_ctx = self.cls_ctx[label] b = label.shape[0] prefix = self.token_prefix.expand(b, -1, -1) suffix = self.token_suffix.expand(b, -1, -1) prompts = torch.cat( [ prefix, # (n_cls, 1, dim) cls_ctx, # (n_cls, n_ctx, dim) suffix, # (n_cls, *, dim) ], dim=1, ) return prompts ================================================ FILE: boxmot/reid/backbones/hacnn.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license from __future__ import absolute_import, division import torch from torch import nn from torch.nn import functional as F __all__ = ["HACNN"] class ConvBlock(nn.Module): """Basic convolutional block. convolution + batch normalization + relu. Args: in_c (int): number of input channels. out_c (int): number of output channels. k (int or tuple): kernel size. s (int or tuple): stride. p (int or tuple): padding. """ def __init__(self, in_c, out_c, k, s=1, p=0): super(ConvBlock, self).__init__() self.conv = nn.Conv2d(in_c, out_c, k, stride=s, padding=p) self.bn = nn.BatchNorm2d(out_c) def forward(self, x): return F.relu(self.bn(self.conv(x))) class InceptionA(nn.Module): def __init__(self, in_channels, out_channels): super(InceptionA, self).__init__() mid_channels = out_channels // 4 self.stream1 = nn.Sequential( ConvBlock(in_channels, mid_channels, 1), ConvBlock(mid_channels, mid_channels, 3, p=1), ) self.stream2 = nn.Sequential( ConvBlock(in_channels, mid_channels, 1), ConvBlock(mid_channels, mid_channels, 3, p=1), ) self.stream3 = nn.Sequential( ConvBlock(in_channels, mid_channels, 1), ConvBlock(mid_channels, mid_channels, 3, p=1), ) self.stream4 = nn.Sequential( nn.AvgPool2d(3, stride=1, padding=1), ConvBlock(in_channels, mid_channels, 1), ) def forward(self, x): s1 = self.stream1(x) s2 = self.stream2(x) s3 = self.stream3(x) s4 = self.stream4(x) y = torch.cat([s1, s2, s3, s4], dim=1) return y class InceptionB(nn.Module): def __init__(self, in_channels, out_channels): super(InceptionB, self).__init__() mid_channels = out_channels // 4 self.stream1 = nn.Sequential( ConvBlock(in_channels, mid_channels, 1), ConvBlock(mid_channels, mid_channels, 3, s=2, p=1), ) self.stream2 = nn.Sequential( ConvBlock(in_channels, mid_channels, 1), ConvBlock(mid_channels, mid_channels, 3, p=1), ConvBlock(mid_channels, mid_channels, 3, s=2, p=1), ) self.stream3 = nn.Sequential( nn.MaxPool2d(3, stride=2, padding=1), ConvBlock(in_channels, mid_channels * 2, 1), ) def forward(self, x): s1 = self.stream1(x) s2 = self.stream2(x) s3 = self.stream3(x) y = torch.cat([s1, s2, s3], dim=1) return y class SpatialAttn(nn.Module): """Spatial Attention (Sec. 3.1.I.1)""" def __init__(self): super(SpatialAttn, self).__init__() self.conv1 = ConvBlock(1, 1, 3, s=2, p=1) self.conv2 = ConvBlock(1, 1, 1) def forward(self, x): # global cross-channel averaging x = x.mean(1, keepdim=True) # 3-by-3 conv x = self.conv1(x) # bilinear resizing x = F.interpolate( x, (x.size(2) * 2, x.size(3) * 2), mode="bilinear", align_corners=True ) # scaling conv x = self.conv2(x) return x class ChannelAttn(nn.Module): """Channel Attention (Sec. 3.1.I.2)""" def __init__(self, in_channels, reduction_rate=16): super(ChannelAttn, self).__init__() assert in_channels % reduction_rate == 0 self.conv1 = ConvBlock(in_channels, in_channels // reduction_rate, 1) self.conv2 = ConvBlock(in_channels // reduction_rate, in_channels, 1) def forward(self, x): # squeeze operation (global average pooling) x = F.avg_pool2d(x, x.size()[2:]) # excitation operation (2 conv layers) x = self.conv1(x) x = self.conv2(x) return x class SoftAttn(nn.Module): """Soft Attention (Sec. 3.1.I) Aim: Spatial Attention + Channel Attention Output: attention maps with shape identical to input. """ def __init__(self, in_channels): super(SoftAttn, self).__init__() self.spatial_attn = SpatialAttn() self.channel_attn = ChannelAttn(in_channels) self.conv = ConvBlock(in_channels, in_channels, 1) def forward(self, x): y_spatial = self.spatial_attn(x) y_channel = self.channel_attn(x) y = y_spatial * y_channel y = torch.sigmoid(self.conv(y)) return y class HardAttn(nn.Module): """Hard Attention (Sec. 3.1.II)""" def __init__(self, in_channels): super(HardAttn, self).__init__() self.fc = nn.Linear(in_channels, 4 * 2) self.init_params() def init_params(self): self.fc.weight.data.zero_() self.fc.bias.data.copy_( torch.tensor([0, -0.75, 0, -0.25, 0, 0.25, 0, 0.75], dtype=torch.float) ) def forward(self, x): # squeeze operation (global average pooling) x = F.avg_pool2d(x, x.size()[2:]).view(x.size(0), x.size(1)) # predict transformation parameters theta = torch.tanh(self.fc(x)) theta = theta.view(-1, 4, 2) return theta class HarmAttn(nn.Module): """Harmonious Attention (Sec. 3.1)""" def __init__(self, in_channels): super(HarmAttn, self).__init__() self.soft_attn = SoftAttn(in_channels) self.hard_attn = HardAttn(in_channels) def forward(self, x): y_soft_attn = self.soft_attn(x) theta = self.hard_attn(x) return y_soft_attn, theta class HACNN(nn.Module): """Harmonious Attention Convolutional Neural Network. Reference: Li et al. Harmonious Attention Network for Person Re-identification. CVPR 2018. Public keys: - ``hacnn``: HACNN. """ # Args: # num_classes (int): number of classes to predict # nchannels (list): number of channels AFTER concatenation # feat_dim (int): feature dimension for a single stream # learn_region (bool): whether to learn region features (i.e. local branch) def __init__( self, num_classes, loss="softmax", nchannels=[128, 256, 384], feat_dim=512, learn_region=True, use_gpu=True, **kwargs, ): super(HACNN, self).__init__() self.loss = loss self.learn_region = learn_region self.use_gpu = use_gpu self.conv = ConvBlock(3, 32, 3, s=2, p=1) # Construct Inception + HarmAttn blocks # ============== Block 1 ============== self.inception1 = nn.Sequential( InceptionA(32, nchannels[0]), InceptionB(nchannels[0], nchannels[0]), ) self.ha1 = HarmAttn(nchannels[0]) # ============== Block 2 ============== self.inception2 = nn.Sequential( InceptionA(nchannels[0], nchannels[1]), InceptionB(nchannels[1], nchannels[1]), ) self.ha2 = HarmAttn(nchannels[1]) # ============== Block 3 ============== self.inception3 = nn.Sequential( InceptionA(nchannels[1], nchannels[2]), InceptionB(nchannels[2], nchannels[2]), ) self.ha3 = HarmAttn(nchannels[2]) self.fc_global = nn.Sequential( nn.Linear(nchannels[2], feat_dim), nn.BatchNorm1d(feat_dim), nn.ReLU(), ) self.classifier_global = nn.Linear(feat_dim, num_classes) if self.learn_region: self.init_scale_factors() self.local_conv1 = InceptionB(32, nchannels[0]) self.local_conv2 = InceptionB(nchannels[0], nchannels[1]) self.local_conv3 = InceptionB(nchannels[1], nchannels[2]) self.fc_local = nn.Sequential( nn.Linear(nchannels[2] * 4, feat_dim), nn.BatchNorm1d(feat_dim), nn.ReLU(), ) self.classifier_local = nn.Linear(feat_dim, num_classes) self.feat_dim = feat_dim * 2 else: self.feat_dim = feat_dim def init_scale_factors(self): # initialize scale factors (s_w, s_h) for four regions self.scale_factors = [] self.scale_factors.append(torch.tensor([[1, 0], [0, 0.25]], dtype=torch.float)) self.scale_factors.append(torch.tensor([[1, 0], [0, 0.25]], dtype=torch.float)) self.scale_factors.append(torch.tensor([[1, 0], [0, 0.25]], dtype=torch.float)) self.scale_factors.append(torch.tensor([[1, 0], [0, 0.25]], dtype=torch.float)) def stn(self, x, theta): """Performs spatial transform x: (batch, channel, height, width) theta: (batch, 2, 3) """ grid = F.affine_grid(theta, x.size()) x = F.grid_sample(x, grid) return x def transform_theta(self, theta_i, region_idx): """Transforms theta to include (s_w, s_h), resulting in (batch, 2, 3)""" scale_factors = self.scale_factors[region_idx] theta = torch.zeros(theta_i.size(0), 2, 3) theta[:, :, :2] = scale_factors theta[:, :, -1] = theta_i if self.use_gpu: theta = theta.to(next(self.parameters()).device) return theta def forward(self, x): assert ( x.size(2) == 160 and x.size(3) == 64 ), "Input size does not match, expected (160, 64) but got ({}, {})".format( x.size(2), x.size(3) ) x = self.conv(x) # ============== Block 1 ============== # global branch x1 = self.inception1(x) x1_attn, x1_theta = self.ha1(x1) x1_out = x1 * x1_attn # local branch if self.learn_region: x1_local_list = [] for region_idx in range(4): x1_theta_i = x1_theta[:, region_idx, :] x1_theta_i = self.transform_theta(x1_theta_i, region_idx) x1_trans_i = self.stn(x, x1_theta_i) x1_trans_i = F.interpolate( x1_trans_i, (24, 28), mode="bilinear", align_corners=True ) x1_local_i = self.local_conv1(x1_trans_i) x1_local_list.append(x1_local_i) # ============== Block 2 ============== # Block 2 # global branch x2 = self.inception2(x1_out) x2_attn, x2_theta = self.ha2(x2) x2_out = x2 * x2_attn # local branch if self.learn_region: x2_local_list = [] for region_idx in range(4): x2_theta_i = x2_theta[:, region_idx, :] x2_theta_i = self.transform_theta(x2_theta_i, region_idx) x2_trans_i = self.stn(x1_out, x2_theta_i) x2_trans_i = F.interpolate( x2_trans_i, (12, 14), mode="bilinear", align_corners=True ) x2_local_i = x2_trans_i + x1_local_list[region_idx] x2_local_i = self.local_conv2(x2_local_i) x2_local_list.append(x2_local_i) # ============== Block 3 ============== # Block 3 # global branch x3 = self.inception3(x2_out) x3_attn, x3_theta = self.ha3(x3) x3_out = x3 * x3_attn # local branch if self.learn_region: x3_local_list = [] for region_idx in range(4): x3_theta_i = x3_theta[:, region_idx, :] x3_theta_i = self.transform_theta(x3_theta_i, region_idx) x3_trans_i = self.stn(x2_out, x3_theta_i) x3_trans_i = F.interpolate( x3_trans_i, (6, 7), mode="bilinear", align_corners=True ) x3_local_i = x3_trans_i + x2_local_list[region_idx] x3_local_i = self.local_conv3(x3_local_i) x3_local_list.append(x3_local_i) # ============== Feature generation ============== # global branch x_global = F.avg_pool2d(x3_out, x3_out.size()[2:]).view( x3_out.size(0), x3_out.size(1) ) x_global = self.fc_global(x_global) # local branch if self.learn_region: x_local_list = [] for region_idx in range(4): x_local_i = x3_local_list[region_idx] x_local_i = F.avg_pool2d(x_local_i, x_local_i.size()[2:]).view( x_local_i.size(0), -1 ) x_local_list.append(x_local_i) x_local = torch.cat(x_local_list, 1) x_local = self.fc_local(x_local) if not self.training: # l2 normalization before concatenation if self.learn_region: x_global = x_global / x_global.norm(p=2, dim=1, keepdim=True) x_local = x_local / x_local.norm(p=2, dim=1, keepdim=True) return torch.cat([x_global, x_local], 1) else: return x_global prelogits_global = self.classifier_global(x_global) if self.learn_region: prelogits_local = self.classifier_local(x_local) if self.loss == "softmax": if self.learn_region: return (prelogits_global, prelogits_local) else: return prelogits_global elif self.loss == "triplet": if self.learn_region: return (prelogits_global, prelogits_local), (x_global, x_local) else: return prelogits_global, x_global else: raise KeyError("Unsupported loss: {}".format(self.loss)) ================================================ FILE: boxmot/reid/backbones/lmbn/__init__.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license ================================================ FILE: boxmot/reid/backbones/lmbn/attention.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license import math import random import torch from torch import nn from torch.nn import Conv2d, Module, Parameter, ReLU, Sigmoid, Softmax from torch.nn import functional as F torch_ver = torch.__version__[:3] __all__ = [ "BatchDrop", "BatchFeatureErase_Top", "BatchRandomErasing", "PAM_Module", "CAM_Module", "Dual_Module", "SE_Module", ] class BatchRandomErasing(nn.Module): def __init__( self, probability=0.5, sl=0.02, sh=0.4, r1=0.3, mean=[0.4914, 0.4822, 0.4465] ): super(BatchRandomErasing, self).__init__() self.probability = probability self.mean = mean self.sl = sl self.sh = sh self.r1 = r1 def forward(self, img): if self.training: if random.uniform(0, 1) > self.probability: return img for attempt in range(100): area = img.size()[2] * img.size()[3] target_area = random.uniform(self.sl, self.sh) * area aspect_ratio = random.uniform(self.r1, 1 / self.r1) h = int(round(math.sqrt(target_area * aspect_ratio))) w = int(round(math.sqrt(target_area / aspect_ratio))) if w < img.size()[3] and h < img.size()[2]: x1 = random.randint(0, img.size()[2] - h) y1 = random.randint(0, img.size()[3] - w) if img.size()[1] == 3: img[:, 0, x1 : x1 + h, y1 : y1 + w] = self.mean[0] img[:, 1, x1 : x1 + h, y1 : y1 + w] = self.mean[1] img[:, 2, x1 : x1 + h, y1 : y1 + w] = self.mean[2] else: img[:, 0, x1 : x1 + h, y1 : y1 + w] = self.mean[0] return img return img class BatchDrop(nn.Module): """ Ref: Batch DropBlock Network for Person Re-identification and Beyond https://github.com/daizuozhuo/batch-dropblock-network/blob/master/models/networks.py Created by: daizuozhuo """ def __init__(self, h_ratio, w_ratio): super(BatchDrop, self).__init__() self.h_ratio = h_ratio self.w_ratio = w_ratio def forward(self, x): if self.training: h, w = x.size()[-2:] rh = round(self.h_ratio * h) rw = round(self.w_ratio * w) sx = random.randint(0, h - rh) sy = random.randint(0, w - rw) mask = x.new_ones(x.size()) mask[:, :, sx : sx + rh, sy : sy + rw] = 0 x = x * mask return x class BatchDropTop(nn.Module): """ Ref: Top-DB-Net: Top DropBlock for Activation Enhancement in Person Re-Identification https://github.com/RQuispeC/top-dropblock/blob/master/torchreid/models/bdnet.py Created by: RQuispeC """ def __init__(self, h_ratio): super(BatchDropTop, self).__init__() self.h_ratio = h_ratio def forward(self, x, visdrop=False): if self.training or visdrop: b, c, h, w = x.size() rh = round(self.h_ratio * h) act = (x**2).sum(1) act = act.view(b, h * w) act = F.normalize(act, p=2, dim=1) act = act.view(b, h, w) max_act, _ = act.max(2) ind = torch.argsort(max_act, 1) ind = ind[:, -rh:] mask = [] for i in range(b): rmask = torch.ones(h) rmask[ind[i]] = 0 mask.append(rmask.unsqueeze(0)) mask = torch.cat(mask) mask = torch.repeat_interleave(mask, w, 1).view(b, h, w) mask = torch.repeat_interleave(mask, c, 0).view(b, c, h, w) if x.is_cuda: mask = mask.cuda() if visdrop: return mask x = x * mask return x class BatchFeatureErase_Top(nn.Module): """ Ref: Top-DB-Net: Top DropBlock for Activation Enhancement in Person Re-Identification https://github.com/RQuispeC/top-dropblock/blob/master/torchreid/models/bdnet.py Created by: RQuispeC """ def __init__( self, channels, bottleneck_type, h_ratio=0.33, w_ratio=1.0, double_bottleneck=False, ): super(BatchFeatureErase_Top, self).__init__() self.drop_batch_bottleneck = bottleneck_type(channels, 512) self.drop_batch_drop_basic = BatchDrop(h_ratio, w_ratio) self.drop_batch_drop_top = BatchDropTop(h_ratio) def forward(self, x, drop_top=True, bottleneck_features=True, visdrop=False): features = self.drop_batch_bottleneck(x) if drop_top: x = self.drop_batch_drop_top(features, visdrop=visdrop) else: x = self.drop_batch_drop_basic(features, visdrop=visdrop) if visdrop: return x # x is dropmask if bottleneck_features: return x, features else: return x class SE_Module(Module): def __init__(self, channels, reduction=4): super(SE_Module, self).__init__() self.fc1 = Conv2d(channels, channels // reduction, kernel_size=1, padding=0) self.relu = ReLU(inplace=True) self.fc2 = Conv2d(channels // reduction, channels, kernel_size=1, padding=0) self.sigmoid = Sigmoid() def forward(self, x): module_input = x x = self.fc1(x) x = self.relu(x) x = self.fc2(x) x = self.sigmoid(x) return module_input * x class PAM_Module(Module): """Position attention module""" # Ref from SAGAN def __init__(self, in_dim): super(PAM_Module, self).__init__() self.chanel_in = in_dim self.query_conv = Conv2d( in_channels=in_dim, out_channels=in_dim // 8, kernel_size=1 ) self.key_conv = Conv2d( in_channels=in_dim, out_channels=in_dim // 8, kernel_size=1 ) self.value_conv = Conv2d(in_channels=in_dim, out_channels=in_dim, kernel_size=1) self.gamma = Parameter(torch.zeros(1)) self.softmax = Softmax(dim=-1) def forward(self, x): """ inputs : x : input feature maps( B X C X H X W) returns : out : attention value + input feature attention: B X (HxW) X (HxW) """ m_batchsize, C, height, width = x.size() proj_query = ( self.query_conv(x).view(m_batchsize, -1, width * height).permute(0, 2, 1) ) proj_key = self.key_conv(x).view(m_batchsize, -1, width * height) energy = torch.bmm(proj_query, proj_key) attention = self.softmax(energy) proj_value = self.value_conv(x).view(m_batchsize, -1, width * height) out = torch.bmm(proj_value, attention.permute(0, 2, 1)) out = out.view(m_batchsize, C, height, width) out = self.gamma * out + x return out class CAM_Module(Module): """Channel attention module""" def __init__(self, in_dim): super(CAM_Module, self).__init__() self.chanel_in = in_dim self.gamma = Parameter(torch.zeros(1)) self.softmax = Softmax(dim=-1) def forward(self, x): """ inputs : x : input feature maps( B X C X H X W) returns : out : attention value + input feature attention: B X C X C """ m_batchsize, C, height, width = x.size() proj_query = x.view(m_batchsize, C, -1) proj_key = x.view(m_batchsize, C, -1).permute(0, 2, 1) # proj_key = x.view(m_batchsize, C, -1).permute(0, 2, 1).contiguous() energy = torch.bmm(proj_query, proj_key) energy_new = torch.max(energy, -1, keepdim=True)[0].expand_as(energy) - energy attention = self.softmax(energy_new) proj_value = x.view(m_batchsize, C, -1) out = torch.bmm(attention, proj_value) out = out.view(m_batchsize, C, height, width) out = self.gamma * out + x return out class Dual_Module(Module): """ # Created by: CASIA IVA # Email: jliu@nlpr.ia.ac.cn # Copyright (c) 2018 # Reference: Dual Attention Network for Scene Segmentation # https://arxiv.org/pdf/1809.02983.pdf # https://github.com/junfu1115/DANet/blob/master/encoding/nn/attention.py """ def __init__(self, in_dim): super(Dual_Module).__init__() self.indim = in_dim self.pam = PAM_Module(in_dim) self.cam = CAM_Module(in_dim) def forward(self, x): out1 = self.pam(x) out2 = self.cam(x) return out1 + out2 ================================================ FILE: boxmot/reid/backbones/lmbn/bnneck.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license from torch import nn class BNNeck(nn.Module): def __init__(self, input_dim, class_num, return_f=False): super(BNNeck, self).__init__() self.return_f = return_f self.bn = nn.BatchNorm1d(input_dim) self.bn.bias.requires_grad_(False) self.classifier = nn.Linear(input_dim, class_num, bias=False) self.bn.apply(self.weights_init_kaiming) self.classifier.apply(self.weights_init_classifier) def forward(self, x): before_neck = x.view(x.size(0), x.size(1)) after_neck = self.bn(before_neck) if self.return_f: score = self.classifier(after_neck) return after_neck, score, before_neck else: x = self.classifier(x) return x def weights_init_kaiming(self, m): classname = m.__class__.__name__ if classname.find("Linear") != -1: nn.init.kaiming_normal_(m.weight, a=0, mode="fan_out") nn.init.constant_(m.bias, 0.0) elif classname.find("Conv") != -1: nn.init.kaiming_normal_(m.weight, a=0, mode="fan_in") if m.bias is not None: nn.init.constant_(m.bias, 0.0) elif classname.find("BatchNorm") != -1: if m.affine: nn.init.constant_(m.weight, 1.0) nn.init.constant_(m.bias, 0.0) def weights_init_classifier(self, m): classname = m.__class__.__name__ if classname.find("Linear") != -1: nn.init.normal_(m.weight, std=0.001) if m.bias: nn.init.constant_(m.bias, 0.0) class BNNeck3(nn.Module): def __init__(self, input_dim, class_num, feat_dim, return_f=False): super(BNNeck3, self).__init__() self.return_f = return_f # self.reduction = nn.Linear(input_dim, feat_dim) # self.bn = nn.BatchNorm1d(feat_dim) self.reduction = nn.Conv2d(input_dim, feat_dim, 1, bias=False) self.bn = nn.BatchNorm1d(feat_dim) self.bn.bias.requires_grad_(False) self.classifier = nn.Linear(feat_dim, class_num, bias=False) self.bn.apply(self.weights_init_kaiming) self.classifier.apply(self.weights_init_classifier) def forward(self, x): x = self.reduction(x) # before_neck = x.squeeze(dim=3).squeeze(dim=2) # after_neck = self.bn(x).squeeze(dim=3).squeeze(dim=2) before_neck = x.view(x.size(0), x.size(1)) after_neck = self.bn(before_neck) if self.return_f: score = self.classifier(after_neck) return after_neck, score, before_neck else: x = self.classifier(x) return x def weights_init_kaiming(self, m): classname = m.__class__.__name__ if classname.find("Linear") != -1: nn.init.kaiming_normal_(m.weight, a=0, mode="fan_out") nn.init.constant_(m.bias, 0.0) elif classname.find("Conv") != -1: nn.init.kaiming_normal_(m.weight, a=0, mode="fan_in") if m.bias is not None: nn.init.constant_(m.bias, 0.0) elif classname.find("BatchNorm") != -1: if m.affine: nn.init.constant_(m.weight, 1.0) nn.init.constant_(m.bias, 0.0) def weights_init_classifier(self, m): classname = m.__class__.__name__ if classname.find("Linear") != -1: nn.init.normal_(m.weight, std=0.001) if m.bias: nn.init.constant_(m.bias, 0.0) # Defines the new fc layer and classification layer # |--Linear--|--bn--|--relu--|--Linear--| class ClassBlock(nn.Module): def __init__( self, input_dim, class_num, droprate=0, relu=False, bnorm=True, num_bottleneck=512, linear=True, return_f=False, ): super(ClassBlock, self).__init__() self.return_f = return_f add_block = [] if linear: add_block += [nn.Linear(input_dim, num_bottleneck)] else: num_bottleneck = input_dim if bnorm: add_block += [nn.BatchNorm1d(num_bottleneck)] if relu: add_block += [nn.LeakyReLU(0.1)] if droprate > 0: add_block += [nn.Dropout(p=droprate)] add_block = nn.Sequential(*add_block) add_block.apply(self.weights_init_kaiming) classifier = [] classifier += [nn.Linear(num_bottleneck, class_num)] classifier = nn.Sequential(*classifier) classifier.apply(self.weights_init_classifier) self.add_block = add_block self.classifier = classifier def forward(self, x): x = self.add_block(x.squeeze(3).squeeze(2)) if self.return_f: f = x x = self.classifier(x) return f, x, f else: x = self.classifier(x) return x def weights_init_kaiming(self, m): classname = m.__class__.__name__ # print(classname) if classname.find("Conv") != -1: # For old pytorch, you may use kaiming_normal. nn.init.kaiming_normal_(m.weight.data, a=0, mode="fan_in") elif classname.find("Linear") != -1: nn.init.kaiming_normal_(m.weight.data, a=0, mode="fan_out") nn.init.constant_(m.bias.data, 0.0) elif classname.find("BatchNorm1d") != -1: nn.init.normal_(m.weight.data, 1.0, 0.02) nn.init.constant_(m.bias.data, 0.0) def weights_init_classifier(self, m): classname = m.__class__.__name__ if classname.find("Linear") != -1: nn.init.normal_(m.weight.data, std=0.001) nn.init.constant_(m.bias.data, 0.0) ================================================ FILE: boxmot/reid/backbones/lmbn/lmbn_n.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license import copy import torch from torch import nn from boxmot.reid.backbones.lmbn.attention import BatchFeatureErase_Top from boxmot.reid.backbones.lmbn.bnneck import BNNeck, BNNeck3 from boxmot.reid.backbones.osnet import OSBlock, osnet_x1_0 class LMBN_n(nn.Module): def __init__(self, num_classes, loss, pretrained, use_gpu): super(LMBN_n, self).__init__() self.n_ch = 2 self.chs = 512 // self.n_ch self.training = False osnet = osnet_x1_0(pretrained=False) self.backone = nn.Sequential( osnet.conv1, osnet.maxpool, osnet.conv2, osnet.conv3[0] ) conv3 = osnet.conv3[1:] self.global_branch = nn.Sequential( copy.deepcopy(conv3), copy.deepcopy(osnet.conv4), copy.deepcopy(osnet.conv5) ) self.partial_branch = nn.Sequential( copy.deepcopy(conv3), copy.deepcopy(osnet.conv4), copy.deepcopy(osnet.conv5) ) self.channel_branch = nn.Sequential( copy.deepcopy(conv3), copy.deepcopy(osnet.conv4), copy.deepcopy(osnet.conv5) ) self.global_pooling = nn.AdaptiveMaxPool2d((1, 1)) self.partial_pooling = nn.AdaptiveAvgPool2d((2, 1)) self.channel_pooling = nn.AdaptiveAvgPool2d((1, 1)) reduction = BNNeck3(512, num_classes, 512, return_f=True) self.reduction_0 = copy.deepcopy(reduction) self.reduction_1 = copy.deepcopy(reduction) self.reduction_2 = copy.deepcopy(reduction) self.reduction_3 = copy.deepcopy(reduction) self.reduction_4 = copy.deepcopy(reduction) self.shared = nn.Sequential( nn.Conv2d(self.chs, 512, 1, bias=False), nn.BatchNorm2d(512), nn.ReLU(True) ) self.weights_init_kaiming(self.shared) self.reduction_ch_0 = BNNeck(512, num_classes, return_f=True) self.reduction_ch_1 = BNNeck(512, num_classes, return_f=True) # if args.drop_block: # print('Using batch random erasing block.') # self.batch_drop_block = BatchRandomErasing() # print('Using batch drop block.') # self.batch_drop_block = BatchDrop( # h_ratio=args.h_ratio, w_ratio=args.w_ratio) self.batch_drop_block = BatchFeatureErase_Top(512, OSBlock) self.activation_map = False def forward(self, x): # if self.batch_drop_block is not None: # x = self.batch_drop_block(x) x = self.backone(x) glo = self.global_branch(x) par = self.partial_branch(x) cha = self.channel_branch(x) if self.activation_map: glo_ = glo if self.batch_drop_block is not None: glo_drop, glo = self.batch_drop_block(glo) if self.activation_map: _, _, h_par, _ = par.size() fmap_p0 = par[:, :, : h_par // 2, :] fmap_p1 = par[:, :, h_par // 2 :, :] fmap_c0 = cha[:, : self.chs, :, :] fmap_c1 = cha[:, self.chs :, :, :] print("Generating activation maps...") return glo, glo_, fmap_c0, fmap_c1, fmap_p0, fmap_p1 glo_drop = self.global_pooling(glo_drop) glo = self.channel_pooling(glo) # shape:(batchsize, 512,1,1) g_par = self.global_pooling(par) # shape:(batchsize, 512,1,1) p_par = self.partial_pooling(par) # shape:(batchsize, 512,2,1) cha = self.channel_pooling(cha) # shape:(batchsize, 256,1,1) p0 = p_par[:, :, 0:1, :] p1 = p_par[:, :, 1:2, :] f_glo = self.reduction_0(glo) f_p0 = self.reduction_1(g_par) f_p1 = self.reduction_2(p0) f_p2 = self.reduction_3(p1) f_glo_drop = self.reduction_4(glo_drop) ################ c0 = cha[:, : self.chs, :, :] c1 = cha[:, self.chs :, :, :] c0 = self.shared(c0) c1 = self.shared(c1) f_c0 = self.reduction_ch_0(c0) f_c1 = self.reduction_ch_1(c1) ################ fea = [f_glo[-1], f_glo_drop[-1], f_p0[-1]] if not self.training: features = torch.stack( [f_glo[0], f_glo_drop[0], f_p0[0], f_p1[0], f_p2[0], f_c0[0], f_c1[0]], dim=2, ) features = features.flatten(1, 2) return features return [ f_glo[1], f_glo_drop[1], f_p0[1], f_p1[1], f_p2[1], f_c0[1], f_c1[1], ], fea def weights_init_kaiming(self, m): classname = m.__class__.__name__ if classname.find("Linear") != -1: nn.init.kaiming_normal_(m.weight, a=0, mode="fan_out") nn.init.constant_(m.bias, 0.0) elif classname.find("Conv") != -1: nn.init.kaiming_normal_(m.weight, a=0, mode="fan_in") if m.bias is not None: nn.init.constant_(m.bias, 0.0) elif classname.find("BatchNorm") != -1: if m.affine: nn.init.constant_(m.weight, 1.0) nn.init.constant_(m.bias, 0.0) if __name__ == "__main__": # Here I left a simple forward function. # Test the model, before you train it. import argparse parser = argparse.ArgumentParser(description="MGN") parser.add_argument("--num_classes", type=int, default=751, help="") parser.add_argument("--bnneck", type=bool, default=True) parser.add_argument("--pool", type=str, default="max") parser.add_argument("--feats", type=int, default=512) parser.add_argument("--drop_block", type=bool, default=True) parser.add_argument("--w_ratio", type=float, default=1.0, help="") args = parser.parse_args() # net = MCMP_n(args) # net.classifier = nn.Sequential() # print([p for p in net.parameters()]) # a=filter(lambda p: p.requires_grad, net.parameters()) # print(a) # print(net) # input = Variable(torch.FloatTensor(8, 3, 384, 128)) # net.eval() # output = net(input) # print(output.shape) print("net output size:") # print(len(output)) ================================================ FILE: boxmot/reid/backbones/mlfn.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license from __future__ import absolute_import, division import torch import torch.utils.model_zoo as model_zoo from torch import nn from torch.nn import functional as F __all__ = ["mlfn"] model_urls = { # training epoch = 5, top1 = 51.6 "imagenet": "https://mega.nz/#!YHxAhaxC!yu9E6zWl0x5zscSouTdbZu8gdFFytDdl-RAdD2DEfpk", } class MLFNBlock(nn.Module): def __init__(self, in_channels, out_channels, stride, fsm_channels, groups=32): super(MLFNBlock, self).__init__() self.groups = groups mid_channels = out_channels // 2 # Factor Modules self.fm_conv1 = nn.Conv2d(in_channels, mid_channels, 1, bias=False) self.fm_bn1 = nn.BatchNorm2d(mid_channels) self.fm_conv2 = nn.Conv2d( mid_channels, mid_channels, 3, stride=stride, padding=1, bias=False, groups=self.groups, ) self.fm_bn2 = nn.BatchNorm2d(mid_channels) self.fm_conv3 = nn.Conv2d(mid_channels, out_channels, 1, bias=False) self.fm_bn3 = nn.BatchNorm2d(out_channels) # Factor Selection Module self.fsm = nn.Sequential( nn.AdaptiveAvgPool2d(1), nn.Conv2d(in_channels, fsm_channels[0], 1), nn.BatchNorm2d(fsm_channels[0]), nn.ReLU(inplace=True), nn.Conv2d(fsm_channels[0], fsm_channels[1], 1), nn.BatchNorm2d(fsm_channels[1]), nn.ReLU(inplace=True), nn.Conv2d(fsm_channels[1], self.groups, 1), nn.BatchNorm2d(self.groups), nn.Sigmoid(), ) self.downsample = None if in_channels != out_channels or stride > 1: self.downsample = nn.Sequential( nn.Conv2d(in_channels, out_channels, 1, stride=stride, bias=False), nn.BatchNorm2d(out_channels), ) def forward(self, x): residual = x s = self.fsm(x) # reduce dimension x = self.fm_conv1(x) x = self.fm_bn1(x) x = F.relu(x, inplace=True) # group convolution x = self.fm_conv2(x) x = self.fm_bn2(x) x = F.relu(x, inplace=True) # factor selection b, c = x.size(0), x.size(1) n = c // self.groups ss = s.repeat(1, n, 1, 1) # from (b, g, 1, 1) to (b, g*n=c, 1, 1) ss = ss.view(b, n, self.groups, 1, 1) ss = ss.permute(0, 2, 1, 3, 4).contiguous() ss = ss.view(b, c, 1, 1) x = ss * x # recover dimension x = self.fm_conv3(x) x = self.fm_bn3(x) x = F.relu(x, inplace=True) if self.downsample is not None: residual = self.downsample(residual) return F.relu(residual + x, inplace=True), s class MLFN(nn.Module): """Multi-Level Factorisation Net. Reference: Chang et al. Multi-Level Factorisation Net for Person Re-Identification. CVPR 2018. Public keys: - ``mlfn``: MLFN (Multi-Level Factorisation Net). """ def __init__( self, num_classes, loss="softmax", groups=32, channels=[64, 256, 512, 1024, 2048], embed_dim=1024, **kwargs, ): super(MLFN, self).__init__() self.loss = loss self.groups = groups # first convolutional layer self.conv1 = nn.Conv2d(3, channels[0], 7, stride=2, padding=3) self.bn1 = nn.BatchNorm2d(channels[0]) self.maxpool = nn.MaxPool2d(3, stride=2, padding=1) # main body self.feature = nn.ModuleList( [ # layer 1-3 MLFNBlock(channels[0], channels[1], 1, [128, 64], self.groups), MLFNBlock(channels[1], channels[1], 1, [128, 64], self.groups), MLFNBlock(channels[1], channels[1], 1, [128, 64], self.groups), # layer 4-7 MLFNBlock(channels[1], channels[2], 2, [256, 128], self.groups), MLFNBlock(channels[2], channels[2], 1, [256, 128], self.groups), MLFNBlock(channels[2], channels[2], 1, [256, 128], self.groups), MLFNBlock(channels[2], channels[2], 1, [256, 128], self.groups), # layer 8-13 MLFNBlock(channels[2], channels[3], 2, [512, 128], self.groups), MLFNBlock(channels[3], channels[3], 1, [512, 128], self.groups), MLFNBlock(channels[3], channels[3], 1, [512, 128], self.groups), MLFNBlock(channels[3], channels[3], 1, [512, 128], self.groups), MLFNBlock(channels[3], channels[3], 1, [512, 128], self.groups), MLFNBlock(channels[3], channels[3], 1, [512, 128], self.groups), # layer 14-16 MLFNBlock(channels[3], channels[4], 2, [512, 128], self.groups), MLFNBlock(channels[4], channels[4], 1, [512, 128], self.groups), MLFNBlock(channels[4], channels[4], 1, [512, 128], self.groups), ] ) self.global_avgpool = nn.AdaptiveAvgPool2d(1) # projection functions self.fc_x = nn.Sequential( nn.Conv2d(channels[4], embed_dim, 1, bias=False), nn.BatchNorm2d(embed_dim), nn.ReLU(inplace=True), ) self.fc_s = nn.Sequential( nn.Conv2d(self.groups * 16, embed_dim, 1, bias=False), nn.BatchNorm2d(embed_dim), nn.ReLU(inplace=True), ) self.classifier = nn.Linear(embed_dim, num_classes) self.init_params() def init_params(self): for m in self.modules(): if isinstance(m, nn.Conv2d): nn.init.kaiming_normal_(m.weight, mode="fan_out", nonlinearity="relu") if m.bias is not None: nn.init.constant_(m.bias, 0) elif isinstance(m, nn.BatchNorm2d): nn.init.constant_(m.weight, 1) nn.init.constant_(m.bias, 0) elif isinstance(m, nn.Linear): nn.init.normal_(m.weight, 0, 0.01) if m.bias is not None: nn.init.constant_(m.bias, 0) def forward(self, x): x = self.conv1(x) x = self.bn1(x) x = F.relu(x, inplace=True) x = self.maxpool(x) s_hat = [] for block in self.feature: x, s = block(x) s_hat.append(s) s_hat = torch.cat(s_hat, 1) x = self.global_avgpool(x) x = self.fc_x(x) s_hat = self.fc_s(s_hat) v = (x + s_hat) * 0.5 v = v.view(v.size(0), -1) if not self.training: return v y = self.classifier(v) if self.loss == "softmax": return y elif self.loss == "triplet": return y, v else: raise KeyError("Unsupported loss: {}".format(self.loss)) def init_pretrained_weights(model, model_url): """Initializes model with pretrained weights. Layers that don't match with pretrained layers in name or size are kept unchanged. """ pretrain_dict = model_zoo.load_url(model_url) model_dict = model.state_dict() pretrain_dict = { k: v for k, v in pretrain_dict.items() if k in model_dict and model_dict[k].size() == v.size() } model_dict.update(pretrain_dict) model.load_state_dict(model_dict) def mlfn(num_classes, loss="softmax", pretrained=True, **kwargs): model = MLFN(num_classes, loss, **kwargs) if pretrained: # init_pretrained_weights(model, model_urls['imagenet']) import warnings warnings.warn( "The imagenet pretrained weights need to be manually downloaded from {}".format( model_urls["imagenet"] ) ) return model ================================================ FILE: boxmot/reid/backbones/mobilenetv2.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license from __future__ import absolute_import, division import torch.utils.model_zoo as model_zoo from torch import nn from torch.nn import functional as F __all__ = ["mobilenetv2_x1_0", "mobilenetv2_x1_4"] model_urls = { # 1.0: top-1 71.3 "mobilenetv2_x1_0": "https://mega.nz/#!NKp2wAIA!1NH1pbNzY_M2hVk_hdsxNM1NUOWvvGPHhaNr-fASF6c", # 1.4: top-1 73.9 "mobilenetv2_x1_4": "https://mega.nz/#!RGhgEIwS!xN2s2ZdyqI6vQ3EwgmRXLEW3khr9tpXg96G9SUJugGk", } class ConvBlock(nn.Module): """Basic convolutional block. convolution (bias discarded) + batch normalization + relu6. Args: in_c (int): number of input channels. out_c (int): number of output channels. k (int or tuple): kernel size. s (int or tuple): stride. p (int or tuple): padding. g (int): number of blocked connections from input channels to output channels (default: 1). """ def __init__(self, in_c, out_c, k, s=1, p=0, g=1): super(ConvBlock, self).__init__() self.conv = nn.Conv2d(in_c, out_c, k, stride=s, padding=p, bias=False, groups=g) self.bn = nn.BatchNorm2d(out_c) def forward(self, x): return F.relu6(self.bn(self.conv(x))) class Bottleneck(nn.Module): def __init__(self, in_channels, out_channels, expansion_factor, stride=1): super(Bottleneck, self).__init__() mid_channels = in_channels * expansion_factor self.use_residual = stride == 1 and in_channels == out_channels self.conv1 = ConvBlock(in_channels, mid_channels, 1) self.dwconv2 = ConvBlock( mid_channels, mid_channels, 3, stride, 1, g=mid_channels ) self.conv3 = nn.Sequential( nn.Conv2d(mid_channels, out_channels, 1, bias=False), nn.BatchNorm2d(out_channels), ) def forward(self, x): m = self.conv1(x) m = self.dwconv2(m) m = self.conv3(m) if self.use_residual: return x + m else: return m class MobileNetV2(nn.Module): """MobileNetV2. Reference: Sandler et al. MobileNetV2: Inverted Residuals and Linear Bottlenecks. CVPR 2018. Public keys: - ``mobilenetv2_x1_0``: MobileNetV2 x1.0. - ``mobilenetv2_x1_4``: MobileNetV2 x1.4. """ def __init__( self, num_classes, width_mult=1, loss="softmax", fc_dims=None, dropout_p=None, **kwargs, ): super(MobileNetV2, self).__init__() self.loss = loss self.in_channels = int(32 * width_mult) self.feature_dim = int(1280 * width_mult) if width_mult > 1 else 1280 # construct layers self.conv1 = ConvBlock(3, self.in_channels, 3, s=2, p=1) self.conv2 = self._make_layer(Bottleneck, 1, int(16 * width_mult), 1, 1) self.conv3 = self._make_layer(Bottleneck, 6, int(24 * width_mult), 2, 2) self.conv4 = self._make_layer(Bottleneck, 6, int(32 * width_mult), 3, 2) self.conv5 = self._make_layer(Bottleneck, 6, int(64 * width_mult), 4, 2) self.conv6 = self._make_layer(Bottleneck, 6, int(96 * width_mult), 3, 1) self.conv7 = self._make_layer(Bottleneck, 6, int(160 * width_mult), 3, 2) self.conv8 = self._make_layer(Bottleneck, 6, int(320 * width_mult), 1, 1) self.conv9 = ConvBlock(self.in_channels, self.feature_dim, 1) self.global_avgpool = nn.AdaptiveAvgPool2d(1) self.fc = self._construct_fc_layer(fc_dims, self.feature_dim, dropout_p) self.classifier = nn.Linear(self.feature_dim, num_classes) self._init_params() def _make_layer(self, block, t, c, n, s): # t: expansion factor # c: output channels # n: number of blocks # s: stride for first layer layers = [] layers.append(block(self.in_channels, c, t, s)) self.in_channels = c for i in range(1, n): layers.append(block(self.in_channels, c, t)) return nn.Sequential(*layers) def _construct_fc_layer(self, fc_dims, input_dim, dropout_p=None): """Constructs fully connected layer. Args: fc_dims (list or tuple): dimensions of fc layers, if None, no fc layers are constructed input_dim (int): input dimension dropout_p (float): dropout probability, if None, dropout is unused """ if fc_dims is None: self.feature_dim = input_dim return None assert isinstance( fc_dims, (list, tuple) ), "fc_dims must be either list or tuple, but got {}".format(type(fc_dims)) layers = [] for dim in fc_dims: layers.append(nn.Linear(input_dim, dim)) layers.append(nn.BatchNorm1d(dim)) layers.append(nn.ReLU(inplace=True)) if dropout_p is not None: layers.append(nn.Dropout(p=dropout_p)) input_dim = dim self.feature_dim = fc_dims[-1] return nn.Sequential(*layers) def _init_params(self): for m in self.modules(): if isinstance(m, nn.Conv2d): nn.init.kaiming_normal_(m.weight, mode="fan_out", nonlinearity="relu") if m.bias is not None: nn.init.constant_(m.bias, 0) elif isinstance(m, nn.BatchNorm2d): nn.init.constant_(m.weight, 1) nn.init.constant_(m.bias, 0) elif isinstance(m, nn.BatchNorm1d): nn.init.constant_(m.weight, 1) nn.init.constant_(m.bias, 0) elif isinstance(m, nn.Linear): nn.init.normal_(m.weight, 0, 0.01) if m.bias is not None: nn.init.constant_(m.bias, 0) def featuremaps(self, x): x = self.conv1(x) x = self.conv2(x) x = self.conv3(x) x = self.conv4(x) x = self.conv5(x) x = self.conv6(x) x = self.conv7(x) x = self.conv8(x) x = self.conv9(x) return x def forward(self, x): f = self.featuremaps(x) v = self.global_avgpool(f) v = v.view(v.size(0), -1) if self.fc is not None: v = self.fc(v) if not self.training: return v y = self.classifier(v) if self.loss == "softmax": return y elif self.loss == "triplet": return y, v else: raise KeyError("Unsupported loss: {}".format(self.loss)) def init_pretrained_weights(model, model_url): """Initializes model with pretrained weights. Layers that don't match with pretrained layers in name or size are kept unchanged. """ pretrain_dict = model_zoo.load_url(model_url) model_dict = model.state_dict() pretrain_dict = { k: v for k, v in pretrain_dict.items() if k in model_dict and model_dict[k].size() == v.size() } model_dict.update(pretrain_dict) model.load_state_dict(model_dict) def mobilenetv2_x1_0(num_classes, loss, pretrained=True, **kwargs): model = MobileNetV2( num_classes, loss=loss, width_mult=1, fc_dims=None, dropout_p=None, **kwargs ) if pretrained: # init_pretrained_weights(model, model_urls['mobilenetv2_x1_0']) import warnings warnings.warn( "The imagenet pretrained weights need to be manually downloaded from {}".format( model_urls["mobilenetv2_x1_0"] ) ) return model def mobilenetv2_x1_4(num_classes, loss, pretrained=True, **kwargs): model = MobileNetV2( num_classes, loss=loss, width_mult=1.4, fc_dims=None, dropout_p=None, **kwargs ) if pretrained: # init_pretrained_weights(model, model_urls['mobilenetv2_x1_4']) import warnings warnings.warn( "The imagenet pretrained weights need to be manually downloaded from {}".format( model_urls["mobilenetv2_x1_4"] ) ) return model ================================================ FILE: boxmot/reid/backbones/osnet.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license from __future__ import absolute_import, division import warnings import torch from torch import nn from torch.nn import functional as F __all__ = ["osnet_x1_0", "osnet_x0_75", "osnet_x0_5", "osnet_x0_25", "osnet_ibn_x1_0"] pretrained_urls = { "osnet_x1_0": "https://drive.google.com/uc?id=1LaG1EJpHrxdAxKnSCJ_i0u-nbxSAeiFY", "osnet_x0_75": "https://drive.google.com/uc?id=1uwA9fElHOk3ZogwbeY5GkLI6QPTX70Hq", "osnet_x0_5": "https://drive.google.com/uc?id=16DGLbZukvVYgINws8u8deSaOqjybZ83i", "osnet_x0_25": "https://drive.google.com/uc?id=1rb8UN5ZzPKRc_xvtHlyDh-cSz88YX9hs", "osnet_ibn_x1_0": "https://drive.google.com/uc?id=1sr90V6irlYYDd4_4ISU2iruoRG8J__6l", } ########## # Basic layers ########## class ConvLayer(nn.Module): """Convolution layer (conv + bn + relu).""" def __init__( self, in_channels, out_channels, kernel_size, stride=1, padding=0, groups=1, IN=False, ): super(ConvLayer, self).__init__() self.conv = nn.Conv2d( in_channels, out_channels, kernel_size, stride=stride, padding=padding, bias=False, groups=groups, ) if IN: self.bn = nn.InstanceNorm2d(out_channels, affine=True) else: self.bn = nn.BatchNorm2d(out_channels) self.relu = nn.ReLU(inplace=True) def forward(self, x): x = self.conv(x) x = self.bn(x) x = self.relu(x) return x class Conv1x1(nn.Module): """1x1 convolution + bn + relu.""" def __init__(self, in_channels, out_channels, stride=1, groups=1): super(Conv1x1, self).__init__() self.conv = nn.Conv2d( in_channels, out_channels, 1, stride=stride, padding=0, bias=False, groups=groups, ) self.bn = nn.BatchNorm2d(out_channels) self.relu = nn.ReLU(inplace=True) def forward(self, x): x = self.conv(x) x = self.bn(x) x = self.relu(x) return x class Conv1x1Linear(nn.Module): """1x1 convolution + bn (w/o non-linearity).""" def __init__(self, in_channels, out_channels, stride=1): super(Conv1x1Linear, self).__init__() self.conv = nn.Conv2d( in_channels, out_channels, 1, stride=stride, padding=0, bias=False ) self.bn = nn.BatchNorm2d(out_channels) def forward(self, x): x = self.conv(x) x = self.bn(x) return x class Conv3x3(nn.Module): """3x3 convolution + bn + relu.""" def __init__(self, in_channels, out_channels, stride=1, groups=1): super(Conv3x3, self).__init__() self.conv = nn.Conv2d( in_channels, out_channels, 3, stride=stride, padding=1, bias=False, groups=groups, ) self.bn = nn.BatchNorm2d(out_channels) self.relu = nn.ReLU(inplace=True) def forward(self, x): x = self.conv(x) x = self.bn(x) x = self.relu(x) return x class LightConv3x3(nn.Module): """Lightweight 3x3 convolution. 1x1 (linear) + dw 3x3 (nonlinear). """ def __init__(self, in_channels, out_channels): super(LightConv3x3, self).__init__() self.conv1 = nn.Conv2d( in_channels, out_channels, 1, stride=1, padding=0, bias=False ) self.conv2 = nn.Conv2d( out_channels, out_channels, 3, stride=1, padding=1, bias=False, groups=out_channels, ) self.bn = nn.BatchNorm2d(out_channels) self.relu = nn.ReLU(inplace=True) def forward(self, x): x = self.conv1(x) x = self.conv2(x) x = self.bn(x) x = self.relu(x) return x ########## # Building blocks for omni-scale feature learning ########## class ChannelGate(nn.Module): """A mini-network that generates channel-wise gates conditioned on input tensor.""" def __init__( self, in_channels, num_gates=None, return_gates=False, gate_activation="sigmoid", reduction=16, layer_norm=False, ): super(ChannelGate, self).__init__() if num_gates is None: num_gates = in_channels self.return_gates = return_gates self.global_avgpool = nn.AdaptiveAvgPool2d(1) self.fc1 = nn.Conv2d( in_channels, in_channels // reduction, kernel_size=1, bias=True, padding=0 ) self.norm1 = None if layer_norm: self.norm1 = nn.LayerNorm((in_channels // reduction, 1, 1)) self.relu = nn.ReLU(inplace=True) self.fc2 = nn.Conv2d( in_channels // reduction, num_gates, kernel_size=1, bias=True, padding=0 ) if gate_activation == "sigmoid": self.gate_activation = nn.Sigmoid() elif gate_activation == "relu": self.gate_activation = nn.ReLU(inplace=True) elif gate_activation == "linear": self.gate_activation = None else: raise RuntimeError("Unknown gate activation: {}".format(gate_activation)) def forward(self, x): input = x x = self.global_avgpool(x) x = self.fc1(x) if self.norm1 is not None: x = self.norm1(x) x = self.relu(x) x = self.fc2(x) if self.gate_activation is not None: x = self.gate_activation(x) if self.return_gates: return x return input * x class OSBlock(nn.Module): """Omni-scale feature learning block.""" def __init__( self, in_channels, out_channels, IN=False, bottleneck_reduction=4, **kwargs ): super(OSBlock, self).__init__() mid_channels = out_channels // bottleneck_reduction self.conv1 = Conv1x1(in_channels, mid_channels) self.conv2a = LightConv3x3(mid_channels, mid_channels) self.conv2b = nn.Sequential( LightConv3x3(mid_channels, mid_channels), LightConv3x3(mid_channels, mid_channels), ) self.conv2c = nn.Sequential( LightConv3x3(mid_channels, mid_channels), LightConv3x3(mid_channels, mid_channels), LightConv3x3(mid_channels, mid_channels), ) self.conv2d = nn.Sequential( LightConv3x3(mid_channels, mid_channels), LightConv3x3(mid_channels, mid_channels), LightConv3x3(mid_channels, mid_channels), LightConv3x3(mid_channels, mid_channels), ) self.gate = ChannelGate(mid_channels) self.conv3 = Conv1x1Linear(mid_channels, out_channels) self.downsample = None if in_channels != out_channels: self.downsample = Conv1x1Linear(in_channels, out_channels) self.IN = None if IN: self.IN = nn.InstanceNorm2d(out_channels, affine=True) def forward(self, x): identity = x x1 = self.conv1(x) x2a = self.conv2a(x1) x2b = self.conv2b(x1) x2c = self.conv2c(x1) x2d = self.conv2d(x1) x2 = self.gate(x2a) + self.gate(x2b) + self.gate(x2c) + self.gate(x2d) x3 = self.conv3(x2) if self.downsample is not None: identity = self.downsample(identity) out = x3 + identity if self.IN is not None: out = self.IN(out) return F.relu(out) ########## # Network architecture ########## class OSNet(nn.Module): """Omni-Scale Network. Reference: - Zhou et al. Omni-Scale Feature Learning for Person Re-Identification. ICCV, 2019. - Zhou et al. Learning Generalisable Omni-Scale Representations for Person Re-Identification. TPAMI, 2021. """ def __init__( self, num_classes, blocks, layers, channels, feature_dim=512, loss="softmax", IN=False, **kwargs, ): super(OSNet, self).__init__() num_blocks = len(blocks) assert num_blocks == len(layers) assert num_blocks == len(channels) - 1 self.loss = loss self.feature_dim = feature_dim # convolutional backbone self.conv1 = ConvLayer(3, channels[0], 7, stride=2, padding=3, IN=IN) self.maxpool = nn.MaxPool2d(3, stride=2, padding=1) self.conv2 = self._make_layer( blocks[0], layers[0], channels[0], channels[1], reduce_spatial_size=True, IN=IN, ) self.conv3 = self._make_layer( blocks[1], layers[1], channels[1], channels[2], reduce_spatial_size=True ) self.conv4 = self._make_layer( blocks[2], layers[2], channels[2], channels[3], reduce_spatial_size=False ) self.conv5 = Conv1x1(channels[3], channels[3]) self.global_avgpool = nn.AdaptiveAvgPool2d(1) # fully connected layer self.fc = self._construct_fc_layer( self.feature_dim, channels[3], dropout_p=None ) # identity classification layer self.classifier = nn.Linear(self.feature_dim, num_classes) self._init_params() def _make_layer( self, block, layer, in_channels, out_channels, reduce_spatial_size, IN=False ): layers = [] layers.append(block(in_channels, out_channels, IN=IN)) for i in range(1, layer): layers.append(block(out_channels, out_channels, IN=IN)) if reduce_spatial_size: layers.append( nn.Sequential( Conv1x1(out_channels, out_channels), nn.AvgPool2d(2, stride=2) ) ) return nn.Sequential(*layers) def _construct_fc_layer(self, fc_dims, input_dim, dropout_p=None): if fc_dims is None or fc_dims < 0: self.feature_dim = input_dim return None if isinstance(fc_dims, int): fc_dims = [fc_dims] layers = [] for dim in fc_dims: layers.append(nn.Linear(input_dim, dim)) layers.append(nn.BatchNorm1d(dim)) layers.append(nn.ReLU(inplace=True)) if dropout_p is not None: layers.append(nn.Dropout(p=dropout_p)) input_dim = dim self.feature_dim = fc_dims[-1] return nn.Sequential(*layers) def _init_params(self): for m in self.modules(): if isinstance(m, nn.Conv2d): nn.init.kaiming_normal_(m.weight, mode="fan_out", nonlinearity="relu") if m.bias is not None: nn.init.constant_(m.bias, 0) elif isinstance(m, nn.BatchNorm2d): nn.init.constant_(m.weight, 1) nn.init.constant_(m.bias, 0) elif isinstance(m, nn.BatchNorm1d): nn.init.constant_(m.weight, 1) nn.init.constant_(m.bias, 0) elif isinstance(m, nn.Linear): nn.init.normal_(m.weight, 0, 0.01) if m.bias is not None: nn.init.constant_(m.bias, 0) def featuremaps(self, x): x = self.conv1(x) x = self.maxpool(x) x = self.conv2(x) x = self.conv3(x) x = self.conv4(x) x = self.conv5(x) return x def forward(self, x, return_featuremaps=False): x = self.featuremaps(x) if return_featuremaps: return x v = self.global_avgpool(x) v = v.view(v.size(0), -1) if self.fc is not None: v = self.fc(v) if not self.training: return v y = self.classifier(v) if self.loss == "softmax": return y elif self.loss == "triplet": return y, v else: raise KeyError("Unsupported loss: {}".format(self.loss)) def init_pretrained_weights(model, key=""): """Initializes model with pretrained weights. Layers that don't match with pretrained layers in name or size are kept unchanged. """ import errno import os from collections import OrderedDict import gdown def _get_torch_home(): ENV_TORCH_HOME = "TORCH_HOME" ENV_XDG_CACHE_HOME = "XDG_CACHE_HOME" DEFAULT_CACHE_DIR = "~/.cache" torch_home = os.path.expanduser( os.getenv( ENV_TORCH_HOME, os.path.join(os.getenv(ENV_XDG_CACHE_HOME, DEFAULT_CACHE_DIR), "torch"), ) ) return torch_home torch_home = _get_torch_home() model_dir = os.path.join(torch_home, "checkpoints") try: os.makedirs(model_dir) except OSError as e: if e.errno == errno.EEXIST: # Directory already exists, ignore. pass else: # Unexpected OSError, re-raise. raise filename = key + "_imagenet.pth" cached_file = os.path.join(model_dir, filename) if not os.path.exists(cached_file): gdown.download(pretrained_urls[key], cached_file, quiet=False) state_dict = torch.load(cached_file) model_dict = model.state_dict() new_state_dict = OrderedDict() matched_layers, discarded_layers = [], [] for k, v in state_dict.items(): if k.startswith("module."): k = k[7:] # discard module. if k in model_dict and model_dict[k].size() == v.size(): new_state_dict[k] = v matched_layers.append(k) else: discarded_layers.append(k) model_dict.update(new_state_dict) model.load_state_dict(model_dict) if len(matched_layers) == 0: warnings.warn( 'The pretrained weights from "{}" cannot be loaded, ' "please check the key names manually " "(** ignored and continue **)".format(cached_file) ) else: print( 'Successfully loaded imagenet pretrained weights from "{}"'.format( cached_file ) ) if len(discarded_layers) > 0: print( "** The following layers are discarded " "due to unmatched keys or layer size: {}".format(discarded_layers) ) ########## # Instantiation ########## def osnet_x1_0(num_classes=1000, pretrained=True, loss="softmax", **kwargs): # standard size (width x1.0) model = OSNet( num_classes, blocks=[OSBlock, OSBlock, OSBlock], layers=[2, 2, 2], channels=[64, 256, 384, 512], loss=loss, **kwargs, ) if pretrained: init_pretrained_weights(model, key="osnet_x1_0") return model def osnet_x0_75(num_classes=1000, pretrained=True, loss="softmax", **kwargs): # medium size (width x0.75) model = OSNet( num_classes, blocks=[OSBlock, OSBlock, OSBlock], layers=[2, 2, 2], channels=[48, 192, 288, 384], loss=loss, **kwargs, ) if pretrained: init_pretrained_weights(model, key="osnet_x0_75") return model def osnet_x0_5(num_classes=1000, pretrained=True, loss="softmax", **kwargs): # tiny size (width x0.5) model = OSNet( num_classes, blocks=[OSBlock, OSBlock, OSBlock], layers=[2, 2, 2], channels=[32, 128, 192, 256], loss=loss, **kwargs, ) if pretrained: init_pretrained_weights(model, key="osnet_x0_5") return model def osnet_x0_25(num_classes=1000, pretrained=True, loss="softmax", **kwargs): # very tiny size (width x0.25) model = OSNet( num_classes, blocks=[OSBlock, OSBlock, OSBlock], layers=[2, 2, 2], channels=[16, 64, 96, 128], loss=loss, **kwargs, ) if pretrained: init_pretrained_weights(model, key="osnet_x0_25") return model def osnet_ibn_x1_0(num_classes=1000, pretrained=True, loss="softmax", **kwargs): # standard size (width x1.0) + IBN layer # Ref: Pan et al. Two at Once: Enhancing Learning and Generalization Capacities via IBN-Net. ECCV, 2018. model = OSNet( num_classes, blocks=[OSBlock, OSBlock, OSBlock], layers=[2, 2, 2], channels=[64, 256, 384, 512], loss=loss, IN=True, **kwargs, ) if pretrained: init_pretrained_weights(model, key="osnet_ibn_x1_0") return model ================================================ FILE: boxmot/reid/backbones/osnet_ain.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license from __future__ import absolute_import, division import warnings import torch from torch import nn from torch.nn import functional as F __all__ = ["osnet_ain_x1_0", "osnet_ain_x0_75", "osnet_ain_x0_5", "osnet_ain_x0_25"] pretrained_urls = { "osnet_ain_x1_0": "https://drive.google.com/uc?id=1-CaioD9NaqbHK_kzSMW8VE4_3KcsRjEo", "osnet_ain_x0_75": "https://drive.google.com/uc?id=1apy0hpsMypqstfencdH-jKIUEFOW4xoM", "osnet_ain_x0_5": "https://drive.google.com/uc?id=1KusKvEYyKGDTUBVRxRiz55G31wkihB6l", "osnet_ain_x0_25": "https://drive.google.com/uc?id=1SxQt2AvmEcgWNhaRb2xC4rP6ZwVDP0Wt", } ########## # Basic layers ########## class ConvLayer(nn.Module): """Convolution layer (conv + bn + relu).""" def __init__( self, in_channels, out_channels, kernel_size, stride=1, padding=0, groups=1, IN=False, ): super(ConvLayer, self).__init__() self.conv = nn.Conv2d( in_channels, out_channels, kernel_size, stride=stride, padding=padding, bias=False, groups=groups, ) if IN: self.bn = nn.InstanceNorm2d(out_channels, affine=True) else: self.bn = nn.BatchNorm2d(out_channels) self.relu = nn.ReLU() def forward(self, x): x = self.conv(x) x = self.bn(x) return self.relu(x) class Conv1x1(nn.Module): """1x1 convolution + bn + relu.""" def __init__(self, in_channels, out_channels, stride=1, groups=1): super(Conv1x1, self).__init__() self.conv = nn.Conv2d( in_channels, out_channels, 1, stride=stride, padding=0, bias=False, groups=groups, ) self.bn = nn.BatchNorm2d(out_channels) self.relu = nn.ReLU() def forward(self, x): x = self.conv(x) x = self.bn(x) return self.relu(x) class Conv1x1Linear(nn.Module): """1x1 convolution + bn (w/o non-linearity).""" def __init__(self, in_channels, out_channels, stride=1, bn=True): super(Conv1x1Linear, self).__init__() self.conv = nn.Conv2d( in_channels, out_channels, 1, stride=stride, padding=0, bias=False ) self.bn = None if bn: self.bn = nn.BatchNorm2d(out_channels) def forward(self, x): x = self.conv(x) if self.bn is not None: x = self.bn(x) return x class Conv3x3(nn.Module): """3x3 convolution + bn + relu.""" def __init__(self, in_channels, out_channels, stride=1, groups=1): super(Conv3x3, self).__init__() self.conv = nn.Conv2d( in_channels, out_channels, 3, stride=stride, padding=1, bias=False, groups=groups, ) self.bn = nn.BatchNorm2d(out_channels) self.relu = nn.ReLU() def forward(self, x): x = self.conv(x) x = self.bn(x) return self.relu(x) class LightConv3x3(nn.Module): """Lightweight 3x3 convolution. 1x1 (linear) + dw 3x3 (nonlinear). """ def __init__(self, in_channels, out_channels): super(LightConv3x3, self).__init__() self.conv1 = nn.Conv2d( in_channels, out_channels, 1, stride=1, padding=0, bias=False ) self.conv2 = nn.Conv2d( out_channels, out_channels, 3, stride=1, padding=1, bias=False, groups=out_channels, ) self.bn = nn.BatchNorm2d(out_channels) self.relu = nn.ReLU() def forward(self, x): x = self.conv1(x) x = self.conv2(x) x = self.bn(x) return self.relu(x) class LightConvStream(nn.Module): """Lightweight convolution stream.""" def __init__(self, in_channels, out_channels, depth): super(LightConvStream, self).__init__() assert depth >= 1, "depth must be equal to or larger than 1, but got {}".format( depth ) layers = [] layers += [LightConv3x3(in_channels, out_channels)] for i in range(depth - 1): layers += [LightConv3x3(out_channels, out_channels)] self.layers = nn.Sequential(*layers) def forward(self, x): return self.layers(x) ########## # Building blocks for omni-scale feature learning ########## class ChannelGate(nn.Module): """A mini-network that generates channel-wise gates conditioned on input tensor.""" def __init__( self, in_channels, num_gates=None, return_gates=False, gate_activation="sigmoid", reduction=16, layer_norm=False, ): super(ChannelGate, self).__init__() if num_gates is None: num_gates = in_channels self.return_gates = return_gates self.global_avgpool = nn.AdaptiveAvgPool2d(1) self.fc1 = nn.Conv2d( in_channels, in_channels // reduction, kernel_size=1, bias=True, padding=0 ) self.norm1 = None if layer_norm: self.norm1 = nn.LayerNorm((in_channels // reduction, 1, 1)) self.relu = nn.ReLU() self.fc2 = nn.Conv2d( in_channels // reduction, num_gates, kernel_size=1, bias=True, padding=0 ) if gate_activation == "sigmoid": self.gate_activation = nn.Sigmoid() elif gate_activation == "relu": self.gate_activation = nn.ReLU() elif gate_activation == "linear": self.gate_activation = None else: raise RuntimeError("Unknown gate activation: {}".format(gate_activation)) def forward(self, x): input = x x = self.global_avgpool(x) x = self.fc1(x) if self.norm1 is not None: x = self.norm1(x) x = self.relu(x) x = self.fc2(x) if self.gate_activation is not None: x = self.gate_activation(x) if self.return_gates: return x return input * x class OSBlock(nn.Module): """Omni-scale feature learning block.""" def __init__(self, in_channels, out_channels, reduction=4, T=4, **kwargs): super(OSBlock, self).__init__() assert T >= 1 assert out_channels >= reduction and out_channels % reduction == 0 mid_channels = out_channels // reduction self.conv1 = Conv1x1(in_channels, mid_channels) self.conv2 = nn.ModuleList() for t in range(1, T + 1): self.conv2 += [LightConvStream(mid_channels, mid_channels, t)] self.gate = ChannelGate(mid_channels) self.conv3 = Conv1x1Linear(mid_channels, out_channels) self.downsample = None if in_channels != out_channels: self.downsample = Conv1x1Linear(in_channels, out_channels) def forward(self, x): identity = x x1 = self.conv1(x) x2 = 0 for conv2_t in self.conv2: x2_t = conv2_t(x1) x2 = x2 + self.gate(x2_t) x3 = self.conv3(x2) if self.downsample is not None: identity = self.downsample(identity) out = x3 + identity return F.relu(out) class OSBlockINin(nn.Module): """Omni-scale feature learning block with instance normalization.""" def __init__(self, in_channels, out_channels, reduction=4, T=4, **kwargs): super(OSBlockINin, self).__init__() assert T >= 1 assert out_channels >= reduction and out_channels % reduction == 0 mid_channels = out_channels // reduction self.conv1 = Conv1x1(in_channels, mid_channels) self.conv2 = nn.ModuleList() for t in range(1, T + 1): self.conv2 += [LightConvStream(mid_channels, mid_channels, t)] self.gate = ChannelGate(mid_channels) self.conv3 = Conv1x1Linear(mid_channels, out_channels, bn=False) self.downsample = None if in_channels != out_channels: self.downsample = Conv1x1Linear(in_channels, out_channels) self.IN = nn.InstanceNorm2d(out_channels, affine=True) def forward(self, x): identity = x x1 = self.conv1(x) x2 = 0 for conv2_t in self.conv2: x2_t = conv2_t(x1) x2 = x2 + self.gate(x2_t) x3 = self.conv3(x2) x3 = self.IN(x3) # IN inside residual if self.downsample is not None: identity = self.downsample(identity) out = x3 + identity return F.relu(out) ########## # Network architecture ########## class OSNet(nn.Module): """Omni-Scale Network. Reference: - Zhou et al. Omni-Scale Feature Learning for Person Re-Identification. ICCV, 2019. - Zhou et al. Learning Generalisable Omni-Scale Representations for Person Re-Identification. TPAMI, 2021. """ def __init__( self, num_classes, blocks, layers, channels, feature_dim=512, loss="softmax", conv1_IN=False, **kwargs, ): super(OSNet, self).__init__() num_blocks = len(blocks) assert num_blocks == len(layers) assert num_blocks == len(channels) - 1 self.loss = loss self.feature_dim = feature_dim # convolutional backbone self.conv1 = ConvLayer(3, channels[0], 7, stride=2, padding=3, IN=conv1_IN) self.maxpool = nn.MaxPool2d(3, stride=2, padding=1) self.conv2 = self._make_layer(blocks[0], layers[0], channels[0], channels[1]) self.pool2 = nn.Sequential( Conv1x1(channels[1], channels[1]), nn.AvgPool2d(2, stride=2) ) self.conv3 = self._make_layer(blocks[1], layers[1], channels[1], channels[2]) self.pool3 = nn.Sequential( Conv1x1(channels[2], channels[2]), nn.AvgPool2d(2, stride=2) ) self.conv4 = self._make_layer(blocks[2], layers[2], channels[2], channels[3]) self.conv5 = Conv1x1(channels[3], channels[3]) self.global_avgpool = nn.AdaptiveAvgPool2d(1) # fully connected layer self.fc = self._construct_fc_layer( self.feature_dim, channels[3], dropout_p=None ) # identity classification layer self.classifier = nn.Linear(self.feature_dim, num_classes) self._init_params() def _make_layer(self, blocks, layer, in_channels, out_channels): layers = [] layers += [blocks[0](in_channels, out_channels)] for i in range(1, len(blocks)): layers += [blocks[i](out_channels, out_channels)] return nn.Sequential(*layers) def _construct_fc_layer(self, fc_dims, input_dim, dropout_p=None): if fc_dims is None or fc_dims < 0: self.feature_dim = input_dim return None if isinstance(fc_dims, int): fc_dims = [fc_dims] layers = [] for dim in fc_dims: layers.append(nn.Linear(input_dim, dim)) layers.append(nn.BatchNorm1d(dim)) layers.append(nn.ReLU()) if dropout_p is not None: layers.append(nn.Dropout(p=dropout_p)) input_dim = dim self.feature_dim = fc_dims[-1] return nn.Sequential(*layers) def _init_params(self): for m in self.modules(): if isinstance(m, nn.Conv2d): nn.init.kaiming_normal_(m.weight, mode="fan_out", nonlinearity="relu") if m.bias is not None: nn.init.constant_(m.bias, 0) elif isinstance(m, nn.BatchNorm2d): nn.init.constant_(m.weight, 1) nn.init.constant_(m.bias, 0) elif isinstance(m, nn.BatchNorm1d): nn.init.constant_(m.weight, 1) nn.init.constant_(m.bias, 0) elif isinstance(m, nn.InstanceNorm2d): nn.init.constant_(m.weight, 1) nn.init.constant_(m.bias, 0) elif isinstance(m, nn.Linear): nn.init.normal_(m.weight, 0, 0.01) if m.bias is not None: nn.init.constant_(m.bias, 0) def featuremaps(self, x): x = self.conv1(x) x = self.maxpool(x) x = self.conv2(x) x = self.pool2(x) x = self.conv3(x) x = self.pool3(x) x = self.conv4(x) x = self.conv5(x) return x def forward(self, x, return_featuremaps=False): x = self.featuremaps(x) if return_featuremaps: return x v = self.global_avgpool(x) v = v.view(v.size(0), -1) if self.fc is not None: v = self.fc(v) if not self.training: return v y = self.classifier(v) if self.loss == "softmax": return y elif self.loss == "triplet": return y, v else: raise KeyError("Unsupported loss: {}".format(self.loss)) def init_pretrained_weights(model, key=""): """Initializes model with pretrained weights. Layers that don't match with pretrained layers in name or size are kept unchanged. """ import errno import os from collections import OrderedDict import gdown def _get_torch_home(): ENV_TORCH_HOME = "TORCH_HOME" ENV_XDG_CACHE_HOME = "XDG_CACHE_HOME" DEFAULT_CACHE_DIR = "~/.cache" torch_home = os.path.expanduser( os.getenv( ENV_TORCH_HOME, os.path.join(os.getenv(ENV_XDG_CACHE_HOME, DEFAULT_CACHE_DIR), "torch"), ) ) return torch_home torch_home = _get_torch_home() model_dir = os.path.join(torch_home, "checkpoints") try: os.makedirs(model_dir) except OSError as e: if e.errno == errno.EEXIST: # Directory already exists, ignore. pass else: # Unexpected OSError, re-raise. raise filename = key + "_imagenet.pth" cached_file = os.path.join(model_dir, filename) if not os.path.exists(cached_file): gdown.download(pretrained_urls[key], cached_file, quiet=False) state_dict = torch.load(cached_file) model_dict = model.state_dict() new_state_dict = OrderedDict() matched_layers, discarded_layers = [], [] for k, v in state_dict.items(): if k.startswith("module."): k = k[7:] # discard module. if k in model_dict and model_dict[k].size() == v.size(): new_state_dict[k] = v matched_layers.append(k) else: discarded_layers.append(k) model_dict.update(new_state_dict) model.load_state_dict(model_dict) if len(matched_layers) == 0: warnings.warn( 'The pretrained weights from "{}" cannot be loaded, ' "please check the key names manually " "(** ignored and continue **)".format(cached_file) ) else: print( 'Successfully loaded imagenet pretrained weights from "{}"'.format( cached_file ) ) if len(discarded_layers) > 0: print( "** The following layers are discarded " "due to unmatched keys or layer size: {}".format(discarded_layers) ) ########## # Instantiation ########## def osnet_ain_x1_0(num_classes=1000, pretrained=True, loss="softmax", **kwargs): model = OSNet( num_classes, blocks=[ [OSBlockINin, OSBlockINin], [OSBlock, OSBlockINin], [OSBlockINin, OSBlock], ], layers=[2, 2, 2], channels=[64, 256, 384, 512], loss=loss, conv1_IN=True, **kwargs, ) if pretrained: init_pretrained_weights(model, key="osnet_ain_x1_0") return model def osnet_ain_x0_75(num_classes=1000, pretrained=True, loss="softmax", **kwargs): model = OSNet( num_classes, blocks=[ [OSBlockINin, OSBlockINin], [OSBlock, OSBlockINin], [OSBlockINin, OSBlock], ], layers=[2, 2, 2], channels=[48, 192, 288, 384], loss=loss, conv1_IN=True, **kwargs, ) if pretrained: init_pretrained_weights(model, key="osnet_ain_x0_75") return model def osnet_ain_x0_5(num_classes=1000, pretrained=True, loss="softmax", **kwargs): model = OSNet( num_classes, blocks=[ [OSBlockINin, OSBlockINin], [OSBlock, OSBlockINin], [OSBlockINin, OSBlock], ], layers=[2, 2, 2], channels=[32, 128, 192, 256], loss=loss, conv1_IN=True, **kwargs, ) if pretrained: init_pretrained_weights(model, key="osnet_ain_x0_5") return model def osnet_ain_x0_25(num_classes=1000, pretrained=True, loss="softmax", **kwargs): model = OSNet( num_classes, blocks=[ [OSBlockINin, OSBlockINin], [OSBlock, OSBlockINin], [OSBlockINin, OSBlock], ], layers=[2, 2, 2], channels=[16, 64, 96, 128], loss=loss, conv1_IN=True, **kwargs, ) if pretrained: init_pretrained_weights(model, key="osnet_ain_x0_25") return model ================================================ FILE: boxmot/reid/backbones/resnet.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license """ Code source: https://github.com/pytorch/vision """ from __future__ import absolute_import, division import torch.utils.model_zoo as model_zoo from torch import nn __all__ = [ "resnet18", "resnet34", "resnet50", "resnet101", "resnet152", "resnext50_32x4d", "resnext101_32x8d", "resnet50_fc512", ] model_urls = { "resnet18": "https://download.pytorch.org/models/resnet18-5c106cde.pth", "resnet34": "https://download.pytorch.org/models/resnet34-333f7ec4.pth", "resnet50": "https://download.pytorch.org/models/resnet50-19c8e357.pth", "resnet101": "https://download.pytorch.org/models/resnet101-5d3b4d8f.pth", "resnet152": "https://download.pytorch.org/models/resnet152-b121ed2d.pth", "resnext50_32x4d": "https://download.pytorch.org/models/resnext50_32x4d-7cdf4587.pth", "resnext101_32x8d": "https://download.pytorch.org/models/resnext101_32x8d-8ba56ff5.pth", } def conv3x3(in_planes, out_planes, stride=1, groups=1, dilation=1): """3x3 convolution with padding""" return nn.Conv2d( in_planes, out_planes, kernel_size=3, stride=stride, padding=dilation, groups=groups, bias=False, dilation=dilation, ) def conv1x1(in_planes, out_planes, stride=1): """1x1 convolution""" return nn.Conv2d(in_planes, out_planes, kernel_size=1, stride=stride, bias=False) class BasicBlock(nn.Module): expansion = 1 def __init__( self, inplanes, planes, stride=1, downsample=None, groups=1, base_width=64, dilation=1, norm_layer=None, ): super(BasicBlock, self).__init__() if norm_layer is None: norm_layer = nn.BatchNorm2d if groups != 1 or base_width != 64: raise ValueError("BasicBlock only supports groups=1 and base_width=64") if dilation > 1: raise NotImplementedError("Dilation > 1 not supported in BasicBlock") # Both self.conv1 and self.downsample layers downsample the input when stride != 1 self.conv1 = conv3x3(inplanes, planes, stride) self.bn1 = norm_layer(planes) self.relu = nn.ReLU(inplace=True) self.conv2 = conv3x3(planes, planes) self.bn2 = norm_layer(planes) self.downsample = downsample self.stride = stride def forward(self, x): identity = x out = self.conv1(x) out = self.bn1(out) out = self.relu(out) out = self.conv2(out) out = self.bn2(out) if self.downsample is not None: identity = self.downsample(x) out += identity out = self.relu(out) return out class Bottleneck(nn.Module): expansion = 4 def __init__( self, inplanes, planes, stride=1, downsample=None, groups=1, base_width=64, dilation=1, norm_layer=None, ): super(Bottleneck, self).__init__() if norm_layer is None: norm_layer = nn.BatchNorm2d width = int(planes * (base_width / 64.0)) * groups # Both self.conv2 and self.downsample layers downsample the input when stride != 1 self.conv1 = conv1x1(inplanes, width) self.bn1 = norm_layer(width) self.conv2 = conv3x3(width, width, stride, groups, dilation) self.bn2 = norm_layer(width) self.conv3 = conv1x1(width, planes * self.expansion) self.bn3 = norm_layer(planes * self.expansion) self.relu = nn.ReLU(inplace=True) self.downsample = downsample self.stride = stride def forward(self, x): identity = x out = self.conv1(x) out = self.bn1(out) out = self.relu(out) out = self.conv2(out) out = self.bn2(out) out = self.relu(out) out = self.conv3(out) out = self.bn3(out) if self.downsample is not None: identity = self.downsample(x) out += identity out = self.relu(out) return out class ResNet(nn.Module): """Residual network. Reference: - He et al. Deep Residual Learning for Image Recognition. CVPR 2016. - Xie et al. Aggregated Residual Transformations for Deep Neural Networks. CVPR 2017. Public keys: - ``resnet18``: ResNet18. - ``resnet34``: ResNet34. - ``resnet50``: ResNet50. - ``resnet101``: ResNet101. - ``resnet152``: ResNet152. - ``resnext50_32x4d``: ResNeXt50. - ``resnext101_32x8d``: ResNeXt101. - ``resnet50_fc512``: ResNet50 + FC. """ def __init__( self, num_classes, loss, block, layers, zero_init_residual=False, groups=1, width_per_group=64, replace_stride_with_dilation=None, norm_layer=None, last_stride=2, fc_dims=None, dropout_p=None, **kwargs, ): super(ResNet, self).__init__() if norm_layer is None: norm_layer = nn.BatchNorm2d self._norm_layer = norm_layer self.loss = loss self.feature_dim = 512 * block.expansion self.inplanes = 64 self.dilation = 1 if replace_stride_with_dilation is None: # each element in the tuple indicates if we should replace # the 2x2 stride with a dilated convolution instead replace_stride_with_dilation = [False, False, False] if len(replace_stride_with_dilation) != 3: raise ValueError( "replace_stride_with_dilation should be None " "or a 3-element tuple, got {}".format(replace_stride_with_dilation) ) self.groups = groups self.base_width = width_per_group self.conv1 = nn.Conv2d( 3, self.inplanes, kernel_size=7, stride=2, padding=3, bias=False ) self.bn1 = norm_layer(self.inplanes) self.relu = nn.ReLU(inplace=True) self.maxpool = nn.MaxPool2d(kernel_size=3, stride=2, padding=1) self.layer1 = self._make_layer(block, 64, layers[0]) self.layer2 = self._make_layer( block, 128, layers[1], stride=2, dilate=replace_stride_with_dilation[0] ) self.layer3 = self._make_layer( block, 256, layers[2], stride=2, dilate=replace_stride_with_dilation[1] ) self.layer4 = self._make_layer( block, 512, layers[3], stride=last_stride, dilate=replace_stride_with_dilation[2], ) self.global_avgpool = nn.AdaptiveAvgPool2d((1, 1)) self.fc = self._construct_fc_layer(fc_dims, 512 * block.expansion, dropout_p) self.classifier = nn.Linear(self.feature_dim, num_classes) self._init_params() # Zero-initialize the last BN in each residual branch, # so that the residual branch starts with zeros, and each residual block behaves like an identity. # This improves the model by 0.2~0.3% according to https://arxiv.org/abs/1706.02677 if zero_init_residual: for m in self.modules(): if isinstance(m, Bottleneck): nn.init.constant_(m.bn3.weight, 0) elif isinstance(m, BasicBlock): nn.init.constant_(m.bn2.weight, 0) def _make_layer(self, block, planes, blocks, stride=1, dilate=False): norm_layer = self._norm_layer downsample = None previous_dilation = self.dilation if dilate: self.dilation *= stride stride = 1 if stride != 1 or self.inplanes != planes * block.expansion: downsample = nn.Sequential( conv1x1(self.inplanes, planes * block.expansion, stride), norm_layer(planes * block.expansion), ) layers = [] layers.append( block( self.inplanes, planes, stride, downsample, self.groups, self.base_width, previous_dilation, norm_layer, ) ) self.inplanes = planes * block.expansion for _ in range(1, blocks): layers.append( block( self.inplanes, planes, groups=self.groups, base_width=self.base_width, dilation=self.dilation, norm_layer=norm_layer, ) ) return nn.Sequential(*layers) def _construct_fc_layer(self, fc_dims, input_dim, dropout_p=None): """Constructs fully connected layer Args: fc_dims (list or tuple): dimensions of fc layers, if None, no fc layers are constructed input_dim (int): input dimension dropout_p (float): dropout probability, if None, dropout is unused """ if fc_dims is None: self.feature_dim = input_dim return None assert isinstance( fc_dims, (list, tuple) ), "fc_dims must be either list or tuple, but got {}".format(type(fc_dims)) layers = [] for dim in fc_dims: layers.append(nn.Linear(input_dim, dim)) layers.append(nn.BatchNorm1d(dim)) layers.append(nn.ReLU(inplace=True)) if dropout_p is not None: layers.append(nn.Dropout(p=dropout_p)) input_dim = dim self.feature_dim = fc_dims[-1] return nn.Sequential(*layers) def _init_params(self): for m in self.modules(): if isinstance(m, nn.Conv2d): nn.init.kaiming_normal_(m.weight, mode="fan_out", nonlinearity="relu") if m.bias is not None: nn.init.constant_(m.bias, 0) elif isinstance(m, nn.BatchNorm2d): nn.init.constant_(m.weight, 1) nn.init.constant_(m.bias, 0) elif isinstance(m, nn.BatchNorm1d): nn.init.constant_(m.weight, 1) nn.init.constant_(m.bias, 0) elif isinstance(m, nn.Linear): nn.init.normal_(m.weight, 0, 0.01) if m.bias is not None: nn.init.constant_(m.bias, 0) def featuremaps(self, x): x = self.conv1(x) x = self.bn1(x) x = self.relu(x) x = self.maxpool(x) x = self.layer1(x) x = self.layer2(x) x = self.layer3(x) x = self.layer4(x) return x def forward(self, x): f = self.featuremaps(x) v = self.global_avgpool(f) v = v.view(v.size(0), -1) if self.fc is not None: v = self.fc(v) if not self.training: return v y = self.classifier(v) if self.loss == "softmax": return y elif self.loss == "triplet": return y, v else: raise KeyError("Unsupported loss: {}".format(self.loss)) def init_pretrained_weights(model, model_url): """Initializes model with pretrained weights. Layers that don't match with pretrained layers in name or size are kept unchanged. """ pretrain_dict = model_zoo.load_url(model_url) model_dict = model.state_dict() pretrain_dict = { k: v for k, v in pretrain_dict.items() if k in model_dict and model_dict[k].size() == v.size() } model_dict.update(pretrain_dict) model.load_state_dict(model_dict) """ResNet""" def resnet18(num_classes, loss="softmax", pretrained=True, **kwargs): model = ResNet( num_classes=num_classes, loss=loss, block=BasicBlock, layers=[2, 2, 2, 2], last_stride=2, fc_dims=None, dropout_p=None, **kwargs, ) if pretrained: init_pretrained_weights(model, model_urls["resnet18"]) return model def resnet34(num_classes, loss="softmax", pretrained=True, **kwargs): model = ResNet( num_classes=num_classes, loss=loss, block=BasicBlock, layers=[3, 4, 6, 3], last_stride=2, fc_dims=None, dropout_p=None, **kwargs, ) if pretrained: init_pretrained_weights(model, model_urls["resnet34"]) return model def resnet50(num_classes, loss="softmax", pretrained=True, **kwargs): model = ResNet( num_classes=num_classes, loss=loss, block=Bottleneck, layers=[3, 4, 6, 3], last_stride=2, fc_dims=None, dropout_p=None, **kwargs, ) if pretrained: init_pretrained_weights(model, model_urls["resnet50"]) return model def resnet101(num_classes, loss="softmax", pretrained=True, **kwargs): model = ResNet( num_classes=num_classes, loss=loss, block=Bottleneck, layers=[3, 4, 23, 3], last_stride=2, fc_dims=None, dropout_p=None, **kwargs, ) if pretrained: init_pretrained_weights(model, model_urls["resnet101"]) return model def resnet152(num_classes, loss="softmax", pretrained=True, **kwargs): model = ResNet( num_classes=num_classes, loss=loss, block=Bottleneck, layers=[3, 8, 36, 3], last_stride=2, fc_dims=None, dropout_p=None, **kwargs, ) if pretrained: init_pretrained_weights(model, model_urls["resnet152"]) return model """ResNeXt""" def resnext50_32x4d(num_classes, loss="softmax", pretrained=True, **kwargs): model = ResNet( num_classes=num_classes, loss=loss, block=Bottleneck, layers=[3, 4, 6, 3], last_stride=2, fc_dims=None, dropout_p=None, groups=32, width_per_group=4, **kwargs, ) if pretrained: init_pretrained_weights(model, model_urls["resnext50_32x4d"]) return model def resnext101_32x8d(num_classes, loss="softmax", pretrained=True, **kwargs): model = ResNet( num_classes=num_classes, loss=loss, block=Bottleneck, layers=[3, 4, 23, 3], last_stride=2, fc_dims=None, dropout_p=None, groups=32, width_per_group=8, **kwargs, ) if pretrained: init_pretrained_weights(model, model_urls["resnext101_32x8d"]) return model """ ResNet + FC """ def resnet50_fc512(num_classes, loss="softmax", pretrained=True, **kwargs): model = ResNet( num_classes=num_classes, loss=loss, block=Bottleneck, layers=[3, 4, 6, 3], last_stride=1, fc_dims=[512], dropout_p=None, **kwargs, ) if pretrained: init_pretrained_weights(model, model_urls["resnet50"]) return model ================================================ FILE: boxmot/reid/backends/base_backend.py ================================================ import os from abc import abstractmethod from pathlib import Path import cv2 import gdown import numpy as np import torch from filelock import SoftFileLock from boxmot.reid.core.registry import ReIDModelRegistry from boxmot.utils import WEIGHTS, logger as LOGGER from boxmot.utils.checks import RequirementsChecker from boxmot.utils.misc import resolve_model_path class BaseModelBackend: def __init__(self, weights, device, half): self.weights = weights[0] if isinstance(weights, list) else weights if isinstance(self.weights, str): self.weights = Path(self.weights) self.weights = resolve_model_path(self.weights) LOGGER.info(self.weights) self.device = device self.half = half self.model = None self.cuda = torch.cuda.is_available() and self.device.type != "cpu" self.download_model(self.weights) self.model_name = ReIDModelRegistry.get_model_name(self.weights) self.model = ReIDModelRegistry.build_model( self.model_name, self.weights, num_classes=ReIDModelRegistry.get_nr_classes(self.weights), pretrained=not (self.weights and self.weights.is_file()), use_gpu=device, ) self.checker = RequirementsChecker() self.load_model(self.weights) self.mean_array = torch.tensor([0.485, 0.456, 0.406], device=self.device).view(1, 3, 1, 1) self.std_array = torch.tensor([0.229, 0.224, 0.225], device=self.device).view(1, 3, 1, 1) if "clip" in self.model_name: self.mean_array = torch.tensor([0.5, 0.5, 0.5], device=self.device).view(1, 3, 1, 1) self.std_array = torch.tensor([0.5, 0.5, 0.5], device=self.device).view(1, 3, 1, 1) # Determine input shape, depending on dataset and model name if "vehicleid" in self.weights.name or "veri" in self.weights.name: input_shape = (256, 256) elif "lmbn" in self.model_name: input_shape = (384, 128) elif "hacnn" in self.model_name: input_shape = (160, 64) else: input_shape = (256, 128) self.input_shape = input_shape @staticmethod def _obb_to_xyxy(box: np.ndarray) -> np.ndarray: """Convert a single OBB `[cx, cy, w, h, angle]` to its enclosing AABB.""" box = np.asarray(box, dtype=np.float32).reshape(-1) cx, cy, bw, bh, angle = box[:5] rect = ((float(cx), float(cy)), (max(float(bw), 1e-4), max(float(bh), 1e-4)), float(np.degrees(angle))) corners = cv2.boxPoints(rect) x1, y1 = corners.min(axis=0) x2, y2 = corners.max(axis=0) return np.array([x1, y1, x2, y2], dtype=np.float32) @staticmethod def _order_corners(corners: np.ndarray) -> np.ndarray: """Return corners ordered as top-left, top-right, bottom-right, bottom-left.""" corners = np.asarray(corners, dtype=np.float32) ordered = np.zeros((4, 2), dtype=np.float32) s = corners.sum(axis=1) d = np.diff(corners, axis=1).reshape(-1) ordered[0] = corners[np.argmin(s)] ordered[2] = corners[np.argmax(s)] ordered[1] = corners[np.argmin(d)] ordered[3] = corners[np.argmax(d)] return ordered @staticmethod def _crop_obb(box: np.ndarray, img: np.ndarray) -> np.ndarray: """Extract a rectified crop from an oriented box `[cx, cy, w, h, angle]`.""" box = np.asarray(box, dtype=np.float32).reshape(-1) cx, cy, bw, bh, angle = box[:5] bw = max(float(bw), 1.0) bh = max(float(bh), 1.0) rect = ((float(cx), float(cy)), (bw, bh), float(np.degrees(angle))) src = BaseModelBackend._order_corners(cv2.boxPoints(rect)) dst = np.array( [[0, 0], [bw - 1, 0], [bw - 1, bh - 1], [0, bh - 1]], dtype=np.float32, ) matrix = cv2.getPerspectiveTransform(src, dst) return cv2.warpPerspective( img, matrix, (max(int(round(bw)), 1), max(int(round(bh)), 1)), flags=cv2.INTER_LINEAR, borderMode=cv2.BORDER_CONSTANT, borderValue=(0, 0, 0), ) @staticmethod def _is_obb_box(box: np.ndarray) -> bool: """Return whether a single row is in one of the supported OBB layouts.""" return np.asarray(box).reshape(-1).shape[0] in (5, 7, 9) @classmethod def _boxes_to_xyxy(cls, boxes: np.ndarray) -> np.ndarray: """ Normalize AABB/OBB detections to `[x1, y1, x2, y2]` for ReID cropping. Accepted layouts: - AABB: `[x1, y1, x2, y2]` or rows with at least 4 leading AABB coordinates - OBB: `[cx, cy, w, h, angle]`, `[cx, cy, w, h, angle, conf, cls]`, or track outputs with 9 leading OBB fields. """ boxes = np.asarray(boxes, dtype=np.float32) if boxes.size == 0: return boxes.reshape(0, 4) if boxes.ndim == 1: boxes = boxes.reshape(1, -1) if boxes.shape[1] in (5, 7, 9): return np.vstack([cls._obb_to_xyxy(box[:5]) for box in boxes]).astype(np.float32) if boxes.shape[1] < 4: raise ValueError("Expected detections with at least 4 coordinates") return boxes[:, :4].astype(np.float32, copy=False) def get_crops(self, xyxys, img): h, w = img.shape[:2] interpolation_method = cv2.INTER_LINEAR xyxys = np.asarray(xyxys, dtype=np.float32) if xyxys.size == 0: xyxys = xyxys.reshape(0, 4) elif xyxys.ndim == 1: xyxys = xyxys.reshape(1, -1) # Preallocate tensor for crops num_crops = len(xyxys) crops = torch.empty( (num_crops, 3, *self.input_shape), dtype=torch.half if self.half else torch.float, device=self.device, ) for i, box in enumerate(xyxys): if self._is_obb_box(box): crop = self._crop_obb(box[:5], img) else: x1, y1, x2, y2 = box[:4].round().astype("int") x1, y1, x2, y2 = max(0, x1), max(0, y1), min(w, x2), min(h, y2) if x2 <= x1: x1 = min(max(0, x1), max(0, w - 1)) x2 = min(w, x1 + 1) if y2 <= y1: y1 = min(max(0, y1), max(0, h - 1)) y2 = min(h, y1 + 1) crop = img[y1:y2, x1:x2] # Resize and convert color in one step crop = cv2.resize( crop, (self.input_shape[1], self.input_shape[0]), interpolation=interpolation_method, ) crop = cv2.cvtColor(crop, cv2.COLOR_BGR2RGB) # Convert to tensor and normalize (convert to [0, 1] by dividing by 255 in batch later) crop = torch.from_numpy(crop).to( self.device, dtype=torch.half if self.half else torch.float ) crops[i] = torch.permute(crop, (2, 0, 1)) # Change to (C, H, W) # Normalize the entire batch in one go crops = crops / 255.0 # Standardize the batch crops = (crops - self.mean_array) / self.std_array return crops @torch.no_grad() def get_features(self, xyxys, img): if xyxys.size != 0: crops = self.get_crops(xyxys, img) crops = self.inference_preprocess(crops) features = self.forward(crops) features = self.inference_postprocess(features) else: features = np.array([]) features = features / np.linalg.norm(features, axis=-1, keepdims=True) return features def warmup(self, imgsz=[(256, 128, 3)]): # warmup model by running inference once if self.device.type != "cpu": im = np.random.randint(0, 255, *imgsz, dtype=np.uint8) crops = self.get_crops( xyxys=np.array([[0, 0, 64, 64], [0, 0, 128, 128]]), img=im ) crops = self.inference_preprocess(crops) self.forward(crops) # warmup def to_numpy(self, x): return x.cpu().numpy() if isinstance(x, torch.Tensor) else x def inference_preprocess(self, x): if self.half: if isinstance(x, torch.Tensor): if x.dtype != torch.float16: x = x.half() elif isinstance(x, np.ndarray): if x.dtype != np.float16: x = x.astype(np.float16) if self.nhwc: if isinstance(x, torch.Tensor): x = x.permute(0, 2, 3, 1) # Convert from NCHW to NHWC elif isinstance(x, np.ndarray): x = np.transpose(x, (0, 2, 3, 1)) # Convert from NCHW to NHWC return x def inference_postprocess(self, features): if isinstance(features, (list, tuple)): return ( self.to_numpy(features[0]) if len(features) == 1 else [self.to_numpy(x) for x in features] ) else: return self.to_numpy(features) @abstractmethod def forward(self, im_batch): raise NotImplementedError("This method should be implemented by subclasses.") @abstractmethod def load_model(self, w): raise NotImplementedError("This method should be implemented by subclasses.") def download_model(self, w): if isinstance(w, str): w = Path(w) w = resolve_model_path(w) if w.suffix != ".pt": return w.parent.mkdir(parents=True, exist_ok=True) model_url = ReIDModelRegistry.get_model_url(w) lock = SoftFileLock(str(w) + ".lock", timeout=300) # Wait up to 5 minutes with lock: if w.exists() or "openvino" in w.name: LOGGER.info(f"[PID {os.getpid()}] Found existing ReID weights at {w}; skipping download.") return if model_url: LOGGER.info(f"[PID {os.getpid()}] Downloading ReID weights from {model_url} → {w}") gdown.download(model_url, str(w), quiet=False) else: LOGGER.error( f"No URL associated with the chosen ReID weights ({w}).\n" f"Choose one of the following:" ) ReIDModelRegistry.show_downloadable_models() ================================================ FILE: boxmot/reid/backends/onnx_backend.py ================================================ from boxmot.reid.backends.base_backend import BaseModelBackend class ONNXBackend(BaseModelBackend): def __init__(self, weights, device, half): super().__init__(weights, device, half) self.nhwc = False self.half = half def load_model(self, w): # ONNXRuntime will attempt to use the first provider, and if it fails or is not # available for some reason, it will fall back to the next provider in the list if self.device.type == "mps": self.checker.check_packages(("onnxruntime-silicon>=1.18.1",)) providers = ["MPSExecutionProvider", "CPUExecutionProvider"] elif self.device.type == "cuda": self.checker.check_packages(("onnxruntime-gpu>=1.18.1",)) providers = ["CUDAExecutionProvider", "CPUExecutionProvider"] else: self.checker.check_packages(("onnxruntime>=1.18.1",)) providers = ["CPUExecutionProvider"] # Load the ONNX model using onnxruntime import onnxruntime self.session = onnxruntime.InferenceSession(str(w), providers=providers) def forward(self, im_batch): # Convert torch tensor to numpy (onnxruntime expects numpy arrays) im_batch = im_batch.cpu().numpy() # Run inference using ONNX session features = self.session.run( [self.session.get_outputs()[0].name], {self.session.get_inputs()[0].name: im_batch}, )[0] return features ================================================ FILE: boxmot/reid/backends/openvino_backend.py ================================================ from pathlib import Path from boxmot.reid.backends.base_backend import BaseModelBackend from boxmot.utils import logger as LOGGER class OpenVinoBackend(BaseModelBackend): def __init__(self, weights, device, half): super().__init__(weights, device, half) self.nhwc = False self.half = half def load_model(self, w): self.checker.check_packages(("openvino>=2025.2.0",)) LOGGER.info(f"Loading {w} for OpenVINO inference...") try: # requires openvino-dev: https://pypi.org/project/openvino-dev/ from openvino import Core, Layout except ImportError: LOGGER.error( f"Running {self.__class__} with the specified OpenVINO weights\n{w.name}\n" "requires openvino pip package to be installed!\n" "$ pip install openvino>=2025.2.0\n" ) ie = Core() w = Path(w) LOGGER.info(w) if w.suffix == '.bin': w = w.with_suffix('.xml') if not w.is_file(): # if not *.xml w = next( Path(w).glob("*.xml") ) # get *.xml file from *_openvino_model dir network = ie.read_model(model=w, weights=Path(w).with_suffix(".bin")) if network.get_parameters()[0].get_layout().empty: network.get_parameters()[0].set_layout(Layout("NCWH")) self.executable_network = ie.compile_model( network, device_name="CPU" ) # device_name="MYRIAD" for Intel NCS2 self.output_layer = next(iter(self.executable_network.outputs)) def forward(self, im_batch): im_batch = im_batch.cpu().numpy() # FP32 features = self.executable_network([im_batch])[self.output_layer] return features ================================================ FILE: boxmot/reid/backends/pytorch_backend.py ================================================ from boxmot.reid.backends.base_backend import BaseModelBackend from boxmot.reid.core.registry import ReIDModelRegistry class PyTorchBackend(BaseModelBackend): def __init__(self, weights, device, half): super().__init__(weights, device, half) self.nhwc = False self.half = half def load_model(self, w): # Load a PyTorch model if w and w.is_file(): ReIDModelRegistry.load_pretrained_weights(self.model, w) self.model.to(self.device).eval() self.model.half() if self.half else self.model.float() def forward(self, im_batch): features = self.model(im_batch) return features ================================================ FILE: boxmot/reid/backends/tensorrt_backend.py ================================================ from collections import OrderedDict, namedtuple import numpy as np import torch from boxmot.reid.backends.base_backend import BaseModelBackend from boxmot.utils import logger as LOGGER class TensorRTBackend(BaseModelBackend): def __init__(self, weights, device, half): self.is_trt10 = False super().__init__(weights, device, half) self.nhwc = False self.half = half self.device = device self.weights = weights self.fp16 = False # Will be updated in load_model self.load_model(self.weights) def load_model(self, w): LOGGER.info(f"Loading {w} for TensorRT inference...") self.checker.check_packages(("nvidia-tensorrt",)) try: import tensorrt as trt # TensorRT library except ImportError: raise ImportError("Please install tensorrt to use this backend.") if self.device.type == "cpu": if torch.cuda.is_available(): self.device = torch.device("cuda:0") else: raise ValueError("CUDA device not available for TensorRT inference.") Binding = namedtuple("Binding", ("name", "dtype", "shape", "data", "ptr")) logger = trt.Logger(trt.Logger.INFO) # Deserialize the engine with open(w, "rb") as f, trt.Runtime(logger) as runtime: self.model_ = runtime.deserialize_cuda_engine(f.read()) # Execution context self.context = self.model_.create_execution_context() self.bindings = OrderedDict() self.input_name = None self.output_name = None self.is_trt10 = not hasattr(self.model_, "num_bindings") num = range(self.model_.num_io_tensors) if self.is_trt10 else range(self.model_.num_bindings) # Parse bindings for index in num: if self.is_trt10: name = self.model_.get_tensor_name(index) dtype = trt.nptype(self.model_.get_tensor_dtype(name)) is_input = self.model_.get_tensor_mode(name) == trt.TensorIOMode.INPUT if is_input and -1 in tuple(self.model_.get_tensor_shape(name)): self.context.set_input_shape(name, tuple(self.model_.get_tensor_profile_shape(name, 0)[1])) if is_input and dtype == np.float16: self.fp16 = True shape = tuple(self.context.get_tensor_shape(name)) else: name = self.model_.get_binding_name(index) dtype = trt.nptype(self.model_.get_binding_dtype(index)) is_input = self.model_.binding_is_input(index) # Handle dynamic shapes if is_input and -1 in self.model_.get_binding_shape(index): profile_index = 0 min_shape, opt_shape, max_shape = self.model_.get_profile_shape(profile_index, index) self.context.set_binding_shape(index, opt_shape) if is_input and dtype == np.float16: self.fp16 = True shape = tuple(self.context.get_binding_shape(index)) data = torch.from_numpy(np.empty(shape, dtype=dtype)).to(self.device) self.bindings[name] = Binding(name, dtype, shape, data, int(data.data_ptr())) if is_input and self.input_name is None: self.input_name = name if not is_input and self.output_name is None: self.output_name = name # Prefer canonical names when present, otherwise fallback to first I/O tensor. if "images" in self.bindings: self.input_name = "images" if "output" in self.bindings: self.output_name = "output" elif "output0" in self.bindings: self.output_name = "output0" if self.input_name is None or self.output_name is None: raise RuntimeError( f"Failed to infer TensorRT I/O bindings. Available bindings: {list(self.bindings.keys())}" ) self.binding_addrs = OrderedDict((n, d.ptr) for n, d in self.bindings.items()) def forward(self, im_batch): temp_im_batch = im_batch.clone() batch_array = [] inp_batch = im_batch.shape[0] out_batch = self.bindings[self.output_name].shape[0] resultant_features = [] # Divide batch to sub batches while inp_batch > out_batch: batch_array.append(temp_im_batch[:out_batch]) temp_im_batch = temp_im_batch[out_batch:] inp_batch = temp_im_batch.shape[0] if temp_im_batch.shape[0] > 0: batch_array.append(temp_im_batch) for temp_batch in batch_array: # Adjust for dynamic shapes if temp_batch.shape != self.bindings[self.input_name].shape: if self.is_trt10: self.context.set_input_shape(self.input_name, temp_batch.shape) self.bindings[self.input_name] = self.bindings[self.input_name]._replace(shape=temp_batch.shape) self.bindings[self.output_name].data.resize_(tuple(self.context.get_tensor_shape(self.output_name))) else: i_in = self.model_.get_binding_index(self.input_name) i_out = self.model_.get_binding_index(self.output_name) self.context.set_binding_shape(i_in, temp_batch.shape) self.bindings[self.input_name] = self.bindings[self.input_name]._replace(shape=temp_batch.shape) output_shape = tuple(self.context.get_binding_shape(i_out)) self.bindings[self.output_name].data.resize_(output_shape) s = self.bindings[self.input_name].shape assert temp_batch.shape == s, f"Input size {temp_batch.shape} does not match model size {s}" self.binding_addrs[self.input_name] = int(temp_batch.data_ptr()) # Execute inference self.context.execute_v2(list(self.binding_addrs.values())) features = self.bindings[self.output_name].data resultant_features.append(features.clone()) if len(resultant_features) == 1: return resultant_features[0] else: rslt_features = torch.cat(resultant_features, dim=0) rslt_features = rslt_features[: im_batch.shape[0]] return rslt_features ================================================ FILE: boxmot/reid/backends/tflite_backend.py ================================================ from pathlib import Path from importlib import import_module from typing import Any import numpy as np import torch from boxmot.reid.backends.base_backend import BaseModelBackend from boxmot.utils import logger as LOGGER class TFLiteBackend(BaseModelBackend): """ A class to handle LiteRT inference for TFLite models with dynamic batch size support. Attributes: nhwc (bool): A flag indicating the order of dimensions. half (bool): A flag to indicate if half precision is used. interpreter: The LiteRT interpreter instance. current_allocated_batch_size (int): The current batch size allocated in the interpreter. """ def __init__(self, weights: Path, device: str, half: bool): """ Initializes the TFLiteBackend with given weights, device, and precision flag. Args: weights (Path): Path to the TFLite model file. device (str): Device type (e.g., 'cpu', 'gpu'). half (bool): Flag to indicate if half precision is used. """ super().__init__(weights, device, half) self.nhwc = True self.half = False # self.interpreter: tf.lite.Interpreter = None # self.current_allocated_batch_size: int = None def _get_interpreter_class(self) -> type[Any]: """Resolve the LiteRT interpreter class, installing LiteRT when needed.""" try: litert = import_module("ai_edge_litert.interpreter") except ModuleNotFoundError: self.checker.check_packages(("ai-edge-litert",)) litert = import_module("ai_edge_litert.interpreter") return litert.Interpreter def load_model(self, w): """ Loads the TFLite model and initializes the LiteRT interpreter. Args: w (str): Path to the TFLite model file. """ interpreter_class = self._get_interpreter_class() LOGGER.info(f"Loading {str(w)} for LiteRT inference...") self.interpreter = interpreter_class(model_path=str(w)) self.interpreter.allocate_tensors() # allocate self.input_details = self.interpreter.get_input_details() # inputs self.output_details = self.interpreter.get_output_details() # outputs self.current_allocated_batch_size = self.input_details[0]["shape"][0] def forward(self, im_batch: torch.Tensor) -> np.ndarray: """ Runs forward pass for the given image batch through the TFLite model. Args: im_batch (torch.Tensor): Input image batch tensor. Returns: np.ndarray: Output features from the TFLite model. """ im_batch = im_batch.cpu().numpy() # Extract batch size from im_batch batch_size = im_batch.shape[0] # Resize tensors if the new batch size is different from the current allocated batch size if batch_size != self.current_allocated_batch_size: # print(f"Resizing tensor input to batch size {batch_size}") self.interpreter.resize_tensor_input( self.input_details[0]["index"], [batch_size, 256, 128, 3] ) self.interpreter.allocate_tensors() self.current_allocated_batch_size = batch_size # Set the tensor to point to the input data self.interpreter.set_tensor(self.input_details[0]["index"], im_batch) # Run inference self.interpreter.invoke() # Get the output data features = self.interpreter.get_tensor(self.output_details[0]["index"]) return features ================================================ FILE: boxmot/reid/backends/torchscript_backend.py ================================================ import torch from boxmot.reid.backends.base_backend import BaseModelBackend from boxmot.utils import logger as LOGGER class TorchscriptBackend(BaseModelBackend): def __init__(self, weights, device, half): super().__init__(weights, device, half) self.nhwc = False self.half = half def load_model(self, w): LOGGER.info(f"Loading {w} for TorchScript inference...") self.model = torch.jit.load(w) self.model.half() if self.half else self.model.float() def forward(self, im_batch): features = self.model(im_batch) return features ================================================ FILE: boxmot/reid/core/__init__.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license import pandas as pd def export_formats(): # yolo tracking export formats x = [ ["PyTorch", "-", ".pt", True, True], ["TorchScript", "torchscript", ".torchscript", True, True], ["ONNX", "onnx", ".onnx", True, True], ["OpenVINO", "openvino", "_openvino_model", True, False], ["TensorRT", "engine", ".engine", False, True], ["TensorFlow Lite", "tflite", ".tflite", True, False], ] return pd.DataFrame(x, columns=["Format", "Argument", "Suffix", "CPU", "GPU"]) from .reid_handler import ReID ================================================ FILE: boxmot/reid/core/auto_backend.py ================================================ from pathlib import Path from typing import Tuple, Union import torch from boxmot.reid.backends.onnx_backend import ONNXBackend from boxmot.reid.backends.openvino_backend import OpenVinoBackend from boxmot.reid.backends.pytorch_backend import PyTorchBackend from boxmot.reid.backends.tensorrt_backend import TensorRTBackend from boxmot.reid.backends.tflite_backend import TFLiteBackend from boxmot.reid.backends.torchscript_backend import TorchscriptBackend from boxmot.reid.core import export_formats from boxmot.utils import WEIGHTS from boxmot.utils import logger as LOGGER from boxmot.utils.torch_utils import select_device class ReidAutoBackend: def __init__( self, weights: Path = WEIGHTS / "osnet_x0_25_msmt17.pt", device: torch.device = torch.device("cpu"), half: bool = False, ) -> None: """ Initializes the ReidAutoBackend instance with specified weights, device, and precision mode. Args: weights (Union[str, List[str]]): Path to the model weights. Can be a string or a list of strings; if a list, the first element is used. device (torch.device): The device to run the model on, e.g., CPU or GPU. half (bool): Whether to use half precision for model inference. """ super().__init__() w = weights[0] if isinstance(weights, list) else weights ( self.pt, self.jit, self.onnx, self.xml, self.engine, self.tflite, ) = self.model_type(w) # get backend self.weights = weights self.device = select_device(device) self.half = half self.model = self.get_backend() def get_backend( self, ) -> Union[ "PyTorchBackend", "TorchscriptBackend", "ONNXBackend", "TensorRTBackend", "OpenVinoBackend", "TFLiteBackend", ]: """ Returns an instance of the appropriate backend based on the model type. Returns: An instance of a backend class corresponding to the detected model type. Raises: SystemExit: If no supported model framework is detected. """ # Mapping of conditions to backend constructors backend_map = { self.pt: PyTorchBackend, self.jit: TorchscriptBackend, self.onnx: ONNXBackend, self.engine: TensorRTBackend, self.xml: OpenVinoBackend, self.tflite: TFLiteBackend, } # Iterate through the mapping and return the first matching backend for condition, backend_class in backend_map.items(): if condition: return backend_class(self.weights, self.device, self.half) # If no condition is met, log an error and exit LOGGER.error("This model framework is not supported yet!") exit() def check_suffix( self, file: Path = "osnet_x0_25_msmt17.pt", suffix: Union[str, Tuple[str, ...]] = (".pt",), msg: str = "", ) -> None: """ Validates that the file or files have an acceptable suffix. Args: file (Union[str, List[str], Path]): The file or files to check. suffix (Union[str, Tuple[str, ...]]): Acceptable suffix or suffixes. msg (str): Additional message to log in case of an error. """ suffix = [suffix] if isinstance(suffix, str) else list(suffix) files = [file] if isinstance(file, (str, Path)) else list(file) for f in files: file_suffix = Path(f).suffix.lower() if file_suffix and file_suffix not in suffix: LOGGER.error( f"File {f} does not have an acceptable suffix. Expected: {suffix}" ) def model_type(self, p: Path) -> Tuple[bool, ...]: """ Determines the model type based on the file's suffix. Args: path (str): The file path to the model. Returns: Tuple[bool, ...]: A tuple of booleans indicating the model type, corresponding to pt, jit, onnx, xml, engine, and tflite. """ sf = list(export_formats().Suffix) # export suffixes self.check_suffix(p, sf) # checks types = [s in Path(p).name for s in sf] # Explicitly check for OpenVINO extensions (xml, bin) if Path(p).suffix in ['.xml', '.bin']: # Find index of OpenVINO suffix try: ov_idx = sf.index('_openvino_model') types[ov_idx] = True except ValueError: pass return types ================================================ FILE: boxmot/reid/core/config.py ================================================ MODEL_TYPES = [ "resnet50", "resnet101", "mlfn", "hacnn", "mobilenetv2_x1_0", "mobilenetv2_x1_4", "osnet_x1_0", "osnet_x0_75", "osnet_x0_5", "osnet_x0_25", "osnet_ibn_x1_0", "osnet_ain_x1_0", "lmbn_n", "clip", ] TRAINED_URLS = { # resnet50 "resnet50_market1501.pt": "https://drive.google.com/uc?id=1dUUZ4rHDWohmsQXCRe2C_HbYkzz94iBV", "resnet50_dukemtmcreid.pt": "https://drive.google.com/uc?id=17ymnLglnc64NRvGOitY3BqMRS9UWd1wg", "resnet50_msmt17.pt": "https://drive.google.com/uc?id=1ep7RypVDOthCRIAqDnn4_N-UhkkFHJsj", "resnet50_fc512_market1501.pt": "https://drive.google.com/uc?id=1kv8l5laX_YCdIGVCetjlNdzKIA3NvsSt", "resnet50_fc512_dukemtmcreid.pt": "https://drive.google.com/uc?id=13QN8Mp3XH81GK4BPGXobKHKyTGH50Rtx", "resnet50_fc512_msmt17.pt": "https://drive.google.com/uc?id=1fDJLcz4O5wxNSUvImIIjoaIF9u1Rwaud", # mlfn "mlfn_market1501.pt": "https://drive.google.com/uc?id=1wXcvhA_b1kpDfrt9s2Pma-MHxtj9pmvS", "mlfn_dukemtmcreid.pt": "https://drive.google.com/uc?id=1rExgrTNb0VCIcOnXfMsbwSUW1h2L1Bum", "mlfn_msmt17.pt": "https://drive.google.com/uc?id=18JzsZlJb3Wm7irCbZbZ07TN4IFKvR6p-", # hacnn "hacnn_market1501.pt": "https://drive.google.com/uc?id=1LRKIQduThwGxMDQMiVkTScBwR7WidmYF", "hacnn_dukemtmcreid.pt": "https://drive.google.com/uc?id=1zNm6tP4ozFUCUQ7Sv1Z98EAJWXJEhtYH", "hacnn_msmt17.pt": "https://drive.google.com/uc?id=1MsKRtPM5WJ3_Tk2xC0aGOO7pM3VaFDNZ", # mobilenetv2 "mobilenetv2_x1_0_market1501.pt": "https://drive.google.com/uc?id=18DgHC2ZJkjekVoqBWszD8_Xiikz-fewp", "mobilenetv2_x1_0_dukemtmcreid.pt": "https://drive.google.com/uc?id=1q1WU2FETRJ3BXcpVtfJUuqq4z3psetds", "mobilenetv2_x1_0_msmt17.pt": "https://drive.google.com/uc?id=1j50Hv14NOUAg7ZeB3frzfX-WYLi7SrhZ", "mobilenetv2_x1_4_market1501.pt": "https://drive.google.com/uc?id=1t6JCqphJG-fwwPVkRLmGGyEBhGOf2GO5", "mobilenetv2_x1_4_dukemtmcreid.pt": "https://drive.google.com/uc?id=12uD5FeVqLg9-AFDju2L7SQxjmPb4zpBN", "mobilenetv2_x1_4_msmt17.pt": "https://drive.google.com/uc?id=1ZY5P2Zgm-3RbDpbXM0kIBMPvspeNIbXz", # osnet "osnet_x1_0_market1501.pt": "https://drive.google.com/uc?id=1vduhq5DpN2q1g4fYEZfPI17MJeh9qyrA", "osnet_x1_0_dukemtmcreid.pt": "https://drive.google.com/uc?id=1QZO_4sNf4hdOKKKzKc-TZU9WW1v6zQbq", "osnet_x1_0_msmt17.pt": "https://drive.google.com/uc?id=112EMUfBPYeYg70w-syK6V6Mx8-Qb9Q1M", "osnet_x0_75_market1501.pt": "https://drive.google.com/uc?id=1ozRaDSQw_EQ8_93OUmjDbvLXw9TnfPer", "osnet_x0_75_dukemtmcreid.pt": "https://drive.google.com/uc?id=1IE3KRaTPp4OUa6PGTFL_d5_KQSJbP0Or", "osnet_x0_75_msmt17.pt": "https://drive.google.com/uc?id=1QEGO6WnJ-BmUzVPd3q9NoaO_GsPNlmWc", "osnet_x0_5_market1501.pt": "https://drive.google.com/uc?id=1PLB9rgqrUM7blWrg4QlprCuPT7ILYGKT", "osnet_x0_5_dukemtmcreid.pt": "https://drive.google.com/uc?id=1KoUVqmiST175hnkALg9XuTi1oYpqcyTu", "osnet_x0_5_msmt17.pt": "https://drive.google.com/uc?id=1UT3AxIaDvS2PdxzZmbkLmjtiqq7AIKCv", "osnet_x0_25_market1501.pt": "https://drive.google.com/uc?id=1z1UghYvOTtjx7kEoRfmqSMu-z62J6MAj", "osnet_x0_25_dukemtmcreid.pt": "https://drive.google.com/uc?id=1eumrtiXT4NOspjyEV4j8cHmlOaaCGk5l", "osnet_x0_25_msmt17.pt": "https://drive.google.com/uc?id=1sSwXSUlj4_tHZequ_iZ8w_Jh0VaRQMqF", # osnet_ain | osnet_ibn "osnet_ibn_x1_0_msmt17.pt": "https://drive.google.com/uc?id=1q3Sj2ii34NlfxA4LvmHdWO_75NDRmECJ", "osnet_ain_x1_0_msmt17.pt": "https://drive.google.com/uc?id=1SigwBE6mPdqiJMqhuIY4aqC7--5CsMal", # lmbn "lmbn_n_duke.pt": "https://github.com/mikel-brostrom/yolov8_tracking/releases/download/v9.0/lmbn_n_duke.pth", "lmbn_n_market.pt": "https://github.com/mikel-brostrom/yolov8_tracking/releases/download/v9.0/lmbn_n_market.pth", "lmbn_n_cuhk03_d.pt": "https://github.com/mikel-brostrom/yolov8_tracking/releases/download/v9.0/lmbn_n_cuhk03_d.pth", # clip "clip_market1501.pt": "https://drive.google.com/uc?id=1GnyAVeNOg3Yug1KBBWMKKbT2x43O5Ch7", "clip_duke.pt": "https://drive.google.com/uc?id=1ldjSkj-7pXAWmx8on5x0EftlCaolU4dY", "clip_veri.pt": "https://drive.google.com/uc?id=1RyfHdOBI2pan_wIGSim5-l6cM4S2WN8e", "clip_vehicleid.pt": "https://drive.google.com/uc?id=168BLegHHxNqatW5wx1YyL2REaThWoof5", } NR_CLASSES_DICT = { "market1501": 751, "duke": 702, "veri": 576, "vehicleid": 576, } ================================================ FILE: boxmot/reid/core/factory.py ================================================ from boxmot.reid.backbones.clip.make_model import make_model from boxmot.reid.backbones.hacnn import HACNN from boxmot.reid.backbones.lmbn.lmbn_n import LMBN_n from boxmot.reid.backbones.mlfn import mlfn from boxmot.reid.backbones.mobilenetv2 import (mobilenetv2_x1_0, mobilenetv2_x1_4) from boxmot.reid.backbones.osnet import (osnet_ibn_x1_0, osnet_x0_5, osnet_x0_25, osnet_x0_75, osnet_x1_0) from boxmot.reid.backbones.osnet_ain import (osnet_ain_x0_5, osnet_ain_x0_25, osnet_ain_x0_75, osnet_ain_x1_0) from boxmot.reid.backbones.resnet import resnet50, resnet101 # Map model names to their respective constructors MODEL_FACTORY = { "resnet50": resnet50, "resnet101": resnet101, "mobilenetv2_x1_0": mobilenetv2_x1_0, "mobilenetv2_x1_4": mobilenetv2_x1_4, "hacnn": HACNN, "mlfn": mlfn, "osnet_x1_0": osnet_x1_0, "osnet_x0_75": osnet_x0_75, "osnet_x0_5": osnet_x0_5, "osnet_x0_25": osnet_x0_25, "osnet_ibn_x1_0": osnet_ibn_x1_0, "osnet_ain_x1_0": osnet_ain_x1_0, "osnet_ain_x0_75": osnet_ain_x0_75, "osnet_ain_x0_5": osnet_ain_x0_5, "osnet_ain_x0_25": osnet_ain_x0_25, "lmbn_n": LMBN_n, "clip": make_model, } ================================================ FILE: boxmot/reid/core/registry.py ================================================ # model_registry.py from collections import OrderedDict import torch from boxmot.reid.core.config import MODEL_TYPES, NR_CLASSES_DICT, TRAINED_URLS from boxmot.reid.core.factory import MODEL_FACTORY from boxmot.utils import logger as LOGGER class ReIDModelRegistry: """Encapsulates model registration and related utilities.""" @staticmethod def show_downloadable_models(): LOGGER.info("Available .pt ReID models for automatic download") LOGGER.info(list(TRAINED_URLS.keys())) @staticmethod def get_model_name(model): for name in MODEL_TYPES: if name in model.name: return name return None @staticmethod def get_model_url(model): return TRAINED_URLS.get(model.name, None) @staticmethod def load_pretrained_weights(model, weight_path): """ Loads pretrained weights into a model. Chooses the proper map_location based on CUDA availability. """ device = "cpu" if not torch.cuda.is_available() else None checkpoint = torch.load( weight_path, map_location=torch.device("cpu") if device == "cpu" else None, weights_only=False, encoding='latin1', ) state_dict = checkpoint.get("state_dict", checkpoint) model_dict = model.state_dict() if "lmbn" in weight_path.parts: model.load_state_dict(model_dict, strict=True) else: new_state_dict = OrderedDict() matched_layers, discarded_layers = [], [] for k, v in state_dict.items(): # Remove 'module.' prefix if present key = k[7:] if k.startswith("module.") else k if key in model_dict and model_dict[key].size() == v.size(): new_state_dict[key] = v matched_layers.append(key) else: discarded_layers.append(key) model_dict.update(new_state_dict) model.load_state_dict(model_dict) if not matched_layers: LOGGER.debug( f"Pretrained weights from {weight_path} cannot be loaded. Check key names manually." ) else: LOGGER.success(f"Loaded pretrained weights from {weight_path}") if discarded_layers: LOGGER.debug( f"Discarded layers due to unmatched keys or size: {discarded_layers}" ) @staticmethod def show_available_models(): LOGGER.info("Available models:") LOGGER.info(list(MODEL_FACTORY.keys())) @staticmethod def get_nr_classes(weights): # Extract dataset name from weights name, then look up in the class dictionary dataset_key = weights.name.split("_")[1] return NR_CLASSES_DICT.get(dataset_key, 1) @staticmethod def build_model(name, weights, num_classes, loss="softmax", pretrained=True, use_gpu=True): if name not in MODEL_FACTORY: available = list(MODEL_FACTORY.keys()) raise KeyError(f"Unknown model '{name}'. Must be one of {available}") # Special case handling for clip model if "clip" in name: from boxmot.reid.backbones.clip.config.defaults import _C as cfg if "vehicleid" in weights.name or "veri" in weights.name: cfg.INPUT.SIZE_TRAIN = [256, 256] cfg.INPUT.SIZE_TEST = [256, 256] return MODEL_FACTORY[name]( cfg, num_class=num_classes, camera_num=2, view_num=1 ) return MODEL_FACTORY[name]( num_classes=num_classes, loss=loss, pretrained=pretrained, use_gpu=use_gpu ) ================================================ FILE: boxmot/reid/core/reid_handler.py ================================================ from pathlib import Path from typing import Union import numpy as np from boxmot.reid.core.auto_backend import ReidAutoBackend class ReID: def __init__(self, weights: Union[str, Path], device='cpu', half=False): self.weights = Path(weights) self.device = device self.half = half # Instantiate the backend # ReidAutoBackend detects model type from weights suffix automatically self.backend = ReidAutoBackend(weights=self.weights, device=device, half=half) self.model = self.backend.model def __call__(self, frame: np.ndarray, dets: np.ndarray) -> np.ndarray: """ Extract features for detections in a frame. Args: frame: (H, W, C) BGR image dets: (N, 6) detections (x1, y1, x2, y2, conf, cls) or similar. Returns: embs: (N, D) embeddings. """ if dets.shape[0] == 0: # We don't know embedding dimension D until we run, but typical is 2048 or 128. # If empty, return empty 2D array. return np.empty((0, 0)) xyxy = dets[:, :4] # Delegate to the backend model embs = self.model.get_features(xyxy, frame) return embs ================================================ FILE: boxmot/reid/exporters/base_exporter.py ================================================ from pathlib import Path from boxmot.utils import logger as LOGGER from boxmot.utils.checks import RequirementsChecker def export_decorator(export_func): def wrapper(self, *args, **kwargs): try: # If a subclass defined a dependency bucket, install it now. if hasattr(self, "group") and self.group: # Optional: subclasses can define `cmd` or `extra_args` for installer flags extra_args = getattr(self, "cmd", None) or getattr(self, "extra_args", None) # Allow either a uv group or a project extra. If you want extras, set `self.extra` extra = getattr(self, "extra", None) if extra and self.group: raise ValueError("Provide only one of `group` or `extra` in exporter.") if self.group: self.checker.sync_extra(extra=self.group, extra_args=extra_args) elif extra: self.checker.sync_extra(extra=extra, extra_args=extra_args) LOGGER.info(f"\nStarting {self.file} export with {self.__class__.__name__}...") result = export_func(self, *args, **kwargs) if result: LOGGER.info( f"Export success, saved as {result} ({self.file_size(result):.1f} MB)" ) return result except Exception as e: LOGGER.error(f"Export failure: {e}") return None return wrapper class BaseExporter: def __init__(self, model, im, file, optimize=True, dynamic=True, half=True, simplify=True): self.model = model self.im = im self.file = Path(file) self.optimize = optimize self.dynamic = dynamic self.half = half self.simplify = simplify self.checker = RequirementsChecker() self.workspace = 4 @staticmethod def file_size(path): path = Path(path) if path.is_file(): return path.stat().st_size / 1e6 elif path.is_dir(): return sum(f.stat().st_size for f in path.glob("**/*") if f.is_file()) / 1e6 else: return 0.0 def export(self): raise NotImplementedError("Export method must be implemented in subclasses.") def __init_subclass__(cls, **kwargs): super().__init_subclass__(**kwargs) if "export" in cls.__dict__: cls.export = export_decorator(cls.export) ================================================ FILE: boxmot/reid/exporters/onnx_exporter.py ================================================ import inspect import torch from torch.export import Dim from boxmot.reid.exporters.base_exporter import BaseExporter from boxmot.utils import logger as LOGGER class ONNXExporter(BaseExporter): group = "onnx" def __init__(self, model, im, file, opset=None, dynamic=False, half=False, simplify=False): # keep BaseExporter behavior (optimize handled elsewhere in boxmot) super().__init__(model, im, file, optimize=False, dynamic=dynamic, half=half, simplify=simplify) self.opset = opset # None -> auto def export(self): import onnx f = self.file.with_suffix(".onnx") opset = self.opset or self._best_onnx_opset(onnx, cuda=torch.cuda.is_available()) LOGGER.info(f"Exporting ONNX with onnx {onnx.__version__} opset {opset}...") # Determine output count for correct output_names length output_names = self._infer_output_names() # --- Export --- args = (self.im,) export_sig = inspect.signature(torch.onnx.export) has_dynamo_arg = "dynamo" in export_sig.parameters export_kwargs = { "opset_version": opset, "input_names": ["images"], "output_names": output_names, } if self.dynamic: # Constrain dynamic batch range to satisfy torch.export shape guards on CUDA. export_kwargs["dynamic_shapes"] = ({0: Dim("batch", min=1, max=65535)},) if has_dynamo_arg: export_kwargs["dynamo"] = True try: torch.onnx.export( self.model, args, str(f), **export_kwargs, ) except Exception as e: if not self.dynamic: raise LOGGER.warning( f"Dynamic export via torch.export failed ({e}). " "Retrying with legacy dynamic_axes export..." ) # Fallback for torch.export/dynamo dynamic shape guard failures. fallback_kwargs = { "opset_version": opset, "input_names": ["images"], "output_names": output_names, "dynamic_axes": self._build_dynamic_axes(output_names), } if has_dynamo_arg: fallback_kwargs["dynamo"] = False torch.onnx.export( self.model, args, str(f), **fallback_kwargs, ) # --- Load + validate --- model_onnx = onnx.load(str(f)) onnx.checker.check_model(model_onnx) # --- Simplify (onnxslim) --- if self.simplify: model_onnx = self.simplify_model(model_onnx) # --- IR version clamp for ONNXRuntime compatibility --- if getattr(model_onnx, "ir_version", 0) > 10: LOGGER.info( f"Limiting IR version {model_onnx.ir_version} -> 10 for ONNXRuntime compatibility..." ) model_onnx.ir_version = 10 # --- Optional FP16 conversion for CPU export --- # (If you already exported in FP16 on GPU, you typically don't need this.) if self.half and self.im.device.type == "cpu": model_onnx = self._try_fp16_convert_cpu(model_onnx) onnx.save(model_onnx, str(f)) return f def simplify_model(self, model_onnx): try: import onnxslim LOGGER.info(f"Slimming with onnxslim {onnxslim.__version__}...") return onnxslim.slim(model_onnx) except Exception as e: LOGGER.warning(f"Simplifier failure: {e}") return model_onnx # ----------------- # Helpers # ----------------- def _best_onnx_opset(self, onnx, cuda: bool = False) -> int: """ - If torch exposes ONNX_MAX_OPSET: use second-latest for safety, and reduce further on CUDA. - Else fallback by torch major.minor mapping. """ # torch.onnx.utils._constants.ONNX_MAX_OPSET exists in newer torch; safest is "max-1" max_opset = getattr(getattr(torch.onnx.utils, "_constants", None), "ONNX_MAX_OPSET", None) if isinstance(max_opset, int) and max_opset > 0: opset = max_opset - 1 if cuda: opset -= 2 # matches Ultralytics CUDA-quirk mitigation else: # Fallback mapping (Ultralytics-style) v = ".".join(torch.__version__.split(".")[:2]) opset = { "1.8": 12, "1.9": 12, "1.10": 13, "1.11": 14, "1.12": 15, "1.13": 17, "2.0": 17, "2.1": 17, "2.2": 17, "2.3": 17, "2.4": 20, "2.5": 20, "2.6": 20, "2.7": 20, "2.8": 23, }.get(v, 12) return min(int(opset), int(onnx.defs.onnx_opset_version())) def _infer_output_names(self): # Ensure output_names matches the number of ONNX graph outputs. try: self.model.eval() with torch.no_grad(): y = self.model(self.im) if isinstance(y, (tuple, list)): return [f"output{i}" for i in range(len(y))] except Exception: # If inference fails here, keep single output name (previous behavior) pass return ["output0"] def _build_dynamic_axes(self, output_names): # Ultralytics always makes images dynamic in batch/H/W when dynamic=True dyn = {"images": {0: "batch", 2: "height", 3: "width"}} # For outputs, always make batch dynamic; add extra dims only when obvious try: with torch.no_grad(): y = self.model(self.im) ys = list(y) if isinstance(y, (tuple, list)) else [y] for name, t in zip(output_names, ys): if not isinstance(t, torch.Tensor): dyn[name] = {0: "batch"} continue if t.dim() == 4: dyn[name] = {0: "batch", 2: f"{name}_h", 3: f"{name}_w"} elif t.dim() == 3: dyn[name] = {0: "batch", 2: f"{name}_n"} else: dyn[name] = {0: "batch"} except Exception: for name in output_names: dyn[name] = {0: "batch"} return dyn def _try_fp16_convert_cpu(self, model_onnx): try: from onnxruntime.transformers import float16 LOGGER.info("Converting ONNX graph to FP16 (CPU export)...") return float16.convert_float_to_float16(model_onnx, keep_io_types=True) except Exception as e: LOGGER.warning(f"FP16 conversion failure: {e}") return model_onnx ================================================ FILE: boxmot/reid/exporters/openvino_exporter.py ================================================ from boxmot.reid.exporters.base_exporter import BaseExporter from boxmot.utils import logger as LOGGER class OpenVINOExporter(BaseExporter): group = "openvino" def export(self) -> str: import openvino as ov onnx_path = self.file.with_suffix(".onnx") export_dir = self.file.parent / f"{self.file.stem}_openvino_model" export_dir.mkdir(parents=True, exist_ok=True) xml_path = export_dir / self.file.with_suffix(".xml").name LOGGER.info(f"Exporting OpenVINO with openvino {ov.__version__}...") # Ensure ONNX exists (since you run --include onnx this should be true) if not onnx_path.exists(): raise FileNotFoundError(f"Missing ONNX file for OpenVINO export: {onnx_path}") # Fixed CHW for your ReID crops; only batch should vary c, h, w = 3, 256, 128 # Bounded dynamic batch (pick something that covers your worst case) max_batch = 80 batch_dim = ov.Dimension(1, max_batch) if self.dynamic: shape = [batch_dim, c, h, w] else: n = int(self.im.shape[0]) shape = [n, c, h, w] # Convert from ONNX and FORCE the input shape (name must match ONNX input: "images") ov_model = ov.convert_model( str(onnx_path), input=[("images", shape)], ) LOGGER.info(f"OpenVINO input partial shape (final): {ov_model.inputs[0].partial_shape}") # Save IR (compress_to_fp16 only affects weights) try: ov.save_model(ov_model, str(xml_path), compress_to_fp16=bool(self.half)) except TypeError: ov.save_model(ov_model, str(xml_path)) return str(xml_path) ================================================ FILE: boxmot/reid/exporters/tensorrt_exporter.py ================================================ from boxmot.reid.exporters.base_exporter import BaseExporter from boxmot.reid.exporters.onnx_exporter import ONNXExporter from boxmot.utils import logger as LOGGER class EngineExporter(BaseExporter): required_packages = ("nvidia-tensorrt",) cmds = "--extra-index-url https://pypi.ngc.nvidia.com" def export(self): assert ( self.im.device.type != "cpu" ), "export running on CPU but must be on GPU, i.e. `python export.py --device 0`" try: import tensorrt as trt except ImportError: import tensorrt as trt onnx_file = self.export_onnx() LOGGER.info(f"\nStarting export with TensorRT {trt.__version__}...") is_trt10 = int(trt.__version__.split(".")[0]) >= 10 # is TensorRT >= 10 assert onnx_file.exists(), f"Failed to export ONNX file: {onnx_file}" f = self.file.with_suffix(".engine") logger = trt.Logger(trt.Logger.INFO) if True: logger.min_severity = trt.Logger.Severity.VERBOSE builder = trt.Builder(logger) config = builder.create_builder_config() workspace = int(self.workspace * (1 << 30)) if is_trt10: config.set_memory_pool_limit(trt.MemoryPoolType.WORKSPACE, workspace) else: # TensorRT versions 7, 8 config.max_workspace_size = workspace flag = 1 << int(trt.NetworkDefinitionCreationFlag.EXPLICIT_BATCH) network = builder.create_network(flag) parser = trt.OnnxParser(network, logger) if not parser.parse_from_file(str(onnx_file)): raise RuntimeError(f"Failed to load ONNX file: {onnx_file}") inputs = [network.get_input(i) for i in range(network.num_inputs)] outputs = [network.get_output(i) for i in range(network.num_outputs)] LOGGER.info("Network Description:") for inp in inputs: LOGGER.info(f'\tinput "{inp.name}" with shape {inp.shape} and dtype {inp.dtype}') for out in outputs: LOGGER.info(f'\toutput "{out.name}" with shape {out.shape} and dtype {out.dtype}') if self.dynamic: if self.im.shape[0] <= 1: LOGGER.warning("WARNING: --dynamic model requires maximum --batch-size argument") profile = builder.create_optimization_profile() for inp in inputs: if self.half: inp.dtype = trt.float16 profile.set_shape( inp.name, (1, *self.im.shape[1:]), (max(1, self.im.shape[0] // 2), *self.im.shape[1:]), self.im.shape, ) config.add_optimization_profile(profile) LOGGER.info( f"Building FP{16 if builder.platform_has_fast_fp16 and self.half else 32} engine in {f}" ) if builder.platform_has_fast_fp16 and self.half: config.set_flag(trt.BuilderFlag.FP16) config.default_device_type = trt.DeviceType.GPU build = builder.build_serialized_network if is_trt10 else builder.build_engine with build(network, config) as engine, open(f, "wb") as t: t.write(engine if is_trt10 else engine.serialize()) return f def export_onnx(self): onnx_exporter = ONNXExporter( self.model, self.im, self.file, self.optimize, self.dynamic, self.half, self.simplify, ) return onnx_exporter.export() ================================================ FILE: boxmot/reid/exporters/tflite_exporter.py ================================================ import inspect import os import shutil import sys from pathlib import Path from typing import Optional, Tuple from boxmot.reid.exporters.base_exporter import BaseExporter from boxmot.reid.exporters.onnx_exporter import ONNXExporter from boxmot.utils import logger as LOGGER class TFLiteExporter(BaseExporter): group = "tflite" def __init__(self, model, im, file, opset=None, dynamic=False, half=False, simplify=False): super().__init__(model, im, file, optimize=False, dynamic=dynamic, half=half, simplify=simplify) self.opset = opset def export(self) -> str: if sys.version_info < (3, 12): raise RuntimeError("TFLite export requires Python 3.12 for the pinned onnx2tf flatbuffer_direct stack.") if sys.platform not in {"linux", "win32"}: raise RuntimeError("TFLite export is only supported on Linux or Windows in this environment.") import onnx2tf import tensorflow as tf LOGGER.info( f"Exporting TFLite with tensorflow {tf.__version__} and onnx2tf {onnx2tf.__version__}..." ) onnx_path = self._ensure_onnx_file() export_dir = self.file.parent / f"{self.file.stem}_saved_model" output_folder_path = str(export_dir) + os.sep if export_dir.is_dir(): shutil.rmtree(export_dir) onnx2tf.convert(**self._build_convert_kwargs(onnx2tf, onnx_path, output_folder_path)) tflite_path = self._select_tflite_artifact(export_dir) if tflite_path is None: raise RuntimeError(f"onnx2tf completed without producing a .tflite artifact in {export_dir}") return str(tflite_path) def _ensure_onnx_file(self) -> Path: onnx_path = self.file.with_suffix(".onnx") if onnx_path.exists(): return onnx_path LOGGER.info("Missing ONNX export; generating an intermediate ONNX model for TFLite conversion...") exported = ONNXExporter( self.model, self.im, self.file, opset=self.opset, dynamic=self.dynamic, half=self.half, simplify=self.simplify, ).export() if not exported: raise RuntimeError("ONNX export failed; cannot continue with TFLite export.") return Path(exported) def _build_convert_kwargs(self, onnx2tf_module, onnx_path: Path, output_folder_path: str) -> dict: kwargs = { "input_onnx_file_path": str(onnx_path), "output_folder_path": output_folder_path, } try: sig = inspect.signature(onnx2tf_module.convert) except (TypeError, ValueError): sig = None self._set_if_supported(kwargs, sig, "tflite_backend", "flatbuffer_direct") self._set_if_supported(kwargs, sig, "verbosity", "info") self._set_if_supported(kwargs, sig, "output_float16_tflite", bool(self.half)) return kwargs @staticmethod def _set_if_supported(kwargs: dict, sig, name: str, value) -> None: if sig is None or name in sig.parameters: kwargs[name] = value def _select_tflite_artifact(self, export_dir: Path) -> Optional[Path]: tflites = sorted(export_dir.rglob("*.tflite")) tflites = [p for p in tflites if "quant_with_int16_act.tflite" not in p.name] if not tflites: return None if self.half: preferred_tokens = ("float16", "fp16") fallback_tokens = ("float32", "fp32") else: preferred_tokens = ("float32", "fp32") fallback_tokens = ("float16", "fp16") preferred = next((p for p in tflites if self._matches_any_token(p, preferred_tokens)), None) fallback = next((p for p in tflites if self._matches_any_token(p, fallback_tokens)), None) return preferred or fallback or tflites[0] @staticmethod def _matches_any_token(path: Path, tokens: Tuple[str, ...]) -> bool: stem = path.stem.lower() return any(token in stem for token in tokens) ================================================ FILE: boxmot/reid/exporters/torchscript_exporter.py ================================================ import torch from boxmot.reid.exporters.base_exporter import BaseExporter class TorchScriptExporter(BaseExporter): def export(self): f = self.file.with_suffix(".torchscript") ts = torch.jit.trace(self.model, self.im, strict=False) if self.optimize: torch.utils.mobile_optimizer.optimize_for_mobile( ts )._save_for_lite_interpreter(str(f)) else: ts.save(str(f)) return f ================================================ FILE: boxmot/trackers/__init__.py ================================================ from boxmot.trackers.boosttrack.boosttrack import BoostTrack from boxmot.trackers.botsort.botsort import BotSort from boxmot.trackers.bytetrack.bytetrack import ByteTrack from boxmot.trackers.deepocsort.deepocsort import DeepOcSort from boxmot.trackers.hybridsort.hybridsort import HybridSort from boxmot.trackers.ocsort.ocsort import OcSort from boxmot.trackers.sfsort.sfsort import SFSORT from boxmot.trackers.strongsort.strongsort import StrongSort ================================================ FILE: boxmot/trackers/basetracker.py ================================================ import colorsys import hashlib from abc import ABC, abstractmethod import cv2 as cv import numpy as np from boxmot.trackers.detection_layout import (get_detection_layout, infer_detection_layout) from boxmot.utils import logger as LOGGER from boxmot.utils.iou import AssociationFunction from boxmot.utils.visualization import VisualizationMixin class BaseTracker(VisualizationMixin): supports_obb = False def __init__( self, det_thresh: float = 0.3, max_age: int = 30, max_obs: int = 50, min_hits: int = 3, iou_threshold: float = 0.3, per_class: bool = False, nr_classes: int = 80, asso_func: str = "iou", is_obb: bool = False, **kwargs, ): """ Initialize the BaseTracker object Parameters: - det_thresh (float): Detection threshold for considering detections. - max_age (int): Maximum age (in frames) of a track before it is considered lost. - max_obs (int): Maximum number of historical observations (bounding boxes) stored for each track. max_obs is always greater than max_age by minimum 5. - min_hits (int): Minimum number of detection hits before a track is considered confirmed. - iou_threshold (float): IOU threshold for determining match between detection and tracks. - per_class (bool): Enables class-separated tracking - nr_classes (int): Total number of object classes that the tracker will handle (for per_class=True) - asso_func (str): Algorithm name used for data association between detections and tracks Options: - "iou" (default): Standard Intersection over Union - "iou_obb": IoU for oriented bounding boxes - "hmiou": Height-modified IoU that incorporates vertical overlap ratio - "giou": Generalized IoU that penalizes non-overlapping boxes - "ciou": Complete IoU with center point distance and aspect ratio consistency - "diou": Distance IoU that considers center point distance - "centroid": Distance between centroids of bounding boxes - "centroid_obb": Centroid distance for oriented bounding boxes - is_obb (bool): Work with Oriented Bounding Boxes (OBB) instead of standard axis-aligned bounding boxes? If False (default): If True: dets.shape[1] == 6, i.e. (x1,y1,x2,y2,conf,cls) If True: dets.shape[1] == 7, i.e. (cx,cy,w,h,angle,conf,cls) Attributes: - frame_count (int): Counter for the frames processed. - active_tracks (list): List to hold active tracks, may be used differently in subclasses. """ self.det_thresh = det_thresh self.max_age = max_age self.max_obs = max_obs self.min_hits = min_hits self.iou_threshold = iou_threshold self.per_class = per_class self.nr_classes = nr_classes self._asso_func_base_name = asso_func self.detection_layout = get_detection_layout(is_obb) self.asso_func_name = self.detection_layout.association_mode_name(asso_func) self.is_obb = self.detection_layout.is_obb # Attributes self.frame_count = 0 self.active_tracks = [] # This might be handled differently in derived classes self.per_class_active_tracks = None self._first_frame_processed = ( False # Flag to track if the first frame has been processed ) self._first_dets_processed = False self.last_emb_size = None # Tracks the dimensionality of embedding vectors used for re-identification during tracking. # Initialize per-class active tracks if self.per_class: self.per_class_active_tracks = {} for i in range(self.nr_classes): self.per_class_active_tracks[i] = [] if self.max_age >= self.max_obs: LOGGER.warning( "Max age > max observations, increasing size of max observations..." ) self.max_obs = self.max_age + 5 # Plotting lifecycle bookkeeping self._plot_frame_idx = -1 self._removed_first_seen = {} self._removed_expired = set() self.removed_display_frames = getattr(self, "removed_display_frames", 10) # Log all params if tracker_name provided via kwargs tracker_name = kwargs.pop('_tracker_name', None) if tracker_name: base_params = { 'det_thresh': det_thresh, 'max_age': max_age, 'max_obs': max_obs, 'min_hits': min_hits, 'iou_threshold': iou_threshold, 'per_class': per_class, 'asso_func': asso_func, } # Filter out internal/non-config params filtered_kwargs = {k: v for k, v in kwargs.items() if not k.startswith('_') and k not in ('__class__', 'reid_weights', 'device', 'half')} all_params = {**base_params, **filtered_kwargs} params_str = ", ".join(f"{k}={v}" for k, v in all_params.items()) LOGGER.success(f"{tracker_name}: {params_str}") @abstractmethod def update( self, dets: np.ndarray, img: np.ndarray, embs: np.ndarray = None ) -> np.ndarray: """ Abstract method to update the tracker with new detections for a new frame. This method should be implemented by subclasses. Parameters: - dets (np.ndarray): Array of detections for the current frame. - img (np.ndarray): The current frame as an image array. - embs (np.ndarray, optional): Embeddings associated with the detections, if any. Raises: - NotImplementedError: If the subclass does not implement this method. """ raise NotImplementedError( "The update method needs to be implemented by the subclass." ) def get_class_dets_n_embs(self, dets, embs, cls_id): # Initialize empty arrays for detections and embeddings class_dets = self.detection_layout.empty_dets(dtype=np.float32) class_embs = ( np.empty((0, self.last_emb_size)) if self.last_emb_size is not None else None ) # Check if there are detections if dets.size == 0: return class_dets, class_embs class_indices = np.where(dets[:, self.detection_layout.cls_idx] == cls_id)[0] class_dets = dets[class_indices] if embs is None: return class_dets, class_embs # Assert that if embeddings are provided, they have the same number of elements as detections assert dets.shape[0] == embs.shape[0], ( "Detections and embeddings must have the same number of elements when both are provided" ) class_embs = None if embs.size > 0: class_embs = embs[class_indices] self.last_emb_size = class_embs.shape[ 1 ] # Update the last known embedding size return class_dets, class_embs def _set_detection_mode(self, is_obb: bool) -> None: """Update the tracker detection mode and association function name.""" self.detection_layout = get_detection_layout(is_obb) self.is_obb = self.detection_layout.is_obb self.asso_func_name = self.detection_layout.association_mode_name( self._asso_func_base_name ) if self._first_frame_processed and hasattr(self, "w") and hasattr(self, "h"): self.asso_func = AssociationFunction( w=self.w, h=self.h, asso_mode=self.asso_func_name ).asso_func def empty_detections(self, dtype=np.float32) -> np.ndarray: return self.detection_layout.empty_dets(dtype=dtype) def empty_output(self, dtype=float) -> np.ndarray: return self.detection_layout.empty_output(dtype=dtype) @staticmethod def setup_decorator(method): """ Decorator to perform setup on the first frame only. This ensures that initialization tasks (like setting the association function) only happen once, on the first frame, and are skipped on subsequent frames. """ def wrapper(self, *args, **kwargs): # Extract detections and image from args dets = args[0] img = args[1] if len(args) > 1 else None # Unwrap `data` attribute if present if hasattr(dets, "data"): dets = dets.data # Convert memoryview to numpy array if needed if isinstance(dets, memoryview): dets = np.array(dets, dtype=np.float32) # Adjust dtype if needed # First-time detection setup if not self._first_dets_processed and dets is not None: layout = infer_detection_layout(dets) if layout is not None: if layout.is_obb and not self.supports_obb: raise AssertionError( f"{self.__class__.__name__} does not support OBB detections. " "Use an OBB-capable tracker such as ByteTrack, BotSort, OCSort, or SFSORT." ) self._set_detection_mode(layout.is_obb) self._first_dets_processed = True # First frame image-based setup if not self._first_frame_processed and img is not None: self.h, self.w = img.shape[0:2] self.asso_func = AssociationFunction( w=self.w, h=self.h, asso_mode=self.asso_func_name ).asso_func self._first_frame_processed = True # Call the original method with the unwrapped `dets` return method(self, dets, img, *args[2:], **kwargs) return wrapper @staticmethod def per_class_decorator(update_method): """ Decorator for the update method to handle per-class processing. """ def wrapper(self, dets: np.ndarray, img: np.ndarray, embs: np.ndarray = None): # handle different types of inputs if dets is None or len(dets) == 0: dets = self.empty_detections() if not self.per_class: # Process all detections at once if per_class is False return update_method(self, dets=dets, img=img, embs=embs) # else: # Initialize an array to store the tracks for each class per_class_tracks = [] # same frame count for all classes frame_count = self.frame_count for cls_id in range(self.nr_classes): # Get detections and embeddings for the current class class_dets, class_embs = self.get_class_dets_n_embs(dets, embs, cls_id) LOGGER.debug( f"Processing class {int(cls_id)}: {class_dets.shape} with embeddings" f" {class_embs.shape if class_embs is not None else None}" ) # Activate the specific active tracks for this class id self.active_tracks = self.per_class_active_tracks[cls_id] # Reset frame count for every class self.frame_count = frame_count # Update detections using the decorated method tracks = update_method(self, dets=class_dets, img=img, embs=class_embs) # Save the updated active tracks self.per_class_active_tracks[cls_id] = self.active_tracks if tracks.size > 0: per_class_tracks.append(tracks) # Increase frame count by 1 self.frame_count = frame_count + 1 if per_class_tracks: return np.vstack(per_class_tracks) return self.empty_output() return wrapper def check_inputs(self, dets, img, embs=None): assert isinstance(dets, np.ndarray), ( f"Unsupported 'dets' input format '{type(dets)}', valid format is np.ndarray" ) assert isinstance(img, np.ndarray), ( f"Unsupported 'img_numpy' input format '{type(img)}', valid format is np.ndarray" ) assert len(dets.shape) == 2, ( "Unsupported 'dets' dimensions, valid number of dimensions is two" ) if embs is not None: assert dets.shape[0] == embs.shape[0], ( "Missmatch between detections and embeddings sizes" ) self.detection_layout.validate_dets(dets) def reset(self): pass ================================================ FILE: boxmot/trackers/boosttrack/__init__.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license ================================================ FILE: boxmot/trackers/boosttrack/assoc.py ================================================ import warnings from copy import deepcopy from typing import Optional import lap import numpy as np def shape_similarity(detects: np.ndarray, tracks: np.ndarray, s_sim_corr: bool) -> np.ndarray: if not s_sim_corr: return shape_similarity_v1(detects, tracks) return shape_similarity_v2(detects, tracks) def shape_similarity_v1(detects: np.ndarray, tracks: np.ndarray) -> np.ndarray: if detects.size == 0 or tracks.size == 0: return np.zeros((0, 0)) dw = (detects[:, 2] - detects[:, 0]).reshape((-1, 1)) dh = (detects[:, 3] - detects[:, 1]).reshape((-1, 1)) tw = (tracks[:, 2] - tracks[:, 0]).reshape((1, -1)) th = (tracks[:, 3] - tracks[:, 1]).reshape((1, -1)) return np.exp(-(np.abs(dw - tw) / np.maximum(dw, tw) + np.abs(dh - th) / np.maximum(dw, tw))) def shape_similarity_v2(detects: np.ndarray, tracks: np.ndarray) -> np.ndarray: if detects.size == 0 or tracks.size == 0: return np.zeros((0, 0)) dw = (detects[:, 2] - detects[:, 0]).reshape((-1, 1)) dh = (detects[:, 3] - detects[:, 1]).reshape((-1, 1)) tw = (tracks[:, 2] - tracks[:, 0]).reshape((1, -1)) th = (tracks[:, 3] - tracks[:, 1]).reshape((1, -1)) return np.exp(-(np.abs(dw - tw) / np.maximum(dw, tw) + np.abs(dh - th) / np.maximum(dh, th))) def MhDist_similarity(mahalanobis_distance: np.ndarray, softmax_temp: float = 1.0) -> np.ndarray: limit = 13.2767 # 99% conf interval https://www.mathworks.com/help/stats/chi2inv.html mahalanobis_distance = deepcopy(mahalanobis_distance) mask = mahalanobis_distance > limit mahalanobis_distance[mask] = limit mahalanobis_distance = limit - mahalanobis_distance mahalanobis_distance = np.exp(mahalanobis_distance / softmax_temp) / np.exp( mahalanobis_distance / softmax_temp).sum(0).reshape((1, -1)) mahalanobis_distance = np.where(mask, 0, mahalanobis_distance) return mahalanobis_distance def iou_batch(bboxes1, bboxes2): """ From SORT: Computes IOU between two bboxes in the form [x1,y1,x2,y2] """ bboxes2 = np.expand_dims(bboxes2, 0) bboxes1 = np.expand_dims(bboxes1, 1) xx1 = np.maximum(bboxes1[..., 0], bboxes2[..., 0]) yy1 = np.maximum(bboxes1[..., 1], bboxes2[..., 1]) xx2 = np.minimum(bboxes1[..., 2], bboxes2[..., 2]) yy2 = np.minimum(bboxes1[..., 3], bboxes2[..., 3]) w = np.maximum(0.0, xx2 - xx1) h = np.maximum(0.0, yy2 - yy1) wh = w * h return wh / ((bboxes1[..., 2] - bboxes1[..., 0]) * (bboxes1[..., 3] - bboxes1[..., 1]) + (bboxes2[..., 2] - bboxes2[..., 0]) * (bboxes2[..., 3] - bboxes2[..., 1]) - wh) def soft_biou_batch(bboxes1, bboxes2): """ Computes soft BIoU between two bboxes in the form [x1,y1,x2,y2] BIoU is introduced in https://arxiv.org/pdf/2211.14317 Soft BIoU is introduced as part of BoostTrack++ # Author : Vukasin Stanojevic # Email : vukasin.stanojevic@pmf.edu.rs """ bboxes2 = np.expand_dims(bboxes2, 0) bboxes1 = np.expand_dims(bboxes1, 1) k1 = 0.25 k2 = 0.5 b2conf = bboxes2[..., 4] b1x1 = bboxes1[..., 0] - (bboxes1[..., 2] - bboxes1[..., 0]) * (1 - b2conf) * k1 b2x1 = bboxes2[..., 0] - (bboxes2[..., 2] - bboxes2[..., 0]) * (1 - b2conf) * k2 xx1 = np.maximum(b1x1, b2x1) b1y1 = bboxes1[..., 1] - (bboxes1[..., 3] - bboxes1[..., 1]) * (1 - b2conf) * k1 b2y1 = bboxes2[..., 1] - (bboxes2[..., 3] - bboxes2[..., 1]) * (1 - b2conf) * k2 yy1 = np.maximum(b1y1, b2y1) b1x2 = bboxes1[..., 2] + (bboxes1[..., 2] - bboxes1[..., 0]) * (1 - b2conf) * k1 b2x2 = bboxes2[..., 2] + (bboxes2[..., 2] - bboxes2[..., 0]) * (1 - b2conf) * k2 xx2 = np.minimum(b1x2, b2x2) b1y2 = bboxes1[..., 3] + (bboxes1[..., 3] - bboxes1[..., 1]) * (1 - b2conf) * k1 b2y2 = bboxes2[..., 3] + (bboxes2[..., 3] - bboxes2[..., 1]) * (1 - b2conf) * k2 yy2 = np.minimum(b1y2, b2y2) w = np.maximum(0.0, xx2 - xx1) h = np.maximum(0.0, yy2 - yy1) wh = w * h return wh / ((b1x2 - b1x1) * (b1y2 - b1y1) + (b2x2 - b2x1) * (b2y2 - b2y1) - wh) def match(cost_matrix: np.ndarray, threshold: float) -> np.ndarray: if cost_matrix.size == 0: return np.empty(shape=(0, 2)) a = (cost_matrix > threshold).astype(np.int32) if a.sum(1).max() == 1 and a.sum(0).max() == 1: return np.stack(np.where(a), axis=1) # matched _, x, y = lap.lapjv(-cost_matrix, extend_cost=True) return np.array([[y[i], i] for i in x if i >= 0]) # matched def linear_assignment( detections: np.ndarray, trackers: np.ndarray, iou_matrix: np.ndarray, cost_matrix: np.ndarray, threshold: float, emb_cost: Optional[np.ndarray] = None, ): if iou_matrix is None and cost_matrix is None: raise Exception("Both iou_matrix and cost_matrix are None!") if iou_matrix is None: iou_matrix = deepcopy(cost_matrix) if cost_matrix is None: cost_matrix = deepcopy(iou_matrix) matched_indices = match(cost_matrix, threshold) unmatched_detections = [] for d, det in enumerate(detections): if d not in matched_indices[:, 0]: unmatched_detections.append(d) unmatched_trackers = [] for t, trk in enumerate(trackers): if t not in matched_indices[:, 1]: unmatched_trackers.append(t) # filter out matched with low IOU matches = [] for m in matched_indices: valid_match = iou_matrix[m[0], m[1]] >= threshold or ( False if emb_cost is None else (iou_matrix[m[0], m[1]] >= threshold / 2 and emb_cost[m[0], m[1]] >= 0.75)) if valid_match: matches.append(m.reshape(1, 2)) else: unmatched_detections.append(m[0]) unmatched_trackers.append(m[1]) matches = np.concatenate(matches, axis=0) if len(matches) else np.empty((0, 2), dtype=int) return matches, np.array(unmatched_detections), np.array(unmatched_trackers), cost_matrix def associate( detections, trackers, iou_threshold, mahalanobis_distance: Optional[np.ndarray] = None, track_confidence: Optional[np.ndarray] = None, detection_confidence: Optional[np.ndarray] = None, emb_cost: Optional[np.ndarray] = None, lambda_iou: float = 0.5, lambda_mhd: float = 0.25, lambda_shape: float = 0.25, s_sim_corr: bool = False, ): if len(trackers) == 0: return ( np.empty((0, 2), dtype=int), np.arange(len(detections)), np.empty((0, 5), dtype=int), np.empty((0, 0)), ) iou_matrix = iou_batch(detections, trackers) cost_matrix = deepcopy(iou_matrix) if detection_confidence is not None and track_confidence is not None: conf = np.multiply(detection_confidence.reshape((-1, 1)), track_confidence.reshape((1, -1))) conf[iou_matrix < iou_threshold] = 0 cost_matrix += lambda_iou * conf * iou_batch(detections, trackers) else: warnings.warn("Detections or tracklet confidence is None and detection-tracklet confidence cannot be computed!") conf = None if mahalanobis_distance is not None and mahalanobis_distance.size > 0: mahalanobis_distance = MhDist_similarity(mahalanobis_distance) cost_matrix += lambda_mhd * mahalanobis_distance if conf is not None: cost_matrix += lambda_shape * conf * shape_similarity(detections, trackers, s_sim_corr) if emb_cost is not None: lambda_emb = (1 + lambda_iou + lambda_shape + lambda_mhd) * 1.5 cost_matrix += lambda_emb * emb_cost return linear_assignment(detections, trackers, iou_matrix, cost_matrix, iou_threshold, emb_cost) ================================================ FILE: boxmot/trackers/boosttrack/boosttrack.py ================================================ from collections import deque from typing import List, Optional import numpy as np from boxmot.motion.cmc import get_cmc_method from boxmot.motion.kalman_filters.xyhr import KalmanFilterXYHR from boxmot.reid.core.auto_backend import ReidAutoBackend from boxmot.trackers.basetracker import BaseTracker from boxmot.trackers.boosttrack.assoc import (MhDist_similarity, associate, iou_batch, shape_similarity, soft_biou_batch) def convert_bbox_to_z(bbox): """ Converts a bounding box [x1,y1,x2,y2] to state vector [x, y, h, r]. """ w = bbox[2] - bbox[0] h = bbox[3] - bbox[1] x = bbox[0] + w / 2.0 y = bbox[1] + h / 2.0 r = w / float(h + 1e-6) return np.array([x, y, h, r]).reshape((4, 1)) def convert_x_to_bbox(x, score=None): """ Converts a state vector [x, y, h, r] back to bounding box [x1,y1,x2,y2]. """ h = x[2] r = x[3] w = 0 if r <= 0 else r * h if score is None: return np.array([x[0] - w / 2.0, x[1] - h / 2.0, x[0] + w / 2.0, x[1] + h / 2.0]).reshape((1, 4)) return np.array([x[0] - w / 2.0, x[1] - h / 2.0, x[0] + w / 2.0, x[1] + h / 2.0, score]).reshape((1, 5)) class KalmanBoxTracker: """ Single object tracker using a Kalman filter. """ count = 0 def __init__(self, det, max_obs, emb: Optional[np.ndarray] = None): KalmanBoxTracker.count += 1 self.time_since_update = 0 self.id = KalmanBoxTracker.count self.kf = KalmanFilterXYHR(convert_bbox_to_z(det[:4])) self.conf = det[4] self.cls = det[5] self.det_ind = det[6] self.emb = emb self.hit_streak = 0 self.age = 0 self.history_observations = deque([], maxlen=max_obs) def get_confidence(self, coef: float = 0.9) -> float: n = 7 if self.age < n: return coef ** (n - self.age) return coef ** (self.time_since_update - 1) def update(self, det: np.ndarray): self.time_since_update = 0 self.hit_streak += 1 self.history_observations.append(self.get_state()[0]) self.kf.update(convert_bbox_to_z(det)) self.conf = det[4] self.cls = det[5] self.det_ind = det[6] def camera_update(self, transform: np.ndarray): """ Handle either a 2×3 affine or a 3×3 homography, by promoting the 2×3 to 3×3 [ …; 0 0 1 ]. """ # ——— normalize to 3×3 ————— wm = np.asarray(transform, dtype=float) if wm.shape == (2, 3): wm = np.vstack([wm, [0.0, 0.0, 1.0]]) elif wm.shape != (3, 3): raise ValueError(f"Expected 2×3 or 3×3 matrix, got {wm.shape}") # ——— warp your current bbox ————— x1, y1, x2, y2 = self.get_state()[0] p1 = wm @ np.array([x1, y1, 1.0]) p2 = wm @ np.array([x2, y2, 1.0]) x1_, y1_, _ = p1 x2_, y2_, _ = p2 # ——— rebuild Kalman state ————— w, h = x2_ - x1_, y2_ - y1_ cx, cy = x1_ + w / 2, y1_ + h / 2 self.kf.x[:4] = [cx, cy, h, w / h] def predict(self): self.kf.predict() self.age += 1 if self.time_since_update > 0: self.hit_streak = 0 self.time_since_update += 1 return self.get_state() def get_state(self): return convert_x_to_bbox(self.kf.x) def update_emb(self, emb, alpha=0.9): self.emb = alpha * self.emb + (1 - alpha) * emb self.emb /= np.linalg.norm(self.emb) def get_emb(self): return self.emb class BoostTrack(BaseTracker): """ Initialize the BoostTrack tracker with various parameters. Parameters: - reid_weights (Path): Path to the re-identification model weights. - device (torch.device): Device to run the model on (e.g., 'cpu', 'cuda'). - half (bool): Whether to use half-precision (fp16) for faster inference. - det_thresh (float): Detection threshold for considering detections. - max_age (int): Maximum age (in frames) of a track before it is considered lost. - max_obs (int): Maximum number of historical observations stored for each track. Always greater than max_age by minimum 5. - min_hits (int): Minimum number of detection hits before a track is considered confirmed. - iou_threshold (float): IOU threshold for determining match between detection and tracks. - per_class (bool): Enables class-separated tracking. - nr_classes (int): Total number of object classes that the tracker will handle (for per_class=True). - asso_func (str): Algorithm name used for data association between detections and tracks. - is_obb (bool): Work with Oriented Bounding Boxes (OBB) instead of standard axis-aligned bounding boxes. BoostTrack-specific parameters: - use_ecc (bool): Whether to use ECC for camera motion compensation. - min_box_area (int): Minimum box area for detections. - aspect_ratio_thresh (float): Aspect ratio threshold for detections. - cmc_method (str): Method for camera motion compensation. - lambda_iou (float): Weight for IoU-based association. - lambda_mhd (float): Weight for Mahalanobis distance-based association. - lambda_shape (float): Weight for shape-based association. - use_dlo_boost (bool): Whether to use DLO boost for confidence adjustment. - use_duo_boost (bool): Whether to use DUO boost for confidence adjustment. - dlo_boost_coef (float): Coefficient for DLO boost. - s_sim_corr (bool): Whether to use shape similarity correction. - use_rich_s (bool): Whether to use rich shape features. - use_sb (bool): Whether to use soft-BIoU. - use_vt (bool): Whether to use visual tracking. - with_reid (bool): Whether to use re-identification. Attributes: - frame_count (int): Counter for the frames processed. - active_tracks (list): List to hold active tracks. - trackers (List[KalmanBoxTracker]): List of active Kalman filter trackers. - cmc: Camera motion compensation object. - reid_model: Re-identification model instance (if with_reid=True). """ def __init__( self, reid_weights=None, device='cpu', half: bool = False, # BoostTrack-specific parameters use_ecc: bool = True, min_box_area: int = 10, aspect_ratio_thresh: float = 1.6, cmc_method: str = "ecc", lambda_iou: float = 0.5, lambda_mhd: float = 0.25, lambda_shape: float = 0.25, use_dlo_boost: bool = True, use_duo_boost: bool = True, dlo_boost_coef: float = 0.65, s_sim_corr: bool = False, use_rich_s: bool = False, use_sb: bool = False, use_vt: bool = False, with_reid: bool = False, reid=None, **kwargs # BaseTracker parameters ): # Capture all init params for logging init_args = {k: v for k, v in locals().items() if k not in ('self', 'kwargs')} super().__init__(**init_args, _tracker_name='BoostTrack', **kwargs) self.active_tracks = [] self.frame_count = 0 self.trackers: List[KalmanBoxTracker] = [] # Parameters for BoostTrack (these can be tuned as needed) self.use_ecc = use_ecc # use ECC for camera motion compensation self.min_box_area = min_box_area # minimum box area for detections self.aspect_ratio_thresh = aspect_ratio_thresh # aspect ratio threshold for detections self.cmc_method = cmc_method self.lambda_iou = lambda_iou self.lambda_mhd = lambda_mhd self.lambda_shape = lambda_shape self.use_dlo_boost = use_dlo_boost self.use_duo_boost = use_duo_boost self.dlo_boost_coef = dlo_boost_coef self.s_sim_corr = s_sim_corr self.use_rich_s = use_rich_s self.use_sb = use_sb self.use_vt = use_vt self.with_reid = with_reid if reid is not None: self.reid_model = reid self.with_reid = True elif self.with_reid and reid_weights is not None: self.reid_model = ReidAutoBackend(weights=reid_weights, device=device, half=half).model else: self.reid_model = None if self.use_ecc: self.cmc = get_cmc_method(cmc_method)() else: self.cmc = None @BaseTracker.setup_decorator @BaseTracker.per_class_decorator def update(self, dets: np.ndarray, img: np.ndarray, embs: Optional[np.ndarray] = None) -> np.ndarray: """ Update the tracker with detections and an image. Args: dets (np.ndarray): Detection boxes in the format [[x1,y1,x2,y2,score], ...] img (np.ndarray): The current image frame. embs (Optional[np.ndarray]): Optional precomputed embeddings. Returns: np.ndarray: Tracked objects in the format [x1, y1, x2, y2, id, confidence, cls, det_ind] (with cls and det_ind set to -1 if unused) """ self.check_inputs(dets=dets, embs=embs, img=img) dets = np.hstack([dets, np.arange(len(dets)).reshape(-1, 1)]) self.frame_count += 1 if self.cmc is not None: transform = self.cmc.apply(img, dets) for trk in self.trackers: trk.camera_update(transform) trks = [] confs = [] for trk in self.trackers: pos = trk.predict()[0] conf = trk.get_confidence() confs.append(conf) trks.append(np.concatenate([pos, [conf]])) trks_np = np.vstack(trks) if len(trks) > 0 else np.empty((0, 5)) if self.use_dlo_boost: dets = self.dlo_confidence_boost(dets) if self.use_duo_boost: dets = self.duo_confidence_boost(dets) dets_embs = np.ones((dets.shape[0], 1)) if dets.size > 0: remain_inds = dets[:, 4] >= self.det_thresh dets = dets[remain_inds] scores = dets[:, 4] if self.with_reid: if embs is not None: dets_embs = embs[remain_inds] else: dets_embs = self.reid_model.get_features(dets[:, :4], img) else: scores = np.empty(0) dets_embs = np.ones((dets.shape[0], 1)) if self.with_reid and len(self.trackers) > 0: tracker_embs = np.array([trk.get_emb() for trk in self.trackers]) if dets_embs.shape[0] == 0: emb_cost = np.empty((0, tracker_embs.shape[0])) else: emb_cost = dets_embs.reshape(dets_embs.shape[0], -1) @ tracker_embs.reshape((tracker_embs.shape[0], -1)).T else: emb_cost = None mh_dist_matrix = self.get_mh_dist_matrix(dets) matched, unmatched_dets, unmatched_trks, _ = associate( dets, trks_np, self.iou_threshold, mahalanobis_distance=mh_dist_matrix, track_confidence=np.array(confs).reshape(-1, 1), detection_confidence=scores, emb_cost=emb_cost, lambda_iou=self.lambda_iou, lambda_mhd=self.lambda_mhd, lambda_shape=self.lambda_shape, s_sim_corr=self.s_sim_corr, ) if dets.size > 0: trust = (dets[:, 4] - self.det_thresh) / (1 - self.det_thresh) af = 0.95 dets_alpha = af + (1 - af) * (1 - trust) else: dets_alpha = np.empty(0) for m in matched: self.trackers[m[1]].update(dets[m[0], :]) self.trackers[m[1]].update_emb(dets_embs[m[0]], alpha=dets_alpha[m[0]]) for i in unmatched_dets: if dets[i, 4] >= self.det_thresh: self.trackers.append( KalmanBoxTracker(dets[i, :], max_obs=self.max_obs, emb=dets_embs[i]) ) outputs = [] self.active_tracks = [] for trk in self.trackers: d = trk.get_state()[0] if (trk.time_since_update < 1) and ( trk.hit_streak >= self.min_hits or self.frame_count <= self.min_hits ): # Format: [x1, y1, x2, y2, id, confidence, cls, det_ind] outputs.append(np.array([d[0], d[1], d[2], d[3], trk.id, trk.conf, trk.cls, trk.det_ind])) self.active_tracks.append(trk) self.trackers = [trk for trk in self.trackers if trk.time_since_update <= self.max_age] if len(outputs) == 0: return np.empty((0, 8)) outputs = np.vstack(outputs) return self.filter_outputs(outputs) def filter_outputs(self, outputs: np.ndarray) -> np.ndarray: w_arr = outputs[:, 2] - outputs[:, 0] h_arr = outputs[:, 3] - outputs[:, 1] vertical_filter = w_arr / h_arr <= self.aspect_ratio_thresh area_filter = w_arr * h_arr > self.min_box_area return outputs[vertical_filter & area_filter] def get_iou_matrix(self, detections: np.ndarray, buffered: bool = False) -> np.ndarray: trackers = np.zeros((len(self.trackers), 5)) for t, trk in enumerate(trackers): pos = self.trackers[t].get_state()[0] trk[:] = [pos[0], pos[1], pos[2], pos[3], self.trackers[t].get_confidence()] return iou_batch(detections, trackers) if not buffered else soft_biou_batch(detections, trackers) def get_mh_dist_matrix(self, detections: np.ndarray, n_dims: int = 4) -> np.ndarray: if len(self.trackers) == 0: return np.zeros((0, 0)) z = np.zeros((len(detections), n_dims), dtype=float) x = np.zeros((len(self.trackers), n_dims), dtype=float) sigma_inv = np.zeros((len(self.trackers), n_dims), dtype=float) for i in range(len(detections)): z[i, :n_dims] = convert_bbox_to_z(detections[i, :]).reshape(-1)[:n_dims] for i, trk in enumerate(self.trackers): x[i] = trk.kf.x[:n_dims] sigma_inv[i] = np.reciprocal(np.diag(trk.kf.covariance[:n_dims, :n_dims])) return ((z.reshape((-1, 1, n_dims)) - x.reshape((1, -1, n_dims))) ** 2 * sigma_inv.reshape((1, -1, n_dims))).sum(axis=2) def duo_confidence_boost(self, detections: np.ndarray) -> np.ndarray: if len(detections) == 0: return detections n_dims = 4 limit = 13.2767 mh_dist = self.get_mh_dist_matrix(detections, n_dims) # If there are no existing trackers, bail out immediately if mh_dist.size == 0: return detections min_dists = mh_dist.min(1) mask = (min_dists > limit) & (detections[:, 4] < self.det_thresh) boost_inds = np.where(mask)[0] iou_limit = 0.3 if len(boost_inds) == 0: return detections bdiou = iou_batch(detections[boost_inds], detections[boost_inds]) - np.eye( len(boost_inds) ) bdiou_max = bdiou.max(axis=1) remaining = boost_inds[bdiou_max <= iou_limit] args = np.where(bdiou_max > iou_limit)[0] for i in range(len(args)): bi = args[i] tmp = np.where(bdiou[bi] > iou_limit)[0] args_tmp = np.append( np.intersect1d(boost_inds[args], boost_inds[tmp]), boost_inds[bi] ) conf_max = np.max(detections[args_tmp, 4]) if detections[boost_inds[bi], 4] == conf_max: remaining = np.concatenate([remaining, [boost_inds[bi]]]) mask_boost = np.zeros_like(detections[:, 4], dtype=bool) mask_boost[remaining] = True detections[:, 4] = np.where( mask_boost, self.det_thresh + 1e-4, detections[:, 4] ) return detections def dlo_confidence_boost(self, detections: np.ndarray) -> np.ndarray: if len(detections) == 0: return detections sbiou_matrix = self.get_iou_matrix(detections, True) if sbiou_matrix.size == 0: return detections trackers = np.zeros((len(self.trackers), 6)) for t, trk in enumerate(self.trackers): pos = trk.get_state()[0] trackers[t] = [pos[0], pos[1], pos[2], pos[3], 0, trk.time_since_update - 1] if self.use_rich_s: mhd_sim = MhDist_similarity(self.get_mh_dist_matrix(detections), 1) shape_sim = shape_similarity(detections, trackers, self.s_sim_corr) S = (mhd_sim + shape_sim + sbiou_matrix) / 3 else: S = self.get_iou_matrix(detections, False) if not self.use_sb and not self.use_vt: max_s = S.max(1) detections[:, 4] = np.maximum(detections[:, 4], max_s * self.dlo_boost_coef) return detections if self.use_sb: max_s = S.max(1) alpha = 0.65 detections[:, 4] = np.maximum( detections[:, 4], alpha * detections[:, 4] + (1 - alpha) * max_s**1.5 ) if self.use_vt: threshold_s = 0.95 threshold_e = 0.8 n_steps = 20 # alpha = (threshold_s - threshold_e) / n_steps # todo alpha is not being used probably a bug tmp = (S > np.maximum( threshold_s - np.array([trk.time_since_update - 1 for trk in self.trackers]), threshold_e)).max(1) scores = detections[:, 4].copy() scores[tmp] = np.maximum(scores[tmp], self.det_thresh + 1e-5) detections[:, 4] = scores return detections ================================================ FILE: boxmot/trackers/botsort/__init__.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license ================================================ FILE: boxmot/trackers/botsort/basetrack.py ================================================ from collections import OrderedDict import numpy as np class TrackState: """ Enum-like class for tracking states. Attributes: New (int): Represents a newly created track. Tracked (int): Represents a currently tracked object. Lost (int): Represents a temporarily lost track. LongLost (int): Represents a track that has been lost for a long time. Removed (int): Represents a track that has been removed. """ New = 0 Tracked = 1 Lost = 2 LongLost = 3 Removed = 4 class BaseTrack: """ Base class for managing the state of a track in multi-object tracking. Attributes: _count (int): Class variable to keep track of the number of tracks created. track_id (int): The unique ID assigned to the track. is_activated (bool): Whether the track has been activated. state (TrackState): The current state of the track. history (OrderedDict): A history of the track's past states or observations. features (list): A list of feature vectors associated with the track. curr_feature (np.ndarray): The most recent feature vector. score (float): The confidence score of the track. start_frame (int): The frame where the track started. frame_id (int): The most recent frame ID associated with the track. time_since_update (int): The number of frames since the track was last updated. location (tuple): The location of the object in multi-camera tracking (set to infinity by default). """ _count = 0 track_id: int = 0 is_activated: bool = False state: int = TrackState.New history: OrderedDict = OrderedDict() features: list = [] curr_feature: np.ndarray = None score: float = 0 start_frame: int = 0 frame_id: int = 0 time_since_update: int = 0 # multi-camera location: tuple = (np.inf, np.inf) @property def end_frame(self) -> int: """ Returns the last frame the track was updated. Returns: int: The frame ID of the last update. """ return self.frame_id @staticmethod def next_id() -> int: """ Generates the next unique track ID. Returns: int: A unique track ID. """ BaseTrack._count += 1 return BaseTrack._count def activate(self, *args): """ Activates the track. This method should be implemented in subclasses. Args: *args: Variable length argument list. Raises: NotImplementedError: If this method is not implemented in the subclass. """ raise NotImplementedError def predict(self): """ Predicts the next state of the track using a motion model. This method should be implemented in subclasses. Raises: NotImplementedError: If this method is not implemented in the subclass. """ raise NotImplementedError def update(self, *args, **kwargs): """ Updates the state of the track based on a new observation. This method should be implemented in subclasses. Args: *args: Variable length argument list. **kwargs: Arbitrary keyword arguments. Raises: NotImplementedError: If this method is not implemented in the subclass. """ raise NotImplementedError def mark_lost(self): """ Marks the track as lost. """ self.state = TrackState.Lost def mark_long_lost(self): """ Marks the track as long lost. """ self.state = TrackState.LongLost def mark_removed(self): """ Marks the track as removed. """ self.state = TrackState.Removed @staticmethod def clear_count(): """ Resets the track ID counter to 0. """ BaseTrack._count = 0 ================================================ FILE: boxmot/trackers/botsort/botsort.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license from pathlib import Path import numpy as np import torch from boxmot.motion.cmc import get_cmc_method from boxmot.motion.kalman_filters.xywh import KalmanFilterXYWH from boxmot.reid.core.auto_backend import ReidAutoBackend from boxmot.trackers.basetracker import BaseTracker from boxmot.trackers.botsort.basetrack import BaseTrack, TrackState from boxmot.trackers.botsort.botsort_track import STrack from boxmot.trackers.botsort.botsort_utils import (joint_stracks, remove_duplicate_stracks, sub_stracks) from boxmot.utils.matching import (embedding_distance, fuse_score, iou_distance, linear_assignment) class BotSort(BaseTracker): supports_obb = True """ Initialize the BotSort tracker with various parameters. Parameters: - reid_weights (Path): Path to the re-identification model weights. - device (torch.device): Device to run the model on (e.g., 'cpu', 'cuda'). - half (bool): Whether to use half-precision (fp16) for faster inference. - det_thresh (float): Detection threshold for considering detections. - max_age (int): Maximum age (in frames) of a track before it is considered lost. - max_obs (int): Maximum number of historical observations stored for each track. Always greater than max_age by minimum 5. - min_hits (int): Minimum number of detection hits before a track is considered confirmed. - iou_threshold (float): IOU threshold for determining match between detection and tracks. - per_class (bool): Enables class-separated tracking. - nr_classes (int): Total number of object classes that the tracker will handle (for per_class=True). - asso_func (str): Algorithm name used for data association between detections and tracks. - is_obb (bool): Work with Oriented Bounding Boxes (OBB) instead of standard axis-aligned bounding boxes. BotSort-specific parameters: - track_high_thresh (float): Detection confidence threshold for first association. - track_low_thresh (float): Detection confidence threshold for ignoring detections. - new_track_thresh (float): Threshold for creating a new track. - track_buffer (int): Frames to keep a track alive after last detection. - match_thresh (float): Matching threshold for data association. - proximity_thresh (float): IoU threshold for first-round association. - appearance_thresh (float): Appearance embedding distance threshold for ReID. - cmc_method (str): Method for correcting camera motion, e.g., "sof" (simple optical flow). - frame_rate (int): Video frame rate, used to scale the track buffer. - fuse_first_associate (bool): Fuse appearance and motion in the first association step. - with_reid (bool): Use ReID features for association. Attributes: - frame_count (int): Counter for the frames processed. - active_tracks (list): List to hold active tracks. - lost_stracks (list[STrack]): List of lost tracks. - removed_stracks (list[STrack]): List of removed tracks. - buffer_size (int): Size of the track buffer based on frame rate. - max_time_lost (int): Maximum time a track can be lost. - kalman_filter (KalmanFilterXYWH): Kalman filter for motion prediction. """ def __init__( self, reid_weights: Path, device: torch.device, half: bool, # BotSort-specific parameters track_high_thresh: float = 0.5, track_low_thresh: float = 0.1, new_track_thresh: float = 0.6, track_buffer: int = 30, match_thresh: float = 0.8, proximity_thresh: float = 0.5, appearance_thresh: float = 0.25, cmc_method: str = "ecc", frame_rate: int = 30, fuse_first_associate: bool = False, with_reid: bool = True, **kwargs # BaseTracker parameters ): # Capture all init params for logging init_args = {k: v for k, v in locals().items() if k not in ('self', 'kwargs')} super().__init__(**init_args, _tracker_name='BotSort', **kwargs) self.lost_stracks = [] # type: list[STrack] self.removed_stracks = [] # type: list[STrack] BaseTrack.clear_count() self.track_high_thresh = track_high_thresh self.track_low_thresh = track_low_thresh self.new_track_thresh = new_track_thresh self.match_thresh = match_thresh self.buffer_size = int(frame_rate / 30.0 * track_buffer) self.max_time_lost = self.buffer_size self.kalman_filter = KalmanFilterXYWH(ndim=5 if self.is_obb else 4) # ReID module self.proximity_thresh = proximity_thresh self.appearance_thresh = appearance_thresh self.with_reid = with_reid if self.with_reid: self.model = ReidAutoBackend( weights=reid_weights, device=device, half=half ).model self.cmc = get_cmc_method(cmc_method)() if not self.is_obb else None self.fuse_first_associate = fuse_first_associate def _kalman_ndim(self) -> int: return self.detection_layout.box_cols def _detection_boxes(self, dets: np.ndarray) -> np.ndarray: return self.detection_layout.boxes(dets) @BaseTracker.setup_decorator @BaseTracker.per_class_decorator def update( self, dets: np.ndarray, img: np.ndarray, embs: np.ndarray = None ) -> np.ndarray: self.check_inputs(dets, img, embs) self.kalman_filter = KalmanFilterXYWH(ndim=self._kalman_ndim()) if self.is_obb and self.cmc is not None: self.cmc = None self.frame_count += 1 activated_stracks, refind_stracks, lost_stracks, removed_stracks = [], [], [], [] # Preprocess detections dets, dets_first, embs_first, dets_second = self._split_detections(dets, embs) # Extract appearance features if self.with_reid and embs is None: features_high = self.model.get_features(self._detection_boxes(dets_first), img) else: features_high = embs_first if embs_first is not None else [] # Create detections detections = self._create_detections(dets_first, features_high) # Separate unconfirmed and active tracks unconfirmed, active_tracks = self._separate_tracks() strack_pool = joint_stracks(active_tracks, self.lost_stracks) # First association matches_first, u_track_first, u_detection_first = self._first_association( dets, dets_first, active_tracks, unconfirmed, img, detections, activated_stracks, refind_stracks, strack_pool, ) # Second association matches_second, u_track_second, u_detection_second = self._second_association( dets_second, activated_stracks, lost_stracks, refind_stracks, u_track_first, strack_pool, ) # Handle unconfirmed tracks matches_unc, u_track_unc, u_detection_unc = self._handle_unconfirmed_tracks( u_detection_first, detections, activated_stracks, removed_stracks, unconfirmed, ) # Initialize new tracks self._initialize_new_tracks( u_detection_unc, activated_stracks, [detections[i] for i in u_detection_first], ) # Update lost and removed tracks self._update_track_states(removed_stracks) # Merge and prepare output return self._prepare_output( activated_stracks, refind_stracks, lost_stracks, removed_stracks ) def _split_detections(self, dets, embs): dets = self.detection_layout.with_detection_indices(dets) confs = self.detection_layout.confidences(dets) second_mask = np.logical_and( confs > self.track_low_thresh, confs < self.track_high_thresh ) dets_second = dets[second_mask] first_mask = confs > self.track_high_thresh dets_first = dets[first_mask] embs_first = embs[first_mask] if embs is not None else None return dets, dets_first, embs_first, dets_second def _create_detections(self, dets_first, features_high): if len(dets_first) > 0: if self.with_reid: detections = [ STrack(det, f, max_obs=self.max_obs, is_obb=self.is_obb) for (det, f) in zip(dets_first, features_high) ] else: detections = [STrack(det, max_obs=self.max_obs, is_obb=self.is_obb) for det in dets_first] else: detections = [] return detections def _separate_tracks(self): unconfirmed, active_tracks = [], [] for track in self.active_tracks: if not track.is_activated: unconfirmed.append(track) else: active_tracks.append(track) return unconfirmed, active_tracks def _first_association( self, dets, dets_first, active_tracks, unconfirmed, img, detections, activated_stracks, refind_stracks, strack_pool, ): STrack.multi_predict(strack_pool) # Fix camera motion if self.cmc is not None: warp = self.cmc.apply(img, dets) STrack.multi_gmc(strack_pool, warp) STrack.multi_gmc(unconfirmed, warp) # Associate with high confidence detection boxes ious_dists = iou_distance(strack_pool, detections, is_obb=self.is_obb) ious_dists_mask = ious_dists > self.proximity_thresh if self.fuse_first_associate: ious_dists = fuse_score(ious_dists, detections) if self.with_reid: emb_dists = embedding_distance(strack_pool, detections) emb_dists[emb_dists > self.appearance_thresh] = 1.0 emb_dists[ious_dists_mask] = 1.0 dists = np.minimum(ious_dists, emb_dists) else: dists = ious_dists matches, u_track, u_detection = linear_assignment( dists, thresh=self.match_thresh ) for itracked, idet in matches: track = strack_pool[itracked] det = detections[idet] if track.state == TrackState.Tracked: track.update(detections[idet], self.frame_count) activated_stracks.append(track) else: track.re_activate(det, self.frame_count, new_id=False) refind_stracks.append(track) return matches, u_track, u_detection def _second_association( self, dets_second, activated_stracks, lost_stracks, refind_stracks, u_track_first, strack_pool, ): if len(dets_second) > 0: detections_second = [ STrack(det, max_obs=self.max_obs, is_obb=self.is_obb) for det in dets_second ] else: detections_second = [] r_tracked_stracks = [ strack_pool[i] for i in u_track_first if strack_pool[i].state == TrackState.Tracked ] dists = iou_distance(r_tracked_stracks, detections_second, is_obb=self.is_obb) matches, u_track, u_detection = linear_assignment(dists, thresh=0.5) for itracked, idet in matches: track = r_tracked_stracks[itracked] det = detections_second[idet] if track.state == TrackState.Tracked: track.update(det, self.frame_count) activated_stracks.append(track) else: track.re_activate(det, self.frame_count, new_id=False) refind_stracks.append(track) for it in u_track: track = r_tracked_stracks[it] if not track.state == TrackState.Lost: track.mark_lost() lost_stracks.append(track) return matches, u_track, u_detection def _handle_unconfirmed_tracks( self, u_detection, detections, activated_stracks, removed_stracks, unconfirmed ): """ Handle unconfirmed tracks (tracks with only one detection frame). Args: u_detection: Unconfirmed detection indices. detections: Current list of detections. activated_stracks: List of newly activated tracks. removed_stracks: List of tracks to remove. """ # Only use detections that are unconfirmed (filtered by u_detection) detections = [detections[i] for i in u_detection] # Calculate IoU distance between unconfirmed tracks and detections ious_dists = iou_distance(unconfirmed, detections, is_obb=self.is_obb) # Apply IoU mask to filter out distances that exceed proximity threshold ious_dists_mask = ious_dists > self.proximity_thresh ious_dists = fuse_score(ious_dists, detections) # Fuse scores for IoU-based and embedding-based matching (if applicable) if self.with_reid: emb_dists = embedding_distance(unconfirmed, detections) / 2.0 emb_dists[emb_dists > self.appearance_thresh] = 1.0 emb_dists[ious_dists_mask] = ( 1.0 # Apply the IoU mask to embedding distances ) dists = np.minimum(ious_dists, emb_dists) else: dists = ious_dists # Perform data association using linear assignment on the combined distances matches, u_unconfirmed, u_detection = linear_assignment(dists, thresh=0.7) # Update matched unconfirmed tracks for itracked, idet in matches: unconfirmed[itracked].update(detections[idet], self.frame_count) activated_stracks.append(unconfirmed[itracked]) # Mark unmatched unconfirmed tracks as removed for it in u_unconfirmed: track = unconfirmed[it] track.mark_removed() removed_stracks.append(track) return matches, u_unconfirmed, u_detection def _initialize_new_tracks(self, u_detections, activated_stracks, detections): for inew in u_detections: track = detections[inew] if track.conf < self.new_track_thresh: continue track.activate(self.kalman_filter, self.frame_count) activated_stracks.append(track) def _update_tracks( self, matches, strack_pool, detections, activated_stracks, refind_stracks, mark_removed=False, ): # Update or reactivate matched tracks for itracked, idet in matches: track = strack_pool[itracked] det = detections[idet] if track.state == TrackState.Tracked: track.update(det, self.frame_count) activated_stracks.append(track) else: track.re_activate(det, self.frame_count, new_id=False) refind_stracks.append(track) # Mark only unmatched tracks as removed, if mark_removed flag is True if mark_removed: unmatched_tracks = [ strack_pool[i] for i in range(len(strack_pool)) if i not in [m[0] for m in matches] ] for track in unmatched_tracks: track.mark_removed() def _update_track_states(self, removed_stracks): for track in self.lost_stracks: if self.frame_count - track.end_frame > self.max_time_lost: track.mark_removed() removed_stracks.append(track) def _prepare_output( self, activated_stracks, refind_stracks, lost_stracks, removed_stracks ): self.active_tracks = [ t for t in self.active_tracks if t.state == TrackState.Tracked ] self.active_tracks = joint_stracks(self.active_tracks, activated_stracks) self.active_tracks = joint_stracks(self.active_tracks, refind_stracks) self.lost_stracks = sub_stracks(self.lost_stracks, self.active_tracks) self.lost_stracks.extend(lost_stracks) self.lost_stracks = sub_stracks(self.lost_stracks, self.removed_stracks) self.removed_stracks.extend(removed_stracks) self.active_tracks, self.lost_stracks = remove_duplicate_stracks( self.active_tracks, self.lost_stracks ) outputs = [ [*(t.xywha if self.is_obb else t.xyxy), t.id, t.conf, t.cls, t.det_ind] for t in self.active_tracks if t.is_activated ] return np.asarray(outputs, dtype=np.float32) if outputs else self.empty_output(dtype=np.float32) ================================================ FILE: boxmot/trackers/botsort/botsort_track.py ================================================ from collections import deque import cv2 import numpy as np from boxmot.motion.kalman_filters.xywh import KalmanFilterXYWH from boxmot.trackers.botsort.basetrack import BaseTrack, TrackState from boxmot.utils.ops import xywh2xyxy, xyxy2xywh class STrack(BaseTrack): shared_kalman = KalmanFilterXYWH() shared_kalman_obb = KalmanFilterXYWH(ndim=5) def __init__(self, det, feat=None, feat_history=50, max_obs=50, is_obb=False): # Initialize detection parameters self.is_obb = is_obb det = np.asarray(det, dtype=np.float32) if self.is_obb: self._init_from_obb_detection(det) else: self._init_from_aabb_detection(det) self.max_obs = max_obs # Kalman filter and tracking state self.kalman_filter = None self.mean, self.covariance = None, None self.is_activated = False self.tracklet_len = 0 # Classification history and feature history self.cls_hist = [] self.history_observations = deque(maxlen=self.max_obs) self._plot_angle = None self.features = deque(maxlen=feat_history) self.smooth_feat = None self.curr_feat = None self.alpha = 0.9 # Update initial class and features self.update_cls(self.cls, self.conf) if feat is not None: self.update_features(feat) def _init_from_aabb_detection(self, det: np.ndarray) -> None: self.xywh = xyxy2xywh(det[:4]) self.conf = det[4] self.cls = det[5] self.det_ind = det[6] def _init_from_obb_detection(self, det: np.ndarray) -> None: self.xywh = det[:5].copy() self.conf = det[5] self.cls = det[6] self.det_ind = det[7] def update_features(self, feat): """Normalize and update feature vectors.""" feat /= np.linalg.norm(feat) self.curr_feat = feat if self.smooth_feat is None: self.smooth_feat = feat else: self.smooth_feat = self.alpha * self.smooth_feat + (1 - self.alpha) * feat self.smooth_feat /= np.linalg.norm(self.smooth_feat) self.features.append(feat) def update_cls(self, cls, conf): """Update class history based on detection confidence.""" max_freq = 0 found = False for c in self.cls_hist: if cls == c[0]: c[1] += conf found = True if c[1] > max_freq: max_freq = c[1] self.cls = c[0] if not found: self.cls_hist.append([cls, conf]) self.cls = cls def predict(self): """Predict the next state using Kalman filter.""" mean_state = self.mean.copy() if self.state != TrackState.Tracked: if self.is_obb: mean_state[7:10] = 0 # Reset size/angle velocities else: mean_state[6:8] = 0 self.mean, self.covariance = self.kalman_filter.predict( mean_state, self.covariance ) @staticmethod def multi_predict(stracks): """Perform batch prediction for multiple tracks.""" if not stracks: return multi_mean = np.asarray([st.mean.copy() for st in stracks]) multi_covariance = np.asarray([st.covariance for st in stracks]) is_obb = getattr(stracks[0], "is_obb", False) for i, st in enumerate(stracks): if st.state != TrackState.Tracked: if is_obb: multi_mean[i][7:10] = 0 else: multi_mean[i][6:8] = 0 # Reset velocities kalman = STrack.shared_kalman_obb if is_obb else STrack.shared_kalman multi_mean, multi_covariance = kalman.multi_predict( multi_mean, multi_covariance ) for st, mean, cov in zip(stracks, multi_mean, multi_covariance): st.mean, st.covariance = mean, cov @staticmethod def multi_gmc(stracks, H=np.eye(2, 3)): """Apply geometric motion compensation to multiple tracks.""" if not stracks: return if getattr(stracks[0], "is_obb", False): return R = H[:2, :2] R8x8 = np.kron(np.eye(4), R) t = H[:2, 2] for st in stracks: mean = R8x8.dot(st.mean) mean[:2] += t st.mean = mean st.covariance = R8x8.dot(st.covariance).dot(R8x8.T) def activate(self, kalman_filter, frame_id): """Activate a new track.""" self.kalman_filter = kalman_filter self.id = self.next_id() self.mean, self.covariance = self.kalman_filter.initiate(self.xywh) self.tracklet_len = 0 self.state = TrackState.Tracked if frame_id == 1: self.is_activated = True self.frame_id = frame_id self.start_frame = frame_id def re_activate(self, new_track, frame_id, new_id=False): """Re-activate a track with a new detection.""" self.mean, self.covariance = self.kalman_filter.update( self.mean, self.covariance, new_track.xywh ) if new_track.curr_feat is not None: self.update_features(new_track.curr_feat) self.tracklet_len = 0 self.state = TrackState.Tracked self.is_activated = True self.frame_id = frame_id if new_id: self.id = self.next_id() self.conf = new_track.conf self.cls = new_track.cls self.det_ind = new_track.det_ind self.update_cls(new_track.cls, new_track.conf) def update(self, new_track, frame_id): """Update the current track with a matched detection.""" self.frame_id = frame_id self.tracklet_len += 1 if not self.is_obb: self.history_observations.append(self.xyxy) self.mean, self.covariance = self.kalman_filter.update( self.mean, self.covariance, new_track.xywh ) if new_track.curr_feat is not None: self.update_features(new_track.curr_feat) self.state = TrackState.Tracked self.is_activated = True self.conf = new_track.conf self.cls = new_track.cls self.det_ind = new_track.det_ind self.update_cls(new_track.cls, new_track.conf) if self.is_obb: self.history_observations.append(self._state_obb_for_plot()) @staticmethod def _wrap_pi_periodic(delta: float) -> float: return float((delta + (np.pi / 2.0)) % np.pi - (np.pi / 2.0)) def _state_obb_for_plot(self) -> np.ndarray: """Return post-update OBB state as 4 corners with state-only angle smoothing.""" box = self.xywha.copy() if box[3] > box[2]: box[2], box[3] = box[3], box[2] box[4] = box[4] + (np.pi / 2.0) target = float((box[4] + np.pi) % (2.0 * np.pi) - np.pi) if self._plot_angle is None: self._plot_angle = target else: self._plot_angle = self._plot_angle + self._wrap_pi_periodic( target - self._plot_angle ) box[4] = self._plot_angle rect = ( (float(box[0]), float(box[1])), (max(float(box[2]), 1e-4), max(float(box[3]), 1e-4)), float(np.degrees(box[4])), ) corners = cv2.boxPoints(rect).reshape(-1) return np.asarray(corners, dtype=np.float32) @property def xyxy(self): """Convert bounding box format to `(min x, min y, max x, max y)`.""" if self.is_obb: cx, cy, w, h, angle = self.xywha rect = ((float(cx), float(cy)), (max(float(w), 1e-4), max(float(h), 1e-4)), float(np.degrees(angle))) corners = cv2.boxPoints(rect) x1, y1 = corners.min(axis=0) x2, y2 = corners.max(axis=0) return np.array([x1, y1, x2, y2], dtype=np.float32) ret = self.mean[:4].copy() if self.mean is not None else self.xywh.copy() return xywh2xyxy(ret) @property def xywha(self): """Return oriented bbox format `(cx, cy, w, h, angle)` when OBB mode is enabled.""" if not self.is_obb: xywh = self.mean[:4].copy() if self.mean is not None else self.xywh.copy() return np.array([xywh[0], xywh[1], xywh[2], xywh[3], 0.0], dtype=np.float32) ret = self.mean[:5].copy() if self.mean is not None else self.xywh.copy() return np.asarray(ret, dtype=np.float32) ================================================ FILE: boxmot/trackers/botsort/botsort_utils.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license from typing import List, Tuple import numpy as np from boxmot.utils.matching import iou_distance def joint_stracks(tlista: List["STrack"], tlistb: List["STrack"]) -> List["STrack"]: """ Joins two lists of tracks, ensuring that there are no duplicates based on track IDs. Args: tlista (List[STrack]): The first list of tracks. tlistb (List[STrack]): The second list of tracks. Returns: List[STrack]: A combined list of tracks from both input lists, without duplicates. """ exists = {} res = [] for t in tlista: exists[t.id] = 1 res.append(t) for t in tlistb: tid = t.id if not exists.get(tid, 0): exists[tid] = 1 res.append(t) return res def sub_stracks(tlista: List["STrack"], tlistb: List["STrack"]) -> List["STrack"]: """ Subtracts the tracks in tlistb from tlista based on track IDs. Args: tlista (List[STrack]): The list of tracks from which tracks will be removed. tlistb (List[STrack]): The list of tracks to be removed from tlista. Returns: List[STTrack]: The remaining tracks after removal. """ stracks = {t.id: t for t in tlista} for t in tlistb: tid = t.id if tid in stracks: del stracks[tid] return list(stracks.values()) def remove_duplicate_stracks( stracksa: List["STrack"], stracksb: List["STrack"] ) -> Tuple[List["STrack"], List["STrack"]]: """ Removes duplicate tracks between two lists based on their IoU distance and track duration. Args: stracksa (List[STrack]): The first list of tracks. stracksb (List[STrack]): The second list of tracks. Returns: Tuple[List[STrack], List[STrack]]: The filtered track lists, with duplicates removed. """ is_obb = any(getattr(t, "is_obb", False) for t in stracksa + stracksb) pdist = iou_distance(stracksa, stracksb, is_obb=is_obb) pairs = np.where(pdist < 0.15) dupa, dupb = [], [] for p, q in zip(*pairs): timep = stracksa[p].frame_id - stracksa[p].start_frame timeq = stracksb[q].frame_id - stracksb[q].start_frame if timep > timeq: dupb.append(q) else: dupa.append(p) resa = [t for i, t in enumerate(stracksa) if i not in dupa] resb = [t for i, t in enumerate(stracksb) if i not in dupb] return resa, resb ================================================ FILE: boxmot/trackers/bytetrack/__init__.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license ================================================ FILE: boxmot/trackers/bytetrack/basetrack.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license from collections import OrderedDict import numpy as np class TrackState(object): New = 0 Tracked = 1 Lost = 2 Removed = 3 class BaseTrack(object): _count = 0 track_id = 0 is_activated = False state = TrackState.New history = OrderedDict() features = [] curr_feature = None conf = 0 start_frame = 0 frame_id = 0 time_since_update = 0 # multi-camera location = (np.inf, np.inf) @property def end_frame(self): return self.frame_id @staticmethod def next_id(): BaseTrack._count += 1 return BaseTrack._count def activate(self, *args): raise NotImplementedError def predict(self): raise NotImplementedError def update(self, *args, **kwargs): raise NotImplementedError def mark_lost(self): self.state = TrackState.Lost def mark_removed(self): self.state = TrackState.Removed @staticmethod def clear_count(): BaseTrack._count = 0 ================================================ FILE: boxmot/trackers/bytetrack/bytetrack.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license from collections import deque import cv2 import numpy as np from boxmot.motion.kalman_filters.xywh import KalmanFilterXYWH from boxmot.motion.kalman_filters.xyah import KalmanFilterXYAH from boxmot.trackers.basetracker import BaseTracker from boxmot.trackers.bytetrack.basetrack import BaseTrack, TrackState from boxmot.utils.matching import fuse_score, iou_distance, linear_assignment from boxmot.utils.ops import tlwh2xyah, xywh2tlwh, xywh2xyxy, xyxy2xywh class STrack(BaseTrack): shared_kalman = KalmanFilterXYAH() shared_kalman_obb = KalmanFilterXYWH(ndim=5) def __init__(self, det, max_obs, is_obb: bool = False): # wait activate self.is_obb = is_obb det = np.asarray(det, dtype=np.float32) if self.is_obb: self._init_from_obb_detection(det) else: self._init_from_aabb_detection(det) self.max_obs = max_obs self.kalman_filter = None self.mean, self.covariance = None, None self.is_activated = False self.tracklet_len = 0 self.history_observations = deque([], maxlen=self.max_obs) self._plot_angle = None def _init_from_aabb_detection(self, det: np.ndarray) -> None: self.xywh = xyxy2xywh(det[0:4]) self.tlwh = xywh2tlwh(self.xywh) self.xyah = tlwh2xyah(self.tlwh) self.conf = det[4] self.cls = det[5] self.det_ind = det[6] def _init_from_obb_detection(self, det: np.ndarray) -> None: self.xywh = det[:5].copy() self.tlwh = None self.xyah = None self.conf = det[5] self.cls = det[6] self.det_ind = det[7] def predict(self): mean_state = self.mean.copy() if self.state != TrackState.Tracked: if self.is_obb: mean_state[7:10] = 0 else: mean_state[7] = 0 self.mean, self.covariance = self.kalman_filter.predict( mean_state, self.covariance ) @staticmethod def multi_predict(stracks): if len(stracks) > 0: multi_mean = np.asarray([st.mean.copy() for st in stracks]) multi_covariance = np.asarray([st.covariance for st in stracks]) is_obb = getattr(stracks[0], "is_obb", False) for i, st in enumerate(stracks): if st.state != TrackState.Tracked: if is_obb: multi_mean[i][7:10] = 0 else: multi_mean[i][7] = 0 kalman = STrack.shared_kalman_obb if is_obb else STrack.shared_kalman multi_mean, multi_covariance = kalman.multi_predict( multi_mean, multi_covariance ) for i, (mean, cov) in enumerate(zip(multi_mean, multi_covariance)): stracks[i].mean = mean stracks[i].covariance = cov def activate(self, kalman_filter, frame_id): """Start a new tracklet""" self.kalman_filter = kalman_filter self.id = self.next_id() self.mean, self.covariance = self.kalman_filter.initiate( self.xywh if self.is_obb else self.xyah ) self.tracklet_len = 0 self.state = TrackState.Tracked if frame_id == 1: self.is_activated = True # self.is_activated = True self.frame_id = frame_id self.start_frame = frame_id def re_activate(self, new_track, frame_id, new_id=False): self.mean, self.covariance = self.kalman_filter.update( self.mean, self.covariance, new_track.xywh if self.is_obb else new_track.xyah, ) self.tracklet_len = 0 self.state = TrackState.Tracked self.is_activated = True self.frame_id = frame_id if new_id: self.id = self.next_id() self.conf = new_track.conf self.cls = new_track.cls self.det_ind = new_track.det_ind def update(self, new_track, frame_id): """ Update a matched track :type new_track: STrack :type frame_id: int :type update_feature: bool :return: """ self.frame_id = frame_id self.tracklet_len += 1 if not self.is_obb: self.history_observations.append(self.xyxy) self.mean, self.covariance = self.kalman_filter.update( self.mean, self.covariance, new_track.xywh if self.is_obb else new_track.xyah, ) self.state = TrackState.Tracked self.is_activated = True self.conf = new_track.conf self.cls = new_track.cls self.det_ind = new_track.det_ind if self.is_obb: self.history_observations.append(self._state_obb_for_plot()) @staticmethod def _wrap_pi_periodic(delta: float) -> float: return float((delta + (np.pi / 2.0)) % np.pi - (np.pi / 2.0)) def _state_obb_for_plot(self) -> np.ndarray: """Return post-update OBB state as 4 corners with state-only angle smoothing.""" box = self.xywha.copy() if box[3] > box[2]: box[2], box[3] = box[3], box[2] box[4] = box[4] + (np.pi / 2.0) target = float((box[4] + np.pi) % (2.0 * np.pi) - np.pi) if self._plot_angle is None: self._plot_angle = target else: self._plot_angle = self._plot_angle + self._wrap_pi_periodic( target - self._plot_angle ) box[4] = self._plot_angle rect = ( (float(box[0]), float(box[1])), (max(float(box[2]), 1e-4), max(float(box[3]), 1e-4)), float(np.degrees(box[4])), ) corners = cv2.boxPoints(rect).reshape(-1) return np.asarray(corners, dtype=np.float32) @property def xyxy(self): """Convert bounding box to format `(min x, min y, max x, max y)`, i.e., `(top left, bottom right)`. """ if self.is_obb: cx, cy, w, h, angle = self.xywha rect = ((float(cx), float(cy)), (max(float(w), 1e-4), max(float(h), 1e-4)), float(np.degrees(angle))) corners = cv2.boxPoints(rect) x1, y1 = corners.min(axis=0) x2, y2 = corners.max(axis=0) return np.array([x1, y1, x2, y2], dtype=np.float32) if self.mean is None: ret = self.xywh.copy() # (xc, yc, w, h) else: ret = self.mean[:4].copy() # kf (xc, yc, a, h) ret[2] *= ret[3] # (xc, yc, a, h) --> (xc, yc, w, h) ret = xywh2xyxy(ret) return ret @property def xywha(self): if self.is_obb: ret = self.mean[:5].copy() if self.mean is not None else self.xywh.copy() return np.asarray(ret, dtype=np.float32) xywh = self.mean[:4].copy() if self.mean is not None else self.xywh.copy() return np.array([xywh[0], xywh[1], xywh[2], xywh[3], 0.0], dtype=np.float32) class ByteTrack(BaseTracker): supports_obb = True """ Initialize the ByteTrack tracker with various parameters. Parameters: - det_thresh (float): Detection threshold for considering detections. - max_age (int): Maximum age (in frames) of a track before it is considered lost. - max_obs (int): Maximum number of historical observations stored for each track. Always greater than max_age by minimum 5. - min_hits (int): Minimum number of detection hits before a track is considered confirmed. - iou_threshold (float): IOU threshold for determining match between detection and tracks. - per_class (bool): Enables class-separated tracking. - nr_classes (int): Total number of object classes that the tracker will handle (for per_class=True). - asso_func (str): Algorithm name used for data association between detections and tracks. - is_obb (bool): Work with Oriented Bounding Boxes (OBB) instead of standard axis-aligned bounding boxes. ByteTrack-specific parameters: - min_conf (float): Threshold for detection confidence. Detections below this threshold are discarded. - track_thresh (float): Threshold for detection confidence. Detections above this threshold are considered for tracking in the first association round. - match_thresh (float): Threshold for the matching step in data association. Controls the maximum distance allowed between tracklets and detections for a match. - track_buffer (int): Number of frames to keep a track alive after it was last detected. - frame_rate (int): Frame rate of the video being processed. Used to scale the track buffer size. Attributes: - frame_count (int): Counter for the frames processed. - active_tracks (list): List to hold active tracks. - lost_stracks (list[STrack]): List of lost tracks. - removed_stracks (list[STrack]): List of removed tracks. - buffer_size (int): Size of the track buffer based on frame rate. - max_time_lost (int): Maximum time a track can be lost. - kalman_filter (KalmanFilterXYAH): Kalman filter for motion prediction. """ def __init__( self, # ByteTrack-specific parameters min_conf: float = 0.1, track_thresh: float = 0.45, match_thresh: float = 0.8, track_buffer: int = 25, frame_rate: int = 30, **kwargs # BaseTracker parameters ): # Capture all init params for logging init_args = {k: v for k, v in locals().items() if k not in ('self', 'kwargs')} super().__init__(**init_args, _tracker_name='ByteTrack', **kwargs) # Track lifecycle parameters self.frame_id = 0 self.track_buffer = track_buffer self.buffer_size = int(frame_rate / 30.0 * track_buffer) self.max_time_lost = self.buffer_size # Detection thresholds self.min_conf = min_conf self.track_thresh = track_thresh self.match_thresh = match_thresh self.det_thresh = track_thresh # Same as track_thresh # Motion model self.kalman_filter = KalmanFilterXYAH() self.active_tracks = [] # type: list[STrack] self.lost_stracks = [] # type: list[STrack] self.removed_stracks = [] # type: list[STrack] @BaseTracker.setup_decorator @BaseTracker.per_class_decorator def update( self, dets: np.ndarray, img: np.ndarray = None, embs: np.ndarray = None ) -> np.ndarray: self.check_inputs(dets, img) self.kalman_filter = KalmanFilterXYWH(ndim=5) if self.is_obb else KalmanFilterXYAH() dets = self.detection_layout.with_detection_indices(dets) self.frame_count += 1 activated_starcks = [] refind_stracks = [] lost_stracks = [] removed_stracks = [] confs = self.detection_layout.confidences(dets) remain_inds = confs > self.track_thresh inds_low = confs > self.min_conf inds_high = confs < self.track_thresh inds_second = np.logical_and(inds_low, inds_high) dets_second = dets[inds_second] dets = dets[remain_inds] if len(dets) > 0: """Detections""" detections = [STrack(det, max_obs=self.max_obs, is_obb=self.is_obb) for det in dets] else: detections = [] """ Add newly detected tracklets to tracked_stracks""" unconfirmed = [] tracked_stracks = [] # type: list[STrack] for track in self.active_tracks: if not track.is_activated: unconfirmed.append(track) else: tracked_stracks.append(track) """ Step 2: First association, with high conf detection boxes""" strack_pool = joint_stracks(tracked_stracks, self.lost_stracks) # Predict the current location with KF STrack.multi_predict(strack_pool) dists = iou_distance(strack_pool, detections, is_obb=self.is_obb) # if not self.args.mot20: dists = fuse_score(dists, detections) matches, u_track, u_detection = linear_assignment( dists, thresh=self.match_thresh ) for itracked, idet in matches: track = strack_pool[itracked] det = detections[idet] if track.state == TrackState.Tracked: track.update(detections[idet], self.frame_count) activated_starcks.append(track) else: track.re_activate(det, self.frame_count, new_id=False) refind_stracks.append(track) """ Step 3: Second association, with low conf detection boxes""" # association the untrack to the low conf detections if len(dets_second) > 0: """Detections""" detections_second = [ STrack(det_second, max_obs=self.max_obs, is_obb=self.is_obb) for det_second in dets_second ] else: detections_second = [] r_tracked_stracks = [ strack_pool[i] for i in u_track if strack_pool[i].state == TrackState.Tracked ] dists = iou_distance(r_tracked_stracks, detections_second, is_obb=self.is_obb) matches, u_track, u_detection_second = linear_assignment(dists, thresh=0.5) for itracked, idet in matches: track = r_tracked_stracks[itracked] det = detections_second[idet] if track.state == TrackState.Tracked: track.update(det, self.frame_count) activated_starcks.append(track) else: track.re_activate(det, self.frame_count, new_id=False) refind_stracks.append(track) for it in u_track: track = r_tracked_stracks[it] if not track.state == TrackState.Lost: track.mark_lost() lost_stracks.append(track) """Deal with unconfirmed tracks, usually tracks with only one beginning frame""" detections = [detections[i] for i in u_detection] dists = iou_distance(unconfirmed, detections, is_obb=self.is_obb) # if not self.args.mot20: dists = fuse_score(dists, detections) matches, u_unconfirmed, u_detection = linear_assignment(dists, thresh=0.7) for itracked, idet in matches: unconfirmed[itracked].update(detections[idet], self.frame_count) activated_starcks.append(unconfirmed[itracked]) for it in u_unconfirmed: track = unconfirmed[it] track.mark_removed() removed_stracks.append(track) """ Step 4: Init new stracks""" for inew in u_detection: track = detections[inew] if track.conf < self.det_thresh: continue track.activate(self.kalman_filter, self.frame_count) activated_starcks.append(track) """ Step 5: Update state""" for track in self.lost_stracks: if self.frame_count - track.end_frame > self.max_time_lost: track.mark_removed() removed_stracks.append(track) self.active_tracks = [ t for t in self.active_tracks if t.state == TrackState.Tracked ] self.active_tracks = joint_stracks(self.active_tracks, activated_starcks) self.active_tracks = joint_stracks(self.active_tracks, refind_stracks) self.lost_stracks = sub_stracks(self.lost_stracks, self.active_tracks) self.lost_stracks.extend(lost_stracks) self.lost_stracks = sub_stracks(self.lost_stracks, self.removed_stracks) self.removed_stracks.extend(removed_stracks) self.active_tracks, self.lost_stracks = remove_duplicate_stracks( self.active_tracks, self.lost_stracks ) # get confs of lost tracks output_stracks = [track for track in self.active_tracks if track.is_activated] outputs = [] for t in output_stracks: output = [] output.extend(t.xywha if self.is_obb else t.xyxy) output.append(t.id) output.append(t.conf) output.append(t.cls) output.append(t.det_ind) outputs.append(output) return np.asarray(outputs, dtype=np.float32) if outputs else self.empty_output(dtype=np.float32) # id, class_id, conf def joint_stracks(tlista, tlistb): exists = {} res = [] for t in tlista: exists[t.id] = 1 res.append(t) for t in tlistb: tid = t.id if not exists.get(tid, 0): exists[tid] = 1 res.append(t) return res def sub_stracks(tlista, tlistb): stracks = {} for t in tlista: stracks[t.id] = t for t in tlistb: tid = t.id if stracks.get(tid, 0): del stracks[tid] return list(stracks.values()) def remove_duplicate_stracks(stracksa, stracksb): pdist = iou_distance(stracksa, stracksb) pairs = np.where(pdist < 0.15) dupa, dupb = list(), list() for p, q in zip(*pairs): timep = stracksa[p].frame_id - stracksa[p].start_frame timeq = stracksb[q].frame_id - stracksb[q].start_frame if timep > timeq: dupb.append(q) else: dupa.append(p) resa = [t for i, t in enumerate(stracksa) if i not in dupa] resb = [t for i, t in enumerate(stracksb) if i not in dupb] return resa, resb ================================================ FILE: boxmot/trackers/deepocsort/__init__.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license ================================================ FILE: boxmot/trackers/deepocsort/deepocsort.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license from collections import deque from pathlib import Path import numpy as np import torch from boxmot.motion.cmc import get_cmc_method from boxmot.motion.kalman_filters.xysr import KalmanFilterXYSR from boxmot.reid.core.auto_backend import ReidAutoBackend from boxmot.trackers.basetracker import BaseTracker from boxmot.utils.association import associate, linear_assignment from boxmot.utils.ops import xyxy2xysr def k_previous_obs(observations, cur_age, k): if len(observations) == 0: return [-1, -1, -1, -1, -1] for i in range(k): dt = k - i if cur_age - dt in observations: return observations[cur_age - dt] max_age = max(observations.keys()) return observations[max_age] def convert_x_to_bbox(x, score=None): """ Takes a bounding box in the centre form [x,y,s,r] and returns it in the form [x1,y1,x2,y2] where x1,y1 is the top left and x2,y2 is the bottom right """ w = np.sqrt(x[2] * x[3]) h = x[2] / w if score is None: return np.array([x[0] - w / 2.0, x[1] - h / 2.0, x[0] + w / 2.0, x[1] + h / 2.0]).reshape((1, 4)) return np.array([x[0] - w / 2.0, x[1] - h / 2.0, x[0] + w / 2.0, x[1] + h / 2.0, score] ).reshape((1, 5)) def speed_direction(bbox1, bbox2): cx1, cy1 = (bbox1[0] + bbox1[2]) / 2.0, (bbox1[1] + bbox1[3]) / 2.0 cx2, cy2 = (bbox2[0] + bbox2[2]) / 2.0, (bbox2[1] + bbox2[3]) / 2.0 speed = np.array([cy2 - cy1, cx2 - cx1]) norm = np.sqrt((cy2 - cy1) ** 2 + (cx2 - cx1) ** 2) + 1e-6 return speed / norm class KalmanBoxTracker: """ This class represents the internal state of individual tracked objects observed as bbox. """ count = 0 def __init__( self, det, delta_t=3, emb=None, alpha=0, max_obs=50, Q_xy_scaling=0.01, Q_s_scaling=0.0001, ): """ Initialises a tracker using initial bounding box. """ # define constant velocity model self.max_obs = max_obs bbox = det[0:5] self.conf = det[4] self.cls = det[5] self.det_ind = det[6] self.Q_xy_scaling = Q_xy_scaling self.Q_s_scaling = Q_s_scaling self.kf = KalmanFilterXYSR(dim_x=7, dim_z=4) self.kf.F = np.array( [ # x y s r x' y' s' [1, 0, 0, 0, 1, 0, 0], [0, 1, 0, 0, 0, 1, 0], [0, 0, 1, 0, 0, 0, 1], [0, 0, 0, 1, 0, 0, 0], [0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 1], ] ) self.kf.H = np.array( [ [1, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0], ] ) self.kf.R[2:, 2:] *= 10.0 self.kf.P[ 4:, 4: ] *= 1000.0 # give high uncertainty to the unobservable initial velocities self.kf.P *= 10.0 self.kf.Q[4:6, 4:6] *= self.Q_xy_scaling self.kf.Q[-1, -1] *= self.Q_s_scaling self.bbox_to_z_func = xyxy2xysr self.x_to_bbox_func = convert_x_to_bbox self.kf.x[:4] = self.bbox_to_z_func(bbox) self.time_since_update = 0 self.id = KalmanBoxTracker.count KalmanBoxTracker.count += 1 self.history = deque([], maxlen=self.max_obs) self.hits = 0 self.hit_streak = 0 self.age = 0 """ NOTE: [-1,-1,-1,-1,-1] is a compromising placeholder for non-observation status, the same for the return of function k_previous_obs. It is ugly and I do not like it. But to support generate observation array in a fast and unified way, which you would see below k_observations = np.array([k_previous_obs(...]]), let's bear it for now. """ # Used for OCR self.last_observation = np.array([-1, -1, -1, -1, -1]) # placeholder # Used to output track after min_hits reached self.features = deque([], maxlen=self.max_obs) # Used for velocity self.observations = dict() self.velocity = None self.delta_t = delta_t self.history_observations = deque([], maxlen=self.max_obs) self.emb = emb self.frozen = False def update(self, det): """ Updates the state vector with observed bbox. """ if det is not None: bbox = det[0:5] self.conf = det[4] self.cls = det[5] self.det_ind = det[6] self.frozen = False if self.last_observation.sum() >= 0: # no previous observation previous_box = None for dt in range(self.delta_t, 0, -1): if self.age - dt in self.observations: previous_box = self.observations[self.age - dt] break if previous_box is None: previous_box = self.last_observation # Estimate the track speed direction with observations Δt steps away self.velocity = speed_direction(previous_box, bbox) """ Insert new observations. This is a ugly way to maintain both self.observations and self.history_observations. Bear it for the moment. """ self.last_observation = bbox self.observations[self.age] = bbox self.history_observations.append(bbox) self.time_since_update = 0 self.hits += 1 self.hit_streak += 1 self.kf.update(self.bbox_to_z_func(bbox)) else: self.kf.update(det) self.frozen = True def update_emb(self, emb, alpha=0.9): self.emb = alpha * self.emb + (1 - alpha) * emb self.emb /= np.linalg.norm(self.emb) def get_emb(self): return self.emb def apply_affine_correction(self, affine): m = affine[:, :2] t = affine[:, 2].reshape(2, 1) # For OCR if self.last_observation.sum() > 0: ps = self.last_observation[:4].reshape(2, 2).T ps = m @ ps + t self.last_observation[:4] = ps.T.reshape(-1) # Apply to each box in the range of velocity computation for dt in range(self.delta_t, -1, -1): if self.age - dt in self.observations: ps = self.observations[self.age - dt][:4].reshape(2, 2).T ps = m @ ps + t self.observations[self.age - dt][:4] = ps.T.reshape(-1) # Also need to change kf state, but might be frozen self.kf.apply_affine_correction(m, t) def predict(self): """ Advances the state vector and returns the predicted bounding box estimate. """ # Don't allow negative bounding boxes if (self.kf.x[6] + self.kf.x[2]) <= 0: self.kf.x[6] *= 0.0 Q = None self.kf.predict(Q=Q) self.age += 1 if self.time_since_update > 0: self.hit_streak = 0 self.time_since_update += 1 self.history.append(self.x_to_bbox_func(self.kf.x)) return self.history[-1] def get_state(self): """ Returns the current bounding box estimate. """ return self.x_to_bbox_func(self.kf.x) def mahalanobis(self, bbox): """Should be run after a predict() call for accuracy.""" return self.kf.md_for_measurement(self.bbox_to_z_func(bbox)) class DeepOcSort(BaseTracker): """ Initialize the DeepOcSort tracker with various parameters. Parameters: - reid_weights (Path): Path to the re-identification model weights. - device (torch.device): Device to run the model on (e.g., 'cpu', 'cuda'). - half (bool): Whether to use half-precision (fp16) for faster inference. - det_thresh (float): Detection threshold for considering detections. - max_age (int): Maximum age (in frames) of a track before it is considered lost. - max_obs (int): Maximum number of historical observations stored for each track. Always greater than max_age by minimum 5. - min_hits (int): Minimum number of detection hits before a track is considered confirmed. - iou_threshold (float): IOU threshold for determining match between detection and tracks. - per_class (bool): Enables class-separated tracking. - nr_classes (int): Total number of object classes that the tracker will handle (for per_class=True). - asso_func (str): Algorithm name used for data association between detections and tracks. - is_obb (bool): Work with Oriented Bounding Boxes (OBB) instead of standard axis-aligned bounding boxes. DeepOcSort-specific parameters: - delta_t (int): Time window size for motion estimation. - inertia (float): Motion model weight, higher values favor motion consistency. - w_association_emb (float): Weight for embedding association in the matching cost. - alpha_fixed_emb (float): Fixed update rate for embeddings. - aw_param (float): Adaptive weight parameter for cost function. - embedding_off (bool): Whether to disable appearance embedding for tracking. - cmc_off (bool): Whether to disable camera motion compensation. - aw_off (bool): Whether to disable adaptive weights for appearance/motion balance. - Q_xy_scaling (float): Scaling factor for process noise in position coordinates. - Q_s_scaling (float): Scaling factor for process noise in scale coordinates. Attributes: - frame_count (int): Counter for the frames processed. - active_tracks (list): List to hold active tracks. - model: ReID model for appearance feature extraction. - cmc: Camera motion compensation object. - kalman_filter: Kalman filter for motion estimation. """ def __init__( self, reid_weights: Path, device: torch.device, half: bool, # DeepOcSort-specific parameters delta_t: int = 3, inertia: float = 0.2, w_association_emb: float = 0.5, alpha_fixed_emb: float = 0.95, aw_param: float = 0.5, embedding_off: bool = False, cmc_off: bool = False, aw_off: bool = False, Q_xy_scaling: float = 0.01, Q_s_scaling: float = 0.0001, **kwargs # BaseTracker parameters ): # Capture all init params for logging init_args = {k: v for k, v in locals().items() if k not in ('self', 'kwargs')} super().__init__(**init_args, _tracker_name='DeepOcSort', **kwargs) """ Sets key parameters for SORT """ self.delta_t = delta_t self.inertia = inertia self.w_association_emb = w_association_emb self.alpha_fixed_emb = alpha_fixed_emb self.aw_param = aw_param self.Q_xy_scaling = Q_xy_scaling self.Q_s_scaling = Q_s_scaling KalmanBoxTracker.count = 1 self.model = ReidAutoBackend( weights=reid_weights, device=device, half=half ).model # "similarity transforms using feature point extraction, optical flow, and RANSAC" self.cmc = get_cmc_method("sof")() self.embedding_off = embedding_off self.cmc_off = cmc_off self.aw_off = aw_off @BaseTracker.setup_decorator @BaseTracker.per_class_decorator def update( self, dets: np.ndarray, img: np.ndarray, embs: np.ndarray = None ) -> np.ndarray: """ Params: dets - a numpy array of detections in the format [[x1,y1,x2,y2,score],[x1,y1,x2,y2,score],...] Requires: this method must be called once for each frame even with empty detections (use np.empty((0, 5)) for frames without detections). Returns the a similar array, where the last column is the object ID. NOTE: The number of objects returned may differ from the number of detections provided. """ # dets, s, c = dets.data # print(dets, s, c) self.check_inputs(dets, img, embs) self.frame_count += 1 self.height, self.width = img.shape[:2] scores = dets[:, 4] dets = np.hstack([dets, np.arange(len(dets)).reshape(-1, 1)]) assert dets.shape[1] == 7 remain_inds = scores > self.det_thresh dets = dets[remain_inds] # appearance descriptor extraction if self.embedding_off or dets.shape[0] == 0: dets_embs = np.ones((dets.shape[0], 1)) elif embs is not None: dets_embs = embs[remain_inds] else: # (Ndets x X) [512, 1024, 2048] dets_embs = self.model.get_features(dets[:, 0:4], img) # CMC if not self.cmc_off: transform = self.cmc.apply(img, dets[:, :4]) for trk in self.active_tracks: trk.apply_affine_correction(transform) trust = (dets[:, 4] - self.det_thresh) / (1 - self.det_thresh) af = self.alpha_fixed_emb # From [self.alpha_fixed_emb, 1], goes to 1 as detector is less confident dets_alpha = af + (1 - af) * (1 - trust) # get predicted locations from existing trackers. trks = np.zeros((len(self.active_tracks), 5)) trk_embs = [] to_del = [] ret = [] for t, trk in enumerate(trks): pos = self.active_tracks[t].predict()[0] trk[:] = [pos[0], pos[1], pos[2], pos[3], 0] if np.any(np.isnan(pos)): to_del.append(t) else: trk_embs.append(self.active_tracks[t].get_emb()) trks = np.ma.compress_rows(np.ma.masked_invalid(trks)) if len(trk_embs) > 0: trk_embs = np.vstack(trk_embs) else: trk_embs = np.array(trk_embs) for t in reversed(to_del): self.active_tracks.pop(t) velocities = np.array( [trk.velocity if trk.velocity is not None else np.array((0, 0)) for trk in self.active_tracks]) last_boxes = np.array([trk.last_observation for trk in self.active_tracks]) k_observations = np.array( [k_previous_obs(trk.observations, trk.age, self.delta_t) for trk in self.active_tracks]) """ First round of association """ # (M detections X N tracks, final score) if self.embedding_off or dets.shape[0] == 0 or trk_embs.shape[0] == 0: stage1_emb_cost = None else: stage1_emb_cost = dets_embs @ trk_embs.T matched, unmatched_dets, unmatched_trks = associate( dets[:, 0:5], trks, self.asso_func, self.iou_threshold, velocities, k_observations, self.inertia, img.shape[1], # w img.shape[0], # h stage1_emb_cost, self.w_association_emb, self.aw_off, self.aw_param, ) for m in matched: self.active_tracks[m[1]].update(dets[m[0], :]) self.active_tracks[m[1]].update_emb(dets_embs[m[0]], alpha=dets_alpha[m[0]]) """ Second round of associaton by OCR """ if unmatched_dets.shape[0] > 0 and unmatched_trks.shape[0] > 0: left_dets = dets[unmatched_dets] left_dets_embs = dets_embs[unmatched_dets] left_trks = last_boxes[unmatched_trks] left_trks_embs = trk_embs[unmatched_trks] iou_left = self.asso_func(left_dets, left_trks) # TODO: is better without this emb_cost_left = left_dets_embs @ left_trks_embs.T if self.embedding_off: emb_cost_left = np.zeros_like(emb_cost_left) iou_left = np.array(iou_left) if iou_left.max() > self.iou_threshold: """ NOTE: by using a lower threshold, e.g., self.iou_threshold - 0.1, you may get a higher performance especially on MOT17/MOT20 datasets. But we keep it uniform here for simplicity """ rematched_indices = linear_assignment(-iou_left) to_remove_det_indices = [] to_remove_trk_indices = [] for m in rematched_indices: det_ind, trk_ind = unmatched_dets[m[0]], unmatched_trks[m[1]] if iou_left[m[0], m[1]] < self.iou_threshold: continue self.active_tracks[trk_ind].update(dets[det_ind, :]) self.active_tracks[trk_ind].update_emb( dets_embs[det_ind], alpha=dets_alpha[det_ind] ) to_remove_det_indices.append(det_ind) to_remove_trk_indices.append(trk_ind) unmatched_dets = np.setdiff1d( unmatched_dets, np.array(to_remove_det_indices) ) unmatched_trks = np.setdiff1d( unmatched_trks, np.array(to_remove_trk_indices) ) for m in unmatched_trks: self.active_tracks[m].update(None) # create and initialise new trackers for unmatched detections for i in unmatched_dets: trk = KalmanBoxTracker( dets[i], delta_t=self.delta_t, emb=dets_embs[i], alpha=dets_alpha[i], Q_xy_scaling=self.Q_xy_scaling, Q_s_scaling=self.Q_s_scaling, max_obs=self.max_obs, ) self.active_tracks.append(trk) i = len(self.active_tracks) for trk in reversed(self.active_tracks): if trk.last_observation.sum() < 0: d = trk.get_state()[0] else: """ this is optional to use the recent observation or the kalman filter prediction, we didn't notice significant difference here """ d = trk.last_observation[:4] if (trk.time_since_update < 1) and ( trk.hit_streak >= self.min_hits or self.frame_count <= self.min_hits ): # +1 as MOT benchmark requires positive ret.append( np.concatenate( (d, [trk.id], [trk.conf], [trk.cls], [trk.det_ind]) ).reshape(1, -1) ) i -= 1 # remove dead tracklet if trk.time_since_update > self.max_age: self.active_tracks.pop(i) if len(ret) > 0: return np.concatenate(ret) return np.array([]) ================================================ FILE: boxmot/trackers/detection_layout.py ================================================ from __future__ import annotations from dataclasses import dataclass import numpy as np @dataclass(frozen=True) class DetectionLayout: """Shared indexing and shape rules for tracker detection tensors.""" name: str is_obb: bool det_cols: int box_cols: int conf_idx: int cls_idx: int output_cols: int @property def box_with_conf_cols(self) -> int: return self.box_cols + 1 def association_mode_name(self, base_name: str) -> str: return f"{base_name}_obb" if self.is_obb else base_name def empty_dets(self, dtype=np.float32) -> np.ndarray: return np.empty((0, self.det_cols), dtype=dtype) def empty_output(self, dtype=float) -> np.ndarray: return np.empty((0, self.output_cols), dtype=dtype) def boxes(self, dets: np.ndarray) -> np.ndarray: if dets.size == 0: return np.empty((0, self.box_cols), dtype=dets.dtype if hasattr(dets, "dtype") else np.float32) return dets[:, : self.box_cols] def confidences(self, dets: np.ndarray) -> np.ndarray: if dets.size == 0: return np.empty((0,), dtype=dets.dtype if hasattr(dets, "dtype") else np.float32) return dets[:, self.conf_idx] def classes(self, dets: np.ndarray) -> np.ndarray: if dets.size == 0: return np.empty((0,), dtype=dets.dtype if hasattr(dets, "dtype") else np.float32) return dets[:, self.cls_idx] def with_detection_indices(self, dets: np.ndarray) -> np.ndarray: if dets.size == 0: return np.empty((0, self.det_cols + 1), dtype=dets.dtype if hasattr(dets, "dtype") else np.float32) det_inds = np.arange(len(dets), dtype=np.int32).reshape(-1, 1) return np.hstack([dets, det_inds]) def validate_dets(self, dets: np.ndarray) -> None: assert dets.shape[1] == self.det_cols, ( "Unsupported 'dets' 2nd dimension length, valid length is " f"{self.det_cols} {self.name}" ) class AxisAlignedDetections(DetectionLayout): def __init__(self) -> None: super().__init__( name="(x1,y1,x2,y2,conf,cls)", is_obb=False, det_cols=6, box_cols=4, conf_idx=4, cls_idx=5, output_cols=8, ) class OrientedDetections(DetectionLayout): def __init__(self) -> None: super().__init__( name="(cx,cy,w,h,angle,conf,cls)", is_obb=True, det_cols=7, box_cols=5, conf_idx=5, cls_idx=6, output_cols=9, ) AABB_DETECTIONS = AxisAlignedDetections() OBB_DETECTIONS = OrientedDetections() def get_detection_layout(is_obb: bool) -> DetectionLayout: return OBB_DETECTIONS if is_obb else AABB_DETECTIONS def infer_detection_layout(dets: np.ndarray) -> DetectionLayout | None: if dets is None or not isinstance(dets, np.ndarray) or dets.ndim != 2: return None if dets.shape[1] == AABB_DETECTIONS.det_cols: return AABB_DETECTIONS if dets.shape[1] == OBB_DETECTIONS.det_cols: return OBB_DETECTIONS return None ================================================ FILE: boxmot/trackers/hybridsort/__init__.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license ================================================ FILE: boxmot/trackers/hybridsort/association.py ================================================ import numpy as np def intersection_batch(bboxes1, bboxes2): bboxes2 = np.expand_dims(bboxes2, 0) bboxes1 = np.expand_dims(bboxes1, 1) xx1 = np.maximum(bboxes1[..., 0], bboxes2[..., 0]) yy1 = np.maximum(bboxes1[..., 1], bboxes2[..., 1]) xx2 = np.minimum(bboxes1[..., 2], bboxes2[..., 2]) yy2 = np.minimum(bboxes1[..., 3], bboxes2[..., 3]) w = np.maximum(0., xx2 - xx1) h = np.maximum(0., yy2 - yy1) intersections = w * h return intersections def box_area(bbox): area = (bbox[2] - bbox[0]) * (bbox[3] - bbox[1]) return area def iou_batch(bboxes1, bboxes2): """ From SORT: Computes IOU between two bboxes in the form [x1,y1,x2,y2] """ bboxes2 = np.expand_dims(bboxes2, 0) bboxes1 = np.expand_dims(bboxes1, 1) xx1 = np.maximum(bboxes1[..., 0], bboxes2[..., 0]) yy1 = np.maximum(bboxes1[..., 1], bboxes2[..., 1]) xx2 = np.minimum(bboxes1[..., 2], bboxes2[..., 2]) yy2 = np.minimum(bboxes1[..., 3], bboxes2[..., 3]) w = np.maximum(0., xx2 - xx1) h = np.maximum(0., yy2 - yy1) wh = w * h o = wh / ((bboxes1[..., 2] - bboxes1[..., 0]) * (bboxes1[..., 3] - bboxes1[..., 1]) + (bboxes2[..., 2] - bboxes2[..., 0]) * (bboxes2[..., 3] - bboxes2[..., 1]) - wh) return(o) def cal_score_dif_batch(bboxes1, bboxes2): """ From SORT: Computes IOU between two bboxes in the form [x1,y1,x2,y2] """ bboxes2 = np.expand_dims(bboxes2, 0) bboxes1 = np.expand_dims(bboxes1, 1) score2 = bboxes2[..., 4] score1 = bboxes1[..., 4] return (abs(score2 - score1)) def cal_score_dif_batch_two_score(bboxes1, bboxes2): """ From SORT: Computes IOU between two bboxes in the form [x1,y1,x2,y2] """ bboxes2 = np.expand_dims(bboxes2, 0) bboxes1 = np.expand_dims(bboxes1, 1) score2 = bboxes2[..., 5] score1 = bboxes1[..., 4] return (abs(score2 - score1)) def hmiou(bboxes1, bboxes2): """ Height_Modulated_IoU """ bboxes2 = np.expand_dims(bboxes2, 0) bboxes1 = np.expand_dims(bboxes1, 1) yy11 = np.maximum(bboxes1[..., 1], bboxes2[..., 1]) yy12 = np.minimum(bboxes1[..., 3], bboxes2[..., 3]) yy21 = np.minimum(bboxes1[..., 1], bboxes2[..., 1]) yy22 = np.maximum(bboxes1[..., 3], bboxes2[..., 3]) o = (yy12 - yy11) / (yy22 - yy21) xx1 = np.maximum(bboxes1[..., 0], bboxes2[..., 0]) yy1 = np.maximum(bboxes1[..., 1], bboxes2[..., 1]) xx2 = np.minimum(bboxes1[..., 2], bboxes2[..., 2]) yy2 = np.minimum(bboxes1[..., 3], bboxes2[..., 3]) w = np.maximum(0., xx2 - xx1) h = np.maximum(0., yy2 - yy1) wh = w * h o *= wh / ((bboxes1[..., 2] - bboxes1[..., 0]) * (bboxes1[..., 3] - bboxes1[..., 1]) + (bboxes2[..., 2] - bboxes2[..., 0]) * (bboxes2[..., 3] - bboxes2[..., 1]) - wh) return (o) def giou_batch(bboxes1, bboxes2): """ :param bbox_p: predict of bbox(N,4)(x1,y1,x2,y2) :param bbox_g: groundtruth of bbox(N,4)(x1,y1,x2,y2) :return: """ # for details should go to https://arxiv.org/pdf/1902.09630.pdf # ensure predict's bbox form bboxes2 = np.expand_dims(bboxes2, 0) bboxes1 = np.expand_dims(bboxes1, 1) xx1 = np.maximum(bboxes1[..., 0], bboxes2[..., 0]) yy1 = np.maximum(bboxes1[..., 1], bboxes2[..., 1]) xx2 = np.minimum(bboxes1[..., 2], bboxes2[..., 2]) yy2 = np.minimum(bboxes1[..., 3], bboxes2[..., 3]) w = np.maximum(0., xx2 - xx1) h = np.maximum(0., yy2 - yy1) wh = w * h iou = wh / ((bboxes1[..., 2] - bboxes1[..., 0]) * (bboxes1[..., 3] - bboxes1[..., 1]) + (bboxes2[..., 2] - bboxes2[..., 0]) * (bboxes2[..., 3] - bboxes2[..., 1]) - wh) xxc1 = np.minimum(bboxes1[..., 0], bboxes2[..., 0]) yyc1 = np.minimum(bboxes1[..., 1], bboxes2[..., 1]) xxc2 = np.maximum(bboxes1[..., 2], bboxes2[..., 2]) yyc2 = np.maximum(bboxes1[..., 3], bboxes2[..., 3]) wc = xxc2 - xxc1 hc = yyc2 - yyc1 assert((wc > 0).all() and (hc > 0).all()) area_enclose = wc * hc giou = iou - (area_enclose - wh) / area_enclose giou = (giou + 1.)/2.0 # resize from (-1,1) to (0,1) return giou def giou_batch_true(bboxes1, bboxes2): """ :param bbox_p: predict of bbox(N,4)(x1,y1,x2,y2) :param bbox_g: groundtruth of bbox(N,4)(x1,y1,x2,y2) :return: """ # for details should go to https://arxiv.org/pdf/1902.09630.pdf # ensure predict's bbox form bboxes2 = np.expand_dims(bboxes2, 0) bboxes1 = np.expand_dims(bboxes1, 1) xx1 = np.maximum(bboxes1[..., 0], bboxes2[..., 0]) yy1 = np.maximum(bboxes1[..., 1], bboxes2[..., 1]) xx2 = np.minimum(bboxes1[..., 2], bboxes2[..., 2]) yy2 = np.minimum(bboxes1[..., 3], bboxes2[..., 3]) w = np.maximum(0., xx2 - xx1) h = np.maximum(0., yy2 - yy1) wh = w * h union = ((bboxes1[..., 2] - bboxes1[..., 0]) * (bboxes1[..., 3] - bboxes1[..., 1]) + (bboxes2[..., 2] - bboxes2[..., 0]) * (bboxes2[..., 3] - bboxes2[..., 1]) - wh) iou = wh / union xxc1 = np.minimum(bboxes1[..., 0], bboxes2[..., 0]) yyc1 = np.minimum(bboxes1[..., 1], bboxes2[..., 1]) xxc2 = np.maximum(bboxes1[..., 2], bboxes2[..., 2]) yyc2 = np.maximum(bboxes1[..., 3], bboxes2[..., 3]) wc = xxc2 - xxc1 hc = yyc2 - yyc1 assert((wc > 0).all() and (hc > 0).all()) area_enclose = wc * hc giou = iou - (area_enclose - union) / area_enclose giou = (giou + 1.)/2.0 # resize from (-1,1) to (0,1) return giou def diou_batch(bboxes1, bboxes2): """ :param bbox_p: predict of bbox(N,4)(x1,y1,x2,y2) :param bbox_g: groundtruth of bbox(N,4)(x1,y1,x2,y2) :return: """ # for details should go to https://arxiv.org/pdf/1902.09630.pdf # ensure predict's bbox form bboxes2 = np.expand_dims(bboxes2, 0) bboxes1 = np.expand_dims(bboxes1, 1) # calculate the intersection box xx1 = np.maximum(bboxes1[..., 0], bboxes2[..., 0]) yy1 = np.maximum(bboxes1[..., 1], bboxes2[..., 1]) xx2 = np.minimum(bboxes1[..., 2], bboxes2[..., 2]) yy2 = np.minimum(bboxes1[..., 3], bboxes2[..., 3]) w = np.maximum(0., xx2 - xx1) h = np.maximum(0., yy2 - yy1) wh = w * h iou = wh / ((bboxes1[..., 2] - bboxes1[..., 0]) * (bboxes1[..., 3] - bboxes1[..., 1]) + (bboxes2[..., 2] - bboxes2[..., 0]) * (bboxes2[..., 3] - bboxes2[..., 1]) - wh) centerx1 = (bboxes1[..., 0] + bboxes1[..., 2]) / 2.0 centery1 = (bboxes1[..., 1] + bboxes1[..., 3]) / 2.0 centerx2 = (bboxes2[..., 0] + bboxes2[..., 2]) / 2.0 centery2 = (bboxes2[..., 1] + bboxes2[..., 3]) / 2.0 inner_diag = (centerx1 - centerx2) ** 2 + (centery1 - centery2) ** 2 xxc1 = np.minimum(bboxes1[..., 0], bboxes2[..., 0]) yyc1 = np.minimum(bboxes1[..., 1], bboxes2[..., 1]) xxc2 = np.maximum(bboxes1[..., 2], bboxes2[..., 2]) yyc2 = np.maximum(bboxes1[..., 3], bboxes2[..., 3]) outer_diag = (xxc2 - xxc1) ** 2 + (yyc2 - yyc1) ** 2 diou = iou - inner_diag / outer_diag return (diou + 1) / 2.0 # resize from (-1,1) to (0,1) def ciou_batch(bboxes1, bboxes2): """ :param bbox_p: predict of bbox(N,4)(x1,y1,x2,y2) :param bbox_g: groundtruth of bbox(N,4)(x1,y1,x2,y2) :return: """ # for details should go to https://arxiv.org/pdf/1902.09630.pdf # ensure predict's bbox form bboxes2 = np.expand_dims(bboxes2, 0) bboxes1 = np.expand_dims(bboxes1, 1) # calculate the intersection box xx1 = np.maximum(bboxes1[..., 0], bboxes2[..., 0]) yy1 = np.maximum(bboxes1[..., 1], bboxes2[..., 1]) xx2 = np.minimum(bboxes1[..., 2], bboxes2[..., 2]) yy2 = np.minimum(bboxes1[..., 3], bboxes2[..., 3]) w = np.maximum(0., xx2 - xx1) h = np.maximum(0., yy2 - yy1) wh = w * h iou = wh / ((bboxes1[..., 2] - bboxes1[..., 0]) * (bboxes1[..., 3] - bboxes1[..., 1]) + (bboxes2[..., 2] - bboxes2[..., 0]) * (bboxes2[..., 3] - bboxes2[..., 1]) - wh) centerx1 = (bboxes1[..., 0] + bboxes1[..., 2]) / 2.0 centery1 = (bboxes1[..., 1] + bboxes1[..., 3]) / 2.0 centerx2 = (bboxes2[..., 0] + bboxes2[..., 2]) / 2.0 centery2 = (bboxes2[..., 1] + bboxes2[..., 3]) / 2.0 inner_diag = (centerx1 - centerx2) ** 2 + (centery1 - centery2) ** 2 xxc1 = np.minimum(bboxes1[..., 0], bboxes2[..., 0]) yyc1 = np.minimum(bboxes1[..., 1], bboxes2[..., 1]) xxc2 = np.maximum(bboxes1[..., 2], bboxes2[..., 2]) yyc2 = np.maximum(bboxes1[..., 3], bboxes2[..., 3]) outer_diag = (xxc2 - xxc1) ** 2 + (yyc2 - yyc1) ** 2 w1 = bboxes1[..., 2] - bboxes1[..., 0] h1 = bboxes1[..., 3] - bboxes1[..., 1] w2 = bboxes2[..., 2] - bboxes2[..., 0] h2 = bboxes2[..., 3] - bboxes2[..., 1] # prevent dividing over zero. add one pixel shift h2 = h2 + 1. h1 = h1 + 1. arctan = np.arctan(w2/h2) - np.arctan(w1/h1) v = (4 / (np.pi ** 2)) * (arctan ** 2) S = 1 - iou alpha = v / (S+v) ciou = iou - inner_diag / outer_diag - alpha * v return (ciou + 1) / 2.0 # resize from (-1,1) to (0,1) def ct_dist(bboxes1, bboxes2): """ Measure the center distance between two sets of bounding boxes, this is a coarse implementation, we don't recommend using it only for association, which can be unstable and sensitive to frame rate and object speed. """ bboxes2 = np.expand_dims(bboxes2, 0) bboxes1 = np.expand_dims(bboxes1, 1) centerx1 = (bboxes1[..., 0] + bboxes1[..., 2]) / 2.0 centery1 = (bboxes1[..., 1] + bboxes1[..., 3]) / 2.0 centerx2 = (bboxes2[..., 0] + bboxes2[..., 2]) / 2.0 centery2 = (bboxes2[..., 1] + bboxes2[..., 3]) / 2.0 ct_dist2 = (centerx1 - centerx2) ** 2 + (centery1 - centery2) ** 2 ct_dist = np.sqrt(ct_dist2) # The linear rescaling is a naive version and needs more study ct_dist = ct_dist / ct_dist.max() return ct_dist.max() - ct_dist # resize to (0,1) def speed_direction_batch(dets, tracks): """ batch formulation of function 'speed_direction', compute normalized speed from batch bboxes @param dets: @param tracks: @return: normalized speed in batch """ tracks = tracks[..., np.newaxis] CX1, CY1 = (dets[:,0] + dets[:,2])/2.0, (dets[:,1]+dets[:,3])/2.0 CX2, CY2 = (tracks[:,0] + tracks[:,2]) /2.0, (tracks[:,1]+tracks[:,3])/2.0 dx = CX1 - CX2 dy = CY1 - CY2 norm = np.sqrt(dx**2 + dy**2) + 1e-6 dx = dx / norm dy = dy / norm return dy, dx # size: num_track x num_det def linear_assignment(cost_matrix, thresh=0.): try: # [hgx0411] goes here! import lap if thresh != 0: _, x, y = lap.lapjv(cost_matrix, extend_cost=True, cost_limit=thresh) else: _, x, y = lap.lapjv(cost_matrix, extend_cost=True) return np.array([[y[i], i] for i in x if i >= 0]) except ImportError: from scipy.optimize import linear_sum_assignment x, y = linear_sum_assignment(cost_matrix) return np.array(list(zip(x, y))) def associate_detections_to_trackers(detections,trackers,iou_threshold = 0.3): """ Assigns detections to tracked object (both represented as bounding boxes) Returns 3 lists of matches, unmatched_detections and unmatched_trackers """ if(len(trackers)==0): return np.empty((0,2),dtype=int), np.arange(len(detections)), np.empty((0,5),dtype=int) iou_matrix = iou_batch(detections, trackers) if min(iou_matrix.shape) > 0: a = (iou_matrix > iou_threshold).astype(np.int32) if a.sum(1).max() == 1 and a.sum(0).max() == 1: matched_indices = np.stack(np.where(a), axis=1) else: matched_indices = linear_assignment(-iou_matrix) else: matched_indices = np.empty(shape=(0,2)) unmatched_detections = [] for d, det in enumerate(detections): if(d not in matched_indices[:,0]): unmatched_detections.append(d) unmatched_trackers = [] for t, trk in enumerate(trackers): if(t not in matched_indices[:,1]): unmatched_trackers.append(t) #filter out matched with low IOU matches = [] for m in matched_indices: if(iou_matrix[m[0], m[1]] 0: a = (iou_matrix > iou_threshold).astype(np.int32) if a.sum(1).max() == 1 and a.sum(0).max() == 1: matched_indices = np.stack(np.where(a), axis=1) else: matched_indices = linear_assignment(-(iou_matrix+angle_diff_cost)) else: matched_indices = np.empty(shape=(0,2)) unmatched_detections = [] for d, det in enumerate(detections): if(d not in matched_indices[:,0]): unmatched_detections.append(d) unmatched_trackers = [] for t, trk in enumerate(trackers): if(t not in matched_indices[:,1]): unmatched_trackers.append(t) # filter out matched with low IOU matches = [] for m in matched_indices: if(iou_matrix[m[0], m[1]] 0: a = (iou_matrix > iou_threshold).astype(np.int32) if a.sum(1).max() == 1 and a.sum(0).max() == 1: matched_indices = np.stack(np.where(a), axis=1) else: matched_indices = linear_assignment(-(iou_matrix + angle_diff_cost)) else: matched_indices = np.empty(shape=(0, 2)) unmatched_detections = [] for d, det in enumerate(detections): if (d not in matched_indices[:, 0]): unmatched_detections.append(d) unmatched_trackers = [] for t, trk in enumerate(trackers): if (t not in matched_indices[:, 1]): unmatched_trackers.append(t) # filter out matched with low IOU matches = [] for m in matched_indices: if (iou_matrix[m[0], m[1]] < iou_threshold): unmatched_detections.append(m[0]) unmatched_trackers.append(m[1]) else: matches.append(m.reshape(1, 2)) if (len(matches) == 0): matches = np.empty((0, 2), dtype=int) else: matches = np.concatenate(matches, axis=0) return matches, np.array(unmatched_detections), np.array(unmatched_trackers) def associate_4_points_with_score(detections, trackers, iou_threshold, lt, rt, lb, rb, previous_obs, vdc_weight, iou_type=None, args=None): if (len(trackers) == 0): return np.empty((0, 2), dtype=int), np.arange(len(detections)), np.empty((0, 5), dtype=int) Y1, X1 = speed_direction_batch_lt(detections, previous_obs) Y2, X2 = speed_direction_batch_rt(detections, previous_obs) Y3, X3 = speed_direction_batch_lb(detections, previous_obs) Y4, X4 = speed_direction_batch_rb(detections, previous_obs) cost_lt = cost_vel(Y1, X1, trackers, lt, detections, previous_obs, vdc_weight) cost_rt = cost_vel(Y2, X2, trackers, rt, detections, previous_obs, vdc_weight) cost_lb = cost_vel(Y3, X3, trackers, lb, detections, previous_obs, vdc_weight) cost_rb = cost_vel(Y4, X4, trackers, rb, detections, previous_obs, vdc_weight) iou_matrix = iou_type(detections, trackers) score_dif = cal_score_dif_batch(detections, trackers) angle_diff_cost = cost_lt + cost_rt + cost_lb + cost_rb # TCM angle_diff_cost -= score_dif * 1.0 # args.TCM_first_step_weight if min(iou_matrix.shape) > 0: a = (iou_matrix > iou_threshold).astype(np.int32) if a.sum(1).max() == 1 and a.sum(0).max() == 1: matched_indices = np.stack(np.where(a), axis=1) else: matched_indices = linear_assignment(-(iou_matrix + angle_diff_cost)) else: matched_indices = np.empty(shape=(0, 2)) unmatched_detections = [] for d, det in enumerate(detections): if (d not in matched_indices[:, 0]): unmatched_detections.append(d) unmatched_trackers = [] for t, trk in enumerate(trackers): if (t not in matched_indices[:, 1]): unmatched_trackers.append(t) # filter out matched with low IOU matches = [] for m in matched_indices: if (iou_matrix[m[0], m[1]] < iou_threshold): unmatched_detections.append(m[0]) unmatched_trackers.append(m[1]) else: matches.append(m.reshape(1, 2)) if (len(matches) == 0): matches = np.empty((0, 2), dtype=int) else: matches = np.concatenate(matches, axis=0) return matches, np.array(unmatched_detections), np.array(unmatched_trackers) def associate_4_points_with_score_with_reid(detections, trackers, iou_threshold, lt, rt, lb, rb, previous_obs, vdc_weight, iou_type=None, args=None,emb_cost=None, weights=(1.0, 0), thresh=0.8, long_emb_dists=None, with_longterm_reid=False, longterm_reid_weight=0.0, with_longterm_reid_correction=False, longterm_reid_correction_thresh=0.0, dataset="dancetrack"): if (len(trackers) == 0): return np.empty((0, 2), dtype=int), np.arange(len(detections)), np.empty((0, 5), dtype=int) Y1, X1 = speed_direction_batch_lt(detections, previous_obs) Y2, X2 = speed_direction_batch_rt(detections, previous_obs) Y3, X3 = speed_direction_batch_lb(detections, previous_obs) Y4, X4 = speed_direction_batch_rb(detections, previous_obs) cost_lt = cost_vel(Y1, X1, trackers, lt, detections, previous_obs, vdc_weight) cost_rt = cost_vel(Y2, X2, trackers, rt, detections, previous_obs, vdc_weight) cost_lb = cost_vel(Y3, X3, trackers, lb, detections, previous_obs, vdc_weight) cost_rb = cost_vel(Y4, X4, trackers, rb, detections, previous_obs, vdc_weight) iou_matrix = iou_type(detections, trackers) score_dif = cal_score_dif_batch(detections, trackers) angle_diff_cost = cost_lt + cost_rt + cost_lb + cost_rb # TCM angle_diff_cost -= score_dif * 1.0 # args.TCM_first_step_weight if min(iou_matrix.shape) > 0: if emb_cost is None: a = (iou_matrix > iou_threshold).astype(np.int32) if a.sum(1).max() == 1 and a.sum(0).max() == 1: matched_indices = np.stack(np.where(a), axis=1) else: matched_indices = linear_assignment(-(iou_matrix + angle_diff_cost)) else: if not with_longterm_reid: matched_indices = linear_assignment(weights[0] * (-(iou_matrix + angle_diff_cost)) + weights[1] * emb_cost) # , thresh=thresh else: # long-term reid feats matched_indices = linear_assignment(weights[0] * (-(iou_matrix + angle_diff_cost)) + weights[1] * emb_cost + longterm_reid_weight * long_emb_dists) # , thresh=thresh if matched_indices.size == 0: matched_indices = np.empty(shape=(0, 2)) else: matched_indices = np.empty(shape=(0, 2)) unmatched_detections = [] for d, det in enumerate(detections): if (d not in matched_indices[:, 0]): unmatched_detections.append(d) unmatched_trackers = [] for t, trk in enumerate(trackers): if (t not in matched_indices[:, 1]): unmatched_trackers.append(t) # filter out matched with low IOU (and long-term ReID feats) matches = [] # iou_matrix_thre = iou_matrix if dataset == "dancetrack" else iou_matrix - score_dif iou_matrix_thre = iou_matrix - score_dif if with_longterm_reid_correction: for m in matched_indices: if (emb_cost[m[0], m[1]] > longterm_reid_correction_thresh) and (iou_matrix_thre[m[0], m[1]] < iou_threshold): #print("correction:", emb_cost[m[0], m[1]]) unmatched_detections.append(m[0]) unmatched_trackers.append(m[1]) else: matches.append(m.reshape(1, 2)) else: for m in matched_indices: if (iou_matrix_thre[m[0], m[1]] < iou_threshold): unmatched_detections.append(m[0]) unmatched_trackers.append(m[1]) else: matches.append(m.reshape(1, 2)) if (len(matches) == 0): matches = np.empty((0, 2), dtype=int) else: matches = np.concatenate(matches, axis=0) return matches, np.array(unmatched_detections), np.array(unmatched_trackers) def associate_kitti(detections, trackers, det_cates, iou_threshold, velocities, previous_obs, vdc_weight): if(len(trackers)==0): return np.empty((0,2),dtype=int), np.arange(len(detections)), np.empty((0,5),dtype=int) """ Cost from the velocity direction consistency """ Y, X = speed_direction_batch(detections, previous_obs) inertia_Y, inertia_X = velocities[:,0], velocities[:,1] inertia_Y = np.repeat(inertia_Y[:, np.newaxis], Y.shape[1], axis=1) inertia_X = np.repeat(inertia_X[:, np.newaxis], X.shape[1], axis=1) diff_angle_cos = inertia_X * X + inertia_Y * Y diff_angle_cos = np.clip(diff_angle_cos, a_min=-1, a_max=1) diff_angle = np.arccos(diff_angle_cos) diff_angle = (np.pi /2.0 - np.abs(diff_angle)) / np.pi valid_mask = np.ones(previous_obs.shape[0]) valid_mask[np.where(previous_obs[:,4]<0)]=0 valid_mask = np.repeat(valid_mask[:, np.newaxis], X.shape[1], axis=1) scores = np.repeat(detections[:,-1][:, np.newaxis], trackers.shape[0], axis=1) angle_diff_cost = (valid_mask * diff_angle) * vdc_weight angle_diff_cost = angle_diff_cost.T angle_diff_cost = angle_diff_cost * scores """ Cost from IoU """ iou_matrix = iou_batch(detections, trackers) """ With multiple categories, generate the cost for catgory mismatch """ num_dets = detections.shape[0] num_trk = trackers.shape[0] cate_matrix = np.zeros((num_dets, num_trk)) for i in range(num_dets): for j in range(num_trk): if det_cates[i] != trackers[j, 4]: cate_matrix[i][j] = -1e6 cost_matrix = - iou_matrix -angle_diff_cost - cate_matrix if min(iou_matrix.shape) > 0: a = (iou_matrix > iou_threshold).astype(np.int32) if a.sum(1).max() == 1 and a.sum(0).max() == 1: matched_indices = np.stack(np.where(a), axis=1) else: matched_indices = linear_assignment(cost_matrix) else: matched_indices = np.empty(shape=(0,2)) unmatched_detections = [] for d, det in enumerate(detections): if(d not in matched_indices[:,0]): unmatched_detections.append(d) unmatched_trackers = [] for t, trk in enumerate(trackers): if(t not in matched_indices[:,1]): unmatched_trackers.append(t) #filter out matched with low IOU matches = [] for m in matched_indices: if(iou_matrix[m[0], m[1]] gating_threshold] = np.inf cost_matrix[row] = lambda_ * cost_matrix[row] + (1 - lambda_) * gating_distance return cost_matrix # [hgx0411] compute embedding distance and gating, borrowed and modified from FairMOT import lap def linear_assignment_appearance(cost_matrix, thresh): if cost_matrix.size == 0: return np.empty((0, 2), dtype=int), tuple(range(cost_matrix.shape[0])), tuple(range(cost_matrix.shape[1])) matches, unmatched_a, unmatched_b = [], [], [] cost, x, y = lap.lapjv(cost_matrix, extend_cost=True, cost_limit=thresh) for ix, mx in enumerate(x): if mx >= 0: matches.append([ix, mx]) unmatched_a = np.where(x < 0)[0] unmatched_b = np.where(y < 0)[0] matches = np.asarray(matches) return matches, unmatched_a, unmatched_b def fuse_score(cost_matrix, det_scores): if cost_matrix.size == 0: return cost_matrix iou_sim = - cost_matrix det_scores = np.expand_dims(det_scores, axis=1).repeat(cost_matrix.shape[1], axis=1) fuse_sim = iou_sim * det_scores fuse_cost = - fuse_sim return fuse_cost ================================================ FILE: boxmot/trackers/hybridsort/hybridsort.py ================================================ # Hybrid-SORT-ReID with ECC + ReID (explicit config, BaseTracker-style) # - Assumes detection input is M x [x1, y1, x2, y2, conf, cls] # - ECC via get_cmc_method(...).apply(img, dets) # - ReID via ReidAutoBackend(weights, device, half).model.get_features(...) # - update(dets, img, embs=None) signature compatible with BoxMOT trackers # - Emits rows: [x1,y1,x2,y2, track_id, conf, cls, det_ind] # - Safe with COCO 80 classes; preserves det_ind; guards out-of-range indices from collections import deque from pathlib import Path from typing import List, Optional, Union import numpy as np import torch from boxmot.motion.cmc import get_cmc_method from boxmot.reid.core.auto_backend import ReidAutoBackend from boxmot.trackers.basetracker import BaseTracker # Keep your original association functions: from boxmot.trackers.hybridsort.association import ( associate_4_points_with_score, associate_4_points_with_score_with_reid, cal_score_dif_batch_two_score, ciou_batch, ct_dist, diou_batch, embedding_distance, giou_batch, hmiou, iou_batch, linear_assignment) def k_previous_obs(observations, cur_age, k): if len(observations) == 0: return [-1, -1, -1, -1, -1] for i in range(k): dt = k - i if cur_age - dt in observations: return observations[cur_age - dt] max_age = max(observations.keys()) return observations[max_age] def convert_bbox_to_z(bbox): # [x1,y1,x2,y2,score] -> [x,y,s,score,r] or [x,y,s,r] w = bbox[2] - bbox[0] h = bbox[3] - bbox[1] x = bbox[0] + w / 2.0 y = bbox[1] + h / 2.0 s = w * h r = w / float(h + 1e-6) score = bbox[4] if score: return np.array([x, y, s, score, r]).reshape((5, 1)) else: return np.array([x, y, s, r]).reshape((4, 1)) def convert_x_to_bbox(x, score=None): # [x,y,s,r, ...] -> [x1,y1,x2,y2,(score_from_state)] w = np.sqrt(x[2] * x[4]) h = x[2] / w score_val = x[3] if score is None: return np.array([x[0] - w / 2.0, x[1] - h / 2.0, x[0] + w / 2.0, x[1] + h / 2.0]).reshape((1, 4)) else: return np.array([x[0] - w / 2.0, x[1] - h / 2.0, x[0] + w / 2.0, x[1] + h / 2.0, score_val]).reshape((1, 5)) def speed_direction_lt(bbox1, bbox2): cx1, cy1 = bbox1[0], bbox1[1] cx2, cy2 = bbox2[0], bbox2[1] speed = np.array([cy2 - cy1, cx2 - cx1]) norm = np.sqrt((cy2 - cy1) ** 2 + (cx2 - cx1) ** 2) + 1e-6 return speed / norm def speed_direction_rt(bbox1, bbox2): cx1, cy1 = bbox1[0], bbox1[3] cx2, cy2 = bbox2[0], bbox2[3] speed = np.array([cy2 - cy1, cx2 - cx1]) norm = np.sqrt((cy2 - cy1) ** 2 + (cx2 - cx1) ** 2) + 1e-6 return speed / norm def speed_direction_lb(bbox1, bbox2): cx1, cy1 = bbox1[2], bbox1[1] cx2, cy2 = bbox2[2], bbox2[1] speed = np.array([cy2 - cy1, cx2 - cx1]) norm = np.sqrt((cy2 - cy1) ** 2 + (cx2 - cx1) ** 2) + 1e-6 return speed / norm def speed_direction_rb(bbox1, bbox2): cx1, cy1 = bbox1[2], bbox1[3] cx2, cy2 = bbox2[2], bbox2[3] speed = np.array([cy2 - cy1, cx2 - cx1]) norm = np.sqrt((cy2 - cy1) ** 2 + (cx2 - cx1) ** 2) + 1e-6 return speed / norm class KalmanBoxTracker(object): """ Single-object tracker with 9D custom KF (u,v,s,c,r, du,dv,ds,dc) by default. Stores `cls` and `det_ind` metadata from the most recent matched detection. """ count = 0 def __init__( self, bbox, temp_feat, *, delta_t: int = 3, use_custom_kf: bool = True, longterm_bank_length: int = 30, alpha: float = 0.9, adapfs: bool = False, track_thresh: float = 0.5, cls: int = 0, det_ind: int = -1, ): if use_custom_kf: from .kalmanfilter_score_new import \ KalmanFilterNew_score_new as KalmanFilter_score_new self.kf = KalmanFilter_score_new(dim_x=9, dim_z=5) self.kf.F = np.array( [ [1, 0, 0, 0, 0, 1, 0, 0, 0], [0, 1, 0, 0, 0, 0, 1, 0, 0], [0, 0, 1, 0, 0, 0, 0, 1, 0], [0, 0, 0, 1, 0, 0, 0, 0, 1], [0, 0, 0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 0, 0, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1], ] ) self.kf.H = np.array( [ [1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0, 0, 0], [0, 0, 0, 0, 1, 0, 0, 0, 0], ] ) self.kf.R[2:, 2:] *= 10.0 self.kf.P[5:, 5:] *= 1000.0 self.kf.P *= 10.0 self.kf.Q[-1, -1] *= 0.01 self.kf.Q[-2, -2] *= 0.01 self.kf.Q[5:, 5:] *= 0.01 self.kf.x[:5] = convert_bbox_to_z(bbox) else: from filterpy.kalman import KalmanFilter self.kf = KalmanFilter(dim_x=7, dim_z=4) self.kf.F = np.array( [ [1, 0, 0, 0, 0, 1, 0], [0, 1, 0, 0, 0, 0, 1], [0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0], [0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 1], ] ) self.kf.H = np.array( [ [1, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0], ] ) self.kf.R[2:, 2:] *= 10.0 self.kf.P[4:, 4:] *= 1000.0 self.kf.P *= 10.0 self.kf.x[:4] = convert_bbox_to_z(bbox) # tracker state self.time_since_update = 0 self.id = KalmanBoxTracker.count KalmanBoxTracker.count += 1 self.history: List[np.ndarray] = [] self.hits = 0 self.hit_streak = 0 self.age = 0 # observations self.last_observation = np.array([-1, -1, -1, -1, -1]) self.last_observation_save = np.array([-1, -1, -1, -1, -1]) self.observations = dict() self.history_observations: List[np.ndarray] = [] # velocity aids self.velocity_lt = None self.velocity_rt = None self.velocity_lb = None self.velocity_rb = None # parameters self.delta_t = int(delta_t) self.confidence_pre = None self.conf = float(bbox[-1]) # ReID buffers self.smooth_feat = None self.features = deque([], maxlen=int(longterm_bank_length)) self.alpha = float(alpha) self.adapfs = bool(adapfs) self.track_thresh = float(track_thresh) # metadata self.cls = int(cls) self.det_ind = int(det_ind) # first feature update self.update_features(temp_feat) def update_features(self, feat, score: float = -1.0): feat = feat.astype(np.float32) n = np.linalg.norm(feat) + 1e-12 feat = feat / n self.curr_feat = feat if self.smooth_feat is None: self.smooth_feat = feat else: if self.adapfs: assert score > 0, "score must be > 0 when adapfs=True" pre_w = self.alpha * (self.conf / (self.conf + score)) cur_w = (1.0 - self.alpha) * (score / (self.conf + score)) s = pre_w + cur_w pre_w /= s cur_w /= s self.smooth_feat = pre_w * self.smooth_feat + cur_w * feat else: self.smooth_feat = self.alpha * self.smooth_feat + (1.0 - self.alpha) * feat self.features.append(feat) self.smooth_feat = self.smooth_feat / (np.linalg.norm(self.smooth_feat) + 1e-12) def camera_update(self, warp_matrix): # get box + score from KF state x1, y1, x2, y2, score = convert_x_to_bbox(self.kf.x, score=True)[0] M = np.asarray(warp_matrix, dtype=float) # normalize to 3x3 homogeneous matrix if M.shape == (2, 3): M = np.vstack([M, [0.0, 0.0, 1.0]]) elif M.shape != (3, 3): M = np.eye(3, dtype=float) # transform corners in homogeneous coords p1 = (M @ np.array([x1, y1, 1.0], dtype=float)).ravel() p2 = (M @ np.array([x2, y2, 1.0], dtype=float)).ravel() # homogeneous divide w1 = p1[2] if abs(p1[2]) > 1e-12 else 1.0 w2 = p2[2] if abs(p2[2]) > 1e-12 else 1.0 x1_, y1_ = p1[0] / w1, p1[1] / w1 x2_, y2_ = p2[0] / w2, p2[1] / w2 # write back to KF (keep score) self.kf.x[:5] = convert_bbox_to_z([x1_, y1_, x2_, y2_, float(score)]) def update(self, bbox, id_feature, update_feature: bool = True, *, cls: Optional[int] = None, det_ind: Optional[int] = None): vlt = vrt = vlb = vrb = None if bbox is not None: if self.last_observation.sum() >= 0: previous_box = None for i in range(self.delta_t): if self.age - i - 1 in self.observations: previous_box = self.observations[self.age - i - 1] if vlt is not None: vlt += speed_direction_lt(previous_box, bbox) vrt += speed_direction_rt(previous_box, bbox) vlb += speed_direction_lb(previous_box, bbox) vrb += speed_direction_rb(previous_box, bbox) else: vlt = speed_direction_lt(previous_box, bbox) vrt = speed_direction_rt(previous_box, bbox) vlb = speed_direction_lb(previous_box, bbox) vrb = speed_direction_rb(previous_box, bbox) if previous_box is None: previous_box = self.last_observation self.velocity_lt = speed_direction_lt(previous_box, bbox) self.velocity_rt = speed_direction_rt(previous_box, bbox) self.velocity_lb = speed_direction_lb(previous_box, bbox) self.velocity_rb = speed_direction_rb(previous_box, bbox) else: self.velocity_lt, self.velocity_rt = vlt, vrt self.velocity_lb, self.velocity_rb = vlb, vrb self.last_observation = bbox self.last_observation_save = bbox self.observations[self.age] = bbox self.history_observations.append(bbox) self.time_since_update = 0 self.history = [] self.hits += 1 self.hit_streak += 1 self.kf.update(convert_bbox_to_z(bbox)) # update metadata if cls is not None: self.cls = int(cls) if det_ind is not None: self.det_ind = int(det_ind) if update_feature: if self.adapfs: self.update_features(id_feature, score=bbox[-1]) else: self.update_features(id_feature) self.confidence_pre = self.conf self.conf = float(bbox[-1]) else: self.kf.update(bbox) self.confidence_pre = None def predict(self): if (self.kf.x[7] + self.kf.x[2]) <= 0: self.kf.x[7] *= 0.0 self.kf.predict() self.age += 1 if self.time_since_update > 0: self.hit_streak = 0 self.time_since_update += 1 self.history.append(convert_x_to_bbox(self.kf.x)) # --- make scalars robustly --- x3 = self.kf.x[3, 0] if self.kf.x.ndim == 2 else self.kf.x[3] kalman_score = float(np.clip(x3, self.track_thresh, 1.0)) if not self.confidence_pre: simple_score = float(np.clip(self.conf, 0.1, self.track_thresh)) else: simple_score = float(np.clip( self.conf - (self.confidence_pre - self.conf), 0.1, self.track_thresh, )) return self.history[-1], kalman_score, simple_score ASSO_FUNCS = { "iou": iou_batch, "giou": giou_batch, "ciou": ciou_batch, "diou": diou_batch, "ct_dist": ct_dist, "hmiou": hmiou, } class HybridSort(BaseTracker): """ Hybrid SORT + ReID with ECC CMC - Explicit configuration only (no self.args) - ReID model and ECC setup like BotSort - BaseTracker API: update(dets, img, embs=None) -> np.ndarray [[x1,y1,x2,y2,track_id,conf,cls,det_ind], ...] - Now outputs real cls & det_ind and guards det_ind bounds - Assumes detection input is [x1,y1,x2,y2,conf,cls] """ def __init__( self, # ReID & CMC reid_weights: Optional[Union[Path, str]], device: torch.device, half: bool, cmc_method: str = "ecc", with_reid: bool = True, # Hybrid-SORT specific low_thresh: float = 0.1, delta_t: int = 3, inertia: float = 0.05, use_byte: bool = True, # KF / ReID use_custom_kf: bool = True, longterm_bank_length: int = 30, alpha: float = 0.9, adapfs: bool = False, track_thresh: float = 0.5, # Embedding-guided association EG_weight_high_score: float = 4.6, EG_weight_low_score: float = 1.3, # Two-step toggles / thresholds TCM_first_step: bool = True, TCM_byte_step: bool = True, TCM_byte_step_weight: float = 1.0, high_score_matching_thresh: float = 0.7, # Long-term reid with_longterm_reid: bool = True, longterm_reid_weight: float = 0.0, with_longterm_reid_correction: bool = True, longterm_reid_correction_thresh: float = 0.4, longterm_reid_correction_thresh_low: float = 0.4, # misc dataset: str = "", **kwargs, # BaseTracker parameters ): # Capture all init params for logging init_args = {k: v for k, v in locals().items() if k not in ('self', 'kwargs')} super().__init__(**init_args, _tracker_name='HybridSort', **kwargs) # store core knobs self.low_thresh = float(low_thresh) self.delta_t = int(delta_t) self.inertia = float(inertia) self.use_byte = bool(use_byte) self.use_custom_kf = bool(use_custom_kf) self.longterm_bank_length = int(longterm_bank_length) self.alpha = float(alpha) self.adapfs = bool(adapfs) self.track_thresh = float(track_thresh) self.EG_weight_high_score = float(EG_weight_high_score) self.EG_weight_low_score = float(EG_weight_low_score) self.TCM_first_step = bool(TCM_first_step) self.TCM_byte_step = bool(TCM_byte_step) self.TCM_byte_step_weight = float(TCM_byte_step_weight) self.high_score_matching_thresh = float(high_score_matching_thresh) self.with_longterm_reid = bool(with_longterm_reid) self.longterm_reid_weight = float(longterm_reid_weight) self.with_longterm_reid_correction = bool(with_longterm_reid_correction) self.longterm_reid_correction_thresh = float(longterm_reid_correction_thresh) self.longterm_reid_correction_thresh_low = float(longterm_reid_correction_thresh_low) self.dataset = str(dataset) # ReID module (BotSort-style) self.with_reid = bool(with_reid) self.model = None if self.with_reid and reid_weights is not None: self.model = ReidAutoBackend(weights=reid_weights, device=device, half=half).model # ECC CMC (BotSort-style) self.cmc = get_cmc_method(cmc_method)() # container self.active_tracks: List[KalmanBoxTracker] = [] KalmanBoxTracker.count = 0 @BaseTracker.setup_decorator @BaseTracker.per_class_decorator def update(self, dets: np.ndarray, img: np.ndarray, embs: np.ndarray = None) -> np.ndarray: """ dets: ndarray [N,6] -> [x1,y1,x2,y2,conf,cls] img: HxWxC image embs: optional [N,D] appearance features. If None and with_reid=True, we extract features for provided dets. Returns: ndarray [M,8]: [x1,y1,x2,y2,track_id,conf,cls,det_ind] """ self.check_inputs(dets, img, embs) self.frame_count += 1 # --- parse inputs: detections are [x1,y1,x2,y2,conf,cls] --- n_dets_full = int(dets.shape[0]) # core boxes + conf dets_5 = dets[:, :5].copy() if n_dets_full else dets.reshape(0, 5) confs = dets_5[:, 4] if n_dets_full else np.array([]) # classes (int) dets_cls = dets[:, 5].astype(int) if n_dets_full else np.array([], dtype=int) # stable det_ind column for downstream logic and output dets_ind = np.arange(n_dets_full, dtype=int) # helper guards def _safe_detind(x: int, n: int) -> int: xi = int(x) return xi if 0 <= xi < n else -1 def _safe_cls(x: int, n: int) -> int: xi = int(x) return xi if 0 <= xi < n else xi # change to -1 if you prefer strictness # convenience view carrying det_ind in col 6th position dets_idx = np.hstack([dets_5, dets_ind.reshape(-1, 1)]) if n_dets_full else dets.reshape(0, 6) # ECC: compute warp using all current detections (BotSort pattern) warp = self.cmc.apply(img, dets_idx) if len(dets_idx) else np.eye(3) # Apply camera motion compensation to all active tracks for tr in self.active_tracks: tr.camera_update(warp) # ReID: get features if not provided if self.with_reid: if embs is None and len(dets_idx): # ReID features extracted on [x1,y1,x2,y2] boxes embs = self.model.get_features(dets_idx[:, 0:4], img) elif embs is None: embs = np.zeros((0, 128), dtype=np.float32) # safe shape # FIRST/SECOND stage split (Hybrid semantics) inds_low = confs > self.low_thresh inds_high = confs < self.det_thresh inds_second = np.logical_and(inds_low, inds_high) dets_second = dets_idx[inds_second] # low-conf for BYTE remain_inds = confs > self.det_thresh dets_keep = dets_idx[remain_inds] # NEW: classes aligned to the two sets cls_keep = dets_cls[remain_inds] cls_second = dets_cls[inds_second] # slice embeddings accordingly (if present) if embs is None or len(embs) == 0: id_feature_keep = np.zeros((len(dets_keep), 1), dtype=np.float32) id_feature_second = np.zeros((len(dets_second), 1), dtype=np.float32) else: id_feature_keep = embs[remain_inds] id_feature_second = embs[inds_second] # Build dets arrays used by original hybrid code (no det_ind in the math) dets_first = dets_keep[:, :5] dets_low = dets_second[:, :5] # carry det_ind arrays aligned with above det_inds_keep = dets_keep[:, 5].astype(int) if len(dets_keep) else np.array([], dtype=int) det_inds_second = dets_second[:, 5].astype(int) if len(dets_second) else np.array([], dtype=int) # ---- Predict step for existing tracks trks = np.zeros((len(self.active_tracks), 6)) to_del = [] for t in range(len(trks)): pos, kal_score, simple_score = self.active_tracks[t].predict() x1, y1, x2, y2 = pos[0].tolist() trks[t] = [x1, y1, x2, y2, kal_score, simple_score] if np.any(np.isnan(pos)): to_del.append(t) trks = np.ma.compress_rows(np.ma.masked_invalid(trks)) for t in reversed(to_del): self.active_tracks.pop(t) # Prepare motion cues velocities_lt = np.array([t.velocity_lt if t.velocity_lt is not None else np.array((0, 0)) for t in self.active_tracks]) velocities_rt = np.array([t.velocity_rt if t.velocity_rt is not None else np.array((0, 0)) for t in self.active_tracks]) velocities_lb = np.array([t.velocity_lb if t.velocity_lb is not None else np.array((0, 0)) for t in self.active_tracks]) velocities_rb = np.array([t.velocity_rb if t.velocity_rb is not None else np.array((0, 0)) for t in self.active_tracks]) last_boxes = np.array([t.last_observation for t in self.active_tracks]) k_observations = np.array([k_previous_obs(t.observations, t.age, self.delta_t) for t in self.active_tracks]) # ===== First association (optionally embedding-guided) if self.EG_weight_high_score > 0 and self.TCM_first_step and len(dets_first) and len(trks): track_features = np.asarray([t.smooth_feat for t in self.active_tracks], dtype=float) emb_dists = embedding_distance(track_features, id_feature_keep).T long_emb_dists = None if self.with_longterm_reid or self.with_longterm_reid_correction: long_track_features = np.asarray( [np.vstack(list(t.features)).mean(0) if len(t.features) else t.smooth_feat for t in self.active_tracks], dtype=float, ) long_emb_dists = embedding_distance(long_track_features, id_feature_keep).T matched, unmatched_dets, unmatched_trks = associate_4_points_with_score_with_reid( dets_first, trks, self.iou_threshold, velocities_lt, velocities_rt, velocities_lb, velocities_rb, k_observations, self.inertia, ASSO_FUNCS[self.asso_func_name], # from BaseTracker emb_cost=emb_dists, weights=(1.0, self.EG_weight_high_score), thresh=self.high_score_matching_thresh, long_emb_dists=long_emb_dists, with_longterm_reid=self.with_longterm_reid, longterm_reid_weight=self.longterm_reid_weight, with_longterm_reid_correction=self.with_longterm_reid_correction, longterm_reid_correction_thresh=self.longterm_reid_correction_thresh, dataset=self.per_class and "perclass" or self.dataset, ) elif self.TCM_first_step and len(dets_first) and len(trks): matched, unmatched_dets, unmatched_trks = associate_4_points_with_score( dets_first, trks, self.iou_threshold, velocities_lt, velocities_rt, velocities_lb, velocities_rb, k_observations, self.inertia, ASSO_FUNCS[self.asso_func_name], ) else: matched = np.empty((0, 2), dtype=int) unmatched_dets = np.arange(len(dets_first)) unmatched_trks = np.arange(len(trks)) # Update matched (update features here) —— pass cls & det_ind (safe) for m in matched: det_i = m[0] self.active_tracks[m[1]].update( dets_first[det_i, :], id_feature_keep[det_i, :], cls=_safe_cls(cls_keep[det_i], self.nr_classes), det_ind=_safe_detind(det_inds_keep[det_i], n_dets_full), ) # ===== BYTE / low-score association (optional) if self.use_byte and len(dets_low) > 0 and unmatched_trks.shape[0] > 0: u_trks = trks[unmatched_trks] iou_left = np.array(ASSO_FUNCS[self.asso_func_name](dets_low, u_trks)) iou_left_thre = iou_left.copy() if self.TCM_byte_step: iou_left -= np.array(cal_score_dif_batch_two_score(dets_low, u_trks) * self.TCM_byte_step_weight) if iou_left.max() > self.iou_threshold: if self.EG_weight_low_score > 0 and self.with_reid: u_tracklets = [self.active_tracks[idx] for idx in unmatched_trks] u_track_features = np.asarray([t.smooth_feat for t in u_tracklets], dtype=float) emb_dists_low = embedding_distance(u_track_features, id_feature_second).T matched_indices = linear_assignment(-iou_left + self.EG_weight_low_score * emb_dists_low) else: matched_indices = linear_assignment(-iou_left) to_remove_trk_indices = [] for mm in matched_indices: det_rel, trk_rel = mm[0], mm[1] trk_ind = unmatched_trks[trk_rel] if self.with_longterm_reid_correction and self.EG_weight_low_score > 0 and self.with_reid: if iou_left_thre[det_rel, trk_rel] < self.iou_threshold or emb_dists_low[det_rel, trk_rel] > self.longterm_reid_correction_thresh_low: continue else: if iou_left_thre[det_rel, trk_rel] < self.iou_threshold: continue # do not update features in BYTE pass self.active_tracks[trk_ind].update( dets_low[det_rel, :], id_feature_second[det_rel, :], update_feature=False, cls=_safe_cls(cls_second[det_rel], self.nr_classes), det_ind=_safe_detind(det_inds_second[det_rel], n_dets_full), ) to_remove_trk_indices.append(trk_ind) unmatched_trks = np.setdiff1d(unmatched_trks, np.array(to_remove_trk_indices)) # ===== Final chance: IoU vs last boxes if unmatched_dets.shape[0] > 0 and unmatched_trks.shape[0] > 0: left_dets = dets_first[unmatched_dets] left_trks = last_boxes[unmatched_trks] iou_left = np.array(ASSO_FUNCS[self.asso_func_name](left_dets, left_trks)) if iou_left.max() > self.iou_threshold: rematched = linear_assignment(-iou_left) to_remove_det_indices = [] to_remove_trk_indices = [] for mm in rematched: det_rel, trk_rel = mm[0], mm[1] if iou_left[det_rel, trk_rel] < self.iou_threshold: continue det_abs = unmatched_dets[det_rel] trk_abs = unmatched_trks[trk_rel] self.active_tracks[trk_abs].update( dets_first[det_abs, :], id_feature_keep[det_abs, :], update_feature=False, cls=_safe_cls(cls_keep[det_abs], self.nr_classes), det_ind=_safe_detind(det_inds_keep[det_abs], n_dets_full), ) to_remove_det_indices.append(det_abs) to_remove_trk_indices.append(trk_abs) unmatched_dets = np.setdiff1d(unmatched_dets, np.array(to_remove_det_indices)) unmatched_trks = np.setdiff1d(unmatched_trks, np.array(to_remove_trk_indices)) # Mark remaining unmatched tracks for m in unmatched_trks: self.active_tracks[m].update(None, None) # Create new trackers for unmatched high-score detections for i in unmatched_dets: trk = KalmanBoxTracker( dets_first[i, :], id_feature_keep[i, :], delta_t=self.delta_t, use_custom_kf=self.use_custom_kf, longterm_bank_length=self.longterm_bank_length, alpha=self.alpha, adapfs=self.adapfs, track_thresh=self.track_thresh, cls=_safe_cls(cls_keep[i], self.nr_classes), det_ind=_safe_detind(det_inds_keep[i], n_dets_full) if len(det_inds_keep) else -1, ) self.active_tracks.append(trk) # Collect outputs (match BotSort/OcSort style) outputs = [] for trk in self.active_tracks[::-1]: if trk.last_observation.sum() < 0: d = convert_x_to_bbox(trk.kf.x)[0][:4] else: d = trk.last_observation[:4] # Only output fresh tracks and valid det_ind for this frame if (trk.time_since_update < 1) and (trk.hit_streak >= self.min_hits or self.frame_count <= self.min_hits): outputs.append([ *d.tolist(), trk.id + 1, # track id float(trk.conf), # conf int(trk.cls), # cls (from detection) int(trk.det_ind), # det index (frame-local) ]) # Remove dead tracks i = len(self.active_tracks) for trk in self.active_tracks[::-1]: i -= 1 if trk.time_since_update > self.max_age: self.active_tracks.pop(i) return np.asarray(outputs) if len(outputs) else np.zeros((0, 8), dtype=float) ================================================ FILE: boxmot/trackers/hybridsort/kalmanfilter_score.py ================================================ # -*- coding: utf-8 -*- # pylint: disable=invalid-name, too-many-arguments, too-many-branches, # pylint: disable=too-many-locals, too-many-instance-attributes, too-many-lines """ This module implements the linear Kalman filter in both an object oriented and procedural form. The KalmanFilter class implements the filter by storing the various matrices in instance variables, minimizing the amount of bookkeeping you have to do. All Kalman filters operate with a predict->update cycle. The predict step, implemented with the method or function predict(), uses the state transition matrix F to predict the state in the next time period (epoch). The state is stored as a gaussian (x, P), where x is the state (column) vector, and P is its covariance. Covariance matrix Q specifies the process covariance. In Bayesian terms, this prediction is called the *prior*, which you can think of colloquially as the estimate prior to incorporating the measurement. The update step, implemented with the method or function `update()`, incorporates the measurement z with covariance R, into the state estimate (x, P). The class stores the system uncertainty in S, the innovation (residual between prediction and measurement in measurement space) in y, and the Kalman gain in k. The procedural form returns these variables to you. In Bayesian terms this computes the *posterior* - the estimate after the information from the measurement is incorporated. Whether you use the OO form or procedural form is up to you. If matrices such as H, R, and F are changing each epoch, you'll probably opt to use the procedural form. If they are unchanging, the OO form is perhaps easier to use since you won't need to keep track of these matrices. This is especially useful if you are implementing banks of filters or comparing various KF designs for performance; a trivial coding bug could lead to using the wrong sets of matrices. This module also offers an implementation of the RTS smoother, and other helper functions, such as log likelihood computations. The Saver class allows you to easily save the state of the KalmanFilter class after every update This module expects NumPy arrays for all values that expect arrays, although in a few cases, particularly method parameters, it will accept types that convert to NumPy arrays, such as lists of lists. These exceptions are documented in the method or function. Examples -------- The following example constructs a constant velocity kinematic filter, filters noisy data, and plots the results. It also demonstrates using the Saver class to save the state of the filter at each epoch. .. code-block:: Python import matplotlib.pyplot as plt import numpy as np from filterpy.kalman import KalmanFilter from filterpy.common import Q_discrete_white_noise, Saver r_std, q_std = 2., 0.003 cv = KalmanFilter(dim_x=2, dim_z=1) cv.x = np.array([[0., 1.]]) # position, velocity cv.F = np.array([[1, dt],[ [0, 1]]) cv.R = np.array([[r_std^^2]]) f.H = np.array([[1., 0.]]) f.P = np.diag([.1^^2, .03^^2) f.Q = Q_discrete_white_noise(2, dt, q_std**2) saver = Saver(cv) for z in range(100): cv.predict() cv.update([z + randn() * r_std]) saver.save() # save the filter's state saver.to_array() plt.plot(saver.x[:, 0]) # plot all of the priors plt.plot(saver.x_prior[:, 0]) # plot mahalanobis distance plt.figure() plt.plot(saver.mahalanobis) This code implements the same filter using the procedural form x = np.array([[0., 1.]]) # position, velocity F = np.array([[1, dt],[ [0, 1]]) R = np.array([[r_std^^2]]) H = np.array([[1., 0.]]) P = np.diag([.1^^2, .03^^2) Q = Q_discrete_white_noise(2, dt, q_std**2) for z in range(100): x, P = predict(x, P, F=F, Q=Q) x, P = update(x, P, z=[z + randn() * r_std], R=R, H=H) xs.append(x[0, 0]) plt.plot(xs) For more examples see the test subdirectory, or refer to the book cited below. In it I both teach Kalman filtering from basic principles, and teach the use of this library in great detail. FilterPy library. http://github.com/rlabbe/filterpy Documentation at: https://filterpy.readthedocs.org Supporting book at: https://github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python This is licensed under an MIT license. See the readme.MD file for more information. Copyright 2014-2018 Roger R Labbe Jr. """ from __future__ import absolute_import, division import sys from copy import deepcopy from math import exp, log, sqrt import numpy as np import numpy.linalg as linalg from filterpy.common import pretty_str, reshape_z from filterpy.stats import logpdf from numpy import dot, eye, isscalar, shape, zeros class KalmanFilterNew_score(object): """ Implements a Kalman filter. You are responsible for setting the various state variables to reasonable values; the defaults will not give you a functional filter. For now the best documentation is my free book Kalman and Bayesian Filters in Python [2]_. The test files in this directory also give you a basic idea of use, albeit without much description. In brief, you will first construct this object, specifying the size of the state vector with dim_x and the size of the measurement vector that you will be using with dim_z. These are mostly used to perform size checks when you assign values to the various matrices. For example, if you specified dim_z=2 and then try to assign a 3x3 matrix to R (the measurement noise matrix you will get an assert exception because R should be 2x2. (If for whatever reason you need to alter the size of things midstream just use the underscore version of the matrices to assign directly: your_filter._R = a_3x3_matrix.) After construction the filter will have default matrices created for you, but you must specify the values for each. It’s usually easiest to just overwrite them rather than assign to each element yourself. This will be clearer in the example below. All are of type numpy.array. Examples -------- Here is a filter that tracks position and velocity using a sensor that only reads position. First construct the object with the required dimensionality. Here the state (`dim_x`) has 2 coefficients (position and velocity), and the measurement (`dim_z`) has one. In FilterPy `x` is the state, `z` is the measurement. .. code:: from filterpy.kalman import KalmanFilter f = KalmanFilter (dim_x=2, dim_z=1) Assign the initial value for the state (position and velocity). You can do this with a two dimensional array like so: .. code:: f.x = np.array([[2.], # position [0.]]) # velocity or just use a one dimensional array, which I prefer doing. .. code:: f.x = np.array([2., 0.]) Define the state transition matrix: .. code:: f.F = np.array([[1.,1.], [0.,1.]]) Define the measurement function. Here we need to convert a position-velocity vector into just a position vector, so we use: .. code:: f.H = np.array([[1., 0.]]) Define the state's covariance matrix P. .. code:: f.P = np.array([[1000., 0.], [ 0., 1000.] ]) Now assign the measurement noise. Here the dimension is 1x1, so I can use a scalar .. code:: f.R = 5 I could have done this instead: .. code:: f.R = np.array([[5.]]) Note that this must be a 2 dimensional array. Finally, I will assign the process noise. Here I will take advantage of another FilterPy library function: .. code:: from filterpy.common import Q_discrete_white_noise f.Q = Q_discrete_white_noise(dim=2, dt=0.1, var=0.13) Now just perform the standard predict/update loop: .. code:: while some_condition_is_true: z = get_sensor_reading() f.predict() f.update(z) do_something_with_estimate (f.x) **Procedural Form** This module also contains stand alone functions to perform Kalman filtering. Use these if you are not a fan of objects. **Example** .. code:: while True: z, R = read_sensor() x, P = predict(x, P, F, Q) x, P = update(x, P, z, R, H) See my book Kalman and Bayesian Filters in Python [2]_. You will have to set the following attributes after constructing this object for the filter to perform properly. Please note that there are various checks in place to ensure that you have made everything the 'correct' size. However, it is possible to provide incorrectly sized arrays such that the linear algebra can not perform an operation. It can also fail silently - you can end up with matrices of a size that allows the linear algebra to work, but are the wrong shape for the problem you are trying to solve. Parameters ---------- dim_x : int Number of state variables for the Kalman filter. For example, if you are tracking the position and velocity of an object in two dimensions, dim_x would be 4. This is used to set the default size of P, Q, and u dim_z : int Number of of measurement inputs. For example, if the sensor provides you with position in (x,y), dim_z would be 2. dim_u : int (optional) size of the control input, if it is being used. Default value of 0 indicates it is not used. compute_log_likelihood : bool (default = True) Computes log likelihood by default, but this can be a slow computation, so if you never use it you can turn this computation off. Attributes ---------- x : numpy.array(dim_x, 1) Current state estimate. Any call to update() or predict() updates this variable. P : numpy.array(dim_x, dim_x) Current state covariance matrix. Any call to update() or predict() updates this variable. x_prior : numpy.array(dim_x, 1) Prior (predicted) state estimate. The *_prior and *_post attributes are for convenience; they store the prior and posterior of the current epoch. Read Only. P_prior : numpy.array(dim_x, dim_x) Prior (predicted) state covariance matrix. Read Only. x_post : numpy.array(dim_x, 1) Posterior (updated) state estimate. Read Only. P_post : numpy.array(dim_x, dim_x) Posterior (updated) state covariance matrix. Read Only. z : numpy.array Last measurement used in update(). Read only. R : numpy.array(dim_z, dim_z) Measurement noise covariance matrix. Also known as the observation covariance. Q : numpy.array(dim_x, dim_x) Process noise covariance matrix. Also known as the transition covariance. F : numpy.array() State Transition matrix. Also known as `A` in some formulation. H : numpy.array(dim_z, dim_x) Measurement function. Also known as the observation matrix, or as `C`. y : numpy.array Residual of the update step. Read only. K : numpy.array(dim_x, dim_z) Kalman gain of the update step. Read only. S : numpy.array System uncertainty (P projected to measurement space). Read only. SI : numpy.array Inverse system uncertainty. Read only. log_likelihood : float log-likelihood of the last measurement. Read only. likelihood : float likelihood of last measurement. Read only. Computed from the log-likelihood. The log-likelihood can be very small, meaning a large negative value such as -28000. Taking the exp() of that results in 0.0, which can break typical algorithms which multiply by this value, so by default we always return a number >= sys.float_info.min. mahalanobis : float mahalanobis distance of the innovation. Read only. inv : function, default numpy.linalg.inv If you prefer another inverse function, such as the Moore-Penrose pseudo inverse, set it to that instead: kf.inv = np.linalg.pinv This is only used to invert self.S. If you know it is diagonal, you might choose to set it to filterpy.common.inv_diagonal, which is several times faster than numpy.linalg.inv for diagonal matrices. alpha : float Fading memory setting. 1.0 gives the normal Kalman filter, and values slightly larger than 1.0 (such as 1.02) give a fading memory effect - previous measurements have less influence on the filter's estimates. This formulation of the Fading memory filter (there are many) is due to Dan Simon [1]_. References ---------- .. [1] Dan Simon. "Optimal State Estimation." John Wiley & Sons. p. 208-212. (2006) .. [2] Roger Labbe. "Kalman and Bayesian Filters in Python" https://github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python """ def __init__(self, dim_x, dim_z, dim_u=0, args=None): if dim_x < 1: raise ValueError('dim_x must be 1 or greater') if dim_z < 1: raise ValueError('dim_z must be 1 or greater') if dim_u < 0: raise ValueError('dim_u must be 0 or greater') self.dim_x = dim_x self.dim_z = dim_z self.dim_u = dim_u self.x = zeros((dim_x, 1)) # state self.P = eye(dim_x) # uncertainty covariance self.Q = eye(dim_x) # process uncertainty self.B = None # control transition matrix self.F = eye(dim_x) # state transition matrix self.H = zeros((dim_z, dim_x)) # measurement function self.R = eye(dim_z) # measurement uncertainty self._alpha_sq = 1. # fading memory control self.M = np.zeros((dim_x, dim_z)) # process-measurement cross correlation self.z = np.array([[None]*self.dim_z]).T # gain and residual are computed during the innovation step. We # save them so that in case you want to inspect them for various # purposes self.K = np.zeros((dim_x, dim_z)) # kalman gain self.y = zeros((dim_z, 1)) self.S = np.zeros((dim_z, dim_z)) # system uncertainty self.SI = np.zeros((dim_z, dim_z)) # inverse system uncertainty # identity matrix. Do not alter this. self._I = np.eye(dim_x) # these will always be a copy of x,P after predict() is called self.x_prior = self.x.copy() self.P_prior = self.P.copy() # these will always be a copy of x,P after update() is called self.x_post = self.x.copy() self.P_post = self.P.copy() # Only computed only if requested via property self._log_likelihood = log(sys.float_info.min) self._likelihood = sys.float_info.min self._mahalanobis = None # keep all observations self.history_obs = [] self.inv = np.linalg.inv self.attr_saved = None self.observed = False self.args = args def predict(self, u=None, B=None, F=None, Q=None): """ Predict next state (prior) using the Kalman filter state propagation equations. Parameters ---------- u : np.array, default 0 Optional control vector. B : np.array(dim_x, dim_u), or None Optional control transition matrix; a value of None will cause the filter to use `self.B`. F : np.array(dim_x, dim_x), or None Optional state transition matrix; a value of None will cause the filter to use `self.F`. Q : np.array(dim_x, dim_x), scalar, or None Optional process noise matrix; a value of None will cause the filter to use `self.Q`. """ if B is None: B = self.B if F is None: F = self.F if Q is None: Q = self.Q elif isscalar(Q): Q = eye(self.dim_x) * Q # x = Fx + Bu if B is not None and u is not None: self.x = dot(F, self.x) + dot(B, u) else: self.x = dot(F, self.x) # P = FPF' + Q self.P = self._alpha_sq * dot(dot(F, self.P), F.T) + Q # save prior self.x_prior = self.x.copy() self.P_prior = self.P.copy() def freeze(self): """ Save the parameters before non-observation forward """ self.attr_saved = deepcopy(self.__dict__) def unfreeze(self): if self.attr_saved is not None: new_history = deepcopy(self.history_obs) self.__dict__ = self.attr_saved # self.history_obs = new_history self.history_obs = self.history_obs[:-1] occur = [int(d is None) for d in new_history] indices = np.where(np.array(occur)==0)[0] if len(indices) < 2: return index1 = indices[-2] index2 = indices[-1] score1 = float(np.asarray(new_history[index1], dtype=float).reshape(-1)[0]) # x1, y1, s1, r1 = box1 # w1 = np.sqrt(s1 * r1) # h1 = np.sqrt(s1 / r1) score2 = float(np.asarray(new_history[index2], dtype=float).reshape(-1)[0]) # x2, y2, s2, r2 = box2 # w2 = np.sqrt(s2 * r2) # h2 = np.sqrt(s2 / r2) time_gap = index2 - index1 # dx = (x2-x1)/time_gap # dy = (y2-y1)/time_gap # dw = (w2-w1)/time_gap # dh = (h2-h1)/time_gap dscore = (score2 - score1) / time_gap for i in range(index2 - index1): """ The default virtual trajectory generation is by linear motion (constant speed hypothesis), you could modify this part to implement your own. """ # x = x1 + (i+1) * dx # y = y1 + (i+1) * dy # w = w1 + (i+1) * dw # h = h1 + (i+1) * dh # s = w * h # r = w / float(h) score = score1 + (i+1) * dscore new_score = np.array([[score]], dtype=float) """ I still use predict-update loop here to refresh the parameters, but this can be faster by directly modifying the internal parameters as suggested in the paper. I keep this naive but slow way for easy read and understanding """ self.update(new_score) if not i == (index2-index1-1): self.predict() def update(self, z, R=None, H=None, confidence=0.0): """ Add a new measurement (z) to the Kalman filter. If z is None, nothing is computed. However, x_post and P_post are updated with the prior (x_prior, P_prior), and self.z is set to None. Parameters ---------- z : (dim_z, 1): array_like measurement for this update. z can be a scalar if dim_z is 1, otherwise it must be convertible to a column vector. If you pass in a value of H, z must be a column vector the of the correct size. R : np.array, scalar, or None Optionally provide R to override the measurement noise for this one call, otherwise self.R will be used. H : np.array, or None Optionally provide H to override the measurement function for this one call, otherwise self.H will be used. """ # set to None to force recompute self._log_likelihood = None self._likelihood = None self._mahalanobis = None # append the observation self.history_obs.append(z) if z is None: if self.observed: """ Got no observation so freeze the current parameters for future potential online smoothing. """ self.freeze() self.observed = False self.z = np.array([[None]*self.dim_z]).T self.x_post = self.x.copy() self.P_post = self.P.copy() self.y = zeros((self.dim_z, 1)) return # self.observed = True if not self.observed: """ Get observation, use online smoothing to re-update parameters """ self.unfreeze() self.observed = True if R is None: R = self.R elif isscalar(R): R = eye(self.dim_z) * R # if self.args.use_nsa_kalman: # R = [(1 - confidence) * self.args.nsa_kalman_interval * x for x in R] if H is None: z = reshape_z(z, self.dim_z, self.x.ndim) H = self.H # y = z - Hx # error (residual) between measurement and prediction self.y = z - dot(H, self.x) # common subexpression for speed PHT = dot(self.P, H.T) # S = HPH' + R # project system uncertainty into measurement space self.S = dot(H, PHT) + R self.SI = self.inv(self.S) # K = PH'inv(S) # map system uncertainty into kalman gain self.K = dot(PHT, self.SI) # x = x + Ky # predict new x with residual scaled by the kalman gain self.x = self.x + dot(self.K, self.y) # P = (I-KH)P(I-KH)' + KRK' # This is more numerically stable # and works for non-optimal K vs the equation # P = (I-KH)P usually seen in the literature. I_KH = self._I - dot(self.K, H) self.P = dot(dot(I_KH, self.P), I_KH.T) + dot(dot(self.K, R), self.K.T) # save measurement and posterior state self.z = deepcopy(z) self.x_post = self.x.copy() self.P_post = self.P.copy() def predict_steadystate(self, u=0, B=None): """ Predict state (prior) using the Kalman filter state propagation equations. Only x is updated, P is left unchanged. See update_steadstate() for a longer explanation of when to use this method. Parameters ---------- u : np.array Optional control vector. If non-zero, it is multiplied by B to create the control input into the system. B : np.array(dim_x, dim_u), or None Optional control transition matrix; a value of None will cause the filter to use `self.B`. """ if B is None: B = self.B # x = Fx + Bu if B is not None: self.x = dot(self.F, self.x) + dot(B, u) else: self.x = dot(self.F, self.x) # save prior self.x_prior = self.x.copy() self.P_prior = self.P.copy() def update_steadystate(self, z): """ Add a new measurement (z) to the Kalman filter without recomputing the Kalman gain K, the state covariance P, or the system uncertainty S. You can use this for LTI systems since the Kalman gain and covariance converge to a fixed value. Precompute these and assign them explicitly, or run the Kalman filter using the normal predict()/update(0 cycle until they converge. The main advantage of this call is speed. We do significantly less computation, notably avoiding a costly matrix inversion. Use in conjunction with predict_steadystate(), otherwise P will grow without bound. Parameters ---------- z : (dim_z, 1): array_like measurement for this update. z can be a scalar if dim_z is 1, otherwise it must be convertible to a column vector. Examples -------- >>> cv = kinematic_kf(dim=3, order=2) # 3D const velocity filter >>> # let filter converge on representative data, then save k and P >>> for i in range(100): >>> cv.predict() >>> cv.update([i, i, i]) >>> saved_k = np.copy(cv.K) >>> saved_P = np.copy(cv.P) later on: >>> cv = kinematic_kf(dim=3, order=2) # 3D const velocity filter >>> cv.K = np.copy(saved_K) >>> cv.P = np.copy(saved_P) >>> for i in range(100): >>> cv.predict_steadystate() >>> cv.update_steadystate([i, i, i]) """ # set to None to force recompute self._log_likelihood = None self._likelihood = None self._mahalanobis = None if z is None: self.z = np.array([[None]*self.dim_z]).T self.x_post = self.x.copy() self.P_post = self.P.copy() self.y = zeros((self.dim_z, 1)) return z = reshape_z(z, self.dim_z, self.x.ndim) # y = z - Hx # error (residual) between measurement and prediction self.y = z - dot(self.H, self.x) # x = x + Ky # predict new x with residual scaled by the kalman gain self.x = self.x + dot(self.K, self.y) self.z = deepcopy(z) self.x_post = self.x.copy() self.P_post = self.P.copy() # set to None to force recompute self._log_likelihood = None self._likelihood = None self._mahalanobis = None def update_correlated(self, z, R=None, H=None): """ Add a new measurement (z) to the Kalman filter assuming that process noise and measurement noise are correlated as defined in the `self.M` matrix. A partial derivation can be found in [1] If z is None, nothing is changed. Parameters ---------- z : (dim_z, 1): array_like measurement for this update. z can be a scalar if dim_z is 1, otherwise it must be convertible to a column vector. R : np.array, scalar, or None Optionally provide R to override the measurement noise for this one call, otherwise self.R will be used. H : np.array, or None Optionally provide H to override the measurement function for this one call, otherwise self.H will be used. References ---------- .. [1] Bulut, Y. (2011). Applied Kalman filter theory (Doctoral dissertation, Northeastern University). http://people.duke.edu/~hpgavin/SystemID/References/Balut-KalmanFilter-PhD-NEU-2011.pdf """ # set to None to force recompute self._log_likelihood = None self._likelihood = None self._mahalanobis = None if z is None: self.z = np.array([[None]*self.dim_z]).T self.x_post = self.x.copy() self.P_post = self.P.copy() self.y = zeros((self.dim_z, 1)) return if R is None: R = self.R elif isscalar(R): R = eye(self.dim_z) * R # rename for readability and a tiny extra bit of speed if H is None: z = reshape_z(z, self.dim_z, self.x.ndim) H = self.H # handle special case: if z is in form [[z]] but x is not a column # vector dimensions will not match if self.x.ndim == 1 and shape(z) == (1, 1): z = z[0] if shape(z) == (): # is it scalar, e.g. z=3 or z=np.array(3) z = np.asarray([z]) # y = z - Hx # error (residual) between measurement and prediction self.y = z - dot(H, self.x) # common subexpression for speed PHT = dot(self.P, H.T) # project system uncertainty into measurement space self.S = dot(H, PHT) + dot(H, self.M) + dot(self.M.T, H.T) + R self.SI = self.inv(self.S) # K = PH'inv(S) # map system uncertainty into kalman gain self.K = dot(PHT + self.M, self.SI) # x = x + Ky # predict new x with residual scaled by the kalman gain self.x = self.x + dot(self.K, self.y) self.P = self.P - dot(self.K, dot(H, self.P) + self.M.T) self.z = deepcopy(z) self.x_post = self.x.copy() self.P_post = self.P.copy() def batch_filter(self, zs, Fs=None, Qs=None, Hs=None, Rs=None, Bs=None, us=None, update_first=False, saver=None): """ Batch processes a sequences of measurements. Parameters ---------- zs : list-like list of measurements at each time step `self.dt`. Missing measurements must be represented by `None`. Fs : None, list-like, default=None optional value or list of values to use for the state transition matrix F. If Fs is None then self.F is used for all epochs. Otherwise it must contain a list-like list of F's, one for each epoch. This allows you to have varying F per epoch. Qs : None, np.array or list-like, default=None optional value or list of values to use for the process error covariance Q. If Qs is None then self.Q is used for all epochs. Otherwise it must contain a list-like list of Q's, one for each epoch. This allows you to have varying Q per epoch. Hs : None, np.array or list-like, default=None optional list of values to use for the measurement matrix H. If Hs is None then self.H is used for all epochs. If Hs contains a single matrix, then it is used as H for all epochs. Otherwise it must contain a list-like list of H's, one for each epoch. This allows you to have varying H per epoch. Rs : None, np.array or list-like, default=None optional list of values to use for the measurement error covariance R. If Rs is None then self.R is used for all epochs. Otherwise it must contain a list-like list of R's, one for each epoch. This allows you to have varying R per epoch. Bs : None, np.array or list-like, default=None optional list of values to use for the control transition matrix B. If Bs is None then self.B is used for all epochs. Otherwise it must contain a list-like list of B's, one for each epoch. This allows you to have varying B per epoch. us : None, np.array or list-like, default=None optional list of values to use for the control input vector; If us is None then None is used for all epochs (equivalent to 0, or no control input). Otherwise it must contain a list-like list of u's, one for each epoch. update_first : bool, optional, default=False controls whether the order of operations is update followed by predict, or predict followed by update. Default is predict->update. saver : filterpy.common.Saver, optional filterpy.common.Saver object. If provided, saver.save() will be called after every epoch Returns ------- means : np.array((n,dim_x,1)) array of the state for each time step after the update. Each entry is an np.array. In other words `means[k,:]` is the state at step `k`. covariance : np.array((n,dim_x,dim_x)) array of the covariances for each time step after the update. In other words `covariance[k,:,:]` is the covariance at step `k`. means_predictions : np.array((n,dim_x,1)) array of the state for each time step after the predictions. Each entry is an np.array. In other words `means[k,:]` is the state at step `k`. covariance_predictions : np.array((n,dim_x,dim_x)) array of the covariances for each time step after the prediction. In other words `covariance[k,:,:]` is the covariance at step `k`. Examples -------- .. code-block:: Python # this example demonstrates tracking a measurement where the time # between measurement varies, as stored in dts. This requires # that F be recomputed for each epoch. The output is then smoothed # with an RTS smoother. zs = [t + random.randn()*4 for t in range (40)] Fs = [np.array([[1., dt], [0, 1]] for dt in dts] (mu, cov, _, _) = kf.batch_filter(zs, Fs=Fs) (xs, Ps, Ks, Pps) = kf.rts_smoother(mu, cov, Fs=Fs) """ #pylint: disable=too-many-statements n = np.size(zs, 0) if Fs is None: Fs = [self.F] * n if Qs is None: Qs = [self.Q] * n if Hs is None: Hs = [self.H] * n if Rs is None: Rs = [self.R] * n if Bs is None: Bs = [self.B] * n if us is None: us = [0] * n # mean estimates from Kalman Filter if self.x.ndim == 1: means = zeros((n, self.dim_x)) means_p = zeros((n, self.dim_x)) else: means = zeros((n, self.dim_x, 1)) means_p = zeros((n, self.dim_x, 1)) # state covariances from Kalman Filter covariances = zeros((n, self.dim_x, self.dim_x)) covariances_p = zeros((n, self.dim_x, self.dim_x)) if update_first: for i, (z, F, Q, H, R, B, u) in enumerate(zip(zs, Fs, Qs, Hs, Rs, Bs, us)): self.update(z, R=R, H=H) means[i, :] = self.x covariances[i, :, :] = self.P self.predict(u=u, B=B, F=F, Q=Q) means_p[i, :] = self.x covariances_p[i, :, :] = self.P if saver is not None: saver.save() else: for i, (z, F, Q, H, R, B, u) in enumerate(zip(zs, Fs, Qs, Hs, Rs, Bs, us)): self.predict(u=u, B=B, F=F, Q=Q) means_p[i, :] = self.x covariances_p[i, :, :] = self.P self.update(z, R=R, H=H) means[i, :] = self.x covariances[i, :, :] = self.P if saver is not None: saver.save() return (means, covariances, means_p, covariances_p) def rts_smoother(self, Xs, Ps, Fs=None, Qs=None, inv=np.linalg.inv): """ Runs the Rauch-Tung-Striebel Kalman smoother on a set of means and covariances computed by a Kalman filter. The usual input would come from the output of `KalmanFilter.batch_filter()`. Parameters ---------- Xs : numpy.array array of the means (state variable x) of the output of a Kalman filter. Ps : numpy.array array of the covariances of the output of a kalman filter. Fs : list-like collection of numpy.array, optional State transition matrix of the Kalman filter at each time step. Optional, if not provided the filter's self.F will be used Qs : list-like collection of numpy.array, optional Process noise of the Kalman filter at each time step. Optional, if not provided the filter's self.Q will be used inv : function, default numpy.linalg.inv If you prefer another inverse function, such as the Moore-Penrose pseudo inverse, set it to that instead: kf.inv = np.linalg.pinv Returns ------- x : numpy.ndarray smoothed means P : numpy.ndarray smoothed state covariances K : numpy.ndarray smoother gain at each step Pp : numpy.ndarray Predicted state covariances Examples -------- .. code-block:: Python zs = [t + random.randn()*4 for t in range (40)] (mu, cov, _, _) = kalman.batch_filter(zs) (x, P, K, Pp) = rts_smoother(mu, cov, kf.F, kf.Q) """ if len(Xs) != len(Ps): raise ValueError('length of Xs and Ps must be the same') n = Xs.shape[0] dim_x = Xs.shape[1] if Fs is None: Fs = [self.F] * n if Qs is None: Qs = [self.Q] * n # smoother gain K = zeros((n, dim_x, dim_x)) x, P, Pp = Xs.copy(), Ps.copy(), Ps.copy() for k in range(n-2, -1, -1): Pp[k] = dot(dot(Fs[k+1], P[k]), Fs[k+1].T) + Qs[k+1] #pylint: disable=bad-whitespace K[k] = dot(dot(P[k], Fs[k+1].T), inv(Pp[k])) x[k] += dot(K[k], x[k+1] - dot(Fs[k+1], x[k])) P[k] += dot(dot(K[k], P[k+1] - Pp[k]), K[k].T) return (x, P, K, Pp) def get_prediction(self, u=None, B=None, F=None, Q=None): """ Predict next state (prior) using the Kalman filter state propagation equations and returns it without modifying the object. Parameters ---------- u : np.array, default 0 Optional control vector. B : np.array(dim_x, dim_u), or None Optional control transition matrix; a value of None will cause the filter to use `self.B`. F : np.array(dim_x, dim_x), or None Optional state transition matrix; a value of None will cause the filter to use `self.F`. Q : np.array(dim_x, dim_x), scalar, or None Optional process noise matrix; a value of None will cause the filter to use `self.Q`. Returns ------- (x, P) : tuple State vector and covariance array of the prediction. """ if B is None: B = self.B if F is None: F = self.F if Q is None: Q = self.Q elif isscalar(Q): Q = eye(self.dim_x) * Q # x = Fx + Bu if B is not None and u is not None: x = dot(F, self.x) + dot(B, u) else: x = dot(F, self.x) # P = FPF' + Q P = self._alpha_sq * dot(dot(F, self.P), F.T) + Q return x, P def get_update(self, z=None): """ Computes the new estimate based on measurement `z` and returns it without altering the state of the filter. Parameters ---------- z : (dim_z, 1): array_like measurement for this update. z can be a scalar if dim_z is 1, otherwise it must be convertible to a column vector. Returns ------- (x, P) : tuple State vector and covariance array of the update. """ if z is None: return self.x, self.P z = reshape_z(z, self.dim_z, self.x.ndim) R = self.R H = self.H P = self.P x = self.x # error (residual) between measurement and prediction y = z - dot(H, x) # common subexpression for speed PHT = dot(P, H.T) # project system uncertainty into measurement space S = dot(H, PHT) + R # map system uncertainty into kalman gain K = dot(PHT, self.inv(S)) # predict new x with residual scaled by the kalman gain x = x + dot(K, y) # P = (I-KH)P(I-KH)' + KRK' I_KH = self._I - dot(K, H) P = dot(dot(I_KH, P), I_KH.T) + dot(dot(K, R), K.T) return x, P def residual_of(self, z): """ Returns the residual for the given measurement (z). Does not alter the state of the filter. """ z = reshape_z(z, self.dim_z, self.x.ndim) return z - dot(self.H, self.x_prior) def measurement_of_state(self, x): """ Helper function that converts a state into a measurement. Parameters ---------- x : np.array kalman state vector Returns ------- z : (dim_z, 1): array_like measurement for this update. z can be a scalar if dim_z is 1, otherwise it must be convertible to a column vector. """ return dot(self.H, x) @property def log_likelihood(self): """ log-likelihood of the last measurement. """ if self._log_likelihood is None: self._log_likelihood = logpdf(x=self.y, cov=self.S) return self._log_likelihood @property def likelihood(self): """ Computed from the log-likelihood. The log-likelihood can be very small, meaning a large negative value such as -28000. Taking the exp() of that results in 0.0, which can break typical algorithms which multiply by this value, so by default we always return a number >= sys.float_info.min. """ if self._likelihood is None: self._likelihood = exp(self.log_likelihood) if self._likelihood == 0: self._likelihood = sys.float_info.min return self._likelihood @property def mahalanobis(self): """" Mahalanobis distance of measurement. E.g. 3 means measurement was 3 standard deviations away from the predicted value. Returns ------- mahalanobis : float """ if self._mahalanobis is None: self._mahalanobis = sqrt(float(dot(dot(self.y.T, self.SI), self.y))) return self._mahalanobis @property def alpha(self): """ Fading memory setting. 1.0 gives the normal Kalman filter, and values slightly larger than 1.0 (such as 1.02) give a fading memory effect - previous measurements have less influence on the filter's estimates. This formulation of the Fading memory filter (there are many) is due to Dan Simon [1]_. """ return self._alpha_sq**.5 def log_likelihood_of(self, z): """ log likelihood of the measurement `z`. This should only be called after a call to update(). Calling after predict() will yield an incorrect result.""" if z is None: return log(sys.float_info.min) return logpdf(z, dot(self.H, self.x), self.S) @alpha.setter def alpha(self, value): if not np.isscalar(value) or value < 1: raise ValueError('alpha must be a float greater than 1') self._alpha_sq = value**2 def __repr__(self): return '\n'.join([ 'KalmanFilter object', pretty_str('dim_x', self.dim_x), pretty_str('dim_z', self.dim_z), pretty_str('dim_u', self.dim_u), pretty_str('x', self.x), pretty_str('P', self.P), pretty_str('x_prior', self.x_prior), pretty_str('P_prior', self.P_prior), pretty_str('x_post', self.x_post), pretty_str('P_post', self.P_post), pretty_str('F', self.F), pretty_str('Q', self.Q), pretty_str('R', self.R), pretty_str('H', self.H), pretty_str('K', self.K), pretty_str('y', self.y), pretty_str('S', self.S), pretty_str('SI', self.SI), pretty_str('M', self.M), pretty_str('B', self.B), pretty_str('z', self.z), pretty_str('log-likelihood', self.log_likelihood), pretty_str('likelihood', self.likelihood), pretty_str('mahalanobis', self.mahalanobis), pretty_str('alpha', self.alpha), pretty_str('inv', self.inv) ]) def test_matrix_dimensions(self, z=None, H=None, R=None, F=None, Q=None): """ Performs a series of asserts to check that the size of everything is what it should be. This can help you debug problems in your design. If you pass in H, R, F, Q those will be used instead of this object's value for those matrices. Testing `z` (the measurement) is problamatic. x is a vector, and can be implemented as either a 1D array or as a nx1 column vector. Thus Hx can be of different shapes. Then, if Hx is a single value, it can be either a 1D array or 2D vector. If either is true, z can reasonably be a scalar (either '3' or np.array('3') are scalars under this definition), a 1D, 1 element array, or a 2D, 1 element array. You are allowed to pass in any combination that works. """ if H is None: H = self.H if R is None: R = self.R if F is None: F = self.F if Q is None: Q = self.Q x = self.x P = self.P assert x.ndim == 1 or x.ndim == 2, \ "x must have one or two dimensions, but has {}".format(x.ndim) if x.ndim == 1: assert x.shape[0] == self.dim_x, \ "Shape of x must be ({},{}), but is {}".format( self.dim_x, 1, x.shape) else: assert x.shape == (self.dim_x, 1), \ "Shape of x must be ({},{}), but is {}".format( self.dim_x, 1, x.shape) assert P.shape == (self.dim_x, self.dim_x), \ "Shape of P must be ({},{}), but is {}".format( self.dim_x, self.dim_x, P.shape) assert Q.shape == (self.dim_x, self.dim_x), \ "Shape of Q must be ({},{}), but is {}".format( self.dim_x, self.dim_x, P.shape) assert F.shape == (self.dim_x, self.dim_x), \ "Shape of F must be ({},{}), but is {}".format( self.dim_x, self.dim_x, F.shape) assert np.ndim(H) == 2, \ "Shape of H must be (dim_z, {}), but is {}".format( P.shape[0], shape(H)) assert H.shape[1] == P.shape[0], \ "Shape of H must be (dim_z, {}), but is {}".format( P.shape[0], H.shape) # shape of R must be the same as HPH' hph_shape = (H.shape[0], H.shape[0]) r_shape = shape(R) if H.shape[0] == 1: # r can be scalar, 1D, or 2D in this case assert r_shape in [(), (1,), (1, 1)], \ "R must be scalar or one element array, but is shaped {}".format( r_shape) else: assert r_shape == hph_shape, \ "shape of R should be {} but it is {}".format(hph_shape, r_shape) if z is not None: z_shape = shape(z) else: z_shape = (self.dim_z, 1) # H@x must have shape of z Hx = dot(H, x) if z_shape == (): # scalar or np.array(scalar) assert Hx.ndim == 1 or shape(Hx) == (1, 1), \ "shape of z should be {}, not {} for the given H".format( shape(Hx), z_shape) elif shape(Hx) == (1,): assert z_shape[0] == 1, 'Shape of z must be {} for the given H'.format(shape(Hx)) else: assert (z_shape == shape(Hx) or (len(z_shape) == 1 and shape(Hx) == (z_shape[0], 1))), \ "shape of z should be {}, not {} for the given H".format( shape(Hx), z_shape) if np.ndim(Hx) > 1 and shape(Hx) != (1, 1): assert shape(Hx) == z_shape, \ 'shape of z should be {} for the given H, but it is {}'.format( shape(Hx), z_shape) def update(x, P, z, R, H=None, return_all=False): """ Add a new measurement (z) to the Kalman filter. If z is None, nothing is changed. This can handle either the multidimensional or unidimensional case. If all parameters are floats instead of arrays the filter will still work, and return floats for x, P as the result. update(1, 2, 1, 1, 1) # univariate update(x, P, 1 Parameters ---------- x : numpy.array(dim_x, 1), or float State estimate vector P : numpy.array(dim_x, dim_x), or float Covariance matrix z : (dim_z, 1): array_like measurement for this update. z can be a scalar if dim_z is 1, otherwise it must be convertible to a column vector. R : numpy.array(dim_z, dim_z), or float Measurement noise matrix H : numpy.array(dim_x, dim_x), or float, optional Measurement function. If not provided, a value of 1 is assumed. return_all : bool, default False If true, y, K, S, and log_likelihood are returned, otherwise only x and P are returned. Returns ------- x : numpy.array Posterior state estimate vector P : numpy.array Posterior covariance matrix y : numpy.array or scalar Residua. Difference between measurement and state in measurement space K : numpy.array Kalman gain S : numpy.array System uncertainty in measurement space log_likelihood : float log likelihood of the measurement """ #pylint: disable=bare-except if z is None: if return_all: return x, P, None, None, None, None return x, P if H is None: H = np.array([1]) if np.isscalar(H): H = np.array([H]) Hx = np.atleast_1d(dot(H, x)) z = reshape_z(z, Hx.shape[0], x.ndim) # error (residual) between measurement and prediction y = z - Hx # project system uncertainty into measurement space S = dot(dot(H, P), H.T) + R # map system uncertainty into kalman gain try: K = dot(dot(P, H.T), linalg.inv(S)) except: # can't invert a 1D array, annoyingly K = dot(dot(P, H.T), 1./S) # predict new x with residual scaled by the kalman gain x = x + dot(K, y) # P = (I-KH)P(I-KH)' + KRK' KH = dot(K, H) try: I_KH = np.eye(KH.shape[0]) - KH except: I_KH = np.array([1 - KH]) P = dot(dot(I_KH, P), I_KH.T) + dot(dot(K, R), K.T) if return_all: # compute log likelihood log_likelihood = logpdf(z, dot(H, x), S) return x, P, y, K, S, log_likelihood return x, P def update_steadystate(x, z, K, H=None): """ Add a new measurement (z) to the Kalman filter. If z is None, nothing is changed. Parameters ---------- x : numpy.array(dim_x, 1), or float State estimate vector z : (dim_z, 1): array_like measurement for this update. z can be a scalar if dim_z is 1, otherwise it must be convertible to a column vector. K : numpy.array, or float Kalman gain matrix H : numpy.array(dim_x, dim_x), or float, optional Measurement function. If not provided, a value of 1 is assumed. Returns ------- x : numpy.array Posterior state estimate vector Examples -------- This can handle either the multidimensional or unidimensional case. If all parameters are floats instead of arrays the filter will still work, and return floats for x, P as the result. >>> update_steadystate(1, 2, 1) # univariate >>> update_steadystate(x, P, z, H) """ if z is None: return x if H is None: H = np.array([1]) if np.isscalar(H): H = np.array([H]) Hx = np.atleast_1d(dot(H, x)) z = reshape_z(z, Hx.shape[0], x.ndim) # error (residual) between measurement and prediction y = z - Hx # estimate new x with residual scaled by the kalman gain return x + dot(K, y) def predict(x, P, F=1, Q=0, u=0, B=1, alpha=1.): """ Predict next state (prior) using the Kalman filter state propagation equations. Parameters ---------- x : numpy.array State estimate vector P : numpy.array Covariance matrix F : numpy.array() State Transition matrix Q : numpy.array, Optional Process noise matrix u : numpy.array, Optional, default 0. Control vector. If non-zero, it is multiplied by B to create the control input into the system. B : numpy.array, optional, default 0. Control transition matrix. alpha : float, Optional, default=1.0 Fading memory setting. 1.0 gives the normal Kalman filter, and values slightly larger than 1.0 (such as 1.02) give a fading memory effect - previous measurements have less influence on the filter's estimates. This formulation of the Fading memory filter (there are many) is due to Dan Simon Returns ------- x : numpy.array Prior state estimate vector P : numpy.array Prior covariance matrix """ if np.isscalar(F): F = np.array(F) x = dot(F, x) + dot(B, u) P = (alpha * alpha) * dot(dot(F, P), F.T) + Q return x, P def predict_steadystate(x, F=1, u=0, B=1): """ Predict next state (prior) using the Kalman filter state propagation equations. This steady state form only computes x, assuming that the covariance is constant. Parameters ---------- x : numpy.array State estimate vector P : numpy.array Covariance matrix F : numpy.array() State Transition matrix u : numpy.array, Optional, default 0. Control vector. If non-zero, it is multiplied by B to create the control input into the system. B : numpy.array, optional, default 0. Control transition matrix. Returns ------- x : numpy.array Prior state estimate vector """ if np.isscalar(F): F = np.array(F) x = dot(F, x) + dot(B, u) return x def batch_filter(x, P, zs, Fs, Qs, Hs, Rs, Bs=None, us=None, update_first=False, saver=None): """ Batch processes a sequences of measurements. Parameters ---------- zs : list-like list of measurements at each time step. Missing measurements must be represented by None. Fs : list-like list of values to use for the state transition matrix matrix. Qs : list-like list of values to use for the process error covariance. Hs : list-like list of values to use for the measurement matrix. Rs : list-like list of values to use for the measurement error covariance. Bs : list-like, optional list of values to use for the control transition matrix; a value of None in any position will cause the filter to use `self.B` for that time step. us : list-like, optional list of values to use for the control input vector; a value of None in any position will cause the filter to use 0 for that time step. update_first : bool, optional controls whether the order of operations is update followed by predict, or predict followed by update. Default is predict->update. saver : filterpy.common.Saver, optional filterpy.common.Saver object. If provided, saver.save() will be called after every epoch Returns ------- means : np.array((n,dim_x,1)) array of the state for each time step after the update. Each entry is an np.array. In other words `means[k,:]` is the state at step `k`. covariance : np.array((n,dim_x,dim_x)) array of the covariances for each time step after the update. In other words `covariance[k,:,:]` is the covariance at step `k`. means_predictions : np.array((n,dim_x,1)) array of the state for each time step after the predictions. Each entry is an np.array. In other words `means[k,:]` is the state at step `k`. covariance_predictions : np.array((n,dim_x,dim_x)) array of the covariances for each time step after the prediction. In other words `covariance[k,:,:]` is the covariance at step `k`. Examples -------- .. code-block:: Python zs = [t + random.randn()*4 for t in range (40)] Fs = [kf.F for t in range (40)] Hs = [kf.H for t in range (40)] (mu, cov, _, _) = kf.batch_filter(zs, Rs=R_list, Fs=Fs, Hs=Hs, Qs=None, Bs=None, us=None, update_first=False) (xs, Ps, Ks, Pps) = kf.rts_smoother(mu, cov, Fs=Fs, Qs=None) """ n = np.size(zs, 0) dim_x = x.shape[0] # mean estimates from Kalman Filter if x.ndim == 1: means = zeros((n, dim_x)) means_p = zeros((n, dim_x)) else: means = zeros((n, dim_x, 1)) means_p = zeros((n, dim_x, 1)) # state covariances from Kalman Filter covariances = zeros((n, dim_x, dim_x)) covariances_p = zeros((n, dim_x, dim_x)) if us is None: us = [0.] * n Bs = [0.] * n if update_first: for i, (z, F, Q, H, R, B, u) in enumerate(zip(zs, Fs, Qs, Hs, Rs, Bs, us)): x, P = update(x, P, z, R=R, H=H) means[i, :] = x covariances[i, :, :] = P x, P = predict(x, P, u=u, B=B, F=F, Q=Q) means_p[i, :] = x covariances_p[i, :, :] = P if saver is not None: saver.save() else: for i, (z, F, Q, H, R, B, u) in enumerate(zip(zs, Fs, Qs, Hs, Rs, Bs, us)): x, P = predict(x, P, u=u, B=B, F=F, Q=Q) means_p[i, :] = x covariances_p[i, :, :] = P x, P = update(x, P, z, R=R, H=H) means[i, :] = x covariances[i, :, :] = P if saver is not None: saver.save() return (means, covariances, means_p, covariances_p) def rts_smoother(Xs, Ps, Fs, Qs): """ Runs the Rauch-Tung-Striebel Kalman smoother on a set of means and covariances computed by a Kalman filter. The usual input would come from the output of `KalmanFilter.batch_filter()`. Parameters ---------- Xs : numpy.array array of the means (state variable x) of the output of a Kalman filter. Ps : numpy.array array of the covariances of the output of a kalman filter. Fs : list-like collection of numpy.array State transition matrix of the Kalman filter at each time step. Qs : list-like collection of numpy.array, optional Process noise of the Kalman filter at each time step. Returns ------- x : numpy.ndarray smoothed means P : numpy.ndarray smoothed state covariances K : numpy.ndarray smoother gain at each step pP : numpy.ndarray predicted state covariances Examples -------- .. code-block:: Python zs = [t + random.randn()*4 for t in range (40)] (mu, cov, _, _) = kalman.batch_filter(zs) (x, P, K, pP) = rts_smoother(mu, cov, kf.F, kf.Q) """ if len(Xs) != len(Ps): raise ValueError('length of Xs and Ps must be the same') n = Xs.shape[0] dim_x = Xs.shape[1] # smoother gain K = zeros((n, dim_x, dim_x)) x, P, pP = Xs.copy(), Ps.copy(), Ps.copy() for k in range(n-2, -1, -1): pP[k] = dot(dot(Fs[k], P[k]), Fs[k].T) + Qs[k] #pylint: disable=bad-whitespace K[k] = dot(dot(P[k], Fs[k].T), linalg.inv(pP[k])) x[k] += dot(K[k], x[k+1] - dot(Fs[k], x[k])) P[k] += dot(dot(K[k], P[k+1] - pP[k]), K[k].T) return (x, P, K, pP) ================================================ FILE: boxmot/trackers/hybridsort/kalmanfilter_score_new.py ================================================ # -*- coding: utf-8 -*- # pylint: disable=invalid-name, too-many-arguments, too-many-branches, # pylint: disable=too-many-locals, too-many-instance-attributes, too-many-lines """ This module implements the linear Kalman filter in both an object oriented and procedural form. The KalmanFilter class implements the filter by storing the various matrices in instance variables, minimizing the amount of bookkeeping you have to do. All Kalman filters operate with a predict->update cycle. The predict step, implemented with the method or function predict(), uses the state transition matrix F to predict the state in the next time period (epoch). The state is stored as a gaussian (x, P), where x is the state (column) vector, and P is its covariance. Covariance matrix Q specifies the process covariance. In Bayesian terms, this prediction is called the *prior*, which you can think of colloquially as the estimate prior to incorporating the measurement. The update step, implemented with the method or function `update()`, incorporates the measurement z with covariance R, into the state estimate (x, P). The class stores the system uncertainty in S, the innovation (residual between prediction and measurement in measurement space) in y, and the Kalman gain in k. The procedural form returns these variables to you. In Bayesian terms this computes the *posterior* - the estimate after the information from the measurement is incorporated. Whether you use the OO form or procedural form is up to you. If matrices such as H, R, and F are changing each epoch, you'll probably opt to use the procedural form. If they are unchanging, the OO form is perhaps easier to use since you won't need to keep track of these matrices. This is especially useful if you are implementing banks of filters or comparing various KF designs for performance; a trivial coding bug could lead to using the wrong sets of matrices. This module also offers an implementation of the RTS smoother, and other helper functions, such as log likelihood computations. The Saver class allows you to easily save the state of the KalmanFilter class after every update This module expects NumPy arrays for all values that expect arrays, although in a few cases, particularly method parameters, it will accept types that convert to NumPy arrays, such as lists of lists. These exceptions are documented in the method or function. Examples -------- The following example constructs a constant velocity kinematic filter, filters noisy data, and plots the results. It also demonstrates using the Saver class to save the state of the filter at each epoch. .. code-block:: Python import matplotlib.pyplot as plt import numpy as np from filterpy.kalman import KalmanFilter from filterpy.common import Q_discrete_white_noise, Saver r_std, q_std = 2., 0.003 cv = KalmanFilter(dim_x=2, dim_z=1) cv.x = np.array([[0., 1.]]) # position, velocity cv.F = np.array([[1, dt],[ [0, 1]]) cv.R = np.array([[r_std^^2]]) f.H = np.array([[1., 0.]]) f.P = np.diag([.1^^2, .03^^2) f.Q = Q_discrete_white_noise(2, dt, q_std**2) saver = Saver(cv) for z in range(100): cv.predict() cv.update([z + randn() * r_std]) saver.save() # save the filter's state saver.to_array() plt.plot(saver.x[:, 0]) # plot all of the priors plt.plot(saver.x_prior[:, 0]) # plot mahalanobis distance plt.figure() plt.plot(saver.mahalanobis) This code implements the same filter using the procedural form x = np.array([[0., 1.]]) # position, velocity F = np.array([[1, dt],[ [0, 1]]) R = np.array([[r_std^^2]]) H = np.array([[1., 0.]]) P = np.diag([.1^^2, .03^^2) Q = Q_discrete_white_noise(2, dt, q_std**2) for z in range(100): x, P = predict(x, P, F=F, Q=Q) x, P = update(x, P, z=[z + randn() * r_std], R=R, H=H) xs.append(x[0, 0]) plt.plot(xs) For more examples see the test subdirectory, or refer to the book cited below. In it I both teach Kalman filtering from basic principles, and teach the use of this library in great detail. FilterPy library. http://github.com/rlabbe/filterpy Documentation at: https://filterpy.readthedocs.org Supporting book at: https://github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python This is licensed under an MIT license. See the readme.MD file for more information. Copyright 2014-2018 Roger R Labbe Jr. """ from __future__ import absolute_import, division import sys from copy import deepcopy from math import exp, log, sqrt import numpy as np import numpy.linalg as linalg from filterpy.common import pretty_str, reshape_z from filterpy.stats import logpdf from numpy import dot, eye, isscalar, shape, zeros class KalmanFilterNew_score_new(object): """ Implements a Kalman filter. You are responsible for setting the various state variables to reasonable values; the defaults will not give you a functional filter. For now the best documentation is my free book Kalman and Bayesian Filters in Python [2]_. The test files in this directory also give you a basic idea of use, albeit without much description. In brief, you will first construct this object, specifying the size of the state vector with dim_x and the size of the measurement vector that you will be using with dim_z. These are mostly used to perform size checks when you assign values to the various matrices. For example, if you specified dim_z=2 and then try to assign a 3x3 matrix to R (the measurement noise matrix you will get an assert exception because R should be 2x2. (If for whatever reason you need to alter the size of things midstream just use the underscore version of the matrices to assign directly: your_filter._R = a_3x3_matrix.) After construction the filter will have default matrices created for you, but you must specify the values for each. It’s usually easiest to just overwrite them rather than assign to each element yourself. This will be clearer in the example below. All are of type numpy.array. Examples -------- Here is a filter that tracks position and velocity using a sensor that only reads position. First construct the object with the required dimensionality. Here the state (`dim_x`) has 2 coefficients (position and velocity), and the measurement (`dim_z`) has one. In FilterPy `x` is the state, `z` is the measurement. .. code:: from filterpy.kalman import KalmanFilter f = KalmanFilter (dim_x=2, dim_z=1) Assign the initial value for the state (position and velocity). You can do this with a two dimensional array like so: .. code:: f.x = np.array([[2.], # position [0.]]) # velocity or just use a one dimensional array, which I prefer doing. .. code:: f.x = np.array([2., 0.]) Define the state transition matrix: .. code:: f.F = np.array([[1.,1.], [0.,1.]]) Define the measurement function. Here we need to convert a position-velocity vector into just a position vector, so we use: .. code:: f.H = np.array([[1., 0.]]) Define the state's covariance matrix P. .. code:: f.P = np.array([[1000., 0.], [ 0., 1000.] ]) Now assign the measurement noise. Here the dimension is 1x1, so I can use a scalar .. code:: f.R = 5 I could have done this instead: .. code:: f.R = np.array([[5.]]) Note that this must be a 2 dimensional array. Finally, I will assign the process noise. Here I will take advantage of another FilterPy library function: .. code:: from filterpy.common import Q_discrete_white_noise f.Q = Q_discrete_white_noise(dim=2, dt=0.1, var=0.13) Now just perform the standard predict/update loop: .. code:: while some_condition_is_true: z = get_sensor_reading() f.predict() f.update(z) do_something_with_estimate (f.x) **Procedural Form** This module also contains stand alone functions to perform Kalman filtering. Use these if you are not a fan of objects. **Example** .. code:: while True: z, R = read_sensor() x, P = predict(x, P, F, Q) x, P = update(x, P, z, R, H) See my book Kalman and Bayesian Filters in Python [2]_. You will have to set the following attributes after constructing this object for the filter to perform properly. Please note that there are various checks in place to ensure that you have made everything the 'correct' size. However, it is possible to provide incorrectly sized arrays such that the linear algebra can not perform an operation. It can also fail silently - you can end up with matrices of a size that allows the linear algebra to work, but are the wrong shape for the problem you are trying to solve. Parameters ---------- dim_x : int Number of state variables for the Kalman filter. For example, if you are tracking the position and velocity of an object in two dimensions, dim_x would be 4. This is used to set the default size of P, Q, and u dim_z : int Number of of measurement inputs. For example, if the sensor provides you with position in (x,y), dim_z would be 2. dim_u : int (optional) size of the control input, if it is being used. Default value of 0 indicates it is not used. compute_log_likelihood : bool (default = True) Computes log likelihood by default, but this can be a slow computation, so if you never use it you can turn this computation off. Attributes ---------- x : numpy.array(dim_x, 1) Current state estimate. Any call to update() or predict() updates this variable. P : numpy.array(dim_x, dim_x) Current state covariance matrix. Any call to update() or predict() updates this variable. x_prior : numpy.array(dim_x, 1) Prior (predicted) state estimate. The *_prior and *_post attributes are for convenience; they store the prior and posterior of the current epoch. Read Only. P_prior : numpy.array(dim_x, dim_x) Prior (predicted) state covariance matrix. Read Only. x_post : numpy.array(dim_x, 1) Posterior (updated) state estimate. Read Only. P_post : numpy.array(dim_x, dim_x) Posterior (updated) state covariance matrix. Read Only. z : numpy.array Last measurement used in update(). Read only. R : numpy.array(dim_z, dim_z) Measurement noise covariance matrix. Also known as the observation covariance. Q : numpy.array(dim_x, dim_x) Process noise covariance matrix. Also known as the transition covariance. F : numpy.array() State Transition matrix. Also known as `A` in some formulation. H : numpy.array(dim_z, dim_x) Measurement function. Also known as the observation matrix, or as `C`. y : numpy.array Residual of the update step. Read only. K : numpy.array(dim_x, dim_z) Kalman gain of the update step. Read only. S : numpy.array System uncertainty (P projected to measurement space). Read only. SI : numpy.array Inverse system uncertainty. Read only. log_likelihood : float log-likelihood of the last measurement. Read only. likelihood : float likelihood of last measurement. Read only. Computed from the log-likelihood. The log-likelihood can be very small, meaning a large negative value such as -28000. Taking the exp() of that results in 0.0, which can break typical algorithms which multiply by this value, so by default we always return a number >= sys.float_info.min. mahalanobis : float mahalanobis distance of the innovation. Read only. inv : function, default numpy.linalg.inv If you prefer another inverse function, such as the Moore-Penrose pseudo inverse, set it to that instead: kf.inv = np.linalg.pinv This is only used to invert self.S. If you know it is diagonal, you might choose to set it to filterpy.common.inv_diagonal, which is several times faster than numpy.linalg.inv for diagonal matrices. alpha : float Fading memory setting. 1.0 gives the normal Kalman filter, and values slightly larger than 1.0 (such as 1.02) give a fading memory effect - previous measurements have less influence on the filter's estimates. This formulation of the Fading memory filter (there are many) is due to Dan Simon [1]_. References ---------- .. [1] Dan Simon. "Optimal State Estimation." John Wiley & Sons. p. 208-212. (2006) .. [2] Roger Labbe. "Kalman and Bayesian Filters in Python" https://github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python """ def __init__(self, dim_x, dim_z, dim_u=0, args=None): if dim_x < 1: raise ValueError('dim_x must be 1 or greater') if dim_z < 1: raise ValueError('dim_z must be 1 or greater') if dim_u < 0: raise ValueError('dim_u must be 0 or greater') self.dim_x = dim_x self.dim_z = dim_z self.dim_u = dim_u self.x = zeros((dim_x, 1)) # state self.P = eye(dim_x) # uncertainty covariance self.Q = eye(dim_x) # process uncertainty self.B = None # control transition matrix self.F = eye(dim_x) # state transition matrix self.H = zeros((dim_z, dim_x)) # measurement function self.R = eye(dim_z) # measurement uncertainty self._alpha_sq = 1. # fading memory control self.M = np.zeros((dim_x, dim_z)) # process-measurement cross correlation self.z = np.array([[None]*self.dim_z]).T # gain and residual are computed during the innovation step. We # save them so that in case you want to inspect them for various # purposes self.K = np.zeros((dim_x, dim_z)) # kalman gain self.y = zeros((dim_z, 1)) self.S = np.zeros((dim_z, dim_z)) # system uncertainty self.SI = np.zeros((dim_z, dim_z)) # inverse system uncertainty # identity matrix. Do not alter this. self._I = np.eye(dim_x) # these will always be a copy of x,P after predict() is called self.x_prior = self.x.copy() self.P_prior = self.P.copy() # these will always be a copy of x,P after update() is called self.x_post = self.x.copy() self.P_post = self.P.copy() # Only computed only if requested via property self._log_likelihood = log(sys.float_info.min) self._likelihood = sys.float_info.min self._mahalanobis = None # keep all observations self.history_obs = [] self.inv = np.linalg.inv self.attr_saved = None self.observed = False self.args = args def predict(self, u=None, B=None, F=None, Q=None): """ Predict next state (prior) using the Kalman filter state propagation equations. Parameters ---------- u : np.array, default 0 Optional control vector. B : np.array(dim_x, dim_u), or None Optional control transition matrix; a value of None will cause the filter to use `self.B`. F : np.array(dim_x, dim_x), or None Optional state transition matrix; a value of None will cause the filter to use `self.F`. Q : np.array(dim_x, dim_x), scalar, or None Optional process noise matrix; a value of None will cause the filter to use `self.Q`. """ if B is None: B = self.B if F is None: F = self.F if Q is None: Q = self.Q elif isscalar(Q): Q = eye(self.dim_x) * Q # x = Fx + Bu if B is not None and u is not None: self.x = dot(F, self.x) + dot(B, u) else: self.x = dot(F, self.x) # P = FPF' + Q self.P = self._alpha_sq * dot(dot(F, self.P), F.T) + Q # save prior self.x_prior = self.x.copy() self.P_prior = self.P.copy() def freeze(self): """ Save the parameters before non-observation forward """ self.attr_saved = deepcopy(self.__dict__) def unfreeze(self): if self.attr_saved is not None: new_history = deepcopy(self.history_obs) self.__dict__ = self.attr_saved # self.history_obs = new_history self.history_obs = self.history_obs[:-1] occur = [int(d is None) for d in new_history] indices = np.where(np.array(occur)==0)[0] if len(indices) < 2: return index1 = indices[-2] index2 = indices[-1] box1 = np.asarray(new_history[index1], dtype=float).reshape(-1) if box1.size < 5: return x1, y1, s1, c1, r1 = box1 w1 = np.sqrt(s1 * r1) h1 = np.sqrt(s1 / r1) box2 = np.asarray(new_history[index2], dtype=float).reshape(-1) if box2.size < 5: return x2, y2, s2, c2, r2 = box2 w2 = np.sqrt(s2 * r2) h2 = np.sqrt(s2 / r2) time_gap = index2 - index1 dx = (x2-x1)/time_gap dy = (y2-y1)/time_gap dw = (w2-w1)/time_gap dh = (h2-h1)/time_gap dc = (c2 - c1) / time_gap for i in range(index2 - index1): """ The default virtual trajectory generation is by linear motion (constant speed hypothesis), you could modify this part to implement your own. """ x = x1 + (i+1) * dx y = y1 + (i+1) * dy w = w1 + (i+1) * dw h = h1 + (i+1) * dh s = w * h r = w / (h + 1e-12) c = c1 + (i+1) * dc new_box = np.array([x, y, s, c, r], dtype=float).reshape((5, 1)) """ I still use predict-update loop here to refresh the parameters, but this can be faster by directly modifying the internal parameters as suggested in the paper. I keep this naive but slow way for easy read and understanding """ if not i == (index2-index1-1): self.update(new_box) self.predict() else: self.update(new_box) def update(self, z, R=None, H=None): """ Add a new measurement (z) to the Kalman filter. If z is None, nothing is computed. However, x_post and P_post are updated with the prior (x_prior, P_prior), and self.z is set to None. Parameters ---------- z : (dim_z, 1): array_like measurement for this update. z can be a scalar if dim_z is 1, otherwise it must be convertible to a column vector. If you pass in a value of H, z must be a column vector the of the correct size. R : np.array, scalar, or None Optionally provide R to override the measurement noise for this one call, otherwise self.R will be used. H : np.array, or None Optionally provide H to override the measurement function for this one call, otherwise self.H will be used. """ # set to None to force recompute self._log_likelihood = None self._likelihood = None self._mahalanobis = None # append the observation self.history_obs.append(z) if z is None: if self.observed: """ Got no observation so freeze the current parameters for future potential online smoothing. """ self.freeze() self.observed = False self.z = np.array([[None]*self.dim_z]).T self.x_post = self.x.copy() self.P_post = self.P.copy() self.y = zeros((self.dim_z, 1)) return # self.observed = True if not self.observed: """ Get observation, use online smoothing to re-update parameters """ self.unfreeze() self.observed = True if R is None: R = self.R elif isscalar(R): R = eye(self.dim_z) * R # if self.args.use_nsa_kalman: # if confidence > 0.6: # R = [(1 - confidence) * self.args.nsa_kalman_interval * x for x in R] # else: # R = [self.args.nsa_kalman_interval_sec * x for x in R] if H is None: z = reshape_z(z, self.dim_z, self.x.ndim) H = self.H # y = z - Hx # error (residual) between measurement and prediction self.y = z - dot(H, self.x) # common subexpression for speed PHT = dot(self.P, H.T) # S = HPH' + R # project system uncertainty into measurement space self.S = dot(H, PHT) + R self.SI = self.inv(self.S) # K = PH'inv(S) # map system uncertainty into kalman gain self.K = dot(PHT, self.SI) # x = x + Ky # predict new x with residual scaled by the kalman gain self.x = self.x + dot(self.K, self.y) # P = (I-KH)P(I-KH)' + KRK' # This is more numerically stable # and works for non-optimal K vs the equation # P = (I-KH)P usually seen in the literature. I_KH = self._I - dot(self.K, H) self.P = dot(dot(I_KH, self.P), I_KH.T) + dot(dot(self.K, R), self.K.T) # save measurement and posterior state self.z = deepcopy(z) self.x_post = self.x.copy() self.P_post = self.P.copy() def predict_steadystate(self, u=0, B=None): """ Predict state (prior) using the Kalman filter state propagation equations. Only x is updated, P is left unchanged. See update_steadstate() for a longer explanation of when to use this method. Parameters ---------- u : np.array Optional control vector. If non-zero, it is multiplied by B to create the control input into the system. B : np.array(dim_x, dim_u), or None Optional control transition matrix; a value of None will cause the filter to use `self.B`. """ if B is None: B = self.B # x = Fx + Bu if B is not None: self.x = dot(self.F, self.x) + dot(B, u) else: self.x = dot(self.F, self.x) # save prior self.x_prior = self.x.copy() self.P_prior = self.P.copy() def update_steadystate(self, z): """ Add a new measurement (z) to the Kalman filter without recomputing the Kalman gain K, the state covariance P, or the system uncertainty S. You can use this for LTI systems since the Kalman gain and covariance converge to a fixed value. Precompute these and assign them explicitly, or run the Kalman filter using the normal predict()/update(0 cycle until they converge. The main advantage of this call is speed. We do significantly less computation, notably avoiding a costly matrix inversion. Use in conjunction with predict_steadystate(), otherwise P will grow without bound. Parameters ---------- z : (dim_z, 1): array_like measurement for this update. z can be a scalar if dim_z is 1, otherwise it must be convertible to a column vector. Examples -------- >>> cv = kinematic_kf(dim=3, order=2) # 3D const velocity filter >>> # let filter converge on representative data, then save k and P >>> for i in range(100): >>> cv.predict() >>> cv.update([i, i, i]) >>> saved_k = np.copy(cv.K) >>> saved_P = np.copy(cv.P) later on: >>> cv = kinematic_kf(dim=3, order=2) # 3D const velocity filter >>> cv.K = np.copy(saved_K) >>> cv.P = np.copy(saved_P) >>> for i in range(100): >>> cv.predict_steadystate() >>> cv.update_steadystate([i, i, i]) """ # set to None to force recompute self._log_likelihood = None self._likelihood = None self._mahalanobis = None if z is None: self.z = np.array([[None]*self.dim_z]).T self.x_post = self.x.copy() self.P_post = self.P.copy() self.y = zeros((self.dim_z, 1)) return z = reshape_z(z, self.dim_z, self.x.ndim) # y = z - Hx # error (residual) between measurement and prediction self.y = z - dot(self.H, self.x) # x = x + Ky # predict new x with residual scaled by the kalman gain self.x = self.x + dot(self.K, self.y) self.z = deepcopy(z) self.x_post = self.x.copy() self.P_post = self.P.copy() # set to None to force recompute self._log_likelihood = None self._likelihood = None self._mahalanobis = None def update_correlated(self, z, R=None, H=None): """ Add a new measurement (z) to the Kalman filter assuming that process noise and measurement noise are correlated as defined in the `self.M` matrix. A partial derivation can be found in [1] If z is None, nothing is changed. Parameters ---------- z : (dim_z, 1): array_like measurement for this update. z can be a scalar if dim_z is 1, otherwise it must be convertible to a column vector. R : np.array, scalar, or None Optionally provide R to override the measurement noise for this one call, otherwise self.R will be used. H : np.array, or None Optionally provide H to override the measurement function for this one call, otherwise self.H will be used. References ---------- .. [1] Bulut, Y. (2011). Applied Kalman filter theory (Doctoral dissertation, Northeastern University). http://people.duke.edu/~hpgavin/SystemID/References/Balut-KalmanFilter-PhD-NEU-2011.pdf """ # set to None to force recompute self._log_likelihood = None self._likelihood = None self._mahalanobis = None if z is None: self.z = np.array([[None]*self.dim_z]).T self.x_post = self.x.copy() self.P_post = self.P.copy() self.y = zeros((self.dim_z, 1)) return if R is None: R = self.R elif isscalar(R): R = eye(self.dim_z) * R # rename for readability and a tiny extra bit of speed if H is None: z = reshape_z(z, self.dim_z, self.x.ndim) H = self.H # handle special case: if z is in form [[z]] but x is not a column # vector dimensions will not match if self.x.ndim == 1 and shape(z) == (1, 1): z = z[0] if shape(z) == (): # is it scalar, e.g. z=3 or z=np.array(3) z = np.asarray([z]) # y = z - Hx # error (residual) between measurement and prediction self.y = z - dot(H, self.x) # common subexpression for speed PHT = dot(self.P, H.T) # project system uncertainty into measurement space self.S = dot(H, PHT) + dot(H, self.M) + dot(self.M.T, H.T) + R self.SI = self.inv(self.S) # K = PH'inv(S) # map system uncertainty into kalman gain self.K = dot(PHT + self.M, self.SI) # x = x + Ky # predict new x with residual scaled by the kalman gain self.x = self.x + dot(self.K, self.y) self.P = self.P - dot(self.K, dot(H, self.P) + self.M.T) self.z = deepcopy(z) self.x_post = self.x.copy() self.P_post = self.P.copy() def batch_filter(self, zs, Fs=None, Qs=None, Hs=None, Rs=None, Bs=None, us=None, update_first=False, saver=None): """ Batch processes a sequences of measurements. Parameters ---------- zs : list-like list of measurements at each time step `self.dt`. Missing measurements must be represented by `None`. Fs : None, list-like, default=None optional value or list of values to use for the state transition matrix F. If Fs is None then self.F is used for all epochs. Otherwise it must contain a list-like list of F's, one for each epoch. This allows you to have varying F per epoch. Qs : None, np.array or list-like, default=None optional value or list of values to use for the process error covariance Q. If Qs is None then self.Q is used for all epochs. Otherwise it must contain a list-like list of Q's, one for each epoch. This allows you to have varying Q per epoch. Hs : None, np.array or list-like, default=None optional list of values to use for the measurement matrix H. If Hs is None then self.H is used for all epochs. If Hs contains a single matrix, then it is used as H for all epochs. Otherwise it must contain a list-like list of H's, one for each epoch. This allows you to have varying H per epoch. Rs : None, np.array or list-like, default=None optional list of values to use for the measurement error covariance R. If Rs is None then self.R is used for all epochs. Otherwise it must contain a list-like list of R's, one for each epoch. This allows you to have varying R per epoch. Bs : None, np.array or list-like, default=None optional list of values to use for the control transition matrix B. If Bs is None then self.B is used for all epochs. Otherwise it must contain a list-like list of B's, one for each epoch. This allows you to have varying B per epoch. us : None, np.array or list-like, default=None optional list of values to use for the control input vector; If us is None then None is used for all epochs (equivalent to 0, or no control input). Otherwise it must contain a list-like list of u's, one for each epoch. update_first : bool, optional, default=False controls whether the order of operations is update followed by predict, or predict followed by update. Default is predict->update. saver : filterpy.common.Saver, optional filterpy.common.Saver object. If provided, saver.save() will be called after every epoch Returns ------- means : np.array((n,dim_x,1)) array of the state for each time step after the update. Each entry is an np.array. In other words `means[k,:]` is the state at step `k`. covariance : np.array((n,dim_x,dim_x)) array of the covariances for each time step after the update. In other words `covariance[k,:,:]` is the covariance at step `k`. means_predictions : np.array((n,dim_x,1)) array of the state for each time step after the predictions. Each entry is an np.array. In other words `means[k,:]` is the state at step `k`. covariance_predictions : np.array((n,dim_x,dim_x)) array of the covariances for each time step after the prediction. In other words `covariance[k,:,:]` is the covariance at step `k`. Examples -------- .. code-block:: Python # this example demonstrates tracking a measurement where the time # between measurement varies, as stored in dts. This requires # that F be recomputed for each epoch. The output is then smoothed # with an RTS smoother. zs = [t + random.randn()*4 for t in range (40)] Fs = [np.array([[1., dt], [0, 1]] for dt in dts] (mu, cov, _, _) = kf.batch_filter(zs, Fs=Fs) (xs, Ps, Ks, Pps) = kf.rts_smoother(mu, cov, Fs=Fs) """ #pylint: disable=too-many-statements n = np.size(zs, 0) if Fs is None: Fs = [self.F] * n if Qs is None: Qs = [self.Q] * n if Hs is None: Hs = [self.H] * n if Rs is None: Rs = [self.R] * n if Bs is None: Bs = [self.B] * n if us is None: us = [0] * n # mean estimates from Kalman Filter if self.x.ndim == 1: means = zeros((n, self.dim_x)) means_p = zeros((n, self.dim_x)) else: means = zeros((n, self.dim_x, 1)) means_p = zeros((n, self.dim_x, 1)) # state covariances from Kalman Filter covariances = zeros((n, self.dim_x, self.dim_x)) covariances_p = zeros((n, self.dim_x, self.dim_x)) if update_first: for i, (z, F, Q, H, R, B, u) in enumerate(zip(zs, Fs, Qs, Hs, Rs, Bs, us)): self.update(z, R=R, H=H) means[i, :] = self.x covariances[i, :, :] = self.P self.predict(u=u, B=B, F=F, Q=Q) means_p[i, :] = self.x covariances_p[i, :, :] = self.P if saver is not None: saver.save() else: for i, (z, F, Q, H, R, B, u) in enumerate(zip(zs, Fs, Qs, Hs, Rs, Bs, us)): self.predict(u=u, B=B, F=F, Q=Q) means_p[i, :] = self.x covariances_p[i, :, :] = self.P self.update(z, R=R, H=H) means[i, :] = self.x covariances[i, :, :] = self.P if saver is not None: saver.save() return (means, covariances, means_p, covariances_p) def rts_smoother(self, Xs, Ps, Fs=None, Qs=None, inv=np.linalg.inv): """ Runs the Rauch-Tung-Striebel Kalman smoother on a set of means and covariances computed by a Kalman filter. The usual input would come from the output of `KalmanFilter.batch_filter()`. Parameters ---------- Xs : numpy.array array of the means (state variable x) of the output of a Kalman filter. Ps : numpy.array array of the covariances of the output of a kalman filter. Fs : list-like collection of numpy.array, optional State transition matrix of the Kalman filter at each time step. Optional, if not provided the filter's self.F will be used Qs : list-like collection of numpy.array, optional Process noise of the Kalman filter at each time step. Optional, if not provided the filter's self.Q will be used inv : function, default numpy.linalg.inv If you prefer another inverse function, such as the Moore-Penrose pseudo inverse, set it to that instead: kf.inv = np.linalg.pinv Returns ------- x : numpy.ndarray smoothed means P : numpy.ndarray smoothed state covariances K : numpy.ndarray smoother gain at each step Pp : numpy.ndarray Predicted state covariances Examples -------- .. code-block:: Python zs = [t + random.randn()*4 for t in range (40)] (mu, cov, _, _) = kalman.batch_filter(zs) (x, P, K, Pp) = rts_smoother(mu, cov, kf.F, kf.Q) """ if len(Xs) != len(Ps): raise ValueError('length of Xs and Ps must be the same') n = Xs.shape[0] dim_x = Xs.shape[1] if Fs is None: Fs = [self.F] * n if Qs is None: Qs = [self.Q] * n # smoother gain K = zeros((n, dim_x, dim_x)) x, P, Pp = Xs.copy(), Ps.copy(), Ps.copy() for k in range(n-2, -1, -1): Pp[k] = dot(dot(Fs[k+1], P[k]), Fs[k+1].T) + Qs[k+1] #pylint: disable=bad-whitespace K[k] = dot(dot(P[k], Fs[k+1].T), inv(Pp[k])) x[k] += dot(K[k], x[k+1] - dot(Fs[k+1], x[k])) P[k] += dot(dot(K[k], P[k+1] - Pp[k]), K[k].T) return (x, P, K, Pp) def get_prediction(self, u=None, B=None, F=None, Q=None): """ Predict next state (prior) using the Kalman filter state propagation equations and returns it without modifying the object. Parameters ---------- u : np.array, default 0 Optional control vector. B : np.array(dim_x, dim_u), or None Optional control transition matrix; a value of None will cause the filter to use `self.B`. F : np.array(dim_x, dim_x), or None Optional state transition matrix; a value of None will cause the filter to use `self.F`. Q : np.array(dim_x, dim_x), scalar, or None Optional process noise matrix; a value of None will cause the filter to use `self.Q`. Returns ------- (x, P) : tuple State vector and covariance array of the prediction. """ if B is None: B = self.B if F is None: F = self.F if Q is None: Q = self.Q elif isscalar(Q): Q = eye(self.dim_x) * Q # x = Fx + Bu if B is not None and u is not None: x = dot(F, self.x) + dot(B, u) else: x = dot(F, self.x) # P = FPF' + Q P = self._alpha_sq * dot(dot(F, self.P), F.T) + Q return x, P def get_update(self, z=None): """ Computes the new estimate based on measurement `z` and returns it without altering the state of the filter. Parameters ---------- z : (dim_z, 1): array_like measurement for this update. z can be a scalar if dim_z is 1, otherwise it must be convertible to a column vector. Returns ------- (x, P) : tuple State vector and covariance array of the update. """ if z is None: return self.x, self.P z = reshape_z(z, self.dim_z, self.x.ndim) R = self.R H = self.H P = self.P x = self.x # error (residual) between measurement and prediction y = z - dot(H, x) # common subexpression for speed PHT = dot(P, H.T) # project system uncertainty into measurement space S = dot(H, PHT) + R # map system uncertainty into kalman gain K = dot(PHT, self.inv(S)) # predict new x with residual scaled by the kalman gain x = x + dot(K, y) # P = (I-KH)P(I-KH)' + KRK' I_KH = self._I - dot(K, H) P = dot(dot(I_KH, P), I_KH.T) + dot(dot(K, R), K.T) return x, P def residual_of(self, z): """ Returns the residual for the given measurement (z). Does not alter the state of the filter. """ z = reshape_z(z, self.dim_z, self.x.ndim) return z - dot(self.H, self.x_prior) def measurement_of_state(self, x): """ Helper function that converts a state into a measurement. Parameters ---------- x : np.array kalman state vector Returns ------- z : (dim_z, 1): array_like measurement for this update. z can be a scalar if dim_z is 1, otherwise it must be convertible to a column vector. """ return dot(self.H, x) @property def log_likelihood(self): """ log-likelihood of the last measurement. """ if self._log_likelihood is None: self._log_likelihood = logpdf(x=self.y, cov=self.S) return self._log_likelihood @property def likelihood(self): """ Computed from the log-likelihood. The log-likelihood can be very small, meaning a large negative value such as -28000. Taking the exp() of that results in 0.0, which can break typical algorithms which multiply by this value, so by default we always return a number >= sys.float_info.min. """ if self._likelihood is None: self._likelihood = exp(self.log_likelihood) if self._likelihood == 0: self._likelihood = sys.float_info.min return self._likelihood @property def mahalanobis(self): """" Mahalanobis distance of measurement. E.g. 3 means measurement was 3 standard deviations away from the predicted value. Returns ------- mahalanobis : float """ if self._mahalanobis is None: self._mahalanobis = sqrt(float(dot(dot(self.y.T, self.SI), self.y))) return self._mahalanobis @property def alpha(self): """ Fading memory setting. 1.0 gives the normal Kalman filter, and values slightly larger than 1.0 (such as 1.02) give a fading memory effect - previous measurements have less influence on the filter's estimates. This formulation of the Fading memory filter (there are many) is due to Dan Simon [1]_. """ return self._alpha_sq**.5 def log_likelihood_of(self, z): """ log likelihood of the measurement `z`. This should only be called after a call to update(). Calling after predict() will yield an incorrect result.""" if z is None: return log(sys.float_info.min) return logpdf(z, dot(self.H, self.x), self.S) @alpha.setter def alpha(self, value): if not np.isscalar(value) or value < 1: raise ValueError('alpha must be a float greater than 1') self._alpha_sq = value**2 def __repr__(self): return '\n'.join([ 'KalmanFilter object', pretty_str('dim_x', self.dim_x), pretty_str('dim_z', self.dim_z), pretty_str('dim_u', self.dim_u), pretty_str('x', self.x), pretty_str('P', self.P), pretty_str('x_prior', self.x_prior), pretty_str('P_prior', self.P_prior), pretty_str('x_post', self.x_post), pretty_str('P_post', self.P_post), pretty_str('F', self.F), pretty_str('Q', self.Q), pretty_str('R', self.R), pretty_str('H', self.H), pretty_str('K', self.K), pretty_str('y', self.y), pretty_str('S', self.S), pretty_str('SI', self.SI), pretty_str('M', self.M), pretty_str('B', self.B), pretty_str('z', self.z), pretty_str('log-likelihood', self.log_likelihood), pretty_str('likelihood', self.likelihood), pretty_str('mahalanobis', self.mahalanobis), pretty_str('alpha', self.alpha), pretty_str('inv', self.inv) ]) def test_matrix_dimensions(self, z=None, H=None, R=None, F=None, Q=None): """ Performs a series of asserts to check that the size of everything is what it should be. This can help you debug problems in your design. If you pass in H, R, F, Q those will be used instead of this object's value for those matrices. Testing `z` (the measurement) is problamatic. x is a vector, and can be implemented as either a 1D array or as a nx1 column vector. Thus Hx can be of different shapes. Then, if Hx is a single value, it can be either a 1D array or 2D vector. If either is true, z can reasonably be a scalar (either '3' or np.array('3') are scalars under this definition), a 1D, 1 element array, or a 2D, 1 element array. You are allowed to pass in any combination that works. """ if H is None: H = self.H if R is None: R = self.R if F is None: F = self.F if Q is None: Q = self.Q x = self.x P = self.P assert x.ndim == 1 or x.ndim == 2, \ "x must have one or two dimensions, but has {}".format(x.ndim) if x.ndim == 1: assert x.shape[0] == self.dim_x, \ "Shape of x must be ({},{}), but is {}".format( self.dim_x, 1, x.shape) else: assert x.shape == (self.dim_x, 1), \ "Shape of x must be ({},{}), but is {}".format( self.dim_x, 1, x.shape) assert P.shape == (self.dim_x, self.dim_x), \ "Shape of P must be ({},{}), but is {}".format( self.dim_x, self.dim_x, P.shape) assert Q.shape == (self.dim_x, self.dim_x), \ "Shape of Q must be ({},{}), but is {}".format( self.dim_x, self.dim_x, P.shape) assert F.shape == (self.dim_x, self.dim_x), \ "Shape of F must be ({},{}), but is {}".format( self.dim_x, self.dim_x, F.shape) assert np.ndim(H) == 2, \ "Shape of H must be (dim_z, {}), but is {}".format( P.shape[0], shape(H)) assert H.shape[1] == P.shape[0], \ "Shape of H must be (dim_z, {}), but is {}".format( P.shape[0], H.shape) # shape of R must be the same as HPH' hph_shape = (H.shape[0], H.shape[0]) r_shape = shape(R) if H.shape[0] == 1: # r can be scalar, 1D, or 2D in this case assert r_shape in [(), (1,), (1, 1)], \ "R must be scalar or one element array, but is shaped {}".format( r_shape) else: assert r_shape == hph_shape, \ "shape of R should be {} but it is {}".format(hph_shape, r_shape) if z is not None: z_shape = shape(z) else: z_shape = (self.dim_z, 1) # H@x must have shape of z Hx = dot(H, x) if z_shape == (): # scalar or np.array(scalar) assert Hx.ndim == 1 or shape(Hx) == (1, 1), \ "shape of z should be {}, not {} for the given H".format( shape(Hx), z_shape) elif shape(Hx) == (1,): assert z_shape[0] == 1, 'Shape of z must be {} for the given H'.format(shape(Hx)) else: assert (z_shape == shape(Hx) or (len(z_shape) == 1 and shape(Hx) == (z_shape[0], 1))), \ "shape of z should be {}, not {} for the given H".format( shape(Hx), z_shape) if np.ndim(Hx) > 1 and shape(Hx) != (1, 1): assert shape(Hx) == z_shape, \ 'shape of z should be {} for the given H, but it is {}'.format( shape(Hx), z_shape) def update(x, P, z, R, H=None, return_all=False): """ Add a new measurement (z) to the Kalman filter. If z is None, nothing is changed. This can handle either the multidimensional or unidimensional case. If all parameters are floats instead of arrays the filter will still work, and return floats for x, P as the result. update(1, 2, 1, 1, 1) # univariate update(x, P, 1 Parameters ---------- x : numpy.array(dim_x, 1), or float State estimate vector P : numpy.array(dim_x, dim_x), or float Covariance matrix z : (dim_z, 1): array_like measurement for this update. z can be a scalar if dim_z is 1, otherwise it must be convertible to a column vector. R : numpy.array(dim_z, dim_z), or float Measurement noise matrix H : numpy.array(dim_x, dim_x), or float, optional Measurement function. If not provided, a value of 1 is assumed. return_all : bool, default False If true, y, K, S, and log_likelihood are returned, otherwise only x and P are returned. Returns ------- x : numpy.array Posterior state estimate vector P : numpy.array Posterior covariance matrix y : numpy.array or scalar Residua. Difference between measurement and state in measurement space K : numpy.array Kalman gain S : numpy.array System uncertainty in measurement space log_likelihood : float log likelihood of the measurement """ #pylint: disable=bare-except if z is None: if return_all: return x, P, None, None, None, None return x, P if H is None: H = np.array([1]) if np.isscalar(H): H = np.array([H]) Hx = np.atleast_1d(dot(H, x)) z = reshape_z(z, Hx.shape[0], x.ndim) # error (residual) between measurement and prediction y = z - Hx # project system uncertainty into measurement space S = dot(dot(H, P), H.T) + R # map system uncertainty into kalman gain try: K = dot(dot(P, H.T), linalg.inv(S)) except: # can't invert a 1D array, annoyingly K = dot(dot(P, H.T), 1./S) # predict new x with residual scaled by the kalman gain x = x + dot(K, y) # P = (I-KH)P(I-KH)' + KRK' KH = dot(K, H) try: I_KH = np.eye(KH.shape[0]) - KH except: I_KH = np.array([1 - KH]) P = dot(dot(I_KH, P), I_KH.T) + dot(dot(K, R), K.T) if return_all: # compute log likelihood log_likelihood = logpdf(z, dot(H, x), S) return x, P, y, K, S, log_likelihood return x, P def update_steadystate(x, z, K, H=None): """ Add a new measurement (z) to the Kalman filter. If z is None, nothing is changed. Parameters ---------- x : numpy.array(dim_x, 1), or float State estimate vector z : (dim_z, 1): array_like measurement for this update. z can be a scalar if dim_z is 1, otherwise it must be convertible to a column vector. K : numpy.array, or float Kalman gain matrix H : numpy.array(dim_x, dim_x), or float, optional Measurement function. If not provided, a value of 1 is assumed. Returns ------- x : numpy.array Posterior state estimate vector Examples -------- This can handle either the multidimensional or unidimensional case. If all parameters are floats instead of arrays the filter will still work, and return floats for x, P as the result. >>> update_steadystate(1, 2, 1) # univariate >>> update_steadystate(x, P, z, H) """ if z is None: return x if H is None: H = np.array([1]) if np.isscalar(H): H = np.array([H]) Hx = np.atleast_1d(dot(H, x)) z = reshape_z(z, Hx.shape[0], x.ndim) # error (residual) between measurement and prediction y = z - Hx # estimate new x with residual scaled by the kalman gain return x + dot(K, y) def predict(x, P, F=1, Q=0, u=0, B=1, alpha=1.): """ Predict next state (prior) using the Kalman filter state propagation equations. Parameters ---------- x : numpy.array State estimate vector P : numpy.array Covariance matrix F : numpy.array() State Transition matrix Q : numpy.array, Optional Process noise matrix u : numpy.array, Optional, default 0. Control vector. If non-zero, it is multiplied by B to create the control input into the system. B : numpy.array, optional, default 0. Control transition matrix. alpha : float, Optional, default=1.0 Fading memory setting. 1.0 gives the normal Kalman filter, and values slightly larger than 1.0 (such as 1.02) give a fading memory effect - previous measurements have less influence on the filter's estimates. This formulation of the Fading memory filter (there are many) is due to Dan Simon Returns ------- x : numpy.array Prior state estimate vector P : numpy.array Prior covariance matrix """ if np.isscalar(F): F = np.array(F) x = dot(F, x) + dot(B, u) P = (alpha * alpha) * dot(dot(F, P), F.T) + Q return x, P def predict_steadystate(x, F=1, u=0, B=1): """ Predict next state (prior) using the Kalman filter state propagation equations. This steady state form only computes x, assuming that the covariance is constant. Parameters ---------- x : numpy.array State estimate vector P : numpy.array Covariance matrix F : numpy.array() State Transition matrix u : numpy.array, Optional, default 0. Control vector. If non-zero, it is multiplied by B to create the control input into the system. B : numpy.array, optional, default 0. Control transition matrix. Returns ------- x : numpy.array Prior state estimate vector """ if np.isscalar(F): F = np.array(F) x = dot(F, x) + dot(B, u) return x def batch_filter(x, P, zs, Fs, Qs, Hs, Rs, Bs=None, us=None, update_first=False, saver=None): """ Batch processes a sequences of measurements. Parameters ---------- zs : list-like list of measurements at each time step. Missing measurements must be represented by None. Fs : list-like list of values to use for the state transition matrix matrix. Qs : list-like list of values to use for the process error covariance. Hs : list-like list of values to use for the measurement matrix. Rs : list-like list of values to use for the measurement error covariance. Bs : list-like, optional list of values to use for the control transition matrix; a value of None in any position will cause the filter to use `self.B` for that time step. us : list-like, optional list of values to use for the control input vector; a value of None in any position will cause the filter to use 0 for that time step. update_first : bool, optional controls whether the order of operations is update followed by predict, or predict followed by update. Default is predict->update. saver : filterpy.common.Saver, optional filterpy.common.Saver object. If provided, saver.save() will be called after every epoch Returns ------- means : np.array((n,dim_x,1)) array of the state for each time step after the update. Each entry is an np.array. In other words `means[k,:]` is the state at step `k`. covariance : np.array((n,dim_x,dim_x)) array of the covariances for each time step after the update. In other words `covariance[k,:,:]` is the covariance at step `k`. means_predictions : np.array((n,dim_x,1)) array of the state for each time step after the predictions. Each entry is an np.array. In other words `means[k,:]` is the state at step `k`. covariance_predictions : np.array((n,dim_x,dim_x)) array of the covariances for each time step after the prediction. In other words `covariance[k,:,:]` is the covariance at step `k`. Examples -------- .. code-block:: Python zs = [t + random.randn()*4 for t in range (40)] Fs = [kf.F for t in range (40)] Hs = [kf.H for t in range (40)] (mu, cov, _, _) = kf.batch_filter(zs, Rs=R_list, Fs=Fs, Hs=Hs, Qs=None, Bs=None, us=None, update_first=False) (xs, Ps, Ks, Pps) = kf.rts_smoother(mu, cov, Fs=Fs, Qs=None) """ n = np.size(zs, 0) dim_x = x.shape[0] # mean estimates from Kalman Filter if x.ndim == 1: means = zeros((n, dim_x)) means_p = zeros((n, dim_x)) else: means = zeros((n, dim_x, 1)) means_p = zeros((n, dim_x, 1)) # state covariances from Kalman Filter covariances = zeros((n, dim_x, dim_x)) covariances_p = zeros((n, dim_x, dim_x)) if us is None: us = [0.] * n Bs = [0.] * n if update_first: for i, (z, F, Q, H, R, B, u) in enumerate(zip(zs, Fs, Qs, Hs, Rs, Bs, us)): x, P = update(x, P, z, R=R, H=H) means[i, :] = x covariances[i, :, :] = P x, P = predict(x, P, u=u, B=B, F=F, Q=Q) means_p[i, :] = x covariances_p[i, :, :] = P if saver is not None: saver.save() else: for i, (z, F, Q, H, R, B, u) in enumerate(zip(zs, Fs, Qs, Hs, Rs, Bs, us)): x, P = predict(x, P, u=u, B=B, F=F, Q=Q) means_p[i, :] = x covariances_p[i, :, :] = P x, P = update(x, P, z, R=R, H=H) means[i, :] = x covariances[i, :, :] = P if saver is not None: saver.save() return (means, covariances, means_p, covariances_p) def rts_smoother(Xs, Ps, Fs, Qs): """ Runs the Rauch-Tung-Striebel Kalman smoother on a set of means and covariances computed by a Kalman filter. The usual input would come from the output of `KalmanFilter.batch_filter()`. Parameters ---------- Xs : numpy.array array of the means (state variable x) of the output of a Kalman filter. Ps : numpy.array array of the covariances of the output of a kalman filter. Fs : list-like collection of numpy.array State transition matrix of the Kalman filter at each time step. Qs : list-like collection of numpy.array, optional Process noise of the Kalman filter at each time step. Returns ------- x : numpy.ndarray smoothed means P : numpy.ndarray smoothed state covariances K : numpy.ndarray smoother gain at each step pP : numpy.ndarray predicted state covariances Examples -------- .. code-block:: Python zs = [t + random.randn()*4 for t in range (40)] (mu, cov, _, _) = kalman.batch_filter(zs) (x, P, K, pP) = rts_smoother(mu, cov, kf.F, kf.Q) """ if len(Xs) != len(Ps): raise ValueError('length of Xs and Ps must be the same') n = Xs.shape[0] dim_x = Xs.shape[1] # smoother gain K = zeros((n, dim_x, dim_x)) x, P, pP = Xs.copy(), Ps.copy(), Ps.copy() for k in range(n-2, -1, -1): pP[k] = dot(dot(Fs[k], P[k]), Fs[k].T) + Qs[k] #pylint: disable=bad-whitespace K[k] = dot(dot(P[k], Fs[k].T), linalg.inv(pP[k])) x[k] += dot(K[k], x[k+1] - dot(Fs[k], x[k])) P[k] += dot(dot(K[k], P[k+1] - pP[k]), K[k].T) return (x, P, K, pP) ================================================ FILE: boxmot/trackers/ocsort/__init__.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license ================================================ FILE: boxmot/trackers/ocsort/ocsort.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license """ This script is adopted from the SORT script by Alex Bewley alex@bewley.ai """ from collections import deque import cv2 import numpy as np from boxmot.motion.kalman_filters.xysr import KalmanFilterXYSR from boxmot.trackers.basetracker import BaseTracker from boxmot.utils.association import associate, linear_assignment from boxmot.utils.ops import xyxy2xysr def k_previous_obs(observations, cur_age, k, is_obb=False): if len(observations) == 0: if is_obb: return [-1, -1, -1, -1, -1, -1] else: return [-1, -1, -1, -1, -1] for i in range(k): dt = k - i if cur_age - dt in observations: return observations[cur_age - dt] max_age = max(observations.keys()) return observations[max_age] def convert_x_to_bbox(x, score=None): """ Takes a bounding box in the centre form [x,y,s,r] and returns it in the form [x1,y1,x2,y2] where x1,y1 is the top left and x2,y2 is the bottom right """ w = np.sqrt(x[2] * x[3]) h = x[2] / w if score is None: return np.array( [x[0] - w / 2.0, x[1] - h / 2.0, x[0] + w / 2.0, x[1] + h / 2.0] ).reshape((1, 4)) else: return np.array( [x[0] - w / 2.0, x[1] - h / 2.0, x[0] + w / 2.0, x[1] + h / 2.0, score] ).reshape((1, 5)) def convert_obb_to_z(obb): """ Convert [cx, cy, w, h, theta] to [cx, cy, s, r, theta]. """ obb = np.asarray(obb, dtype=float).reshape(-1) cx, cy, w, h, theta = obb w = max(float(w), 1e-6) h = max(float(h), 1e-6) s = w * h r = w / h return np.array([cx, cy, s, r, theta], dtype=float).reshape((5, 1)) def convert_x_to_obb(x, score=None): """ Convert [x, y, s, r, theta] to [x, y, w, h, theta]. """ x = np.asarray(x, dtype=float).reshape(-1) w = np.sqrt(max(float(x[2] * x[3]), 1e-12)) h = float(x[2]) / max(w, 1e-6) if score is None: return np.array([x[0], x[1], w, h, x[4]], dtype=float).reshape((1, 5)) return np.array([x[0], x[1], w, h, x[4], score], dtype=float).reshape((1, 6)) def speed_direction(bbox1, bbox2): cx1, cy1 = (bbox1[0] + bbox1[2]) / 2.0, (bbox1[1] + bbox1[3]) / 2.0 cx2, cy2 = (bbox2[0] + bbox2[2]) / 2.0, (bbox2[1] + bbox2[3]) / 2.0 speed = np.array([cy2 - cy1, cx2 - cx1]) norm = np.sqrt((cy2 - cy1) ** 2 + (cx2 - cx1) ** 2) + 1e-6 return speed / norm def speed_direction_obb(bbox1, bbox2): cx1, cy1 = bbox1[0], bbox1[1] cx2, cy2 = bbox2[0], bbox2[1] speed = np.array([cy2 - cy1, cx2 - cx1]) norm = np.sqrt((cy2 - cy1) ** 2 + (cx2 - cx1) ** 2) + 1e-6 return speed / norm class KalmanBoxTracker(object): """ This class represents the internal state of individual tracked objects observed as bbox. """ count = 0 def __init__( self, bbox, cls, det_ind, delta_t=3, max_obs=50, Q_xy_scaling=0.01, Q_s_scaling=0.0001, is_obb=False, Q_a_scaling=0.0001, ): """ Initialises a tracker using initial bounding box. """ # define constant velocity model self.det_ind = det_ind self.Q_xy_scaling = Q_xy_scaling self.Q_s_scaling = Q_s_scaling self.Q_a_scaling = Q_a_scaling self.is_obb = is_obb if self.is_obb: self.kf = KalmanFilterXYSR(dim_x=9, dim_z=5, max_obs=max_obs) self.kf.F = np.array( [ [1, 0, 0, 0, 0, 1, 0, 0, 0], # x += vx [0, 1, 0, 0, 0, 0, 1, 0, 0], # y += vy [0, 0, 1, 0, 0, 0, 0, 1, 0], # s += vs [0, 0, 0, 1, 0, 0, 0, 0, 0], # r static [0, 0, 0, 0, 1, 0, 0, 0, 1], # theta += vtheta [0, 0, 0, 0, 0, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 0, 0, 1], ] ) self.kf.H = np.array( [ [1, 0, 0, 0, 0, 0, 0, 0, 0], # x [0, 1, 0, 0, 0, 0, 0, 0, 0], # y [0, 0, 1, 0, 0, 0, 0, 0, 0], # s [0, 0, 0, 1, 0, 0, 0, 0, 0], # r [0, 0, 0, 0, 1, 0, 0, 0, 0], # theta ] ) self.kf.R[2:, 2:] *= 10.0 self.kf.P[ 5:, 5: ] *= 1000.0 # give high uncertainty to the unobservable initial velocities self.kf.P *= 10.0 self.kf.Q[5:7, 5:7] *= self.Q_xy_scaling self.kf.Q[7, 7] *= self.Q_s_scaling self.kf.Q[8, 8] *= self.Q_a_scaling self.kf.x[:5] = convert_obb_to_z(bbox[:5]) else: self.kf = KalmanFilterXYSR(dim_x=7, dim_z=4, max_obs=max_obs) self.kf.F = np.array( [ [1, 0, 0, 0, 1, 0, 0], [0, 1, 0, 0, 0, 1, 0], [0, 0, 1, 0, 0, 0, 1], [0, 0, 0, 1, 0, 0, 0], [0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 0, 1], ] ) self.kf.H = np.array( [ [1, 0, 0, 0, 0, 0, 0], [0, 1, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0, 0], [0, 0, 0, 1, 0, 0, 0], ] ) self.kf.R[2:, 2:] *= 10.0 self.kf.P[ 4:, 4: ] *= 1000.0 # give high uncertainty to the unobservable initial velocities self.kf.P *= 10.0 self.kf.Q[4:6, 4:6] *= self.Q_xy_scaling self.kf.Q[-1, -1] *= self.Q_s_scaling self.kf.x[:4] = xyxy2xysr(bbox) self.time_since_update = 0 self.id = KalmanBoxTracker.count KalmanBoxTracker.count += 1 self.max_obs = max_obs self.history = deque([], maxlen=self.max_obs) self.hits = 0 self.hit_streak = 0 self.age = 0 self.conf = bbox[-1] self.cls = cls """ NOTE: [-1,-1,-1,-1,-1] is a compromising placeholder for non-observation status, the same for the return of function k_previous_obs. It is ugly and I do not like it. But to support generate observation array in a fast and unified way, which you would see below k_observations = np.array([k_previous_obs(...]]), let's bear it for now. """ self.last_observation = ( np.array([-1, -1, -1, -1, -1, -1]) if self.is_obb else np.array([-1, -1, -1, -1, -1]) ) self.observations = dict() self.history_observations = deque([], maxlen=self.max_obs) self.velocity = None self.delta_t = delta_t self._plot_angle = None @staticmethod def _wrap_pi_periodic(delta: float) -> float: return float((delta + (np.pi / 2.0)) % np.pi - (np.pi / 2.0)) def _state_obb_for_plot(self) -> np.ndarray: """Return current OBB state as corners with state-only angle smoothing.""" box = convert_x_to_obb(self.kf.x)[0].astype(np.float32) if box[3] > box[2]: box[2], box[3] = box[3], box[2] box[4] = box[4] + (np.pi / 2.0) target = float((box[4] + np.pi) % (2.0 * np.pi) - np.pi) if self._plot_angle is None: self._plot_angle = target else: self._plot_angle = self._plot_angle + self._wrap_pi_periodic( target - self._plot_angle ) rect = ( (float(box[0]), float(box[1])), (max(float(box[2]), 1e-4), max(float(box[3]), 1e-4)), float(np.degrees(self._plot_angle)), ) corners = cv2.boxPoints(rect).reshape(-1) return np.asarray(corners, dtype=np.float32) def update(self, bbox, cls, det_ind): """ Updates the state vector with observed bbox. """ self.det_ind = det_ind if bbox is not None: self.conf = bbox[-1] self.cls = cls if self.last_observation.sum() >= 0: # no previous observation previous_box = None for i in range(self.delta_t): dt = self.delta_t - i if self.age - dt in self.observations: previous_box = self.observations[self.age - dt] break if previous_box is None: previous_box = self.last_observation # Estimate the track speed direction with observations Δt steps away if self.is_obb: self.velocity = speed_direction_obb(previous_box, bbox) else: self.velocity = speed_direction(previous_box, bbox) """ Insert new observations. This is a ugly way to maintain both self.observations and self.history_observations. Bear it for the moment. """ self.last_observation = bbox self.observations[self.age] = bbox self.time_since_update = 0 self.hits += 1 self.hit_streak += 1 if self.is_obb: self.kf.update(convert_obb_to_z(bbox[:5])) self.history_observations.append(self._state_obb_for_plot()) else: self.kf.update(xyxy2xysr(bbox)) self.history_observations.append(bbox) else: self.kf.update(bbox) def predict(self): """ Advances the state vector and returns the predicted bounding box estimate. """ if self.is_obb: if (self.kf.x[7] + self.kf.x[2]) <= 0: self.kf.x[7] *= 0.0 else: if (self.kf.x[6] + self.kf.x[2]) <= 0: self.kf.x[6] *= 0.0 self.kf.predict() self.age += 1 if self.time_since_update > 0: self.hit_streak = 0 self.time_since_update += 1 if self.is_obb: self.history.append(convert_x_to_obb(self.kf.x)) else: self.history.append(convert_x_to_bbox(self.kf.x)) return self.history[-1] def get_state(self): """ Returns the current bounding box estimate. """ if self.is_obb: return convert_x_to_obb(self.kf.x) return convert_x_to_bbox(self.kf.x) class OcSort(BaseTracker): supports_obb = True """ Initialize the OcSort tracker with various parameters. Parameters: - det_thresh (float): Detection threshold for considering detections. - max_age (int): Maximum age (in frames) of a track before it is considered lost. - max_obs (int): Maximum number of historical observations stored for each track. Always greater than max_age by minimum 5. - min_hits (int): Minimum number of detection hits before a track is considered confirmed. - iou_threshold (float): IOU threshold for determining match between detection and tracks. - per_class (bool): Enables class-separated tracking. - nr_classes (int): Total number of object classes that the tracker will handle (for per_class=True). - asso_func (str): Algorithm name used for data association between detections and tracks. - is_obb (bool): Work with Oriented Bounding Boxes (OBB) instead of standard axis-aligned bounding boxes. OcSort-specific parameters: - min_conf (float): Minimum confidence threshold for detections to be considered in second-stage association. - delta_t (int): Time window size for velocity estimation in Kalman Filter. - inertia (float): Motion model weight for velocity direction in matching cost. - use_byte (bool): Whether to use BYTE association in the second association step. - Q_xy_scaling (float): Scaling factor for process noise in position coordinates. - Q_s_scaling (float): Scaling factor for process noise in scale coordinates. Attributes: - frame_count (int): Counter for the frames processed. - active_tracks (list): List to hold active tracks. - trackers (list): List of Kalman filter trackers. """ def __init__( self, # OcSort-specific parameters min_conf: float = 0.1, delta_t: int = 3, inertia: float = 0.2, use_byte: bool = False, Q_xy_scaling: float = 0.01, Q_s_scaling: float = 0.0001, **kwargs # BaseTracker parameters ): # Capture all init params for logging init_args = {k: v for k, v in locals().items() if k not in ('self', 'kwargs')} super().__init__(**init_args, _tracker_name='OcSort', **kwargs) # Store OcSort-specific parameters self.min_conf: float = min_conf self.asso_threshold: float = self.iou_threshold # Use from BaseTracker self.delta_t: int = delta_t self.inertia: float = inertia self.use_byte: bool = use_byte self.Q_xy_scaling: float = Q_xy_scaling self.Q_s_scaling: float = Q_s_scaling self.frame_count: int = 0 KalmanBoxTracker.count = 0 # Initialize tracker collections self.active_tracks: list = [] @BaseTracker.setup_decorator @BaseTracker.per_class_decorator def update( self, dets: np.ndarray, img: np.ndarray, embs: np.ndarray = None ) -> np.ndarray: """ Params: dets - a numpy array of detections in the format [[x1,y1,x2,y2,score],[x1,y1,x2,y2,score],...] Requires: this method must be called once for each frame even with empty detections (use np.empty((0, 5)) for frames without detections). Returns the a similar array, where the last column is the object ID. NOTE: The number of objects returned may differ from the number of detections provided. """ self.check_inputs(dets, img) self.frame_count += 1 h, w = img.shape[0:2] dets = self.detection_layout.with_detection_indices(dets) confs = self.detection_layout.confidences(dets) inds_low = confs > self.min_conf inds_high = confs < self.det_thresh inds_second = np.logical_and( inds_low, inds_high ) # self.det_thresh > score > 0.1, for second matching dets_second = dets[inds_second] # detections for second matching remain_inds = confs > self.det_thresh dets = dets[remain_inds] # get predicted locations from existing trackers. trks = np.zeros((len(self.active_tracks), self.detection_layout.box_with_conf_cols)) to_del = [] ret = [] for t, trk in enumerate(trks): pos = self.active_tracks[t].predict()[0] trk[:] = [pos[i] for i in range(self.detection_layout.box_cols)] + [0] if np.any(np.isnan(pos)): to_del.append(t) trks = np.ma.compress_rows(np.ma.masked_invalid(trks)) for t in reversed(to_del): self.active_tracks.pop(t) velocities = np.array( [ trk.velocity if trk.velocity is not None else np.array((0, 0)) for trk in self.active_tracks ] ) last_boxes = np.array([trk.last_observation for trk in self.active_tracks]) k_observations = np.array( [ k_previous_obs( trk.observations, trk.age, self.delta_t, is_obb=self.is_obb ) for trk in self.active_tracks ] ) """ First round of association """ matched, unmatched_dets, unmatched_trks = associate( dets[:, 0 : self.detection_layout.box_with_conf_cols], trks, self.asso_func, self.asso_threshold, velocities, k_observations, self.inertia, w, h, ) for m in matched: self.active_tracks[m[1]].update( dets[m[0], :-2], dets[m[0], -2], dets[m[0], -1] ) """ Second round of associaton by OCR """ # BYTE association if self.use_byte and len(dets_second) > 0 and unmatched_trks.shape[0] > 0: u_trks = trks[unmatched_trks] iou_left = self.asso_func( dets_second, u_trks ) # iou between low score detections and unmatched tracks iou_left = np.array(iou_left) if iou_left.max() > self.asso_threshold: """ NOTE: by using a lower threshold, e.g., self.asso_threshold - 0.1, you may get a higher performance especially on MOT17/MOT20 datasets. But we keep it uniform here for simplicity """ matched_indices = linear_assignment(-iou_left) to_remove_trk_indices = [] for m in matched_indices: det_ind, trk_ind = m[0], unmatched_trks[m[1]] if iou_left[m[0], m[1]] < self.asso_threshold: continue self.active_tracks[trk_ind].update( dets_second[det_ind, :-2], dets_second[det_ind, -2], dets_second[det_ind, -1], ) to_remove_trk_indices.append(trk_ind) unmatched_trks = np.setdiff1d( unmatched_trks, np.array(to_remove_trk_indices) ) if unmatched_dets.shape[0] > 0 and unmatched_trks.shape[0] > 0: left_dets = dets[unmatched_dets] left_trks = last_boxes[unmatched_trks] iou_left = self.asso_func(left_dets, left_trks) iou_left = np.array(iou_left) if iou_left.max() > self.asso_threshold: """ NOTE: by using a lower threshold, e.g., self.asso_threshold - 0.1, you may get a higher performance especially on MOT17/MOT20 datasets. But we keep it uniform here for simplicity """ rematched_indices = linear_assignment(-iou_left) to_remove_det_indices = [] to_remove_trk_indices = [] for m in rematched_indices: det_ind, trk_ind = unmatched_dets[m[0]], unmatched_trks[m[1]] if iou_left[m[0], m[1]] < self.asso_threshold: continue self.active_tracks[trk_ind].update( dets[det_ind, :-2], dets[det_ind, -2], dets[det_ind, -1] ) to_remove_det_indices.append(det_ind) to_remove_trk_indices.append(trk_ind) unmatched_dets = np.setdiff1d( unmatched_dets, np.array(to_remove_det_indices) ) unmatched_trks = np.setdiff1d( unmatched_trks, np.array(to_remove_trk_indices) ) for m in unmatched_trks: self.active_tracks[m].update(None, None, None) # create and initialise new trackers for unmatched detections for i in unmatched_dets: trk = KalmanBoxTracker( dets[i, : self.detection_layout.box_with_conf_cols], dets[i, self.detection_layout.cls_idx], dets[i, self.detection_layout.det_cols], delta_t=self.delta_t, Q_xy_scaling=self.Q_xy_scaling, Q_s_scaling=self.Q_s_scaling, Q_a_scaling=self.Q_s_scaling, max_obs=self.max_obs, is_obb=self.is_obb, ) self.active_tracks.append(trk) i = len(self.active_tracks) for trk in reversed(self.active_tracks): if trk.last_observation.sum() < 0: d = trk.get_state()[0] else: """ this is optional to use the recent observation or the kalman filter prediction, we didn't notice significant difference here """ d = trk.last_observation[: self.detection_layout.box_cols] if (trk.time_since_update < 1) and ( trk.hit_streak >= self.min_hits or self.frame_count <= self.min_hits ): # +1 as MOT benchmark requires positive ret.append( np.concatenate( (d, [trk.id + 1], [trk.conf], [trk.cls], [trk.det_ind]) ).reshape(1, -1) ) i -= 1 # remove dead tracklet if trk.time_since_update > self.max_age: self.active_tracks.pop(i) if len(ret) > 0: return np.concatenate(ret) return np.array([]) ================================================ FILE: boxmot/trackers/sfsort/__init__.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license ================================================ FILE: boxmot/trackers/sfsort/sfsort.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license # SFSORT implementation adapted for BoxMOT from __future__ import annotations from collections import deque from dataclasses import dataclass from typing import Iterable import cv2 import numpy as np from boxmot.trackers.basetracker import BaseTracker from boxmot.utils.iou import AssociationFunction from boxmot.utils.matching import linear_assignment class TrackState: """Enumeration of possible states of a track.""" Active = 0 Lost_Central = 1 Lost_Marginal = 2 @dataclass(eq=False) class Track: """Lightweight track container for SFSORT.""" bbox: np.ndarray last_frame: int track_id: int conf: float cls: int det_ind: int state: int = TrackState.Active history_observations: deque = None time_since_update: int = 0 _plot_angle: float | None = None theta_damping: float = 0.8 _theta_velocity: float = 0.0 def __post_init__(self) -> None: self.bbox = np.asarray(self.bbox, dtype=np.float32) self.conf = float(self.conf) self.cls = int(self.cls) self.det_ind = int(self.det_ind) self.theta_damping = float(np.clip(self.theta_damping, 0.0, 1.0)) if self.bbox.shape[0] == 5: self.history_observations = deque([self._state_obb_for_plot()], maxlen=50) else: self.history_observations = deque([self.bbox.copy()], maxlen=50) self.time_since_update = 0 self._theta_velocity = 0.0 @property def id(self) -> int: return self.track_id @staticmethod def _wrap_pi_periodic(delta: float) -> float: return float((delta + (np.pi / 2.0)) % np.pi - (np.pi / 2.0)) @staticmethod def _wrap_angle(angle: float) -> float: return float((angle + np.pi) % (2.0 * np.pi) - np.pi) @classmethod def _align_obb_measurement( cls, measurement: np.ndarray, reference: np.ndarray ) -> np.ndarray: """Align equivalent OBB forms to the current track state.""" aligned = np.asarray(measurement, dtype=np.float32).copy().reshape(-1) ref = np.asarray(reference, dtype=np.float32).reshape(-1) ref_w = max(float(ref[2]), 1e-6) ref_h = max(float(ref[3]), 1e-6) ref_theta = float(ref[4]) w = max(float(aligned[2]), 1e-6) h = max(float(aligned[3]), 1e-6) theta = float(aligned[4]) candidates = ( (w, h, theta), (w, h, theta + np.pi), (h, w, theta + (np.pi / 2.0)), (h, w, theta - (np.pi / 2.0)), ) best_cost = float("inf") best = candidates[0] for cand_w, cand_h, cand_theta in candidates: theta_aligned = ref_theta + cls._wrap_angle(cand_theta - ref_theta) angle_cost = abs(theta_aligned - ref_theta) size_cost = abs(np.log(max(cand_w, 1e-6) / ref_w)) + abs( np.log(max(cand_h, 1e-6) / ref_h) ) cost = angle_cost + (0.05 * size_cost) if cost < best_cost: best_cost = cost best = (cand_w, cand_h, theta_aligned) aligned[2] = float(best[0]) aligned[3] = float(best[1]) aligned[4] = float(best[2]) return aligned def _state_obb_for_plot(self) -> np.ndarray: """Return current OBB state as corners with state-only angle smoothing.""" box = self.bbox.copy() if box[3] > box[2]: box[2], box[3] = box[3], box[2] box[4] = box[4] + (np.pi / 2.0) target = float((box[4] + np.pi) % (2.0 * np.pi) - np.pi) if self._plot_angle is None: self._plot_angle = target else: self._plot_angle = self._plot_angle + self._wrap_pi_periodic( target - self._plot_angle ) rect = ( (float(box[0]), float(box[1])), (max(float(box[2]), 1e-4), max(float(box[3]), 1e-4)), float(np.degrees(self._plot_angle)), ) corners = cv2.boxPoints(rect).reshape(-1) return np.asarray(corners, dtype=np.float32) def update(self, box: np.ndarray, frame_id: int, conf: float, cls: int, det_ind: int) -> None: """Update a matched track with latest detection.""" incoming_bbox = np.asarray(box, dtype=np.float32).reshape(-1) if self.bbox.shape[0] == 5 and incoming_bbox.shape[0] == 5: aligned = self._align_obb_measurement(incoming_bbox, self.bbox) prev_theta = float(self.bbox[4]) theta_delta = self._wrap_angle(float(aligned[4]) - prev_theta) self._theta_velocity = ( (self.theta_damping * self._theta_velocity) + ((1.0 - self.theta_damping) * theta_delta) ) aligned[4] = self._wrap_angle(prev_theta + self._theta_velocity) self.bbox = aligned.astype(np.float32) else: self.bbox = incoming_bbox if self.bbox.shape[0] == 5: self.history_observations.append(self._state_obb_for_plot()) else: self.history_observations.append(self.bbox.copy()) self.state = TrackState.Active self.time_since_update = 0 self.last_frame = frame_id self.conf = float(conf) self.cls = int(cls) self.det_ind = int(det_ind) class SFSORT(BaseTracker): supports_obb = True """ SFSORT tracker (v4.2) adapted for BoxMOT. Parameters: - det_thresh (float): Detection threshold for considering detections. - max_age (int): Maximum age (in frames) of a track before it is considered lost. - max_obs (int): Maximum number of historical observations stored for each track. - min_hits (int): Minimum number of detection hits before a track is considered confirmed. - iou_threshold (float): IOU threshold for determining match between detection and tracks. - per_class (bool): Enables class-separated tracking. - nr_classes (int): Total number of object classes that the tracker will handle (for per_class=True). - asso_func (str): Algorithm name used for data association between detections and tracks. - is_obb (bool): Work with Oriented Bounding Boxes (OBB) instead of standard axis-aligned bounding boxes. SFSORT-specific parameters: - high_th (float): High confidence threshold for detections. - match_th_first (float): Match threshold for the first association step. - new_track_th (float): Confidence threshold for initializing new tracks. - low_th (float): Low confidence threshold for second association step. - match_th_second (float): Match threshold for the second association step. - dynamic_tuning (bool): Enable dynamic threshold tuning based on detection density. - cth (float): Confidence threshold for counting detections (dynamic tuning). - high_th_m (float): Dynamic adjustment scale for high_th. - new_track_th_m (float): Dynamic adjustment scale for new_track_th. - match_th_first_m (float): Dynamic adjustment scale for match_th_first. - obb_theta_damping (float): Damping factor for OBB angular-velocity updates (0=no history, 1=full history). - marginal_timeout (int): Timeout for marginally lost tracks. - central_timeout (int): Timeout for centrally lost tracks. - frame_width (int | None): Optional frame width for margin computation. - frame_height (int | None): Optional frame height for margin computation. - horizontal_margin (int | None): Horizontal margin for central loss definition. - vertical_margin (int | None): Vertical margin for central loss definition. """ def __init__( self, high_th: float | None = 0.6, match_th_first: float | None = 0.67, new_track_th: float | None = 0.7, low_th: float | None = 0.1, match_th_second: float | None = 0.3, dynamic_tuning: bool = False, cth: float | None = 0.5, high_th_m: float | None = 0.0, new_track_th_m: float | None = 0.0, match_th_first_m: float | None = 0.0, obb_theta_damping: float = 0.8, marginal_timeout: int | None = 0, central_timeout: int | None = 0, frame_width: int | None = None, frame_height: int | None = None, horizontal_margin: int | None = None, vertical_margin: int | None = None, **kwargs, ) -> None: init_args = {k: v for k, v in locals().items() if k not in ("self", "kwargs")} det_thresh = 0.6 if high_th is None else float(high_th) super().__init__(det_thresh=det_thresh, _tracker_name="SFSORT", **init_args, **kwargs) self.high_th = self._resolve_or_default(high_th, 0.6, 0.0, 1.0) self.match_th_first = self._resolve_or_default(match_th_first, 0.67, 0.0, 0.67) self.new_track_th = self._resolve_or_default(new_track_th, 0.7, self.high_th, 1.0) self.low_th = self._resolve_or_default(low_th, 0.1, 0.0, self.high_th) self.match_th_second = self._resolve_or_default(match_th_second, 0.3, 0.0, 1.0) self.dynamic_tuning = bool(dynamic_tuning) self.cth = self._resolve_or_default(cth, 0.5, self.low_th, 1.0) if self.dynamic_tuning: self.high_th_m = self._resolve_or_default(high_th_m, 0.0, 0.02, 0.1) self.new_track_th_m = self._resolve_or_default(new_track_th_m, 0.0, 0.02, 0.08) self.match_th_first_m = self._resolve_or_default(match_th_first_m, 0.0, 0.02, 0.08) else: self.high_th_m = 0.0 if high_th_m is None else float(high_th_m) self.new_track_th_m = 0.0 if new_track_th_m is None else float(new_track_th_m) self.match_th_first_m = 0.0 if match_th_first_m is None else float(match_th_first_m) self.obb_theta_damping = self._resolve_or_default(obb_theta_damping, 0.8, 0.0, 1.0) self.marginal_timeout = int(self._resolve_or_default(marginal_timeout, 0, 0, 500)) self.central_timeout = int(self._resolve_or_default(central_timeout, 0, 0, 1000)) self.frame_width = frame_width self.frame_height = frame_height self.horizontal_margin = horizontal_margin self.vertical_margin = vertical_margin self.l_margin = 0.0 self.r_margin = 0.0 self.t_margin = 0.0 self.b_margin = 0.0 self._margins_ready = False self._maybe_set_margins(frame_width, frame_height) self.id_counter = 0 self.active_tracks: list[Track] = [] self.lost_tracks: list[Track] = [] @BaseTracker.setup_decorator @BaseTracker.per_class_decorator def update(self, dets: np.ndarray, img: np.ndarray, embs: np.ndarray | None = None) -> np.ndarray: self.check_inputs(dets=dets, img=img, embs=embs) if not self._margins_ready and hasattr(self, "w") and hasattr(self, "h"): self._maybe_set_margins(self.w, self.h) self.frame_count += 1 boxes, scores, classes = self._split_detections(dets) det_inds = np.arange(len(dets)) if dets.size else np.empty((0,), dtype=int) hth, nth, mth = self._dynamic_thresholds(scores) next_active_tracks: list[Track] = [] self._purge_stale_lost_tracks() track_pool = self.active_tracks + self.lost_tracks unmatched_tracks = np.array([], dtype=int) high_score = scores > hth if high_score.any(): definite_boxes = boxes[high_score] definite_scores = scores[high_score] definite_classes = classes[high_score] definite_det_inds = det_inds[high_score] if track_pool: cost = self.calculate_cost(track_pool, definite_boxes, is_obb=self.is_obb) matches, unmatched_tracks, unmatched_detections = linear_assignment(cost, mth) for track_idx, detection_idx in matches: track = track_pool[track_idx] track.update( definite_boxes[detection_idx], self.frame_count, definite_scores[detection_idx], definite_classes[detection_idx], definite_det_inds[detection_idx], ) next_active_tracks.append(track) if track in self.lost_tracks: self.lost_tracks.remove(track) for detection_idx in unmatched_detections: if definite_scores[detection_idx] > nth: next_active_tracks.append( self._new_track( box=definite_boxes[detection_idx], frame_id=self.frame_count, conf=definite_scores[detection_idx], cls=definite_classes[detection_idx], det_ind=definite_det_inds[detection_idx], ) ) else: for detection_idx, score in enumerate(definite_scores): if score > nth: next_active_tracks.append( self._new_track( box=definite_boxes[detection_idx], frame_id=self.frame_count, conf=definite_scores[detection_idx], cls=definite_classes[detection_idx], det_ind=definite_det_inds[detection_idx], ) ) unmatched_track_pool = [track_pool[idx] for idx in unmatched_tracks] if len(unmatched_tracks) else [] next_lost_tracks = unmatched_track_pool.copy() intermediate_score = np.logical_and(self.low_th < scores, scores < hth) if intermediate_score.any() and len(unmatched_tracks): possible_boxes = boxes[intermediate_score] possible_scores = scores[intermediate_score] possible_classes = classes[intermediate_score] possible_det_inds = det_inds[intermediate_score] cost = self.calculate_cost( unmatched_track_pool, possible_boxes, iou_only=True, is_obb=self.is_obb, ) matches, _, unmatched_detections = linear_assignment(cost, self.match_th_second) for track_idx, detection_idx in matches: track = unmatched_track_pool[track_idx] track.update( possible_boxes[detection_idx], self.frame_count, possible_scores[detection_idx], possible_classes[detection_idx], possible_det_inds[detection_idx], ) next_active_tracks.append(track) if track in self.lost_tracks: self.lost_tracks.remove(track) if track in next_lost_tracks: next_lost_tracks.remove(track) if not (high_score.any() or intermediate_score.any()): next_lost_tracks = track_pool.copy() self._update_lost_tracks(next_lost_tracks) self.active_tracks = next_active_tracks.copy() outputs = [self._format_track(track) for track in next_active_tracks] return np.asarray(outputs, dtype=float) if outputs else self.empty_output(dtype=float) def _split_detections(self, dets: np.ndarray) -> tuple[np.ndarray, np.ndarray, np.ndarray]: if self.is_obb: return self._split_obb_detections(dets) return self._split_aabb_detections(dets) def _split_aabb_detections(self, dets: np.ndarray) -> tuple[np.ndarray, np.ndarray, np.ndarray]: if dets.size == 0: return ( np.empty((0, 4), dtype=np.float32), np.empty((0,), dtype=np.float32), np.empty((0,), dtype=np.float32), ) return dets[:, :4], dets[:, 4], dets[:, 5] def _split_obb_detections(self, dets: np.ndarray) -> tuple[np.ndarray, np.ndarray, np.ndarray]: if dets.size == 0: return ( np.empty((0, 5), dtype=np.float32), np.empty((0,), dtype=np.float32), np.empty((0,), dtype=np.float32), ) return dets[:, :5], dets[:, 5], dets[:, 6] def _dynamic_thresholds(self, scores: np.ndarray) -> tuple[float, float, float]: hth = self.high_th nth = self.new_track_th mth = self.match_th_first if self.dynamic_tuning: count = len(scores[scores > self.cth]) if count < 1: count = 1 lnc = np.log10(count) hth = self.clamp(hth - (self.high_th_m * lnc), 0.0, 1.0) nth = self.clamp(nth + (self.new_track_th_m * lnc), hth, 1.0) mth = self.clamp(mth - (self.match_th_first_m * lnc), 0.0, 0.67) return hth, nth, mth def _purge_stale_lost_tracks(self) -> None: for track in self.lost_tracks.copy(): if track.state == TrackState.Lost_Central: if self.frame_count - track.last_frame > self.central_timeout: self.lost_tracks.remove(track) else: if self.frame_count - track.last_frame > self.marginal_timeout: self.lost_tracks.remove(track) def _update_lost_tracks(self, next_lost_tracks: Iterable[Track]) -> None: for track in next_lost_tracks: track.time_since_update = max(0, self.frame_count - track.last_frame) if track not in self.lost_tracks: self.lost_tracks.append(track) if track.bbox.shape[0] == 5: u, v = float(track.bbox[0]), float(track.bbox[1]) else: u = track.bbox[0] + (track.bbox[2] - track.bbox[0]) / 2.0 v = track.bbox[1] + (track.bbox[3] - track.bbox[1]) / 2.0 if (self.l_margin < u < self.r_margin) and (self.t_margin < v < self.b_margin): track.state = TrackState.Lost_Central else: track.state = TrackState.Lost_Marginal def _maybe_set_margins(self, frame_width: int | None, frame_height: int | None) -> None: if frame_width is None or frame_height is None: return self.l_margin = 0.0 self.r_margin = float(frame_width) if self.horizontal_margin is not None: self.l_margin = float(self.clamp(self.horizontal_margin, 0, frame_width)) self.r_margin = float( self.clamp(frame_width - self.horizontal_margin, 0, frame_width) ) self.t_margin = 0.0 self.b_margin = float(frame_height) if self.vertical_margin is not None: self.t_margin = float(self.clamp(self.vertical_margin, 0, frame_height)) self.b_margin = float( self.clamp(frame_height - self.vertical_margin, 0, frame_height) ) self._margins_ready = True def _new_track(self, box: np.ndarray, frame_id: int, conf: float, cls: float, det_ind: int) -> Track: track = Track( bbox=box, last_frame=frame_id, track_id=self.id_counter, conf=float(conf), cls=int(cls), det_ind=int(det_ind), theta_damping=self.obb_theta_damping, ) self.id_counter += 1 return track @staticmethod def _format_track(track: Track) -> list[float]: bbox = [float(v) for v in track.bbox.tolist()] return bbox + [ float(track.track_id), float(track.conf), float(track.cls), float(track.det_ind), ] @staticmethod def clamp(value: float, min_value: float, max_value: float) -> float: return max(min_value, min(value, max_value)) @staticmethod def _resolve_or_default( value: float | None, default: float, min_value: float, max_value: float ) -> float: resolved = default if value is None else value return SFSORT.clamp(resolved, min_value, max_value) @staticmethod def _obb_to_xyxy(box: np.ndarray) -> np.ndarray: box = np.asarray(box, dtype=np.float32).reshape(-1) cx, cy, w, h, angle = box[:5] rect = ((float(cx), float(cy)), (max(float(w), 1e-4), max(float(h), 1e-4)), float(np.degrees(angle))) corners = cv2.boxPoints(rect) x1, y1 = corners.min(axis=0) x2, y2 = corners.max(axis=0) return np.array([x1, y1, x2, y2], dtype=np.float32) @staticmethod def calculate_cost( tracks: list[Track], boxes: np.ndarray, iou_only: bool = False, is_obb: bool = False, ) -> np.ndarray: """Calculates the association cost based on IoU and box similarity.""" active_boxes = [track.bbox for track in tracks] if len(active_boxes) == 0 or boxes.size == 0: return np.empty((len(active_boxes), len(boxes))) active_boxes = np.asarray(active_boxes, dtype=np.float32) boxes = np.asarray(boxes, dtype=np.float32) if is_obb: return SFSORT._calculate_cost_obb(active_boxes, boxes, iou_only=iou_only) return SFSORT._calculate_cost_aabb(active_boxes, boxes, iou_only=iou_only) @staticmethod def _calculate_cost_obb( active_boxes: np.ndarray, boxes: np.ndarray, iou_only: bool = False, ) -> np.ndarray: eps = 1e-7 iou = AssociationFunction.iou_batch_obb(active_boxes, boxes) if iou_only: return 1.0 - iou centerx1 = active_boxes[:, 0] centery1 = active_boxes[:, 1] centerx2 = boxes[:, 0] centery2 = boxes[:, 1] active_xyxy = np.vstack([SFSORT._obb_to_xyxy(box) for box in active_boxes]) boxes_xyxy = np.vstack([SFSORT._obb_to_xyxy(box) for box in boxes]) box1_width = active_boxes[:, 2] box2_width = boxes[:, 2] box1_height = active_boxes[:, 3] box2_height = boxes[:, 3] sw = np.minimum(box1_width[:, None], box2_width) / ( np.maximum(box1_width[:, None], box2_width) + eps ) sh = np.minimum(box1_height[:, None], box2_height) / ( np.maximum(box1_height[:, None], box2_height) + eps ) return SFSORT._combine_cost_terms( iou=iou, centerx1=centerx1, centery1=centery1, centerx2=centerx2, centery2=centery2, active_xyxy=active_xyxy, boxes_xyxy=boxes_xyxy, sw=sw, sh=sh, ) @staticmethod def _calculate_cost_aabb( active_boxes: np.ndarray, boxes: np.ndarray, iou_only: bool = False, ) -> np.ndarray: eps = 1e-7 b1_x1, b1_y1, b1_x2, b1_y2 = active_boxes.T b2_x1, b2_y1, b2_x2, b2_y2 = boxes.T h_intersection = ( np.minimum(b1_x2[:, None], b2_x2) - np.maximum(b1_x1[:, None], b2_x1) ).clip(0) w_intersection = ( np.minimum(b1_y2[:, None], b2_y2) - np.maximum(b1_y1[:, None], b2_y1) ).clip(0) intersection = h_intersection * w_intersection box1_height = b1_x2 - b1_x1 box2_height = b2_x2 - b2_x1 box1_width = b1_y2 - b1_y1 box2_width = b2_y2 - b2_y1 box1_area = box1_height * box1_width box2_area = box2_height * box2_width union = box2_area + box1_area[:, None] - intersection + eps iou = intersection / union if iou_only: return 1.0 - iou centerx1 = (b1_x1 + b1_x2) / 2.0 centery1 = (b1_y1 + b1_y2) / 2.0 centerx2 = (b2_x1 + b2_x2) / 2.0 centery2 = (b2_y1 + b2_y2) / 2.0 delta_w = np.abs(box2_width - box1_width[:, None]) sw = w_intersection / np.abs(w_intersection + delta_w + eps) delta_h = np.abs(box2_height - box1_height[:, None]) sh = h_intersection / np.abs(h_intersection + delta_h + eps) return SFSORT._combine_cost_terms( iou=iou, centerx1=centerx1, centery1=centery1, centerx2=centerx2, centery2=centery2, active_xyxy=active_boxes, boxes_xyxy=boxes, sw=sw, sh=sh, ) @staticmethod def _combine_cost_terms( iou: np.ndarray, centerx1: np.ndarray, centery1: np.ndarray, centerx2: np.ndarray, centery2: np.ndarray, active_xyxy: np.ndarray, boxes_xyxy: np.ndarray, sw: np.ndarray, sh: np.ndarray, ) -> np.ndarray: eps = 1e-7 inner_diag = np.abs(centerx1[:, None] - centerx2) + np.abs(centery1[:, None] - centery2) xxc1 = np.minimum(active_xyxy[:, 0][:, None], boxes_xyxy[:, 0]) yyc1 = np.minimum(active_xyxy[:, 1][:, None], boxes_xyxy[:, 1]) xxc2 = np.maximum(active_xyxy[:, 2][:, None], boxes_xyxy[:, 2]) yyc2 = np.maximum(active_xyxy[:, 3][:, None], boxes_xyxy[:, 3]) outer_diag = np.abs(xxc2 - xxc1) + np.abs(yyc2 - yyc1) outer_diag = np.maximum(outer_diag, eps) diou = iou - (inner_diag / outer_diag) bbsi = diou + sh + sw return 1.0 - (bbsi / 3.0) ================================================ FILE: boxmot/trackers/strongsort/__init__.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license ================================================ FILE: boxmot/trackers/strongsort/sort/__init__.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license ================================================ FILE: boxmot/trackers/strongsort/sort/detection.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license class Detection(object): """ This class represents a bounding box detection in a single image. Parameters ---------- tlwh : array_like Bounding box in format `(x, y, w, h)`. confidence : float Detector confidence score. feature : array_like A feature vector that describes the object contained in this image. Attributes ---------- tlwh : ndarray Bounding box in format `(top left x, top left y, width, height)`. confidence : ndarray Detector confidence score. feature : ndarray | NoneType A feature vector that describes the object contained in this image. """ def __init__(self, tlwh, conf, cls, det_ind, feat): self.tlwh = tlwh self.conf = conf self.cls = cls self.det_ind = det_ind self.feat = feat def to_xyah(self): """Convert bounding box to format `(center x, center y, aspect ratio, height)`, where the aspect ratio is `width / height`. """ ret = self.tlwh.copy() ret[:2] += ret[2:] / 2 ret[2] /= ret[3] return ret ================================================ FILE: boxmot/trackers/strongsort/sort/iou_matching.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license from __future__ import absolute_import import numpy as np from . import linear_assignment def iou(bbox, candidates): """Computer intersection over union. Parameters ---------- bbox : ndarray A bounding box in format `(top left x, top left y, width, height)`. candidates : ndarray A matrix of candidate bounding boxes (one per row) in the same format as `bbox`. Returns ------- ndarray The intersection over union in [0, 1] between the `bbox` and each candidate. A higher score means a larger fraction of the `bbox` is occluded by the candidate. """ bbox_tl, bbox_br = bbox[:2], bbox[:2] + bbox[2:] candidates_tl = candidates[:, :2] candidates_br = candidates[:, :2] + candidates[:, 2:] tl = np.c_[ np.maximum(bbox_tl[0], candidates_tl[:, 0])[:, np.newaxis], np.maximum(bbox_tl[1], candidates_tl[:, 1])[:, np.newaxis], ] br = np.c_[ np.minimum(bbox_br[0], candidates_br[:, 0])[:, np.newaxis], np.minimum(bbox_br[1], candidates_br[:, 1])[:, np.newaxis], ] wh = np.maximum(0.0, br - tl) area_intersection = wh.prod(axis=1) area_bbox = bbox[2:].prod() area_candidates = candidates[:, 2:].prod(axis=1) return area_intersection / (area_bbox + area_candidates - area_intersection) def iou_cost(tracks, detections, track_indices=None, detection_indices=None): """An intersection over union distance metric. Parameters ---------- tracks : List[deep_sort.track.Track] A list of tracks. detections : List[deep_sort.detection.Detection] A list of detections. track_indices : Optional[List[int]] A list of indices to tracks that should be matched. Defaults to all `tracks`. detection_indices : Optional[List[int]] A list of indices to detections that should be matched. Defaults to all `detections`. Returns ------- ndarray Returns a cost matrix of shape len(track_indices), len(detection_indices) where entry (i, j) is `1 - iou(tracks[track_indices[i]], detections[detection_indices[j]])`. """ if track_indices is None: track_indices = np.arange(len(tracks)) if detection_indices is None: detection_indices = np.arange(len(detections)) cost_matrix = np.zeros((len(track_indices), len(detection_indices))) for row, track_idx in enumerate(track_indices): if tracks[track_idx].time_since_update > 1: cost_matrix[row, :] = linear_assignment.INFTY_COST continue bbox = tracks[track_idx].to_tlwh() candidates = np.asarray([detections[i].tlwh for i in detection_indices]) cost_matrix[row, :] = 1.0 - iou(bbox, candidates) return cost_matrix ================================================ FILE: boxmot/trackers/strongsort/sort/linear_assignment.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license from __future__ import absolute_import import numpy as np import torch from scipy.optimize import linear_sum_assignment from boxmot.utils.matching import chi2inv95 INFTY_COST = 1e5 def min_cost_matching( distance_metric, max_distance, tracks, detections, track_indices=None, detection_indices=None, ): """Solve linear assignment problem. Parameters ---------- distance_metric : Callable[List[Track], List[Detection], List[int], List[int]) -> ndarray The distance metric is given a list of tracks and detections as well as a list of N track indices and M detection indices. The metric should return the NxM dimensional cost matrix, where element (i, j) is the association cost between the i-th track in the given track indices and the j-th detection in the given detection_indices. max_distance : float Gating threshold. Associations with cost larger than this value are disregarded. tracks : List[track.Track] A list of predicted tracks at the current time step. detections : List[detection.Detection] A list of detections at the current time step. track_indices : List[int] List of track indices that maps rows in `cost_matrix` to tracks in `tracks` (see description above). detection_indices : List[int] List of detection indices that maps columns in `cost_matrix` to detections in `detections` (see description above). Returns ------- (List[(int, int)], List[int], List[int]) Returns a tuple with the following three entries: * A list of matched track and detection indices. * A list of unmatched track indices. * A list of unmatched detection indices. """ if track_indices is None: track_indices = np.arange(len(tracks)) if detection_indices is None: detection_indices = np.arange(len(detections)) if len(detection_indices) == 0 or len(track_indices) == 0: return [], track_indices, detection_indices # Nothing to match. cost_matrix = distance_metric(tracks, detections, track_indices, detection_indices) cost_matrix[cost_matrix > max_distance] = max_distance + 1e-5 row_indices, col_indices = linear_sum_assignment(cost_matrix) matches, unmatched_tracks, unmatched_detections = [], [], [] for col, detection_idx in enumerate(detection_indices): if col not in col_indices: unmatched_detections.append(detection_idx) for row, track_idx in enumerate(track_indices): if row not in row_indices: unmatched_tracks.append(track_idx) for row, col in zip(row_indices, col_indices): track_idx = track_indices[row] detection_idx = detection_indices[col] if cost_matrix[row, col] > max_distance: unmatched_tracks.append(track_idx) unmatched_detections.append(detection_idx) else: matches.append((track_idx, detection_idx)) return matches, unmatched_tracks, unmatched_detections def matching_cascade( distance_metric, max_distance, cascade_depth, tracks, detections, track_indices=None, detection_indices=None, ): """Run matching cascade. Parameters ---------- distance_metric : Callable[List[Track], List[Detection], List[int], List[int]) -> ndarray The distance metric is given a list of tracks and detections as well as a list of N track indices and M detection indices. The metric should return the NxM dimensional cost matrix, where element (i, j) is the association cost between the i-th track in the given track indices and the j-th detection in the given detection indices. max_distance : float Gating threshold. Associations with cost larger than this value are disregarded. cascade_depth: int The cascade depth, should be se to the maximum track age. tracks : List[track.Track] A list of predicted tracks at the current time step. detections : List[detection.Detection] A list of detections at the current time step. track_indices : Optional[List[int]] List of track indices that maps rows in `cost_matrix` to tracks in `tracks` (see description above). Defaults to all tracks. detection_indices : Optional[List[int]] List of detection indices that maps columns in `cost_matrix` to detections in `detections` (see description above). Defaults to all detections. Returns ------- (List[(int, int)], List[int], List[int]) Returns a tuple with the following three entries: * A list of matched track and detection indices. * A list of unmatched track indices. * A list of unmatched detection indices. """ if track_indices is None: track_indices = list(range(len(tracks))) if detection_indices is None: detection_indices = list(range(len(detections))) unmatched_detections = detection_indices matches = [] track_indices_l = [k for k in track_indices] matches_l, _, unmatched_detections = min_cost_matching( distance_metric, max_distance, tracks, detections, track_indices_l, unmatched_detections, ) matches += matches_l unmatched_tracks = list(set(track_indices) - set(k for k, _ in matches)) return matches, unmatched_tracks, unmatched_detections def gate_cost_matrix( cost_matrix, tracks, detections, track_indices, detection_indices, mc_lambda, gated_cost=INFTY_COST, only_position=False, ): """Invalidate infeasible entries in cost matrix based on the state distributions obtained by Kalman filtering. Parameters ---------- kf : The Kalman filter. cost_matrix : ndarray The NxM dimensional cost matrix, where N is the number of track indices and M is the number of detection indices, such that entry (i, j) is the association cost between `tracks[track_indices[i]]` and `detections[detection_indices[j]]`. tracks : List[track.Track] A list of predicted tracks at the current time step. detections : List[detection.Detection] A list of detections at the current time step. track_indices : List[int] List of track indices that maps rows in `cost_matrix` to tracks in `tracks` (see description above). detection_indices : List[int] List of detection indices that maps columns in `cost_matrix` to detections in `detections` (see description above). gated_cost : Optional[float] Entries in the cost matrix corresponding to infeasible associations are set this value. Defaults to a very large value. only_position : Optional[bool] If True, only the x, y position of the state distribution is considered during gating. Defaults to False. Returns ------- ndarray Returns the modified cost matrix. """ gating_threshold = chi2inv95[4] measurements = np.asarray([detections[i].to_xyah() for i in detection_indices]) for row, track_idx in enumerate(track_indices): track = tracks[track_idx] gating_distance = track.kf.gating_distance( track.mean, track.covariance, measurements, only_position ) cost_matrix[row, gating_distance > gating_threshold] = gated_cost cost_matrix[row] = ( mc_lambda * cost_matrix[row] + (1 - mc_lambda) * gating_distance ) return cost_matrix def _cosine_distance(a, b, data_is_normalized=False): """Compute pair-wise cosine distance between points in `a` and `b`. Parameters ---------- a : array_like An NxM matrix of N samples of dimensionality M. b : array_like An LxM matrix of L samples of dimensionality M. data_is_normalized : Optional[bool] If True, assumes rows in a and b are unit length vectors. Otherwise, a and b are explicitly normalized to lenght 1. Returns ------- ndarray Returns a matrix of size len(a), len(b) such that eleement (i, j) contains the squared distance between `a[i]` and `b[j]`. """ if not data_is_normalized: a = np.asarray(a) / np.linalg.norm(a, axis=1, keepdims=True) b = np.asarray(b) / np.linalg.norm(b, axis=1, keepdims=True) return 1.0 - np.dot(a, b.T) def _pdist(a, b): """Compute pair-wise squared distance between points in `a` and `b`. Parameters ---------- a : array_like An NxM matrix of N samples of dimensionality M. b : array_like An LxM matrix of L samples of dimensionality M. Returns ------- ndarray Returns a matrix of size len(a), len(b) such that eleement (i, j) contains the squared distance between `a[i]` and `b[j]`. """ a, b = np.asarray(a), np.asarray(b) if len(a) == 0 or len(b) == 0: return np.zeros((len(a), len(b))) a2, b2 = np.square(a).sum(axis=1), np.square(b).sum(axis=1) r2 = -2.0 * np.dot(a, b.T) + a2[:, None] + b2[None, :] r2 = np.clip(r2, 0.0, float(np.inf)) return r2 def _nn_euclidean_distance(x, y): """Helper function for nearest neighbor distance metric (Euclidean). Parameters ---------- x : ndarray A matrix of N row-vectors (sample points). y : ndarray A matrix of M row-vectors (query points). Returns ------- ndarray A vector of length M that contains for each entry in `y` the smallest Euclidean distance to a sample in `x`. """ # x_ = torch.from_numpy(np.asarray(x) / np.linalg.norm(x, axis=1, keepdims=True)) # y_ = torch.from_numpy(np.asarray(y) / np.linalg.norm(y, axis=1, keepdims=True)) distances = distances = _pdist(x, y) return np.maximum(0.0, torch.min(distances, axis=0)[0].numpy()) def _nn_cosine_distance(x, y): """Helper function for nearest neighbor distance metric (cosine). Parameters ---------- x : ndarray A matrix of N row-vectors (sample points). y : ndarray A matrix of M row-vectors (query points). Returns ------- ndarray A vector of length M that contains for each entry in `y` the smallest cosine distance to a sample in `x`. """ x_ = torch.from_numpy(np.asarray(x)) y_ = torch.from_numpy(np.asarray(y)) distances = _cosine_distance(x_, y_) distances = distances return distances.min(axis=0) class NearestNeighborDistanceMetric(object): """ A nearest neighbor distance metric that, for each target, returns the closest distance to any sample that has been observed so far. Parameters ---------- metric : str Either "euclidean" or "cosine". matching_threshold: float The matching threshold. Samples with larger distance are considered an invalid match. budget : Optional[int] If not None, fix samples per class to at most this number. Removes the oldest samples when the budget is reached. Attributes ---------- samples : Dict[int -> List[ndarray]] A dictionary that maps from target identities to the list of samples that have been observed so far. """ def __init__(self, metric, matching_threshold, budget=None): if metric == "euclidean": self._metric = _nn_euclidean_distance elif metric == "cosine": self._metric = _nn_cosine_distance else: raise ValueError("Invalid metric; must be either 'euclidean' or 'cosine'") self.matching_threshold = matching_threshold self.budget = budget self.samples = {} def partial_fit(self, features, targets, active_targets): """Update the distance metric with new data. Parameters ---------- features : ndarray An NxM matrix of N features of dimensionality M. targets : ndarray An integer array of associated target identities. active_targets : List[int] A list of targets that are currently present in the scene. """ for feature, target in zip(features, targets): self.samples.setdefault(target, []).append(feature) if self.budget is not None: self.samples[target] = self.samples[target][-self.budget :] self.samples = {k: self.samples[k] for k in active_targets} def distance(self, features, targets): """Compute distance between features and targets. Parameters ---------- features : ndarray An NxM matrix of N features of dimensionality M. targets : List[int] A list of targets to match the given `features` against. Returns ------- ndarray Returns a cost matrix of shape len(targets), len(features), where element (i, j) contains the closest squared distance between `targets[i]` and `features[j]`. """ cost_matrix = np.zeros((len(targets), len(features))) for i, target in enumerate(targets): cost_matrix[i, :] = self._metric(self.samples[target], features) return cost_matrix ================================================ FILE: boxmot/trackers/strongsort/sort/track.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license import os import numpy as np from boxmot.motion.kalman_filters.xyah import KalmanFilterXYAH class TrackState: """ Enumeration type for the single target track state. Newly created tracks are classified as `tentative` until enough evidence has been collected. Then, the track state is changed to `confirmed`. Tracks that are no longer alive are classified as `deleted` to mark them for removal from the set of active tracks. """ Tentative = 1 Confirmed = 2 Deleted = 3 class Track: """ A single target track with state space `(x, y, a, h)` and associated velocities, where `(x, y)` is the center of the bounding box, `a` is the aspect ratio and `h` is the height. Parameters ---------- mean : ndarray Mean vector of the initial state distribution. covariance : ndarray Covariance matrix of the initial state distribution. track_id : int A unique track identifier. n_init : int Number of consecutive detections before the track is confirmed. The track state is set to `Deleted` if a miss occurs within the first `n_init` frames. max_age : int The maximum number of consecutive misses before the track state is set to `Deleted`. feature : Optional[ndarray] Feature vector of the detection this track originates from. If not None, this feature is added to the `features` cache. Attributes ---------- mean : ndarray Mean vector of the initial state distribution. covariance : ndarray Covariance matrix of the initial state distribution. track_id : int A unique track identifier. hits : int Total number of measurement updates. age : int Total number of frames since first occurance. time_since_update : int Total number of frames since last measurement update. state : TrackState The current track state. features : List[ndarray] A cache of features. On each measurement update, the associated feature vector is added to this list. """ def __init__( self, detection, id, n_init, max_age, ema_alpha, ): self.id = id self.bbox = detection.to_xyah() self.conf = detection.conf self.cls = detection.cls self.det_ind = detection.det_ind self.hits = 1 self.age = 1 self.time_since_update = 0 self.ema_alpha = ema_alpha # start with confirmed in Ci as test expect equal amount of outputs as inputs self.state = ( TrackState.Confirmed if ( os.getenv("GITHUB_ACTIONS") == "true" and os.getenv("GITHUB_JOB") != "mot-metrics-benchmark" ) else TrackState.Tentative ) self.features = [] if detection.feat is not None: detection.feat /= np.linalg.norm(detection.feat) self.features.append(detection.feat) self._n_init = n_init self._max_age = max_age self.kf = KalmanFilterXYAH() self.mean, self.covariance = self.kf.initiate(self.bbox) def to_tlwh(self): """Get current position in bounding box format `(top left x, top left y, width, height)`. Returns ------- ndarray The bounding box. """ ret = self.mean[:4].copy() ret[2] *= ret[3] ret[:2] -= ret[2:] / 2 return ret def to_tlbr(self): """Get kf estimated current position in bounding box format `(min x, miny, max x, max y)`. Returns ------- ndarray The predicted kf bounding box. """ ret = self.to_tlwh() ret[2:] = ret[:2] + ret[2:] return ret def camera_update(self, warp_matrix): [a, b] = warp_matrix warp_matrix = np.array([a, b, [0, 0, 1]]) warp_matrix = warp_matrix.tolist() x1, y1, x2, y2 = self.to_tlbr() x1_, y1_, _ = warp_matrix @ np.array([x1, y1, 1]).T x2_, y2_, _ = warp_matrix @ np.array([x2, y2, 1]).T w, h = x2_ - x1_, y2_ - y1_ cx, cy = x1_ + w / 2, y1_ + h / 2 self.mean[:4] = [cx, cy, w / h, h] def increment_age(self): self.age += 1 self.time_since_update += 1 def predict(self): """Propagate the state distribution to the current time step using a Kalman filter prediction step. """ self.mean, self.covariance = self.kf.predict(self.mean, self.covariance) self.age += 1 self.time_since_update += 1 def update(self, detection): """Perform Kalman filter measurement update step and update the feature cache. Parameters ---------- detection : Detection The associated detection. """ self.bbox = detection.to_xyah() self.conf = detection.conf self.cls = detection.cls self.det_ind = detection.det_ind self.mean, self.covariance = self.kf.update( self.mean, self.covariance, self.bbox, self.conf ) feature = detection.feat / np.linalg.norm(detection.feat) smooth_feat = ( self.ema_alpha * self.features[-1] + (1 - self.ema_alpha) * feature ) smooth_feat /= np.linalg.norm(smooth_feat) self.features = [smooth_feat] self.hits += 1 self.time_since_update = 0 if self.state == TrackState.Tentative and self.hits >= self._n_init: self.state = TrackState.Confirmed def mark_missed(self): """Mark this track as missed (no association at the current time step).""" if self.state == TrackState.Tentative: self.state = TrackState.Deleted elif self.time_since_update > self._max_age: self.state = TrackState.Deleted def is_tentative(self): """Returns True if this track is tentative (unconfirmed).""" return self.state == TrackState.Tentative def is_confirmed(self): """Returns True if this track is confirmed.""" return self.state == TrackState.Confirmed def is_deleted(self): """Returns True if this track is dead and should be deleted.""" return self.state == TrackState.Deleted ================================================ FILE: boxmot/trackers/strongsort/sort/tracker.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license from __future__ import absolute_import import numpy as np from boxmot.motion.cmc import get_cmc_method from boxmot.trackers.strongsort.sort import iou_matching, linear_assignment from boxmot.trackers.strongsort.sort.track import Track from boxmot.utils.matching import chi2inv95 class Tracker: """ This is the multi-target tracker. Parameters ---------- metric : nn_matching.NearestNeighborDistanceMetric A distance metric for measurement-to-track association. max_age : int Maximum number of missed misses before a track is deleted. n_init : int Number of consecutive detections before the track is confirmed. The track state is set to `Deleted` if a miss occurs within the first `n_init` frames. Attributes ---------- metric : nn_matching.NearestNeighborDistanceMetric The distance metric used for measurement to track association. max_age : int Maximum number of missed misses before a track is deleted. n_init : int Number of frames that a track remains in initialization phase. tracks : List[Track] The list of active tracks at the current time step. """ GATING_THRESHOLD = np.sqrt(chi2inv95[4]) def __init__( self, metric, max_iou_dist=0.9, max_age=30, n_init=3, _lambda=0, ema_alpha=0.9, mc_lambda=0.995, ): self.metric = metric self.max_iou_dist = max_iou_dist self.max_age = max_age self.n_init = n_init self._lambda = _lambda self.ema_alpha = ema_alpha self.mc_lambda = mc_lambda self.tracks = [] self._next_id = 1 self.cmc = get_cmc_method("ecc")() def predict(self): """Propagate track state distributions one time step forward. This function should be called once every time step, before `update`. """ for track in self.tracks: track.predict() def increment_ages(self): for track in self.tracks: track.increment_age() track.mark_missed() def update(self, detections): """Perform measurement update and track management. Parameters ---------- detections : List[deep_sort.detection.Detection] A list of detections at the current time step. """ # Run matching cascade. matches, unmatched_tracks, unmatched_detections = self._match(detections) # Update track set. for track_idx, detection_idx in matches: self.tracks[track_idx].update(detections[detection_idx]) for track_idx in unmatched_tracks: self.tracks[track_idx].mark_missed() for detection_idx in unmatched_detections: self._initiate_track(detections[detection_idx]) self.tracks = [t for t in self.tracks if not t.is_deleted()] # Update distance metric. active_targets = [t.id for t in self.tracks if t.is_confirmed()] features, targets = [], [] for track in self.tracks: if not track.is_confirmed(): continue features += track.features targets += [track.id for _ in track.features] self.metric.partial_fit( np.asarray(features), np.asarray(targets), active_targets ) def _match(self, detections): def gated_metric(tracks, dets, track_indices, detection_indices): features = np.array([dets[i].feat for i in detection_indices]) targets = np.array([tracks[i].id for i in track_indices]) cost_matrix = self.metric.distance(features, targets) cost_matrix = linear_assignment.gate_cost_matrix( cost_matrix, tracks, dets, track_indices, detection_indices, self.mc_lambda, ) return cost_matrix # Split track set into confirmed and unconfirmed tracks. confirmed_tracks = [i for i, t in enumerate(self.tracks) if t.is_confirmed()] unconfirmed_tracks = [i for i, t in enumerate(self.tracks) if not t.is_confirmed()] # Associate confirmed tracks using appearance features. matches_a, unmatched_tracks_a, unmatched_detections = linear_assignment.matching_cascade( gated_metric, self.metric.matching_threshold, self.max_age, self.tracks, detections, confirmed_tracks, ) # Associate remaining tracks together with unconfirmed tracks using IOU. iou_track_candidates = unconfirmed_tracks + [ k for k in unmatched_tracks_a if self.tracks[k].time_since_update == 1 ] unmatched_tracks_a = [ k for k in unmatched_tracks_a if self.tracks[k].time_since_update != 1 ] matches_b, unmatched_tracks_b, unmatched_detections = linear_assignment.min_cost_matching( iou_matching.iou_cost, self.max_iou_dist, self.tracks, detections, iou_track_candidates, unmatched_detections, ) matches = matches_a + matches_b unmatched_tracks = list(set(unmatched_tracks_a + unmatched_tracks_b)) return matches, unmatched_tracks, unmatched_detections def _initiate_track(self, detection): self.tracks.append( Track( detection, self._next_id, self.n_init, self.max_age, self.ema_alpha, ) ) self._next_id += 1 ================================================ FILE: boxmot/trackers/strongsort/strongsort.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license from pathlib import Path import numpy as np from torch import device from boxmot.motion.cmc import get_cmc_method from boxmot.reid.core.auto_backend import ReidAutoBackend from boxmot.trackers.basetracker import BaseTracker from boxmot.trackers.strongsort.sort.detection import Detection from boxmot.trackers.strongsort.sort.linear_assignment import \ NearestNeighborDistanceMetric from boxmot.trackers.strongsort.sort.tracker import Tracker from boxmot.utils.ops import xyxy2tlwh class StrongSort(BaseTracker): """ Initialize the StrongSort tracker with various parameters. Parameters: - reid_weights (Path): Path to the re-identification model weights. - device (torch.device): Device to run the model on (e.g., 'cpu', 'cuda'). - half (bool): Whether to use half-precision (fp16) for faster inference. - det_thresh (float): Detection threshold for considering detections. - max_age (int): Maximum age (in frames) of a track before it is considered lost. - max_obs (int): Maximum number of historical observations stored for each track. Always greater than max_age by minimum 5. - min_hits (int): Minimum number of detection hits before a track is considered confirmed. - iou_threshold (float): IOU threshold for determining match between detection and tracks. - per_class (bool): Enables class-separated tracking. - nr_classes (int): Total number of object classes that the tracker will handle (for per_class=True). - asso_func (str): Algorithm name used for data association between detections and tracks. - is_obb (bool): Work with Oriented Bounding Boxes (OBB) instead of standard axis-aligned bounding boxes. StrongSort-specific parameters: - min_conf (float): Minimum confidence threshold for detections. - max_cos_dist (float): Maximum cosine distance for ReID feature matching in Nearest Neighbor Distance Metric. - max_iou_dist (float): Maximum IoU distance for data association. - n_init (int): Number of consecutive frames required to confirm a track. - nn_budget (int): Maximum size of the feature library for Nearest Neighbor Distance Metric. - mc_lambda (float): Weight for motion consistency in the track state estimation. - ema_alpha (float): Alpha value for exponential moving average (EMA) update of appearance features. Attributes: - model: ReID model for appearance feature extraction. - tracker: StrongSort tracker instance. - cmc: Camera motion compensation object. """ def __init__( self, reid_weights: Path, device: device, half: bool, # StrongSort-specific parameters min_conf: float = 0.1, max_cos_dist: float = 0.2, max_iou_dist: float = 0.7, n_init: int = 3, nn_budget: int = 100, mc_lambda: float = 0.98, ema_alpha: float = 0.9, **kwargs # BaseTracker parameters ): # Capture all init params for logging init_args = {k: v for k, v in locals().items() if k not in ('self', 'kwargs')} super().__init__(**init_args, _tracker_name='StrongSort', **kwargs) # Store StrongSort-specific parameters self.min_conf = min_conf # Initialize ReID model self.model = ReidAutoBackend( weights=reid_weights, device=device, half=half ).model # Initialize StrongSort tracker self.tracker = Tracker( metric=NearestNeighborDistanceMetric("cosine", max_cos_dist, nn_budget), max_iou_dist=max_iou_dist, max_age=self.max_age, n_init=n_init, mc_lambda=mc_lambda, ema_alpha=ema_alpha, ) # Initialize camera motion compensation self.cmc = get_cmc_method("ecc")() @BaseTracker.per_class_decorator def update( self, dets: np.ndarray, img: np.ndarray, embs: np.ndarray = None ) -> np.ndarray: assert isinstance( dets, np.ndarray ), f"Unsupported 'dets' input format '{type(dets)}', valid format is np.ndarray" assert isinstance( img, np.ndarray ), f"Unsupported 'img' input format '{type(img)}', valid format is np.ndarray" assert ( len(dets.shape) == 2 ), "Unsupported 'dets' dimensions, valid number of dimensions is two" assert ( dets.shape[1] == 6 ), "Unsupported 'dets' 2nd dimension lenght, valid lenghts is 6" if embs is not None: assert ( dets.shape[0] == embs.shape[0] ), "Missmatch between detections and embeddings sizes" dets = np.hstack([dets, np.arange(len(dets)).reshape(-1, 1)]) remain_inds = dets[:, 4] >= self.min_conf dets = dets[remain_inds] xyxy = dets[:, 0:4] confs = dets[:, 4] clss = dets[:, 5] det_ind = dets[:, 6] if len(self.tracker.tracks) >= 1: warp_matrix = self.cmc.apply(img, xyxy) for track in self.tracker.tracks: track.camera_update(warp_matrix) # extract appearance information for each detection if embs is not None: features = embs[remain_inds] else: features = self.model.get_features(xyxy, img) tlwh = xyxy2tlwh(xyxy) detections = [ Detection(box, conf, cls, det_ind, feat) for box, conf, cls, det_ind, feat in zip( tlwh, confs, clss, det_ind, features ) ] # update tracker self.tracker.predict() self.tracker.update(detections) # output bbox identities outputs = [] for track in self.tracker.tracks: if not track.is_confirmed() or track.time_since_update >= 1: continue x1, y1, x2, y2 = track.to_tlbr() id = track.id conf = track.conf cls = track.cls det_ind = track.det_ind outputs.append( np.concatenate( ([x1, y1, x2, y2], [id], [conf], [cls], [det_ind]) ).reshape(1, -1) ) if len(outputs) > 0: return np.concatenate(outputs) return np.array([]) def reset(self): pass ================================================ FILE: boxmot/trackers/strongsort/strongsort_kf.py ================================================ # vim: expandtab:ts=4:sw=4 import numpy as np import scipy.linalg """ Table for the 0.95 quantile of the chi-square distribution with N degrees of freedom (contains values for N=1, ..., 9). Taken from MATLAB/Octave's chi2inv function and used as Mahalanobis gating threshold. """ chi2inv95 = { 1: 3.8415, 2: 5.9915, 3: 7.8147, 4: 9.4877, 5: 11.070, 6: 12.592, 7: 14.067, 8: 15.507, 9: 16.919, } class KalmanFilter(object): """ A simple Kalman filter for tracking bounding boxes in image space. The 8-dimensional state space x, y, a, h, vx, vy, va, vh contains the bounding box center position (x, y), aspect ratio a, height h, and their respective velocities. Object motion follows a constant velocity model. The bounding box location (x, y, a, h) is taken as direct observation of the state space (linear observation model). """ def __init__(self): ndim, dt = 4, 1.0 # Create Kalman filter model matrices. self._motion_mat = np.eye(2 * ndim, 2 * ndim) for i in range(ndim): self._motion_mat[i, ndim + i] = dt self._update_mat = np.eye(ndim, 2 * ndim) # Motion and observation uncertainty are chosen relative to the current # state estimate. These weights control the amount of uncertainty in # the model. This is a bit hacky. self._std_weight_position = 1.0 / 20 self._std_weight_velocity = 1.0 / 160 def initiate(self, measurement): """Create track from unassociated measurement. Parameters ---------- measurement : ndarray Bounding box coordinates (x, y, a, h) with center position (x, y), aspect ratio a, and height h. Returns ------- (ndarray, ndarray) Returns the mean vector (8 dimensional) and covariance matrix (8x8 dimensional) of the new track. Unobserved velocities are initialized to 0 mean. """ mean_pos = measurement mean_vel = np.zeros_like(mean_pos) mean = np.r_[mean_pos, mean_vel] std = [ 2 * self._std_weight_position * measurement[3], 2 * self._std_weight_position * measurement[3], 1e-2, 2 * self._std_weight_position * measurement[3], 10 * self._std_weight_velocity * measurement[3], 10 * self._std_weight_velocity * measurement[3], 1e-5, 10 * self._std_weight_velocity * measurement[3], ] covariance = np.diag(np.square(std)) return mean, covariance def predict(self, mean, covariance): """Run Kalman filter prediction step. Parameters ---------- mean : ndarray The 8 dimensional mean vector of the object state at the previous time step. covariance : ndarray The 8x8 dimensional covariance matrix of the object state at the previous time step. Returns ------- (ndarray, ndarray) Returns the mean vector and covariance matrix of the predicted state. Unobserved velocities are initialized to 0 mean. """ std_pos = [ self._std_weight_position * mean[3], self._std_weight_position * mean[3], 1e-2, self._std_weight_position * mean[3], ] std_vel = [ self._std_weight_velocity * mean[3], self._std_weight_velocity * mean[3], 1e-5, self._std_weight_velocity * mean[3], ] motion_cov = np.diag(np.square(np.r_[std_pos, std_vel])) mean = np.dot(self._motion_mat, mean) covariance = np.linalg.multi_dot(( self._motion_mat, covariance, self._motion_mat.T)) + motion_cov return mean, covariance def project(self, mean, covariance, confidence=0.0): """Project state distribution to measurement space. Parameters ---------- mean : ndarray The state's mean vector (8 dimensional array). covariance : ndarray The state's covariance matrix (8x8 dimensional). confidence: (dyh) 检测框置信度 Returns ------- (ndarray, ndarray) Returns the projected mean and covariance matrix of the given state estimate. """ std = [ self._std_weight_position * mean[3], self._std_weight_position * mean[3], 1e-1, self._std_weight_position * mean[3], ] std = [(1 - confidence) * x for x in std] innovation_cov = np.diag(np.square(std)) mean = np.dot(self._update_mat, mean) covariance = np.linalg.multi_dot( (self._update_mat, covariance, self._update_mat.T) ) return mean, covariance + innovation_cov def update(self, mean, covariance, measurement, confidence=0.0): """Run Kalman filter correction step. Parameters ---------- mean : ndarray The predicted state's mean vector (8 dimensional). covariance : ndarray The state's covariance matrix (8x8 dimensional). measurement : ndarray The 4 dimensional measurement vector (x, y, a, h), where (x, y) is the center position, a the aspect ratio, and h the height of the bounding box. confidence: (dyh)检测框置信度 Returns ------- (ndarray, ndarray) Returns the measurement-corrected state distribution. """ projected_mean, projected_cov = self.project(mean, covariance, confidence) chol_factor, lower = scipy.linalg.cho_factor( projected_cov, lower=True, check_finite=False ) kalman_gain = scipy.linalg.cho_solve( (chol_factor, lower), np.dot(covariance, self._update_mat.T).T, check_finite=False, ).T innovation = measurement - projected_mean new_mean = mean + np.dot(innovation, kalman_gain.T) new_covariance = covariance - np.linalg.multi_dot( (kalman_gain, projected_cov, kalman_gain.T) ) return new_mean, new_covariance def gating_distance(self, mean, covariance, measurements, only_position=False): """Compute gating distance between state distribution and measurements. A suitable distance threshold can be obtained from `chi2inv95`. If `only_position` is False, the chi-square distribution has 4 degrees of freedom, otherwise 2. Parameters ---------- mean : ndarray Mean vector over the state distribution (8 dimensional). covariance : ndarray Covariance of the state distribution (8x8 dimensional). measurements : ndarray An Nx4 dimensional matrix of N measurements, each in format (x, y, a, h) where (x, y) is the bounding box center position, a the aspect ratio, and h the height. only_position : Optional[bool] If True, distance computation is done with respect to the bounding box center position only. Returns ------- ndarray Returns an array of length N, where the i-th element contains the squared Mahalanobis distance between (mean, covariance) and `measurements[i]`. """ mean, covariance = self.project(mean, covariance) if only_position: mean, covariance = mean[:2], covariance[:2, :2] measurements = measurements[:, :2] cholesky_factor = np.linalg.cholesky(covariance) d = measurements - mean z = scipy.linalg.solve_triangular( cholesky_factor, d.T, lower=True, check_finite=False, overwrite_b=True ) squared_maha = np.sum(z * z, axis=0) return squared_maha ================================================ FILE: boxmot/trackers/tracker_zoo.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license import importlib import yaml from boxmot.utils import TRACKER_CONFIGS REID_TRACKERS = ["strongsort", "botsort", "deepocsort", "hybridsort", "boosttrack"] TRACKER_MAPPING = { "strongsort": "boxmot.trackers.strongsort.strongsort.StrongSort", "ocsort" : "boxmot.trackers.ocsort.ocsort.OcSort", "bytetrack" : "boxmot.trackers.bytetrack.bytetrack.ByteTrack", "sfsort" : "boxmot.trackers.sfsort.sfsort.SFSORT", "botsort" : "boxmot.trackers.botsort.botsort.BotSort", "deepocsort": "boxmot.trackers.deepocsort.deepocsort.DeepOcSort", "hybridsort": "boxmot.trackers.hybridsort.hybridsort.HybridSort", "boosttrack": "boxmot.trackers.boosttrack.boosttrack.BoostTrack", } def get_tracker_config(tracker_type): """Returns the path to the tracker configuration file.""" return TRACKER_CONFIGS / f"{tracker_type}.yaml" def create_tracker( tracker_type, tracker_config=None, reid_weights=None, device=None, half=None, per_class=None, evolve_param_dict=None, ): """ Creates and returns an instance of the specified tracker type. Parameters: - tracker_type: The type of the tracker (e.g., 'strongsort', 'ocsort'). - tracker_config: Path to the tracker configuration file. - reid_weights: Weights for ReID (re-identification). - device: Device to run the tracker on (e.g., 'cpu', 'cuda'). - half: Boolean indicating whether to use half-precision. - per_class: Boolean for class-specific tracking (optional). - evolve_param_dict: A dictionary of parameters for evolving the tracker. Returns: - An instance of the selected tracker. Raises: - ValueError: If `tracker_type` is not recognized. """ if tracker_type not in TRACKER_MAPPING: available = ", ".join(TRACKER_MAPPING.keys()) raise ValueError(f"Unknown tracker type: '{tracker_type}'. Available trackers are: {available}") # Load configuration from file or use provided dictionary if evolve_param_dict is None: if tracker_config is None: # Load default tracker config tracker_config = get_tracker_config(tracker_type) with open(tracker_config, "r") as f: yaml_config = yaml.safe_load(f) tracker_args = { param: details["default"] for param, details in yaml_config.items() } else: tracker_args = evolve_param_dict.copy() # Prepare arguments tracker_args["per_class"] = per_class if tracker_type in REID_TRACKERS: tracker_args.update({ "reid_weights": reid_weights, "device": device, "half": half, }) # Tracker-specific adjustments if tracker_type == "strongsort": tracker_args.pop("per_class", None) # Dynamically import and instantiate the correct tracker class module_path, class_name = TRACKER_MAPPING[tracker_type].rsplit(".", 1) module = importlib.import_module(module_path) tracker_class = getattr(module, class_name) # Return the instantiated tracker class with arguments and warmed-up models tracker = tracker_class(**tracker_args) if hasattr(tracker, "model"): tracker.model.warmup() return tracker ================================================ FILE: boxmot/utils/__init__.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license import multiprocessing as mp import os import sys import threading from pathlib import Path import numpy as np # global logger from loguru import logger ROOT = Path(__file__).resolve().parents[2] # If running from a cloned repository, prefer the local path # This handles the case where the package is installed in site-packages # but the user is running from the source root and expects local data/configs. _local_root = Path.cwd() if (_local_root / "pyproject.toml").is_file() and (_local_root / "boxmot").is_dir(): ROOT = _local_root DATA = ROOT / "data" TOML = ROOT / "pyproject.toml" BOXMOT = ROOT / "boxmot" CONFIGS = BOXMOT / "configs" TRACKER_CONFIGS = CONFIGS / "trackers" DATASET_CONFIGS = CONFIGS / "datasets" ENGINE = BOXMOT / "engine" WEIGHTS = ROOT / "models" TRACKEVAL = ENGINE / "trackeval" NUM_THREADS = min(8, max(1, os.cpu_count() - 1)) # number of multiprocessing threads def _is_main_process(record): # Works correctly even with enqueue=True return record["process"].name == "MainProcess" def configure_logging(main_only: bool = True): logger.remove() logger.add( sys.stderr, level="INFO", colorize=True, backtrace=True, diagnose=True, enqueue=True, # safe with ProcessPool / spawn filter=_is_main_process if main_only else None, format="{level: <8} | {message}", ) return logger configure_logging() ================================================ FILE: boxmot/utils/analysis/mot_ds_kf_tuning.py ================================================ #!/usr/bin/env python3 import argparse from pathlib import Path import numpy as np from scipy.linalg import pinv from boxmot.motion.kalman_filters.aabb.xywh_kf import KalmanFilterXYWH from boxmot.utils import TRACKEVAL def load_gt_data(seq_dir: Path, annotations_dir: Path = None, use_temp_gt: bool = False): """ Load ground-truth data for a sequence. Supports two layouts: - MOT17: seq_dir/gt/gt.txt (or gt_temp.txt) - VisDrone: annotations_dir/{seq_name}.txt Returns: np.ndarray with columns: [frame_id, obj_id, x, y, w, h, ...] """ # Try VisDrone layout first (flat annotations folder) if annotations_dir is not None and annotations_dir.exists(): ann_file = annotations_dir / f"{seq_dir.name}.txt" if ann_file.exists(): return np.loadtxt(ann_file, delimiter=',') # Fall back to MOT17 layout gt_file = seq_dir / "gt" / ("gt_temp.txt" if use_temp_gt else "gt.txt") if gt_file.exists(): return np.loadtxt(gt_file, delimiter=',') raise FileNotFoundError(f"No GT file found for sequence {seq_dir.name}") def build_tracks_from_sequence( seq_dir: Path, annotations_dir: Path = None, use_temp_gt: bool = False, min_detections: int = 5, ): """ Load ground-truth from a single MOT sequence folder, build 8-D state/4-D measurement tracks for each object, and return (tracks, widths, heights). """ # load GT orig_gt = load_gt_data(seq_dir, annotations_dir, use_temp_gt) # filter distractors MOT_DISTRACTOR_IDS = [] mask = ~np.isin(orig_gt[:,1].astype(int), MOT_DISTRACTOR_IDS) orig_gt = orig_gt[mask] dt = 1.0 tracks = [] all_ws = [] all_hs = [] for obj_id in np.unique(orig_gt[:,1].astype(int)): sel = orig_gt[orig_gt[:,1] == obj_id] sel = sel[np.argsort(sel[:,0].astype(int))] # centers ctrs = np.stack([ sel[:,2] + sel[:,4]/2, sel[:,3] + sel[:,5]/2 ], axis=1) # widths/heights wh = sel[:,4:6] # velocities v_ctr = np.vstack(([[0,0]], np.diff(ctrs, axis=0)/dt)) v_wh = np.vstack(([[0,0]], np.diff(wh, axis=0)/dt)) # true 8-D state: [x,y,w,h,vx,vy,vw,vh] x_seq = np.hstack((ctrs, wh, v_ctr, v_wh)) # measurements are [x,y,w,h] z_seq = np.hstack((ctrs, wh)) if len(z_seq) >= min_detections: tracks.append((z_seq, x_seq)) # collect box sizes for mean computation all_ws.append(sel[:,4]) all_hs.append(sel[:,5]) if not tracks: raise RuntimeError(f"No object with >= {min_detections} detections in {seq_dir}") widths = np.concatenate(all_ws) heights = np.concatenate(all_hs) return tracks, widths, heights def main( train_root: Path, use_temp_gt: bool = True, min_detections: int = 5, ): # prepare dynamic model D = 8 F = np.eye(D) for i in range(4): F[i, i+4] = 1.0 # dt=1 H = np.zeros((4, D)) H[0,0] = H[1,1] = H[2,2] = H[3,3] = 1 # Detect dataset layout # VisDrone: has "annotations" and "sequences" subdirectories # MOT17: sequence folders directly under train_root, each with gt/gt.txt annotations_dir = train_root.parent / "annotations" if (train_root.parent / "annotations").exists() else None # For VisDrone, sequences are in a "sequences" subfolder if train_root.name == "sequences": seq_root = train_root elif (train_root / "sequences").exists(): seq_root = train_root / "sequences" annotations_dir = train_root / "annotations" else: seq_root = train_root print(f"Dataset root: {train_root}") print(f"Sequences dir: {seq_root}") if annotations_dir: print(f"Annotations dir: {annotations_dir}") # aggregate across all sequences all_tracks = [] all_ws = [] all_hs = [] for seq_dir in sorted(seq_root.iterdir()): if not seq_dir.is_dir(): continue print(f"Processing sequence: {seq_dir.name}") try: tracks, ws, hs = build_tracks_from_sequence( seq_dir, annotations_dir=annotations_dir, use_temp_gt=use_temp_gt, min_detections=min_detections) all_tracks.extend(tracks) all_ws.append(ws) all_hs.append(hs) except FileNotFoundError as e: print(f" Skipping: {e}") except Exception as e: print(f" Error: {e}") if not all_tracks: raise RuntimeError("No valid tracks found in any sequence. Check dataset path and format.") # flatten widths/heights all_ws = np.concatenate(all_ws) all_hs = np.concatenate(all_hs) mean_w = all_ws.mean() mean_h = all_hs.mean() print(f"Mean box width: {mean_w:.2f}, height: {mean_h:.2f}") # method-of-moments estimation def estimate_noise_covariances(tracks, F, H): dim_x = F.shape[0] dim_z = H.shape[0] sum_innov = np.zeros((dim_z, dim_z)) sum_proc = np.zeros((dim_x, dim_x)) count = 0 for z_seq, x_true_seq in tracks: x_est = x_true_seq[0].copy() P = np.eye(dim_x) * 1e-3 prev_x, prev_P = None, None for z in z_seq: # 1) Predict x_pred = F @ x_est P_pred = F @ P @ F.T # 2) Innovation nu = z - (H @ x_pred) sum_innov += np.outer(nu, nu) - (H @ P_pred @ H.T) count += 1 # 3) Update S = H @ P_pred @ H.T K = P_pred @ H.T @ pinv(S) x_est = x_pred + K @ nu P = (np.eye(dim_x) - K @ H) @ P_pred # 4) Process noise if prev_x is not None: w = x_est - (F @ prev_x) sum_proc += np.outer(w, w) - (F @ prev_P @ F.T) prev_x, prev_P = x_est.copy(), P.copy() if count == 0: raise RuntimeError("No valid innovation samples found.") R_hat = sum_innov / count Q_hat = sum_proc / count return Q_hat, R_hat Q_hat, R_hat = estimate_noise_covariances(all_tracks, F, H) print("Estimated R (4×4):\n", R_hat) print("Estimated Q (8×8):\n", Q_hat) # derive std weights var_R = np.diag(R_hat) # [Var(x), Var(y), Var(w), Var(h)] var_Q = np.diag(Q_hat)[4:8] # [Var(vx), Var(vy), Var(vw), Var(vh)] mean_box = (mean_w + mean_h) / 2 std_pos_xy = np.sqrt(var_R[0]) / mean_box std_pos_wh = np.sqrt(var_R[2]) / mean_box std_wpos = float((std_pos_xy + std_pos_wh) / 2) std_vel_xy = np.sqrt(var_Q[0]) / mean_box std_vel_wh = np.sqrt(var_Q[2]) / mean_box std_wvel = float((std_vel_xy + std_vel_wh) / 2) # convert absolute‐unit std_wpos into fraction of mean box height # (KalmanFilterXYWH expects a relative weight) mean_height = mean_h # ≈172.91 from the pooled data std_pos_abs = std_wpos # ≈3.2864 (absolute std in px) std_pos_frac = std_pos_abs / mean_height # ≈0.0190 print(f"→ std_weight_position = {std_pos_frac:.4f}") print(f"→ std_weight_velocity = {std_wvel:.4f}") # configure KalmanFilter kf = KalmanFilterXYWH() kf._std_weight_position = std_pos_frac kf._std_weight_velocity = std_wvel print("KalmanFilterXYWH configured with pooled data-driven weights.") if __name__ == "__main__": parser = argparse.ArgumentParser( description="Estimate Q/R and std_weight_* across all sequences in a MOT dataset", epilog=""" Examples: # MOT17-ablation python -m boxmot.utils.analysis.mot_ds_kf_tuning --train_root boxmot/engine/trackeval/MOT17-ablation/train # VisDrone python -m boxmot.utils.analysis.mot_ds_kf_tuning --train_root boxmot/engine/trackeval/VisDrone2019-MOT-test-dev """ ) parser.add_argument( "--train_root", type=Path, default=TRACKEVAL / "MOT17-ablation/train", help="Root folder containing sequences (auto-detects MOT17 or VisDrone layout)" ) parser.add_argument( "--use_temp_gt", action="store_true", help="Use gt_temp.txt instead of gt.txt" ) parser.add_argument( "--min_detections", type=int, default=5, help="Minimum detections per track to include" ) args = parser.parse_args() main(args.train_root, args.use_temp_gt, args.min_detections) ================================================ FILE: boxmot/utils/analysis/mot_seq_bb_plot.py ================================================ #!/usr/bin/env python3 import argparse from pathlib import Path from typing import Union import cv2 import matplotlib.patches as patches import matplotlib.pyplot as plt import numpy as np from boxmot.utils import TRACKEVAL def plot_gt_boxes_with_trajectories( seq_dir: Union[str, Path], use_temp_gt: bool = True, pad: int = 0 ): """ Plot all ground-truth boxes for a MOT17 sequence, coloring each object ID with a unique color and drawing its trajectory through the centers of its boxes. Args: seq_dir (str | Path): Path to the sequence folder (containing img1/ and gt/). use_temp_gt (bool): If True, plot gt/gt_temp.txt (filtered by FPS). Otherwise plot gt/gt.txt. pad (int): Extra padding (in pixels) to add around the outermost boxes. """ seq_dir = Path(seq_dir) # --- 1) grab image size from first frame --- img_files = sorted((seq_dir / "img1").glob("*.jpg")) if not img_files: raise RuntimeError(f"No images found in {seq_dir / 'img1'}") first_img = img_files[0] img = cv2.imread(str(first_img)) if img is None: raise RuntimeError(f"Could not load image {first_img}") height, width = img.shape[:2] # --- 2) load the GT file --- gt_file = seq_dir / "gt" / ("gt_temp.txt" if use_temp_gt else "gt.txt") orig_gt = np.loadtxt(gt_file, delimiter=",") MOT_DISTRACTOR_IDS = [2, 7, 8, 12, 13] # e.g., person_on_vehicle, static_person, etc. class_ids = orig_gt[:, 1].astype(int) mask = ~np.isin(class_ids, MOT_DISTRACTOR_IDS) orig_gt = orig_gt[mask] # we'll unpack the first 6 columns for plotting # --- 3) compute the full extents of all boxes --- boxes = orig_gt[:, 2:6] # x, y, w, h xs = boxes[:, 0] ys = boxes[:, 1] rights = xs + boxes[:, 2] bottoms = ys + boxes[:, 3] xmin = min(xs.min(), 0) - pad ymin = min(ys.min(), 0) - pad xmax = max(rights.max(), width) + pad ymax = max(bottoms.max(), height) + pad # --- 4) set up Matplotlib figure --- fig, ax = plt.subplots( figsize=(10, 10 * (ymax - ymin) / (xmax - xmin)) ) ax.set_xlim(xmin, xmax) # invert y so origin is top-left ax.set_ylim(ymax, ymin) ax.set_aspect('equal') ax.set_title( f"GT boxes & trajectories for sequence {seq_dir.name}\n" f"Image size: {width}×{height}, total boxes: {len(boxes)}" ) ax.set_xlabel("x") ax.set_ylabel("y") # --- 5) draw the original image and its border --- ax.imshow( cv2.cvtColor(img, cv2.COLOR_BGR2RGB), extent=(0, width, height, 0), zorder=0 ) img_border = patches.Rectangle( (0, 0), width, height, linewidth=1, edgecolor='gray', linestyle='--', facecolor='none', zorder=1 ) ax.add_patch(img_border) # --- 6) plot each box in a unique color per ID --- ids = orig_gt[:, 1].astype(int) unique_ids = np.unique(ids) cmap = plt.colormaps.get_cmap('tab20') colors = [cmap(i / len(unique_ids)) for i in range(len(unique_ids))] id2color = {obj_id: colors[i] for i, obj_id in enumerate(unique_ids)} for row in orig_gt: frame, obj_id, x, y, w_box, h_box = row[:6] obj_id = int(obj_id) color = id2color[obj_id] outside = ( x < 0 or y < 0 or x + w_box > width or y + h_box > height ) rect = patches.Rectangle( (x, y), w_box, h_box, linewidth=1, edgecolor=color, facecolor='none', linestyle='--' if outside else '-', zorder=2 ) ax.add_patch(rect) # annotate count of out‐of‐frame boxes n_outside = sum( (row[2] < 0 or row[3] < 0 or row[2] + row[4] > width or row[3] + row[5] > height) for row in orig_gt ) ax.text( xmin + 0.01*(xmax - xmin), ymax - 0.02*(ymax - ymin), f"Outside boxes: {n_outside} / {len(boxes)}", color='red', fontsize=12, va='top', zorder=3 ) # --- 7) plot each ID’s trajectory via box centers --- for obj_id in unique_ids: sel = orig_gt[orig_gt[:, 1] == obj_id] # center = (x + w/2, y + h/2) centers = np.stack([ sel[:, 2] + sel[:, 4] / 2, sel[:, 3] + sel[:, 5] / 2 ], axis=1) # sort by frame index order = np.argsort(sel[:, 0].astype(int)) centers = centers[order] ax.plot( centers[:, 0], centers[:, 1], '-', linewidth=1, color=id2color[obj_id], zorder=3 ) # (optional) legend if number of IDs is small # ax.legend( # [f"ID {i}" for i in unique_ids], # loc='upper right', # fontsize='small', # ncol=2, # framealpha=0.5 # ) plt.tight_layout() plt.show() if __name__ == "__main__": parser = argparse.ArgumentParser( description="Plot MOT17 ground-truth boxes and trajectories" ) parser.add_argument( "--seq_dir", default=TRACKEVAL / "MOT17-ablation/train/MOT17-09", help="Path to the MOT17 sequence folder (must contain img1/ and gt/ subfolders)" ) parser.add_argument( "--use_temp_gt", action="store_true", help="Plot gt/gt_temp.txt instead of gt/gt.txt" ) parser.add_argument( "--pad", type=int, default=0, help="Extra padding (pixels) around the outermost boxes" ) args = parser.parse_args() plot_gt_boxes_with_trajectories( args.seq_dir, use_temp_gt=args.use_temp_gt, pad=args.pad ) ================================================ FILE: boxmot/utils/analysis/ray_results.py ================================================ #!/usr/bin/env python3 """ ratune.py Load a Ray Tune experiment directory, print summaries, plot chosen metrics for each trial by trial index, show Pareto fronts for MOTA vs HOTA (2D), and interactive 3D scatter (all points + Pareto front) for MOTA vs HOTA vs IDF1 using Plotly. """ import argparse from pathlib import Path import matplotlib.pyplot as plt import numpy as np import plotly.graph_objects as go from matplotlib.ticker import FixedLocator from ray.tune.analysis import ExperimentAnalysis def is_pareto_efficient(points: np.ndarray) -> np.ndarray: """ Find the Pareto-efficient points (maximization problem). Args: points: an (N, D) array of N points in D dimensions. Returns: mask: boolean array of length N, True if point is Pareto-efficient. """ N = points.shape[0] is_efficient = np.ones(N, dtype=bool) for i in range(N): if not is_efficient[i]: continue p = points[i] domination = np.any( np.all(points >= p, axis=1) & np.any(points > p, axis=1) ) if domination: is_efficient[i] = False return is_efficient def plot_metrics_by_trial(df, metrics=("HOTA", "MOTA", "IDF1"), exp_path=None): """ Plot several metrics vs. trial index on one shared figure. Parameters ---------- df : pandas.DataFrame DataFrame that contains one column per metric plus an implicit trial order (row index). metrics : list/tuple of str The metric column names to plot together. """ # Only keep the metrics that are actually present avail = [m for m in metrics if m in df.columns] if not avail: print("⚠️ None of the requested metrics are in the DataFrame.") return indices = list(range(len(df))) fig, ax = plt.subplots(figsize=(10, 5)) for metric in avail: ax.plot(indices, df[metric].values, marker="o", linestyle="-", label=metric) ax.xaxis.set_major_locator(FixedLocator(indices)) ax.set_xticklabels(indices, rotation=90) ax.set_xlabel("Trial index") ax.set_ylabel("Metric value") ax.set_title("Final HOTA, MOTA & IDF1 by Trial Number") ax.grid(True, linestyle="--", alpha=0.4) ax.legend(title="Metric") plt.tight_layout() plt.show() fig.savefig(exp_path / "hota_mota_idf1_by_trial.png", dpi=1200) def main(): parser = argparse.ArgumentParser( description="Analyze a Ray Tune experiment directory." ) parser.add_argument( "--exp_path", default=Path("ray/botsort_tune"), help="Path to your Tune experiment folder" ) parser.add_argument( "--metric", default="HOTA", help="Name of the metric to summarize & plot (default: HOTA)", ) parser.add_argument( "--mode", choices=["max", "min"], default="max", help="Whether to pick the trial with maximum or minimum final metric (default: max)", ) args = parser.parse_args() # Load experiment exp_dir = Path(args.exp_path).expanduser().resolve() exp_uri = exp_dir.as_uri() analysis = ExperimentAnalysis(exp_uri) # Summary of experiment if getattr(analysis, "errors", None): print("⚠️ Some trials errored.") else: print("✅ No trial errors detected.") trial_dfs = analysis.trial_dataframes num_runs = len(trial_dfs) print(f"Found {num_runs} completed trials.\n") # Final metrics table results_df = analysis.dataframe().reset_index(drop=True) results_df['run_number'] = results_df.index # Prepare display of selected metric and time display_cols = ['run_number', args.metric, 'time_total_s'] available = [c for c in display_cols if c in results_df.columns] ascending = (args.mode == "min") sorted_df = results_df[available].sort_values(by=args.metric, ascending=ascending) # Print all runs sorted print("Final reported metrics for all trials:") print(sorted_df.to_string(index=False)) print() # Best trial best = results_df.sort_values(by=args.metric, ascending=ascending).iloc[0] print(f"Best trial by '{args.metric}' ({args.mode}):") print(best.to_string()) print() # Plot default metric and extras plot_metrics_by_trial(results_df, ["HOTA", "MOTA", "IDF1"], exp_path = args.exp_path) # 3D scatter for all points + Pareto front using Plotly x_metric, y_metric, z_metric = "HOTA", "MOTA", "IDF1" if all(m in results_df.columns for m in [x_metric, y_metric, z_metric]): df3 = results_df.dropna(subset=[x_metric, y_metric, z_metric]).reset_index(drop=True) pts3 = df3[[x_metric, y_metric, z_metric]].values mask3 = is_pareto_efficient(pts3) others3 = df3[~mask3].copy() front3 = df3[mask3].copy() # build a hover-text column def make_hover(df): return ( "run: " + df['run_number'].astype(str) + "
HOTA: " + df[x_metric].map("{:.3f}".format) # x_metric *is* HOTA + "
MOTA: " + df[y_metric].map("{:.3f}".format) # y_metric *is* MOTA + "
IDF1: " + df[z_metric].map("{:.3f}".format) ) others3['hover'] = make_hover(others3) front3 ['hover'] = make_hover(front3) fig = go.Figure() # --- Identify the single best-HOTA trial ----------------------------- best_idx = df3[x_metric].idxmax() # x_metric == "HOTA" best_row = df3.loc[[best_idx]].copy() best_row['hover'] = make_hover(best_row) # reuse the same hover builder # all other trials fig.add_trace(go.Scatter3d( x=others3[x_metric], y=others3[y_metric], z=others3[z_metric], mode='markers', name='Trials', marker=dict(size=4, opacity=0.6), hoverinfo='text', hovertext=others3['hover'] )) # Pareto front fig.add_trace(go.Scatter3d( x=front3[x_metric], y=front3[y_metric], z=front3[z_metric], mode='markers', name='Pareto Front', marker=dict(size=6, symbol='circle', color='red'), hoverinfo='text', hovertext=front3['hover'] )) # ★ Best HOTA trial (highlighted) ★ fig.add_trace(go.Scatter3d( x=best_row[x_metric], y=best_row[y_metric], z=best_row[z_metric], mode='markers', name='Best HOTA', # new legend entry marker=dict(size=9, color='gold', # any eye-catching colour symbol='diamond'), hoverinfo='text', hovertext=best_row['hover'] )) fig.update_layout( title=f"3D Scatter: all points + Pareto front ({x_metric}, {y_metric}, {z_metric})", scene=dict( xaxis_title=x_metric, yaxis_title=y_metric, zaxis_title=z_metric ), legend=dict(x=0.8, y=0.9) ) fig.show() # To export to standalone HTML: fig.write_html(args.exp_path / "pareto3d_allpoints.html") else: print(f"Cannot plot 3D scatter: one or more of '{x_metric}', '{y_metric}', '{z_metric}' not in results.") if __name__ == "__main__": main() ================================================ FILE: boxmot/utils/association.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license import numpy as np from boxmot.utils.iou import AssociationFunction def speed_direction_batch(dets, tracks): tracks = tracks[..., np.newaxis] CX1, CY1 = (dets[:, 0] + dets[:, 2]) / 2.0, (dets[:, 1] + dets[:, 3]) / 2.0 CX2, CY2 = (tracks[:, 0] + tracks[:, 2]) / 2.0, (tracks[:, 1] + tracks[:, 3]) / 2.0 dx = CX1 - CX2 dy = CY1 - CY2 norm = np.sqrt(dx**2 + dy**2) + 1e-6 dx = dx / norm dy = dy / norm return dy, dx # size: num_track x num_det def linear_assignment(cost_matrix): try: import lap _, x, y = lap.lapjv(cost_matrix, extend_cost=True) return np.array([[y[i], i] for i in x if i >= 0]) # except ImportError: from scipy.optimize import linear_sum_assignment x, y = linear_sum_assignment(cost_matrix) return np.array([list(zip(x, y))]) def compute_aw_max_metric(emb_cost, w_association_emb, bottom=0.5): w_emb = np.full_like(emb_cost, w_association_emb) for idx in range(emb_cost.shape[0]): inds = np.argsort(-emb_cost[idx]) # If there's less than two matches, just keep original weight if len(inds) < 2: continue if emb_cost[idx, inds[0]] == 0: row_weight = 0 else: row_weight = 1 - max( (emb_cost[idx, inds[1]] / emb_cost[idx, inds[0]]) - bottom, 0 ) / (1 - bottom) w_emb[idx] *= row_weight for idj in range(emb_cost.shape[1]): inds = np.argsort(-emb_cost[:, idj]) # If there's less than two matches, just keep original weight if len(inds) < 2: continue if emb_cost[inds[0], idj] == 0: col_weight = 0 else: col_weight = 1 - max( (emb_cost[inds[1], idj] / emb_cost[inds[0], idj]) - bottom, 0 ) / (1 - bottom) w_emb[:, idj] *= col_weight return w_emb * emb_cost def associate( detections, trackers, asso_func, iou_threshold, velocities, previous_obs, vdc_weight, w, h, emb_cost=None, w_assoc_emb=None, aw_off=None, aw_param=None, ): if len(trackers) == 0: return ( np.empty((0, 2), dtype=int), np.arange(len(detections)), np.empty((0, 5), dtype=int), ) Y, X = speed_direction_batch(detections, previous_obs) inertia_Y, inertia_X = velocities[:, 0], velocities[:, 1] inertia_Y = np.repeat(inertia_Y[:, np.newaxis], Y.shape[1], axis=1) inertia_X = np.repeat(inertia_X[:, np.newaxis], X.shape[1], axis=1) diff_angle_cos = inertia_X * X + inertia_Y * Y diff_angle_cos = np.clip(diff_angle_cos, a_min=-1, a_max=1) diff_angle = np.arccos(diff_angle_cos) diff_angle = (np.pi / 2.0 - np.abs(diff_angle)) / np.pi valid_mask = np.ones(previous_obs.shape[0]) valid_mask[np.where(previous_obs[:, 4] < 0)] = 0 iou_matrix = asso_func(detections, trackers) # iou_matrix = iou_batch(detections, trackers) scores = np.repeat(detections[:, -1][:, np.newaxis], trackers.shape[0], axis=1) # iou_matrix = iou_matrix * scores # a trick sometiems works, we don't encourage this valid_mask = np.repeat(valid_mask[:, np.newaxis], X.shape[1], axis=1) angle_diff_cost = (valid_mask * diff_angle) * vdc_weight angle_diff_cost = angle_diff_cost.T angle_diff_cost = angle_diff_cost * scores if min(iou_matrix.shape): a = (iou_matrix > iou_threshold).astype(np.int32) if a.sum(1).max() == 1 and a.sum(0).max() == 1: matched_indices = np.stack(np.where(a), axis=1) else: if emb_cost is None: emb_cost = 0 else: emb_cost = emb_cost emb_cost[iou_matrix <= 0] = 0 if not aw_off: emb_cost = compute_aw_max_metric( emb_cost, w_assoc_emb, bottom=aw_param ) else: emb_cost *= w_assoc_emb final_cost = -(iou_matrix + angle_diff_cost + emb_cost) matched_indices = linear_assignment(final_cost) if matched_indices.size == 0: matched_indices = np.empty(shape=(0, 2)) else: matched_indices = np.empty(shape=(0, 2)) unmatched_detections = [] for d, det in enumerate(detections): if d not in matched_indices[:, 0]: unmatched_detections.append(d) unmatched_trackers = [] for t, trk in enumerate(trackers): if t not in matched_indices[:, 1]: unmatched_trackers.append(t) # filter out matched with low IOU matches = [] for m in matched_indices: if iou_matrix[m[0], m[1]] < iou_threshold: unmatched_detections.append(m[0]) unmatched_trackers.append(m[1]) else: matches.append(m.reshape(1, 2)) if len(matches) == 0: matches = np.empty((0, 2), dtype=int) else: matches = np.concatenate(matches, axis=0) return matches, np.array(unmatched_detections), np.array(unmatched_trackers) def associate_kitti( detections, trackers, det_cates, iou_threshold, velocities, previous_obs, vdc_weight ): if len(trackers) == 0: return ( np.empty((0, 2), dtype=int), np.arange(len(detections)), np.empty((0, 5), dtype=int), ) """ Cost from the velocity direction consistency """ Y, X = speed_direction_batch(detections, previous_obs) inertia_Y, inertia_X = velocities[:, 0], velocities[:, 1] inertia_Y = np.repeat(inertia_Y[:, np.newaxis], Y.shape[1], axis=1) inertia_X = np.repeat(inertia_X[:, np.newaxis], X.shape[1], axis=1) diff_angle_cos = inertia_X * X + inertia_Y * Y diff_angle_cos = np.clip(diff_angle_cos, a_min=-1, a_max=1) diff_angle = np.arccos(diff_angle_cos) diff_angle = (np.pi / 2.0 - np.abs(diff_angle)) / np.pi valid_mask = np.ones(previous_obs.shape[0]) valid_mask[np.where(previous_obs[:, 4] < 0)] = 0 valid_mask = np.repeat(valid_mask[:, np.newaxis], X.shape[1], axis=1) scores = np.repeat(detections[:, -1][:, np.newaxis], trackers.shape[0], axis=1) angle_diff_cost = (valid_mask * diff_angle) * vdc_weight angle_diff_cost = angle_diff_cost.T angle_diff_cost = angle_diff_cost * scores """ Cost from IoU """ iou_matrix = AssociationFunction.iou_batch(detections, trackers) """ With multiple categories, generate the cost for catgory mismatch """ num_dets = detections.shape[0] num_trk = trackers.shape[0] cate_matrix = np.zeros((num_dets, num_trk)) for i in range(num_dets): for j in range(num_trk): if det_cates[i] != trackers[j, 4]: cate_matrix[i][j] = -1e6 cost_matrix = -iou_matrix - angle_diff_cost - cate_matrix if min(iou_matrix.shape) > 0: a = (iou_matrix > iou_threshold).astype(np.int32) if a.sum(1).max() == 1 and a.sum(0).max() == 1: matched_indices = np.stack(np.where(a), axis=1) else: matched_indices = linear_assignment(cost_matrix) else: matched_indices = np.empty(shape=(0, 2)) unmatched_detections = [] for d, det in enumerate(detections): if d not in matched_indices[:, 0]: unmatched_detections.append(d) unmatched_trackers = [] for t, trk in enumerate(trackers): if t not in matched_indices[:, 1]: unmatched_trackers.append(t) # filter out matched with low IOU matches = [] for m in matched_indices: if iou_matrix[m[0], m[1]] < iou_threshold: unmatched_detections.append(m[0]) unmatched_trackers.append(m[1]) else: matches.append(m.reshape(1, 2)) if len(matches) == 0: matches = np.empty((0, 2), dtype=int) else: matches = np.concatenate(matches, axis=0) return matches, np.array(unmatched_detections), np.array(unmatched_trackers) ================================================ FILE: boxmot/utils/checks.py ================================================ import shutil import subprocess import sys from importlib.metadata import PackageNotFoundError, version from pathlib import Path from typing import Iterable, Optional, Sequence from packaging.requirements import Requirement # Replace this import with your logger, or use logging.getLogger(__name__) from boxmot.utils import logger as LOGGER, ROOT REQUIREMENTS_FILE = Path("requirements.txt") class RequirementsChecker: """ Runtime dependency helper. Features: - Check/install a list of requirement specifiers (e.g., ["yolox", "onnx>=1.15"]) - Read and install from a requirements.txt - Install a uv dependency *group* (requires uv) - Install a project *extra* (PEP 621 optional-dependencies) via uv - Backward-compatible alias: `cmds` == `extra_args` """ def __init__( self, group: Optional[str] = None, requirements_file: Path = REQUIREMENTS_FILE ): """ If `group` is provided, you *may* choose to call `sync_group_or_extra(group=group)` before doing work. Otherwise you can use `check_requirements_file()` or `check_packages()`. """ self.group = group self.requirements_file = requirements_file # ---------- public API ---------- def check_packages( self, requirements: Iterable[str], extra_args: Optional[Sequence[str]] = None, cmds: Optional[Sequence[str]] = None, # legacy alias ): """ Check & install packages specified by requirement strings. :param requirements: iterable of requirement specifiers as strings :param extra_args: extra args for the installer (e.g. ["--upgrade"]) :param cmds: legacy alias for extra_args """ if extra_args is None and cmds is not None: extra_args = list(cmds) specs = [Requirement(r) for r in requirements] missing: list[str] = [] for req in specs: name = req.name try: inst_ver = version(name) except PackageNotFoundError: LOGGER.error(f"Package {name!r} is not installed.") missing.append(str(req)) else: if req.specifier and not req.specifier.contains( inst_ver, prereleases=True ): LOGGER.error( f"{name!r} has version {inst_ver} which does not satisfy {req.specifier}." ) missing.append(str(req)) if missing: self._install_packages(missing, extra_args) def sync_extra( self, extra: str, extra_args: Optional[Sequence[str]] = None, ): """ Install a project *extra* (PEP 621 optional-dependencies). - From source checkout + uv available: uv pip install -e ".[extra]" - From PyPI install: uv pip install "boxmot[extra]" """ if not extra: raise ValueError("Extra name must be provided (e.g. 'openvino', 'export').") LOGGER.warning(f"Installing extra '{extra}'...") # Check if we are running from a source install (editable) # ROOT is the package root. If pyproject.toml exists there, it's an editable install. root_pyproject = ROOT / "pyproject.toml" cmd: list[str] if root_pyproject.is_file(): # Editable install detected or running from source root # We use ROOT to point to the source directory target = f"{ROOT}[{extra}]" cmd = ["uv", "pip", "install", "--no-cache-dir", "-e", target] else: # Installed from PyPI: install the published dist extra cmd = ["uv", "pip", "install", f"boxmot[{extra}]"] if extra_args: cmd.extend(extra_args) try: subprocess.check_call(cmd) LOGGER.info(f"Extra '{extra}' installed successfully.") except subprocess.CalledProcessError as e: LOGGER.error(f"Failed to install extra '{extra}': {e}") raise RuntimeError(f"Failed to install extra '{extra}': {e}") # ---------- internals ---------- def _install_packages( self, packages: Sequence[str], extra_args: Optional[Sequence[str]] = None ): """ Install an explicit list of requirement specifiers with uv. """ try: LOGGER.warning( f"\nMissing or mismatched packages: {', '.join(packages)}\n" "Attempting installation..." ) cmd = ["uv", "pip", "install", "--no-cache-dir"] if extra_args: cmd += list(extra_args) cmd += list(packages) subprocess.check_call(cmd) LOGGER.info("All missing packages were installed successfully.") except Exception as e: LOGGER.error(f"Failed to install packages: {e}") raise RuntimeError(f"Failed to install packages: {e}") ================================================ FILE: boxmot/utils/clean.py ================================================ import os import shutil def cleanup_mot17(data_dir, keep_detection='FRCNN'): """ Cleans up the MOT17 dataset to resemble the MOT16 format by keeping only one detection folder per sequence. Skips sequences that have already been cleaned. Args: - data_dir (str): Path to the MOT17 train directory. - keep_detection (str): Detection type to keep (options: 'DPM', 'FRCNN', 'SDP'). Default is 'DPM'. """ # Get all folders in the train directory all_dirs = [d for d in os.listdir(data_dir) if os.path.isdir(os.path.join(data_dir, d))] # Identify unique sequences by removing detection suffixes unique_sequences = set(seq.split('-')[0] + '-' + seq.split('-')[1] for seq in all_dirs) for seq in unique_sequences: # Directory path to the cleaned sequence cleaned_seq_dir = os.path.join(data_dir, seq) # Skip if the sequence is already cleaned if os.path.exists(cleaned_seq_dir): print(f"Sequence {seq} is already cleaned. Skipping.") continue # Directories for each detection method seq_dirs = [os.path.join(data_dir, d) for d in all_dirs if d.startswith(seq)] # Directory path for the detection folder to keep keep_dir = os.path.join(data_dir, f"{seq}-{keep_detection}") if os.path.exists(keep_dir): # Move the directory to a new name (removing the detection suffix) shutil.move(keep_dir, cleaned_seq_dir) print(f"Moved {keep_dir} to {cleaned_seq_dir}") # Remove other detection directories for seq_dir in seq_dirs: if os.path.exists(seq_dir) and seq_dir != keep_dir: shutil.rmtree(seq_dir) print(f"Removed {seq_dir}") else: print(f"Directory for {seq} with {keep_detection} detection does not exist. Skipping.") print("MOT17 Cleanup completed!") ================================================ FILE: boxmot/utils/custom_mot_challenge_2d_box.py ================================================ import numpy as np from scipy.optimize import linear_sum_assignment from trackeval.datasets.mot_challenge_2d_box import MotChallenge2DBox import trackeval._timing as _timing # Default COCO80 mapping; used when dataset configs do not supply explicit ids. DEFAULT_CLASS_NAME_TO_ID = { 'person': 1, 'bicycle': 2, 'car': 3, 'motorcycle': 4, 'airplane': 5, 'bus': 6, 'train': 7, 'truck': 8, 'boat': 9, 'traffic light': 10, 'fire hydrant': 11, 'stop sign': 12, 'parking meter': 13, 'bench': 14, 'bird': 15, 'cat': 16, 'dog': 17, 'horse': 18, 'sheep': 19, 'cow': 20, 'elephant': 21, 'bear': 22, 'zebra': 23, 'giraffe': 24, 'backpack': 25, 'umbrella': 26, 'handbag': 27, 'tie': 28, 'suitcase': 29, 'frisbee': 30, 'skis': 31, 'snowboard': 32, 'sports ball': 33, 'kite': 34, 'baseball bat': 35, 'baseball glove': 36, 'skateboard': 37, 'surfboard': 38, 'tennis racket': 39, 'bottle': 40, 'wine glass': 41, 'cup': 42, 'fork': 43, 'knife': 44, 'spoon': 45, 'bowl': 46, 'banana': 47, 'apple': 48, 'sandwich': 49, 'orange': 50, 'broccoli': 51, 'carrot': 52, 'hot dog': 53, 'pizza': 54, 'donut': 55, 'cake': 56, 'chair': 57, 'couch': 58, 'potted plant': 59, 'bed': 60, 'dining table': 61, 'toilet': 62, 'tv': 63, 'laptop': 64, 'mouse': 65, 'remote': 66, 'keyboard': 67, 'cell phone': 68, 'microwave': 69, 'oven': 70, 'toaster': 71, 'sink': 72, 'refrigerator': 73, 'book': 74, 'clock': 75, 'vase': 76, 'scissors': 77, 'teddy bear': 78, 'hair drier': 79, 'toothbrush': 80 } class CustomMotChallenge2DBox(MotChallenge2DBox): """Custom Dataset class for MOT Challenge 2D bounding box tracking with multi-class support""" @staticmethod def get_default_dataset_config(): """Default class config values""" default_config = MotChallenge2DBox.get_default_dataset_config() default_config['CLASSES_TO_EVAL'] = ['person'] default_config['CLASS_IDS'] = [1] default_config['DISTRACTOR_CLASS_IDS'] = [] return default_config def __init__(self, config=None): """Initialise dataset, checking that all required files are present""" cfg = {} if config is None else dict(config) # Persist the actual evaluation classes in lowercase to keep consistency with TrackEval internals. real_classes = [cls.lower() for cls in cfg.get('CLASSES_TO_EVAL', ['person'])] class_ids = cfg.get('CLASS_IDS') distractor_ids = cfg.get('DISTRACTOR_CLASS_IDS') or [] # Create a temp config with 'pedestrian' to pass super().__init__ validation temp_config = cfg.copy() temp_config['CLASSES_TO_EVAL'] = ['pedestrian'] # Initialize parent with temp config super().__init__(temp_config) # Restore real classes and ids in self.config self.config['CLASSES_TO_EVAL'] = real_classes self.config['CLASS_IDS'] = class_ids self.config['DISTRACTOR_CLASS_IDS'] = distractor_ids # Overwrite class validation and list with real classes self.valid_classes = real_classes self.class_list = real_classes # Build the class-id map from config if provided, otherwise fallback to COCO-80. if class_ids is not None and len(class_ids) == len(real_classes): self.class_name_to_class_id = {cls: int(cid) for cls, cid in zip(real_classes, class_ids)} else: self.class_name_to_class_id = DEFAULT_CLASS_NAME_TO_ID self.distractor_class_ids = [int(i) for i in distractor_ids] if distractor_ids else None self.valid_class_numbers = list(self.class_name_to_class_id.values()) @_timing.time def get_preprocessed_seq_data(self, raw_data, cls): self._check_unique_ids(raw_data) cls_id = self.class_name_to_class_id[cls] # MOT distractor set; prefer config override, otherwise fall back to legacy defaults #if self.distractor_class_ids is not None: distractor_classes = self.distractor_class_ids # else: # distractor_classes = [12, 8, 6, 7, 2] if self.benchmark == 'MOT20' else [12, 8, 7, 2] data_keys = ['gt_ids', 'tracker_ids', 'gt_dets', 'tracker_dets', 'tracker_confidences', 'similarity_scores'] data = {k: [None] * raw_data['num_timesteps'] for k in data_keys} unique_gt_ids, unique_tracker_ids = [], [] num_gt_dets = num_tracker_dets = 0 for t in range(raw_data['num_timesteps']): gt_ids = raw_data['gt_ids'][t] gt_dets = raw_data['gt_dets'][t] gt_classes = raw_data['gt_classes'][t] gt_zero_marked = raw_data['gt_extras'][t]['zero_marked'] tracker_ids = raw_data['tracker_ids'][t] tracker_dets = raw_data['tracker_dets'][t] tracker_classes = raw_data['tracker_classes'][t] tracker_confs = raw_data['tracker_confidences'][t] similarity_scores = raw_data['similarity_scores'][t] # shape (num_gt, num_trk) # --- Keep only trackers of the eval class (columns) --- trk_keep_mask = (tracker_classes == cls_id) kept_tracker_ids = tracker_ids[trk_keep_mask] kept_tracker_dets = tracker_dets[trk_keep_mask, :] if tracker_dets.size else tracker_dets kept_tracker_confs = tracker_confs[trk_keep_mask] sim = similarity_scores sim = sim[:, trk_keep_mask] # always slice columns; may yield (N, 0) # --- Remove trackers that match distractor GT (match vs ALL GT, not filtered by class) --- if self.do_preproc and self.benchmark != 'MOT15' and gt_ids.shape[0] > 0 and kept_tracker_ids.shape[0] > 0 and sim.size > 0: # threshold & Hungarian (same as original) matching_scores = sim.copy() matching_scores[matching_scores < 0.5 - np.finfo('float').eps] = 0 match_rows, match_cols = linear_sum_assignment(-matching_scores) actually_matched = matching_scores[match_rows, match_cols] > 0 + np.finfo('float').eps match_rows = match_rows[actually_matched] match_cols = match_cols[actually_matched] # mark tracker columns to remove if matched GT is a distractor class is_distr = np.isin(gt_classes[match_rows], distractor_classes) to_remove_cols = match_cols[is_distr] if to_remove_cols.size > 0: kept_tracker_ids = np.delete(kept_tracker_ids, to_remove_cols, axis=0) kept_tracker_dets = np.delete(kept_tracker_dets, to_remove_cols, axis=0) if kept_tracker_dets.size else kept_tracker_dets kept_tracker_confs = np.delete(kept_tracker_confs, to_remove_cols, axis=0) sim = np.delete(sim, to_remove_cols, axis=1) # --- Now keep ONLY GT of the eval class and not zero-marked (rows) --- if self.do_preproc and self.benchmark != 'MOT15': gt_keep_mask = (gt_zero_marked != 0) & (gt_classes == cls_id) else: gt_keep_mask = (gt_zero_marked != 0) kept_gt_ids = gt_ids[gt_keep_mask] kept_gt_dets = gt_dets[gt_keep_mask, :] if gt_dets.size else gt_dets sim = sim[gt_keep_mask, :] # always slice rows; ensures sim.shape == (len(kept_gt_ids), len(kept_tracker_ids)) # --- Write timestep outputs --- data['tracker_ids'][t] = kept_tracker_ids data['tracker_dets'][t] = kept_tracker_dets data['tracker_confidences'][t] = kept_tracker_confs data['gt_ids'][t] = kept_gt_ids data['gt_dets'][t] = kept_gt_dets data['similarity_scores'][t] = sim unique_gt_ids += list(np.unique(kept_gt_ids)) unique_tracker_ids += list(np.unique(kept_tracker_ids)) num_tracker_dets += len(kept_tracker_ids) num_gt_dets += len(kept_gt_ids) # --- Relabel to contiguous ids (no gaps) --- if len(unique_gt_ids) > 0: unique_gt_ids = np.unique(unique_gt_ids) gt_map = np.nan * np.ones((np.max(unique_gt_ids) + 1)) gt_map[unique_gt_ids] = np.arange(len(unique_gt_ids)) for t in range(raw_data['num_timesteps']): if len(data['gt_ids'][t]) > 0: data['gt_ids'][t] = gt_map[data['gt_ids'][t]].astype(int) if len(unique_tracker_ids) > 0: unique_tracker_ids = np.unique(unique_tracker_ids) trk_map = np.nan * np.ones((np.max(unique_tracker_ids) + 1)) trk_map[unique_tracker_ids] = np.arange(len(unique_tracker_ids)) for t in range(raw_data['num_timesteps']): if len(data['tracker_ids'][t]) > 0: data['tracker_ids'][t] = trk_map[data['tracker_ids'][t]].astype(int) # --- Stats & checks --- data['num_tracker_dets'] = num_tracker_dets data['num_gt_dets'] = num_gt_dets data['num_tracker_ids'] = len(np.unique(unique_tracker_ids)) if len(unique_tracker_ids) > 0 else 0 data['num_gt_ids'] = len(np.unique(unique_gt_ids)) if len(unique_gt_ids) > 0 else 0 data['num_timesteps'] = raw_data['num_timesteps'] data['seq'] = raw_data['seq'] self._check_unique_ids(data, after_preproc=True) return data ================================================ FILE: boxmot/utils/dataloaders/dataset.py ================================================ """ MOT Dataset Loader ================== Provides :class:`MOTDataset` and :class:`MOTSequence` for loading and iterating over multi-object tracking datasets stored in the **MOT sequence format**. Expected dataset layout ----------------------- The MOT sequence format (used by MOTChallenge and supported by annotation tools such as `CVAT `_) organises data as follows:: / ├── / │ ├── img1/ # frame images (sequentially numbered) │ │ ├── 000001.jpg │ │ ├── 000002.jpg │ │ └── ... │ ├── gt/ │ │ ├── gt.txt # ground-truth annotations │ │ └── labels.txt # (optional) class label names │ └── seqinfo.ini # (optional) sequence metadata ├── / │ └── ... └── ... Ground-truth file (``gt/gt.txt``) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Each line follows the format:: frame_id, track_id, x, y, w, h, not_ignored, class_id, visibility[, ...] * ``frame_id`` – 1-based frame number. * ``track_id`` – unique identity of the tracked object. * ``x, y, w, h`` – bounding box (top-left corner + width/height). * ``not_ignored`` – ``1`` if the annotation should be evaluated, ``0`` otherwise. * ``class_id`` – integer class label (see ``labels.txt``). * ``visibility`` – occlusion / visibility ratio in ``[0, 1]``. Labels file (``gt/labels.txt``) *(optional)* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ One class name per line. Mandatory when the dataset uses non-standard labels. Sequence info (``seqinfo.ini``) *(optional)* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ An INI file with at least a ``[Sequence]`` section that can contain:: [Sequence] name= imDir=img1 frameRate=30 seqLength=600 imWidth=1920 imHeight=1080 imExt=.jpg ``frameRate`` is used by this module for FPS-based frame downsampling when a ``target_fps`` is provided. """ import configparser import shutil from pathlib import Path from typing import Dict, Generator, List, Optional, Union import cv2 import numpy as np from tqdm import tqdm from boxmot.utils import logger as LOGGER def read_seq_fps(seq_dir: Path) -> int: """Read the original FPS from the ``seqinfo.ini`` of a sequence. Args: seq_dir: Path to the sequence directory. Returns: Original frame rate of the sequence. Raises: FileNotFoundError: If ``seqinfo.ini`` is not found in *seq_dir*. """ cfg_file = seq_dir / "seqinfo.ini" if not cfg_file.exists(): raise FileNotFoundError(f"Missing seqinfo.ini in {seq_dir}") cfg = configparser.ConfigParser() cfg.read(cfg_file) return cfg.getint("Sequence", "frameRate") def compute_fps_mask(frames: np.ndarray, orig_fps: int, target_fps: int) -> np.ndarray: """Compute a boolean mask for selecting frames to match *target_fps*. Args: frames: Array of original frame IDs. orig_fps: Original FPS of the sequence (from ``seqinfo.ini``). target_fps: Desired FPS. Returns: Boolean mask indicating which frames to keep. """ tgt = min(orig_fps, target_fps) step = orig_fps / tgt wanted = set(np.arange(1, int(frames.max()) + 1, step).astype(int)) return np.isin(frames.astype(int), list(wanted)) class MOTDataset: """Dataset class for MOT-format sequences with optional detection and embedding data. Scans ``mot_root`` for sequence sub-directories that follow the standard MOT layout (see module docstring). When *det_emb_root*, *model_name* and *reid_name* are provided, pre-computed detections and ReID embeddings are associated with each sequence. Args: mot_root: Root path to the MOT dataset (contains sequence folders). det_emb_root: Root path for detection and embedding outputs. model_name: Name of the detection model used. reid_name: Name of the re-identification model used. target_fps: FPS to downsample to. When set, the ``seqinfo.ini`` inside each sequence is read to determine the original frame rate. """ def __init__( self, mot_root: str, det_emb_root: Optional[str] = None, model_name: Optional[str] = None, reid_name: Optional[str] = None, target_fps: Optional[int] = None ): self.root = Path(mot_root) self.target_fps = target_fps self.seqs: Dict[str, Dict] = {} if det_emb_root and model_name and reid_name: base = Path(det_emb_root) / model_name self.dets_dir = base / 'dets' self.embs_dir = base / 'embs' / reid_name else: self.dets_dir = self.embs_dir = None self._index_sequences() def _index_sequences(self) -> None: """Index all sequences in the dataset folder. For each sub-directory the loader looks for an ``img1/`` folder first; if absent it falls back to using the sequence directory itself as the image source. Image files (``*.jpg``, ``*.png``) are collected and sorted by name to determine frame ordering. """ for seq_dir in sorted(self.root.iterdir()): if not seq_dir.is_dir(): continue name = seq_dir.name img_dir = seq_dir / 'img1' if not img_dir.exists(): img_dir = seq_dir imgs = sorted(list(img_dir.glob('*.jpg')) + list(img_dir.glob('*.png'))) if not imgs: continue frame_ids = [int(p.stem) for p in imgs] det_path = self.dets_dir / f'{name}.txt' if self.dets_dir else None emb_path = self.embs_dir / f'{name}.txt' if self.embs_dir else None self.seqs[name] = { 'seq_dir': seq_dir, 'frame_ids': np.array(frame_ids, dtype=int), 'frame_paths': imgs, 'det_path': det_path, 'emb_path': emb_path } def sequence_names(self) -> List[str]: """Return the list of all available sequence names.""" return list(self.seqs.keys()) def get_sequence(self, name: str) -> "MOTSequence": """Return a :class:`MOTSequence` iterator for the given sequence. Args: name: Name of the sequence (must match a sub-directory name). Raises: KeyError: If *name* is not found among indexed sequences. """ if name not in self.seqs: raise KeyError(f"Unknown sequence {name}") return MOTSequence(name, self.seqs[name], self.target_fps) class MOTSequence: """Single MOT sequence that streams frame data with optional detections and embeddings. Iterating over an instance yields dictionaries with the following keys: * ``frame_id`` – integer frame number (1-based). * ``img`` – BGR image as a NumPy array (loaded via OpenCV). * ``dets`` – ``(N, D)`` detection array for the frame (columns after ``frame_id`` from the detections file). * ``embs`` – ``(N, E)`` ReID embedding array aligned with *dets*. When *target_fps* is set and a ``seqinfo.ini`` with ``frameRate`` is present, frames (together with detections, embeddings and ground truth) are subsampled accordingly. A temporary ``gt_temp.txt`` is written next to the original ``gt.txt`` so that evaluation tools can use the filtered annotations. Args: name: Sequence name. meta: Internal metadata dictionary produced by :class:`MOTDataset`. target_fps: Desired FPS for downsampling. """ def __init__(self, name: str, meta: Dict, target_fps: Optional[int]): self.name = name self.meta = meta self.target_fps = target_fps self.dets: Optional[np.ndarray] = None self.embs: Optional[np.ndarray] = None self.frame_ids: np.ndarray = meta['frame_ids'] self.frame_paths: List[Path] = meta['frame_paths'] self._prepare() def _prepare(self) -> None: """Load detections / embeddings and optionally downsample to *target_fps*. Always ensures gt_temp.txt exists for evaluation: either filtered by FPS when downsampling, or a copy of gt.txt when nothing changed. """ updated_gt = False gt_dir = self.meta['seq_dir'] / 'gt' # 1) Load dets & embs if self.meta['det_path'] and self.meta['emb_path']: self.dets = np.loadtxt(self.meta['det_path'], comments="#") self.embs = np.loadtxt(self.meta['emb_path'], comments="#") if self.dets.shape[0] != self.embs.shape[0]: raise ValueError(f"Row mismatch in {self.name}") # 2) If target_fps is set, build a frame mask using seqinfo.ini if self.target_fps: seq_info_file = self.meta['seq_dir'] / 'seqinfo.ini' if not seq_info_file.exists(): LOGGER.warning(f"Missing seqinfo.ini in {self.meta['seq_dir']}, skipping FPS downsample") else: orig_fps = read_seq_fps(self.meta['seq_dir']) mask = compute_fps_mask(self.dets[:, 0], orig_fps, self.target_fps) # a) Filter dets / embs / frame_ids / frame_paths self.dets = self.dets[mask] self.embs = self.embs[mask] keep_ids = set(self.dets[:, 0].astype(int)) idxs_to_keep = [i for i, fid in enumerate(self.frame_ids) if fid in keep_ids] self.frame_ids = self.frame_ids[idxs_to_keep] self.frame_paths = [self.frame_paths[i] for i in idxs_to_keep] # b) Filter GT and write gt_temp.txt for evaluation orig_gt = np.loadtxt(gt_dir / 'gt.txt', delimiter=',') gt_mask = np.isin(orig_gt[:, 0].astype(int), list(keep_ids)) filtered_gt = orig_gt[gt_mask] np.savetxt( gt_dir / 'gt_temp.txt', filtered_gt, delimiter=',', fmt="%d" if filtered_gt.dtype.kind in 'iu' else "%f", ) updated_gt = True # 3) Ensure gt_temp.txt always exists for the evaluator (copy gt.txt if unchanged) if (gt_dir / 'gt.txt').exists() and not updated_gt: shutil.copy2(gt_dir / 'gt.txt', gt_dir / 'gt_temp.txt') def __iter__(self) -> Generator[Dict[str, Union[int, np.ndarray]], None, None]: """Yield frame dictionaries one by one. Yields: A dict with keys ``frame_id``, ``img``, ``dets``, ``embs``. """ for fid, img_p in tqdm( zip(self.frame_ids, self.frame_paths), total=len(self.frame_ids), desc=f"Frames {self.name}", ): img = cv2.imread(str(img_p)) if img is None: LOGGER.warning(f"Failed to load {img_p}") continue if self.dets is not None: mask = (self.dets[:, 0].astype(int) == fid) dets_f = self.dets[mask, 1:] embs_f = self.embs[mask] else: dets_f = np.zeros((0, 5)) embs_f = np.zeros((0, 128)) yield { 'frame_id': fid, 'img': img, 'dets': dets_f, 'embs': embs_f } def process_sequences_lazily(dataset: MOTDataset) -> None: """Example usage of lazy-loading and processing sequences from the dataset. Args: dataset: A :class:`MOTDataset` instance. """ for seq_name in dataset.sequence_names(): LOGGER.info(f"Processing sequence: {seq_name}") for frame_data in dataset.get_sequence(seq_name): print( f"Seq: {seq_name}, " f"Frame: {frame_data['frame_id']}, " f"Dets: {frame_data['dets'].shape[0]}" ) if __name__ == "__main__": dataset = MOTDataset( mot_root="./tracking/TrackEval/MOT17-ablation/train", det_emb_root="./runs/dets_n_embs", model_name="yolox_x_ablation", reid_name="lmbn_n_duke", target_fps=15 ) process_sequences_lazily(dataset) ================================================ FILE: boxmot/utils/dataloaders/video.py ================================================ import csv import glob import os from pathlib import Path from typing import Generator, List, Union import cv2 import numpy as np class LazyDataLoader: def __init__(self, source: Union[str, int, Path]): self.source = str(source) self.generator = self._get_generator() def __iter__(self): return self.generator def _get_generator(self) -> Generator: source = self.source if source.endswith('.csv'): return self._load_from_csv(source) elif source.endswith('.streams'): return self._load_from_stream_list(source) elif source.startswith(('http://', 'https://')): if 'youtube.com' in source or 'youtu.be' in source: return self._load_from_youtube(source) else: return self._load_from_stream(source) elif source.startswith(('rtsp://', 'rtmp://', 'tcp://')): return self._load_from_stream(source) elif '*' in source: return self._load_from_glob(source) elif os.path.isdir(source): return self._load_from_directory(source) elif os.path.isfile(source): return self._load_from_video(source) elif source.isdigit(): return self._load_from_webcam(int(source)) elif isinstance(source, int): return self._load_from_webcam(source) else: raise ValueError(f"Unsupported source type: {source}") def _load_from_csv(self, csv_path: str) -> Generator: with open(csv_path, newline='') as f: reader = csv.reader(f) for row in reader: if row: yield from iter(LazyDataLoader(row[0])) def _load_from_video(self, video_path: str) -> Generator: cap = cv2.VideoCapture(video_path) if not cap.isOpened(): print(f"[ERROR] Failed to open video file: {video_path}") return while cap.isOpened(): ret, frame = cap.read() if not ret: break yield frame cap.release() def _load_from_directory(self, path: str) -> Generator: for f in sorted(Path(path).glob('*')): if f.suffix.lower() in ['.jpg', '.png', '.jpeg', '.mp4', '.avi']: yield from iter(LazyDataLoader(str(f))) def _load_from_glob(self, pattern: str) -> Generator: for f in sorted(glob.glob(pattern)): yield from iter(LazyDataLoader(f)) def _load_from_youtube(self, url: str) -> Generator: try: import yt_dlp except ImportError as e: raise ImportError("yt_dlp is required for YouTube video support. Install it with `pip install yt_dlp`.") from e with yt_dlp.YoutubeDL({'quiet': True, 'format': 'best'}) as ydl: info = ydl.extract_info(url, download=False) video_url = info['url'] yield from self._load_from_stream(video_url) def _load_from_stream(self, url: str) -> Generator: cap = cv2.VideoCapture(url) if not cap.isOpened(): print(f"[ERROR] Failed to open stream: {url}") return while cap.isOpened(): ret, frame = cap.read() if not ret: break yield frame cap.release() def _load_from_stream_list(self, file_path: str) -> Generator[List[np.ndarray], None, None]: with open(file_path) as f: urls = [line.strip() for line in f if line.strip()] caps = [cv2.VideoCapture(url) for url in urls] for i, cap in enumerate(caps): if not cap.isOpened(): print(f"[ERROR] Failed to open stream {i}: {urls[i]}") while True: frames = [] for cap in caps: ret, frame = cap.read() frames.append(frame if ret else None) if all(f is None for f in frames): break yield frames for cap in caps: cap.release() def _load_from_webcam(self, index: int) -> Generator: cap = cv2.VideoCapture(index) if not cap.isOpened(): print(f"[ERROR] Failed to open webcam at index {index}") return while cap.isOpened(): ret, frame = cap.read() if not ret: break yield frame cap.release() ================================================ FILE: boxmot/utils/download.py ================================================ #!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Utility script to download and extract BoxMOT releases and MOT evaluation tools. """ import argparse from pathlib import Path from typing import Optional from zipfile import BadZipFile, ZipFile import gdown import requests from requests.adapters import HTTPAdapter from tqdm import tqdm from urllib3.util.retry import Retry from boxmot.utils import logger as LOGGER # Mapping for deprecated numpy types DEPRECATED_TYPES = {"np.float": "float", "np.int": "int", "np.bool": "bool"} def get_http_session(retries: int = 3, backoff_factor: float = 0.3) -> requests.Session: """Create HTTP session with retry strategy.""" session = requests.Session() retry_strategy = Retry( total=retries, status_forcelist=[429, 500, 502, 503, 504], allowed_methods=["GET", "POST"], backoff_factor=backoff_factor ) adapter = HTTPAdapter(max_retries=retry_strategy) session.mount("https://", adapter) session.mount("http://", adapter) return session def download_file(url: str, dest: Path, chunk_size: int = 8192, overwrite: bool = False, timeout: int = 10) -> Path: """ Download a file from a URL to a destination path, with progress and logging. Returns the path to the downloaded file. """ if dest.exists() and not overwrite: LOGGER.debug(f"Cached: {dest.name}") return dest # Ensure parent dir dest.parent.mkdir(parents=True, exist_ok=True) LOGGER.info(f"Downloading {dest.name}...") if "drive.google.com" in url or "drive.usercontent.google.com" in url: # Google Drive: use gdown (handles confirm tokens automatically) gdown.download( url=url, output=str(dest), quiet=False, fuzzy=True ) else: session = get_http_session() response = session.get(url, stream=True, timeout=timeout) response.raise_for_status() total = int(response.headers.get("Content-Length", 0)) with open(dest, "wb") as f, tqdm( total=total, unit="B", unit_scale=True, desc=f"Downloading {dest.name}" ) as pbar: for chunk in response.iter_content(chunk_size=chunk_size): if chunk: f.write(chunk) pbar.update(len(chunk)) return dest def extract_zip(zip_path: Path, extract_to: Path, overwrite: bool = False) -> None: """ Extract a ZIP archive to a target directory. """ if not zip_path.is_file(): raise FileNotFoundError(f"ZIP file not found: {zip_path}") try: with ZipFile(zip_path, 'r') as zf: members = zf.infolist() total_files = len(members) if not overwrite: already = [member.filename for member in members if (extract_to / member.filename).exists()] if len(already) == total_files: LOGGER.debug(f"Cached: {zip_path.name} (extracted)") return LOGGER.info(f"Extracting {zip_path.name}...") for member in tqdm(members, desc=f"Extracting {zip_path.name}"): target = extract_to / member.filename if target.exists() and not overwrite: continue extract_to.mkdir(parents=True, exist_ok=True) zf.extract(member, extract_to) except BadZipFile: LOGGER.error(f"Corrupt ZIP: {zip_path.name}") try: zip_path.unlink() except FileNotFoundError: pass raise def patch_deprecated_types(root: Path, deprecated: dict = DEPRECATED_TYPES) -> None: """Patch deprecated numpy types in Python files.""" LOGGER.debug(f"Patching numpy types in: {root.name}") for file in root.rglob("*"): if file.suffix not in {".py", ".txt"}: continue text = file.read_text(encoding="utf-8") updated = text for old, new in deprecated.items(): updated = updated.replace(old, new) if updated != text: file.write_text(updated, encoding="utf-8") def download_trackeval(dest: Path, branch: str = "master", overwrite: bool = False) -> None: """ Download and set up the TrackEval repository into the given destination folder. Args: dest (Path): target directory for TrackEval (e.g. boxmot/engine/trackeval) branch (str): Git branch to download (default "master") overwrite (bool): if True, force re-download even if dest already exists """ # If already exists and we're not overwriting, skip if dest.exists() and not overwrite: LOGGER.debug("TrackEval already present") return LOGGER.info("Downloading TrackEval...") repo_url = "https://github.com/JonathonLuiten/TrackEval" zip_url = f"{repo_url}/archive/refs/heads/{branch}.zip" zip_file = dest.parent / f"{dest.name}-{branch}.zip" # Download the archive zip_path = download_file(zip_url, zip_file, overwrite=overwrite) # Extract into the parent folder extract_zip(zip_path, dest.parent, overwrite=overwrite) # GitHub will unpack to "TrackEval-master" (with original casing); # rename it case-insensitively to our lowercase 'trackeval' folder extracted = None for d in dest.parent.iterdir(): if d.is_dir() and d.name.lower().startswith("trackeval") and d.name.lower().endswith(f"-{branch}"): extracted = d break if extracted is None: LOGGER.warning("Couldn't locate extracted TrackEval folder") else: extracted.rename(dest) # Clean up the downloaded zip try: zip_file.unlink() except FileNotFoundError: pass # Apply any necessary patches for deprecated types patch_deprecated_types(dest) LOGGER.debug("TrackEval setup complete") def download_hf_dataset(repo_id: str, dest: Path, overwrite: bool = False) -> None: """ Download a dataset from HuggingFace Hub to the given destination. Requires ``huggingface_hub`` to be installed (``pip install huggingface_hub``). Args: repo_id: HuggingFace dataset repo ID (e.g. "user/dataset"). dest: Local directory to save the dataset into. overwrite: If True, re-download even if *dest* already exists. """ if dest.exists() and not overwrite: LOGGER.debug(f"HF dataset already present at {dest}") return try: from huggingface_hub import HfApi, snapshot_download except ImportError: import subprocess, sys LOGGER.info("Installing huggingface_hub ...") subprocess.check_call([sys.executable, "-m", "pip", "install", "huggingface_hub"]) from huggingface_hub import HfApi, snapshot_download from tqdm.auto import tqdm as base_tqdm from huggingface_hub.hf_api import RepoFile # Get file list with real sizes upfront api = HfApi() files = [ f for f in api.list_repo_tree(repo_id=repo_id, repo_type="dataset", recursive=True) if isinstance(f, RepoFile) ] num_files = len(files) total_size = sum(f.size or (f.lfs.size if f.lfs else 0) for f in files) LOGGER.info(f"Downloading HuggingFace dataset {repo_id} " f"({num_files} files, {total_size / 1e9:.1f} GB) ...") class _TqdmKnownTotal(base_tqdm): """tqdm wrapper that injects pre-computed totals for HF progress bars.""" _lock_total = False def __init__(self, *args, **kwargs): kwargs.pop("name", None) desc = kwargs.get("desc", "") if desc.startswith("Downloading"): kwargs["total"] = total_size kwargs["desc"] = "Downloading" elif desc.startswith("Fetching"): kwargs["total"] = num_files kwargs["desc"] = f"Fetching {num_files} files" super().__init__(*args, **kwargs) if desc.startswith("Downloading"): self._lock_total = True def __setattr__(self, name, value): if name == "total" and self._lock_total: return super().__setattr__(name, value) snapshot_download( repo_id=repo_id, repo_type="dataset", local_dir=str(dest.parent), tqdm_class=_TqdmKnownTotal, ) LOGGER.debug(f"HF dataset ready at {dest}") def download_eval_data( *, runs_url: Optional[str] = None, dataset_url: str, dataset_dest: Path, overwrite: bool = False ) -> None: """ Download & extract TrackEval evaluation data. If `runs_url` is truthy, downloads+unzips runs.zip; otherwise skips it. Always downloads+unzips the benchmark data. """ LOGGER.info("Setting up evaluation data...") # Optional runs data if runs_url: runs_zip = download_file(runs_url, Path("runs.zip"), overwrite=overwrite) extract_zip(runs_zip, Path("."), overwrite=overwrite) if not dataset_url: return # HuggingFace dataset (hf://owner/repo/subfolder) if dataset_url.startswith("hf://"): parts = dataset_url[len("hf://"):].split("/") repo_id = "/".join(parts[:2]) # e.g. "Fleyderer/FastTracker-Benchmark-MOT" download_hf_dataset(repo_id, dataset_dest, overwrite=overwrite) return # benchmark ZIP benchmark_zip = download_file(dataset_url, dataset_dest, overwrite=overwrite) extract_zip(benchmark_zip, dataset_dest.parent, overwrite=overwrite) LOGGER.debug(f"Benchmark data ready at: {dataset_dest.parent}") if __name__ == "__main__": parser = argparse.ArgumentParser(description="Download BoxMOT datasets and MOT evaluation tools.") parser.add_argument("--branch", default="master", help="Branch of TrackEval to download.") parser.add_argument("--overwrite", action="store_true", help="Overwrite existing downloads and extractions.") parser.add_argument("--verbose", action="store_true", help="Enable detailed logging.") args = parser.parse_args() download_trackeval( dest=Path("TrackEval"), branch=args.branch, overwrite=args.overwrite ) download_eval_data( runs_url="https://github.com/mikel-brostrom/boxmot/releases/download/v16.0.11/runs.zip", dataset_url="https://github.com/mikel-brostrom/boxmot/releases/download/v10.0.83/MOT17-50.zip", dataset_dest=Path("boxmot/engine/TrackEval/MOT17-ablation.zip"), overwrite=args.overwrite ) ================================================ FILE: boxmot/utils/iou.py ================================================ import cv2 as cv import numpy as np def iou_obb_pair(i, j, bboxes1, bboxes2): """ Compute IoU for the rotated rectangles at index i and j in the batches `bboxes1`, `bboxes2` . """ rect1 = np.asarray(bboxes1[int(i)], dtype=float).reshape(-1) rect2 = np.asarray(bboxes2[int(j)], dtype=float).reshape(-1) (cx1, cy1, w1, h1, angle1) = rect1[0:5] (cx2, cy2, w2, h2, angle2) = rect2[0:5] angle1 = np.degrees(angle1) angle2 = np.degrees(angle2) r1 = ((cx1, cy1), (w1, h1), angle1) r2 = ((cx2, cy2), (w2, h2), angle2) # Compute intersection ret, intersect = cv.rotatedRectangleIntersection(r1, r2) if ret == 0 or intersect is None: return 0.0 # No intersection # Calculate intersection area intersection_area = cv.contourArea(intersect) # Calculate union area area1 = w1 * h1 area2 = w2 * h2 union_area = area1 + area2 - intersection_area # Compute IoU return intersection_area / union_area if union_area > 0 else 0.0 class AssociationFunction: def __init__(self, w, h, asso_mode="iou"): """ Initializes the AssociationFunction class with the necessary parameters for bounding box operations. The association function is selected based on the `asso_mode` string provided during class creation. Parameters: w (int): The width of the frame, used for normalizing centroid distance. h (int): The height of the frame, used for normalizing centroid distance. asso_mode (str): The association function to use (e.g., "iou", "giou", "centroid", etc.). """ self.w = w self.h = h self.asso_func = self._get_asso_func(asso_mode) @staticmethod def iou_batch(bboxes1, bboxes2) -> np.ndarray: bboxes2 = np.expand_dims(bboxes2, 0) bboxes1 = np.expand_dims(bboxes1, 1) xx1 = np.maximum(bboxes1[..., 0], bboxes2[..., 0]) yy1 = np.maximum(bboxes1[..., 1], bboxes2[..., 1]) xx2 = np.minimum(bboxes1[..., 2], bboxes2[..., 2]) yy2 = np.minimum(bboxes1[..., 3], bboxes2[..., 3]) w = np.maximum(0.0, xx2 - xx1) h = np.maximum(0.0, yy2 - yy1) wh = w * h o = wh / ( (bboxes1[..., 2] - bboxes1[..., 0]) * (bboxes1[..., 3] - bboxes1[..., 1]) + (bboxes2[..., 2] - bboxes2[..., 0]) * (bboxes2[..., 3] - bboxes2[..., 1]) - wh ) return o @staticmethod def iou_batch_obb(bboxes1, bboxes2) -> np.ndarray: N, M = len(bboxes1), len(bboxes2) def wrapper(i, j): return iou_obb_pair(i, j, bboxes1, bboxes2) iou_matrix = np.fromfunction(np.vectorize(wrapper), shape=(N, M), dtype=int) return iou_matrix @staticmethod def hmiou_batch(bboxes1, bboxes2): """ Compute a modified Intersection over Union (hIoU) between two batches of bounding boxes, incorporating a vertical overlap ratio. Parameters: - bboxes1: (N, 4) array of bounding boxes [x1, y1, x2, y2] - bboxes2: (M, 4) array of bounding boxes [x1, y1, x2, y2] Returns: - hmiou: (N, M) array where hmiou[i, j] is the modified IoU between bboxes1[i] and bboxes2[j] """ # Expand dimensions for broadcasting bboxes1 = np.expand_dims(bboxes1, axis=1) # Shape: (N, 1, 4) bboxes2 = np.expand_dims(bboxes2, axis=0) # Shape: (1, M, 4) # Compute vertical overlap ratio 'o' intersect_y1 = np.maximum(bboxes1[..., 1], bboxes2[..., 1]) intersect_y2 = np.minimum(bboxes1[..., 3], bboxes2[..., 3]) intersection_height = np.maximum(0.0, intersect_y2 - intersect_y1) union_y1 = np.minimum(bboxes1[..., 1], bboxes2[..., 1]) union_y2 = np.maximum(bboxes1[..., 3], bboxes2[..., 3]) union_height = np.maximum(1e-10, union_y2 - union_y1) o = intersection_height / union_height # Compute standard IoU inter_x1 = np.maximum(bboxes1[..., 0], bboxes2[..., 0]) inter_y1 = np.maximum(bboxes1[..., 1], bboxes2[..., 1]) inter_x2 = np.minimum(bboxes1[..., 2], bboxes2[..., 2]) inter_y2 = np.minimum(bboxes1[..., 3], bboxes2[..., 3]) inter_w = np.maximum(0.0, inter_x2 - inter_x1) inter_h = np.maximum(0.0, inter_y2 - inter_y1) inter_area = inter_w * inter_h area1 = (bboxes1[..., 2] - bboxes1[..., 0]) * (bboxes1[..., 3] - bboxes1[..., 1]) # Shape: (N, 1) area2 = (bboxes2[..., 2] - bboxes2[..., 0]) * (bboxes2[..., 3] - bboxes2[..., 1]) # Shape: (1, M) union_area = area1 + area2 - inter_area iou = inter_area / (union_area + 1e-10) # Modify IoU with vertical overlap ratio hmiou = iou * o return hmiou @staticmethod def giou_batch(bboxes1, bboxes2) -> np.ndarray: """ :param bboxes1: predict of bbox(N,4)(x1,y1,x2,y2) :param bboxes2: groundtruth of bbox(N,4)(x1,y1,x2,y2) :return: """ # Ensure predict's bbox form bboxes2 = np.expand_dims(bboxes2, 0) bboxes1 = np.expand_dims(bboxes1, 1) xx1 = np.maximum(bboxes1[..., 0], bboxes2[..., 0]) yy1 = np.maximum(bboxes1[..., 1], bboxes2[..., 1]) xx2 = np.minimum(bboxes1[..., 2], bboxes2[..., 2]) yy2 = np.minimum(bboxes1[..., 3], bboxes2[..., 3]) w = np.maximum(0.0, xx2 - xx1) h = np.maximum(0.0, yy2 - yy1) wh = w * h # Intersection area # Compute areas of individual boxes area1 = (bboxes1[..., 2] - bboxes1[..., 0]) * (bboxes1[..., 3] - bboxes1[..., 1]) area2 = (bboxes2[..., 2] - bboxes2[..., 0]) * (bboxes2[..., 3] - bboxes2[..., 1]) # Union area union_area = area1 + area2 - wh iou = wh / union_area xxc1 = np.minimum(bboxes1[..., 0], bboxes2[..., 0]) yyc1 = np.minimum(bboxes1[..., 1], bboxes2[..., 1]) xxc2 = np.maximum(bboxes1[..., 2], bboxes2[..., 2]) yyc2 = np.maximum(bboxes1[..., 3], bboxes2[..., 3]) wc = xxc2 - xxc1 hc = yyc2 - yyc1 assert (wc > 0).all() and (hc > 0).all() area_enclose = wc * hc # Area of the smallest enclosing box # Corrected GIoU computation giou = iou - (area_enclose - union_area) / area_enclose giou = (giou + 1.0) / 2.0 # Resize from (-1,1) to (0,1) return giou def centroid_batch(self, bboxes1, bboxes2) -> np.ndarray: centroids1 = np.stack(((bboxes1[..., 0] + bboxes1[..., 2]) / 2, (bboxes1[..., 1] + bboxes1[..., 3]) / 2), axis=-1) centroids2 = np.stack(((bboxes2[..., 0] + bboxes2[..., 2]) / 2, (bboxes2[..., 1] + bboxes2[..., 3]) / 2), axis=-1) centroids1 = np.expand_dims(centroids1, 1) centroids2 = np.expand_dims(centroids2, 0) distances = np.sqrt(np.sum((centroids1 - centroids2) ** 2, axis=-1)) norm_factor = np.sqrt(self.w**2 + self.h**2) normalized_distances = distances / norm_factor return 1 - normalized_distances def centroid_batch_obb(self, bboxes1, bboxes2) -> np.ndarray: centroids1 = np.stack((bboxes1[..., 0], bboxes1[..., 1]), axis=-1) centroids2 = np.stack((bboxes2[..., 0], bboxes2[..., 1]), axis=-1) centroids1 = np.expand_dims(centroids1, 1) centroids2 = np.expand_dims(centroids2, 0) distances = np.sqrt(np.sum((centroids1 - centroids2) ** 2, axis=-1)) norm_factor = np.sqrt(self.w**2 + self.h**2) normalized_distances = distances / norm_factor return 1 - normalized_distances @staticmethod def ciou_batch(bboxes1, bboxes2) -> np.ndarray: """ Calculate Complete Intersection over Union (CIoU) for batches of bounding boxes. :param bboxes1: Predicted bounding boxes of shape (N, 4) as (x1, y1, x2, y2) :param bboxes2: Ground truth bounding boxes of shape (N, 4) as (x1, y1, x2, y2) :return: CIoU scores scaled between 0 and 1 """ epsilon = 1e-7 # Small value to prevent division by zero # Expand dimensions for broadcasting bboxes2 = np.expand_dims(bboxes2, 0) # Shape: (1, M, 4) bboxes1 = np.expand_dims(bboxes1, 1) # Shape: (N, 1, 4) # Calculate the intersection box xx1 = np.maximum(bboxes1[..., 0], bboxes2[..., 0]) yy1 = np.maximum(bboxes1[..., 1], bboxes2[..., 1]) xx2 = np.minimum(bboxes1[..., 2], bboxes2[..., 2]) yy2 = np.minimum(bboxes1[..., 3], bboxes2[..., 3]) w = np.maximum(0.0, xx2 - xx1) h = np.maximum(0.0, yy2 - yy1) wh = w * h # Calculate IoU area1 = (bboxes1[..., 2] - bboxes1[..., 0]) * (bboxes1[..., 3] - bboxes1[..., 1]) area2 = (bboxes2[..., 2] - bboxes2[..., 0]) * (bboxes2[..., 3] - bboxes2[..., 1]) iou = wh / (area1 + area2 - wh + epsilon) # Calculate center points centerx1 = (bboxes1[..., 0] + bboxes1[..., 2]) / 2.0 centery1 = (bboxes1[..., 1] + bboxes1[..., 3]) / 2.0 centerx2 = (bboxes2[..., 0] + bboxes2[..., 2]) / 2.0 centery2 = (bboxes2[..., 1] + bboxes2[..., 3]) / 2.0 # Calculate squared center distance inner_diag = (centerx1 - centerx2) ** 2 + (centery1 - centery2) ** 2 # Calculate smallest enclosing box diagonal xxc1 = np.minimum(bboxes1[..., 0], bboxes2[..., 0]) yyc1 = np.minimum(bboxes1[..., 1], bboxes2[..., 1]) xxc2 = np.maximum(bboxes1[..., 2], bboxes2[..., 2]) yyc2 = np.maximum(bboxes1[..., 3], bboxes2[..., 3]) outer_diag = (xxc2 - xxc1) ** 2 + (yyc2 - yyc1) ** 2 + epsilon # Calculate aspect ratio consistency w1 = bboxes1[..., 2] - bboxes1[..., 0] h1 = bboxes1[..., 3] - bboxes1[..., 1] w2 = bboxes2[..., 2] - bboxes2[..., 0] h2 = bboxes2[..., 3] - bboxes2[..., 1] # Prevent division by zero h2 = h2 + epsilon h1 = h1 + epsilon arctan_diff = np.arctan(w2 / h2) - np.arctan(w1 / h1) v = (4 / (np.pi**2)) * (arctan_diff**2) # Calculate alpha S = 1 - iou alpha = v / (S + v + epsilon) # Compute CIoU ciou = iou - (inner_diag / outer_diag) + (alpha * v) # Scale CIoU to [0, 1] return (ciou + 1) / 2.0 @staticmethod def diou_batch(bboxes1, bboxes2) -> np.ndarray: """ :param bbox_p: predict of bbox(N,4)(x1,y1,x2,y2) :param bbox_g: groundtruth of bbox(N,4)(x1,y1,x2,y2) :return: """ # for details should go to https://arxiv.org/pdf/1902.09630.pdf # ensure predict's bbox form bboxes2 = np.expand_dims(bboxes2, 0) bboxes1 = np.expand_dims(bboxes1, 1) # calculate the intersection box xx1 = np.maximum(bboxes1[..., 0], bboxes2[..., 0]) yy1 = np.maximum(bboxes1[..., 1], bboxes2[..., 1]) xx2 = np.minimum(bboxes1[..., 2], bboxes2[..., 2]) yy2 = np.minimum(bboxes1[..., 3], bboxes2[..., 3]) w = np.maximum(0.0, xx2 - xx1) h = np.maximum(0.0, yy2 - yy1) wh = w * h iou = wh / ( (bboxes1[..., 2] - bboxes1[..., 0]) * (bboxes1[..., 3] - bboxes1[..., 1]) + (bboxes2[..., 2] - bboxes2[..., 0]) * (bboxes2[..., 3] - bboxes2[..., 1]) - wh ) centerx1 = (bboxes1[..., 0] + bboxes1[..., 2]) / 2.0 centery1 = (bboxes1[..., 1] + bboxes1[..., 3]) / 2.0 centerx2 = (bboxes2[..., 0] + bboxes2[..., 2]) / 2.0 centery2 = (bboxes2[..., 1] + bboxes2[..., 3]) / 2.0 inner_diag = (centerx1 - centerx2) ** 2 + (centery1 - centery2) ** 2 xxc1 = np.minimum(bboxes1[..., 0], bboxes2[..., 0]) yyc1 = np.minimum(bboxes1[..., 1], bboxes2[..., 1]) xxc2 = np.maximum(bboxes1[..., 2], bboxes2[..., 2]) yyc2 = np.maximum(bboxes1[..., 3], bboxes2[..., 3]) outer_diag = (xxc2 - xxc1) ** 2 + (yyc2 - yyc1) ** 2 diou = iou - inner_diag / outer_diag return (diou + 1) / 2.0 @staticmethod def run_asso_func(self, bboxes1, bboxes2): """ Runs the selected association function (based on the initialization string) on the input bounding boxes. Parameters: bboxes1: First set of bounding boxes. bboxes2: Second set of bounding boxes. """ return self.asso_func(bboxes1, bboxes2) def _get_asso_func(self, asso_mode): """ Returns the corresponding association function based on the provided mode string. Parameters: asso_mode (str): The association function to use (e.g., "iou", "giou", "centroid", etc.). Returns: function: The appropriate function for the association calculation. """ ASSO_FUNCS = { "iou": AssociationFunction.iou_batch, "iou_obb": AssociationFunction.iou_batch_obb, "hmiou": AssociationFunction.hmiou_batch, "giou": AssociationFunction.giou_batch, "ciou": AssociationFunction.ciou_batch, "diou": AssociationFunction.diou_batch, "centroid": self.centroid_batch, # only not being staticmethod "centroid_obb": self.centroid_batch_obb, } if asso_mode not in ASSO_FUNCS: raise ValueError( f"Invalid association mode: {asso_mode}. Choose from {list(ASSO_FUNCS.keys())}" ) return ASSO_FUNCS[asso_mode] ================================================ FILE: boxmot/utils/matching.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license import lap import numpy as np from scipy.spatial.distance import cdist from boxmot.utils.iou import AssociationFunction """ Table for the 0.95 quantile of the chi-square distribution with N degrees of freedom (contains values for N=1, ..., 9). Taken from MATLAB/Octave's chi2inv function and used as Mahalanobis gating threshold. """ chi2inv95 = { 1: 3.8415, 2: 5.9915, 3: 7.8147, 4: 9.4877, 5: 11.070, 6: 12.592, 7: 14.067, 8: 15.507, 9: 16.919, } def linear_assignment(cost_matrix, thresh): if cost_matrix.size == 0: return ( np.empty((0, 2), dtype=int), tuple(range(cost_matrix.shape[0])), tuple(range(cost_matrix.shape[1])), ) matches, unmatched_a, unmatched_b = [], [], [] cost, x, y = lap.lapjv(cost_matrix, extend_cost=True, cost_limit=thresh) for ix, mx in enumerate(x): if mx >= 0: matches.append([ix, mx]) unmatched_a = np.where(x < 0)[0] unmatched_b = np.where(y < 0)[0] matches = np.asarray(matches) return matches, unmatched_a, unmatched_b def iou_distance(atracks, btracks, is_obb: bool = False): """ Compute cost based on IoU :type atracks: list[STrack] :type btracks: list[STrack] :rtype cost_matrix np.ndarray """ if (len(atracks) > 0 and isinstance(atracks[0], np.ndarray)) or ( len(btracks) > 0 and isinstance(btracks[0], np.ndarray) ): atlbrs = atracks btlbrs = btracks else: is_obb = is_obb or any(getattr(track, "is_obb", False) for track in atracks + btracks) if is_obb: atlbrs = [track.xywha for track in atracks] btlbrs = [track.xywha for track in btracks] else: atlbrs = [track.xyxy for track in atracks] btlbrs = [track.xyxy for track in btracks] ious = np.zeros((len(atlbrs), len(btlbrs)), dtype=np.float32) if ious.size == 0: return ious _ious = ( AssociationFunction.iou_batch_obb(atlbrs, btlbrs) if is_obb else AssociationFunction.iou_batch(atlbrs, btlbrs) ) cost_matrix = 1 - _ious return cost_matrix def embedding_distance(tracks, detections, metric="cosine"): """ :param tracks: list[STrack] :param detections: list[BaseTrack] :param metric: :return: cost_matrix np.ndarray """ cost_matrix = np.zeros((len(tracks), len(detections)), dtype=np.float32) if cost_matrix.size == 0: return cost_matrix det_features = np.asarray( [track.curr_feat for track in detections], dtype=np.float32 ) # for i, track in enumerate(tracks): # cost_matrix[i, :] = np.maximum(0.0, cdist(track.smooth_feat.reshape(1,-1), det_features, metric)) track_features = np.asarray( [track.smooth_feat for track in tracks], dtype=np.float32 ) cost_matrix = np.maximum( 0.0, cdist(track_features, det_features, metric) ) # Nomalized features return cost_matrix def fuse_motion(kf, cost_matrix, tracks, detections, only_position=False, lambda_=0.98): if cost_matrix.size == 0: return cost_matrix gating_dim = 2 if only_position else 4 gating_threshold = chi2inv95[gating_dim] measurements = np.asarray([det.to_xyah() for det in detections]) for row, track in enumerate(tracks): gating_distance = kf.gating_distance( track.mean, track.covariance, measurements, only_position, metric="maha" ) cost_matrix[row, gating_distance > gating_threshold] = np.inf cost_matrix[row] = lambda_ * cost_matrix[row] + (1 - lambda_) * gating_distance return cost_matrix def fuse_iou(cost_matrix, tracks, detections): if cost_matrix.size == 0: return cost_matrix reid_sim = 1 - cost_matrix iou_dist = iou_distance(tracks, detections) iou_sim = 1 - iou_dist fuse_sim = reid_sim * (1 + iou_sim) / 2 det_confs = np.array([det.conf for det in detections]) det_confs = np.expand_dims(det_confs, axis=0).repeat(cost_matrix.shape[0], axis=0) # fuse_sim = fuse_sim * (1 + det_confs) / 2 fuse_cost = 1 - fuse_sim return fuse_cost def fuse_score(cost_matrix, detections): if cost_matrix.size == 0: return cost_matrix iou_sim = 1 - cost_matrix det_confs = np.array([det.conf for det in detections]) det_confs = np.expand_dims(det_confs, axis=0).repeat(cost_matrix.shape[0], axis=0) fuse_sim = iou_sim * det_confs fuse_cost = 1 - fuse_sim return fuse_cost ================================================ FILE: boxmot/utils/misc.py ================================================ import sys import threading from pathlib import Path import click from boxmot.utils import WEIGHTS, logger as LOGGER def parse_imgsz(ctx, param, value): """ Parse the imgsz argument. Can be an integer for square images or a tuple (height, width) for specific dimensions. """ if value is None: return None if isinstance(value, int): return value if isinstance(value, (tuple, list)): if len(value) == 1: return int(value[0]) elif len(value) == 2: return (int(value[0]), int(value[1])) else: raise click.BadParameter(f"Invalid --imgsz: {value}") # Parse string s = value.replace(',', ' ') parts = s.split() try: if len(parts) == 1: return int(parts[0]) elif len(parts) == 2: return (int(parts[0]), int(parts[1])) except ValueError: pass raise click.BadParameter(f"Invalid --imgsz: {value}") def resolve_model_path(model_path, default_dir: Path = WEIGHTS) -> Path: """ Preserve explicit model paths and fall back to the weights directory for bare names. Examples: - ``osnet_x0_25_msmt17.pt`` -> ``models/osnet_x0_25_msmt17.pt`` - ``models/foo/bar.tflite`` -> ``models/foo/bar.tflite`` - ``/abs/path/model.onnx`` -> ``/abs/path/model.onnx`` """ path = Path(model_path) if path.is_absolute() or path.exists() or path.parent != Path("."): return path return default_dir / path.name def increment_path(path, exist_ok=False, sep="", mkdir=False): """ Generates an incremented file or directory path if it already exists, with an option to create the directory. Args: path (str or Path): Initial file or directory path. exist_ok (bool): If True, returns the original path even if it exists. sep (str): Separator to use between path stem and increment. mkdir (bool): If True, creates the directory if it doesn’t exist. Returns: Path: Incremented path, or original if exist_ok is True. Example: runs/exp --> runs/exp2, runs/exp3, etc. """ path = Path(path) # ensures OS compatibility if path.exists() and not exist_ok: base, suffix = (path.with_suffix(""), path.suffix) if path.is_file() else (path, "") # Increment path until a non-existing one is found for n in range(2, 9999): new_path = f"{base}{sep}{n}{suffix}" if not Path(new_path).exists(): path = Path(new_path) break if mkdir: path.mkdir(parents=True, exist_ok=True) # creates the directory if it doesn’t exist return path def prompt_overwrite(path_type: str, path: Path, ci: bool = True) -> bool: """ Prompts the user to confirm overwriting an existing file, with a timeout. In CI mode (or if stdin isn’t interactive), always returns False. Args: path_type (str): Type of the path (e.g., 'Detections and Embeddings', 'MOT Result'). path (Path): The path to check. ci (bool): If True, automatically reuse existing file without prompting (for CI environments). Returns: bool: True if user confirms to overwrite, False otherwise. """ # auto-skip in CI or when there's no interactive stdin if ci or not sys.stdin.isatty(): LOGGER.debug(f"{path_type} {path} already exists. Use existing due to no UI mode.") return False def input_with_timeout(prompt: str, timeout: float = 3.0) -> bool: print(prompt, end='', flush=True) result = [] got_input = threading.Event() def _read(): resp = sys.stdin.readline().strip().lower() result.append(resp) got_input.set() t = threading.Thread(target=_read) t.daemon = True t.start() t.join(timeout) if got_input.is_set(): return result[0] in ('y', 'yes') else: print("\nNo response, not proceeding with overwrite...") return False ================================================ FILE: boxmot/utils/mot_utils.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license import re from pathlib import Path from typing import Tuple, Union import numpy as np import pandas as pd import torch from ultralytics.engine.results import Results from ultralytics.utils import ops from boxmot.utils import logger as LOGGER def split_dataset(src_fldr: Path, percent_to_delete: float = 0.5) -> Tuple[Path, str]: """ Copies the dataset to a new location and removes a specified percentage of images and annotations, adjusting the frame index to start at 1. Works for MOT17, MOT20, etc. Args: src_fldr (Path): Source folder (e.g. /…/MOT20/train or /…/MOT20/test) percent_to_delete (float): Fraction of the frames to drop (0.5 → drop 50%) Returns: dst_fldr (Path): The root of the new, smaller split (e.g. …/MOT20-50/train) new_benchmark_name (str): e.g. "MOT20-50" """ src_fldr = Path(src_fldr) # --- detect the "MOTxx" part in the path --- m = re.search(r"(MOT\d+)", str(src_fldr)) if not m: raise ValueError(f"Could not find MOT benchmark in path: {src_fldr}") benchmark = m.group(1) # build the new benchmark name new_benchmark_name = f"{benchmark}-ablation" dst_fldr = Path(str(src_fldr).replace(benchmark, new_benchmark_name)) # copy entire folder tree if not already done if not dst_fldr.exists(): for item in src_fldr.rglob("*"): target = dst_fldr / item.relative_to(src_fldr) if item.is_dir(): target.mkdir(parents=True, exist_ok=True) else: target.write_bytes(item.read_bytes()) # iterate every sequence under dst_fldr for seq_path in dst_fldr.iterdir(): if not seq_path.is_dir(): continue gt_path = seq_path / "gt" / "gt.txt" if not gt_path.exists(): LOGGER.warning(f"Skipping `{seq_path}` – no gt.txt found") continue # load and compute split point df = pd.read_csv(gt_path, header=None) max_frame = int(df[0].max()) split_frame = int(max_frame * (1 - percent_to_delete)) if split_frame >= max_frame: LOGGER.info(f"`{seq_path}` already ≤ split size, skipping.") continue LOGGER.info(f"{seq_path.name}: keeping frames {split_frame+1}-{max_frame}") # filter and re‐index gt df = df[df[0] > split_frame].copy() df[0] = df[0] - split_frame df.to_csv(gt_path, header=False, index=False) # delete early images img_folder = seq_path / "img1" for img in img_folder.glob("*.jpg"): if int(img.stem) <= split_frame: img.unlink() # rename rest to 000001…000xxx remaining = sorted(img_folder.glob("*.jpg")) for idx, img in enumerate(remaining, start=1): img.rename(img_folder / f"{idx:06}.jpg") LOGGER.info(f"{seq_path.name}: now {len(remaining)} images") return dst_fldr, new_benchmark_name def convert_to_mot_format( results: Union[Results, np.ndarray], frame_idx: int ) -> np.ndarray: """ Converts tracking results for a single frame into MOT challenge format. This function supports inputs as either a custom object with a 'boxes' attribute or a numpy array. For custom object inputs, 'boxes' should contain 'id', 'xyxy', 'conf', and 'cls' sub-attributes. For numpy array inputs, the expected format per row is: (xmin, ymin, xmax, ymax, id, conf, cls). Parameters: - results (Union[Results, np.ndarray]): Tracking results for the current frame. - frame_idx (int): The zero-based index of the frame being processed. Returns: - np.ndarray: An array containing the MOT formatted results for the frame. """ # Check if results are not empty if results.size != 0: if isinstance(results, np.ndarray): # Convert numpy array results to MOT format tlwh = ops.xyxy2ltwh(results[:, 0:4]) frame_idx_column = np.full((results.shape[0], 1), frame_idx, dtype=np.int32) mot_results = np.column_stack(( frame_idx_column, # frame index results[:, 4].astype(np.int32), # track id tlwh.round().astype(np.int32), # top,left,width,height np.ones((results.shape[0], 1), dtype=np.int32), # "not ignored" results[:, 6].astype(np.int32) + 1, # class results[:, 5], # confidence (float) )) return mot_results else: # Convert ultralytics results to MOT format num_detections = len(results.boxes) frame_indices = torch.full((num_detections, 1), frame_idx + 1, dtype=torch.int32) not_ignored = torch.ones((num_detections, 1), dtype=torch.int32) mot_results = torch.cat([ frame_indices, # frame index results.boxes.id.unsqueeze(1).astype(np.int32), # track id ops.xyxy2ltwh(results.boxes.xyxy).astype(np.int32), ## top,left,width,height not_ignored, # "not ignored" results.boxes.cls.unsqueeze(1).astype(np.int32) + 1, # class results.boxes.conf.unsqueeze(1).astype(np.float32), # confidence (float) ], dim=1) return mot_results.numpy() def write_mot_results(txt_path: Path, mot_results: np.ndarray) -> None: """ Writes the MOT challenge formatted results to a text file. Parameters: - txt_path (Path): The path to the text file where results are saved. - mot_results (np.ndarray): An array containing the MOT formatted results. Note: The text file will be created if it does not exist, and the directory path to the file will be created as well if necessary. """ if mot_results is not None: # Ensure the parent directory of the txt_path exists txt_path.parent.mkdir(parents=True, exist_ok=True) # Ensure the file exists before opening txt_path.touch(exist_ok=True) if mot_results.size != 0: # Open the file in append mode and save the MOT results with open(str(txt_path), "a") as file: np.savetxt(file, mot_results, fmt="%d,%d,%d,%d,%d,%d,%d,%d,%.6f") # new_folder, name = split_dataset(Path("./boxmot/engine/trackeval/data/MOT20/train"), percent_to_delete=0.5) # print(new_folder, name) ================================================ FILE: boxmot/utils/ops.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license from typing import Tuple, Union import cv2 import numpy as np import torch def xyxy2xywh(x): """ Convert bounding box coordinates from (x1, y1, x2, y2) format to (x, y, width, height) format. Args: x (np.ndarray) or (torch.Tensor): The input bounding box coordinates in (x1, y1, x2, y2) format. Returns: y (np.ndarray) or (torch.Tensor): The bounding box coordinates in (x, y, width, height) format. """ y = x.clone() if isinstance(x, torch.Tensor) else np.copy(x) y[..., 0] = (x[..., 0] + x[..., 2]) / 2 # x center y[..., 1] = (x[..., 1] + x[..., 3]) / 2 # y center y[..., 2] = x[..., 2] - x[..., 0] # width y[..., 3] = x[..., 3] - x[..., 1] # height return y def xywh2xyxy(x): """ Convert bounding box coordinates from (x_c, y_c, width, height) format to (x1, y1, x2, y2) format where (x1, y1) is the top-left corner and (x2, y2) is the bottom-right corner. Args: x (np.ndarray) or (torch.Tensor): The input bounding box coordinates in (x, y, width, height) format. Returns: y (np.ndarray) or (torch.Tensor): The bounding box coordinates in (x1, y1, x2, y2) format. """ y = x.clone() if isinstance(x, torch.Tensor) else np.copy(x) y[..., 0] = x[..., 0] - x[..., 2] / 2 # top left x y[..., 1] = x[..., 1] - x[..., 3] / 2 # top left y y[..., 2] = x[..., 0] + x[..., 2] / 2 # bottom right x y[..., 3] = x[..., 1] + x[..., 3] / 2 # bottom right y return y def xywh2tlwh(x): """ Convert bounding box coordinates from (x c, y c, w, h) format to (t, l, w, h) format where (t, l) is the top-left corner and (w, h) is width and height. Args: x (np.ndarray) or (torch.Tensor): The input bounding box coordinates in (x, y, width, height) format. Returns: y (np.ndarray) or (torch.Tensor): The bounding box coordinates in (x1, y1, x2, y2) format. """ y = x.clone() if isinstance(x, torch.Tensor) else np.copy(x) y[..., 0] = x[..., 0] - x[..., 2] / 2.0 # xc --> t y[..., 1] = x[..., 1] - x[..., 3] / 2.0 # yc --> l y[..., 2] = x[..., 2] # width y[..., 3] = x[..., 3] # height return y def tlwh2xyxy(x): """ Convert bounding box coordinates from (t, l ,w ,h) format to (t, l, w, h) format where (t, l) is the top-left corner and (w, h) is width and height. """ y = x.clone() if isinstance(x, torch.Tensor) else np.copy(x) y[..., 0] = x[..., 0] y[..., 1] = x[..., 1] y[..., 2] = x[..., 0] + x[..., 2] y[..., 3] = x[..., 1] + x[..., 3] return y def xyxy2tlwh(x): """ Convert bounding box coordinates from (t, l ,w ,h) format to (t, l, w, h) format where (t, l) is the top-left corner and (w, h) is width and height. """ y = x.clone() if isinstance(x, torch.Tensor) else np.copy(x) y[..., 0] = x[..., 0] y[..., 1] = x[..., 1] y[..., 2] = x[..., 2] - x[..., 0] y[..., 3] = x[..., 3] - x[..., 1] return y def tlwh2xyah(x): """ Convert bounding box coordinates from (t, l ,w ,h) to (center x, center y, aspect ratio, height)`, where the aspect ratio is `width / height`. """ y = x.clone() if isinstance(x, torch.Tensor) else np.copy(x) y[..., 0] = x[..., 0] + (x[..., 2] / 2) y[..., 1] = x[..., 1] + (x[..., 3] / 2) y[..., 2] = x[..., 2] / x[..., 3] y[..., 3] = x[..., 3] return y def xyxy2xysr(x): """ Converts bounding box coordinates from (x1, y1, x2, y2) format to (x, y, s, r) format. Args: bbox (np.ndarray) or (torch.Tensor): The input bounding box coordinates in (x1, y1, x2, y2) format. Returns: z (np.ndarray) or (torch.Tensor): The bounding box coordinates in (x, y, s, r) format, where x, y is the center of the box, s is the scale (area), and r is the aspect ratio. """ x = x[0:4] y = x.clone() if isinstance(x, torch.Tensor) else np.copy(x) w = y[..., 2] - y[..., 0] # width h = y[..., 3] - y[..., 1] # height y[..., 0] = y[..., 0] + w / 2.0 # x center y[..., 1] = y[..., 1] + h / 2.0 # y center y[..., 2] = w * h # scale (area) y[..., 3] = w / (h + 1e-6) # aspect ratio y = y.reshape((4, 1)) return y def letterbox( img: np.ndarray, new_shape: Union[int, Tuple[int, int]] = (640, 640), color: Tuple[int, int, int] = (114, 114, 114), auto: bool = True, scaleFill: bool = False, scaleup: bool = True, ) -> Tuple[np.ndarray, Tuple[float, float], Tuple[float, float]]: """ Resizes an image to a new shape while maintaining aspect ratio, padding with color if needed. Args: img (np.ndarray): The original image in BGR format. new_shape (Union[int, Tuple[int, int]], optional): Desired size as an integer (e.g., 640) or tuple (width, height). Default is (640, 640). color (Tuple[int, int, int], optional): Padding color in BGR format. Default is (114, 114, 114). auto (bool, optional): If True, adjusts padding to be a multiple of 32. Default is True. scaleFill (bool, optional): If True, stretches the image to fill the new shape. Default is False. scaleup (bool, optional): If True, allows scaling up; otherwise, only scales down. Default is True. Returns: Tuple[np.ndarray, Tuple[float, float], Tuple[float, float]]: - Resized and padded image as np.ndarray. - Scaling ratio used for width and height as (width_ratio, height_ratio). - Padding applied to width and height as (width_padding, height_padding). """ shape = img.shape[:2] # current shape [height, width] # Ensure new_shape is a tuple (width, height) if isinstance(new_shape, int): new_shape = (new_shape, new_shape) # Calculate scale ratio r = min(new_shape[0] / shape[0], new_shape[1] / shape[1]) if not scaleup: r = min(r, 1.0) # only scale down # Calculate new dimensions and padding ratio = (r, r) new_unpad = (int(round(shape[1] * r)), int(round(shape[0] * r))) dw, dh = new_shape[1] - new_unpad[0], new_shape[0] - new_unpad[1] if auto: # minimum rectangle dw, dh = np.mod(dw, 32), np.mod(dh, 32) elif scaleFill: # stretch to fill dw, dh = 0.0, 0.0 new_unpad = new_shape ratio = (new_shape[1] / shape[1], new_shape[0] / shape[0]) # Divide padding by 2 for even distribution dw /= 2 dh /= 2 # Resize image if necessary if shape[::-1] != new_unpad: img = cv2.resize(img, new_unpad, interpolation=cv2.INTER_LINEAR) # Add border to the image top, bottom = int(round(dh - 0.1)), int(round(dh + 0.1)) left, right = int(round(dw - 0.1)), int(round(dw + 0.1)) img = cv2.copyMakeBorder( img, top, bottom, left, right, cv2.BORDER_CONSTANT, value=color ) return img, ratio, (dw, dh) ================================================ FILE: boxmot/utils/plots.py ================================================ import os import matplotlib.pyplot as plt import numpy as np class MetricsPlotter: """ A class for plotting tracking metrics in both radar and FPS-vs-metric line charts. Instead of displaying the plots, this version saves them to disk in a specified root folder. Attributes ---------- root_folder : str The directory where both plots will be saved. Methods ------- plot_radar_chart(data, labels, title='Radar Chart', figsize=(6, 6), ylim=(0, 100.0), yticks=None, ytick_labels=None, filename='radar_chart.png') Plots a radar chart for multiple methods over a fixed set of metrics, then saves it into the root folder under `filename`. plot_fps_metrics(fps, data, title=None, figsize=(10, 6), filename='fps_metrics.png') Plots metrics (e.g., HOTA, MOTA, IDF1) versus FPS as line curves, then saves it into the root folder under `filename`. """ def __init__(self, root_folder: str = '.'): """ Initialize the MetricsPlotter with a root folder for saving plots. Parameters ---------- root_folder : str, optional The directory in which to save both the radar chart and the FPS-vs-metrics plot. Default is the current working directory ('.'). """ self.root_folder = root_folder # Create the directory if it does not exist os.makedirs(self.root_folder, exist_ok=True) def plot_radar_chart(self, data: dict, labels: list, title: str = 'Radar Chart', figsize: tuple = (6, 6), ylim: tuple = (0, 100.0), yticks: list = None, ytick_labels: list = None, filename: str = 'radar_chart.png'): """ Plots a radar chart for multiple methods over a fixed set of metrics, then saves it. Parameters ---------- data : dict Keys are method names (strings), values are lists of numeric scores (one score per label). Each list must have the same length as `labels`. labels : list of str Names of the metrics (e.g. ['HOTA', 'AssA', 'AssR', ...]). title : str, optional Title of the plot (default: 'Radar Chart'). figsize : tuple, optional Size of the figure in inches (default: (6, 6)). ylim : tuple, optional The (min, max) range for the radial axis (default: (0, 100.0)). yticks : list of float, optional Values at which to draw horizontal grid lines (default: [0.2 * ylim[1], 0.4 * ylim[1], 0.6 * ylim[1], 0.8 * ylim[1], ylim[1]]). ytick_labels : list of str, optional String labels for each entry in `yticks` (default: same as numeric ticks). filename : str, optional Name of the file (with extension) under which to save the radar chart. It will be placed inside `root_folder`. Default: 'radar_chart.png'. """ num_vars = len(labels) # Compute equally spaced angles around the circle, then close the loop by appending the first angle again angles = np.linspace(0, 2 * np.pi, num_vars, endpoint=False).tolist() angles += angles[:1] # Prepare figure and polar axes fig, ax = plt.subplots(figsize=figsize, subplot_kw=dict(polar=True)) ax.set_ylim(*ylim) # Default yticks if none provided if yticks is None: yticks = [ylim[1] * (0.2 * i) for i in range(1, 6)] if ytick_labels is None: ytick_labels = [str(t) for t in yticks] # Plot each method for method, values in data.items(): if len(values) != num_vars: raise ValueError( f"Length of values for '{method}' ({len(values)}) " f"does not match number of labels ({num_vars})." ) # Close the loop by appending the first value at the end: vals = values + values[:1] ax.plot(angles, vals, label=method, linewidth=2) ax.fill(angles, vals, alpha=0.1) # Set the category labels at the proper angles ax.set_xticks(angles[:-1]) ax.set_xticklabels(labels) # Draw radial grid lines and set tick labels ax.set_yticks(yticks) ax.set_yticklabels(ytick_labels) ax.yaxis.grid(True) # Place legend below the plot plt.legend(loc='lower center', bbox_to_anchor=(0.5, -0.25), ncol=2) plt.title(title, y=1.08) plt.tight_layout() # Determine full save path and save save_path = os.path.join(self.root_folder, filename) plt.savefig(save_path, dpi=300, bbox_inches='tight') plt.close(fig) # Close the figure to free memory def plot_fps_metrics(self, fps: list, data: dict, title: str = None, figsize: tuple = (10, 6), filename: str = 'fps_metrics.png'): """ Plots tracking metrics (e.g., HOTA, MOTA, IDF1) versus FPS as line curves, then saves it. Parameters ---------- fps : list or array-like A sequence of FPS values (e.g., [2, 4, 8, 16, 24, 32]). data : dict Keys are metric names (strings), values are lists of metric scores corresponding to each FPS in `fps`. All lists must be the same length as `fps`. Example keys: ['BoostTrack HOTA', 'BoostTrack MOTA', 'BoostTrack IDF1']. title : str, optional Title of the plot. If None, defaults to 'Metrics vs FPS' or includes metric names automatically. figsize : tuple, optional Size of the figure in inches (default: (10, 6)). filename : str, optional Name of the file (with extension) under which to save the FPS-vs-metrics plot. It will be placed inside `root_folder`. Default: 'fps_metrics.png'. """ # Validate input lengths for metric, values in data.items(): if len(values) != len(fps): raise ValueError( f"Length of values for '{metric}' ({len(values)}) does not match length of fps ({len(fps)})." ) # If no title provided, create a generic one if title is None: metric_names = ", ".join(data.keys()) title = f"Metrics vs FPS ({metric_names})" fig, ax = plt.subplots(figsize=figsize) for metric, values in data.items(): ax.plot(fps, values, marker='o', label=metric, linewidth=2) ax.set_xlabel("FPS") ax.set_ylabel("Metric Value") ax.set_title(title) ax.grid(True, linestyle='--', alpha=0.5) ax.legend(loc='lower right') plt.tight_layout() # Determine full save path and save save_path = os.path.join(self.root_folder, filename) plt.savefig(save_path, dpi=300, bbox_inches='tight') plt.close(fig) # Close the figure to free memory # Example usage: if __name__ == "__main__": # Create a MetricsPlotter that saves everything under "plots/" directory plotter = MetricsPlotter(root_folder='./') # 1) Radar chart example (will be saved as 'plots/radar_chart.png' by default) labels = ['HOTA', 'AssA', 'AssR', 'MOTA', 'IDF1'] radar_data = { "BoostTrack": [69.25, 73.859, 77.49, 75.908, 83.199], "ByteTrack": [67.68, 69.145, 75.031, 78.039, 79.157], "BoTSORT": [68.888, 71.15, 76.626, 78.232, 81.331], "OCSORT": [66.441, 69.111, 73.787, 74.548, 77.899], "StrongSORT": [68.05, 71.092, 74.983, 76.185, 80.763], } plotter.plot_radar_chart( radar_data, labels, title='Radar Chart of Method Combinations on DanceTrack', ylim=(65, 85), yticks=[65, 70, 75, 80, 85], ytick_labels=['65', '70', '75', '80', '85'] ) # 2) FPS vs Metrics example (will be saved as 'plots/fps_metrics.png' by default) fps = [2, 4, 8, 16, 24, 32] fps_data = { "BoostTrack HOTA": [56.7, 62.7, 66.5, 68.4, 68.9, 68.8], "BoostTrack MOTA": [54.1, 65.9, 73.0, 75.2, 75.7, 75.9], "BoostTrack IDF1": [69.8, 76.9, 80.1, 81.6, 82.1, 82.2], } plotter.plot_fps_metrics( fps, fps_data, title='YOLOX-X + BoostTrack MOT17 metrics vs FPS', figsize=(12, 6) ) ================================================ FILE: boxmot/utils/run_mot_challenge.py ================================================ """ run_mot_challenge.py Run example: run_mot_challenge.py --USE_PARALLEL False --METRICS Hota --TRACKERS_TO_EVAL Lif_T Command Line Arguments: Defaults, # Comments Eval arguments: 'USE_PARALLEL': False, 'NUM_PARALLEL_CORES': 8, 'BREAK_ON_ERROR': True, 'PRINT_RESULTS': True, 'PRINT_ONLY_COMBINED': False, 'PRINT_CONFIG': True, 'TIME_PROGRESS': True, 'OUTPUT_SUMMARY': True, 'OUTPUT_DETAILED': True, 'PLOT_CURVES': True, Dataset arguments: 'GT_FOLDER': os.path.join(code_path, 'data/gt/mot_challenge/'), # Location of GT data 'TRACKERS_FOLDER': os.path.join(code_path, 'data/trackers/mot_challenge/'), # Trackers location 'OUTPUT_FOLDER': None, # Where to save eval results (if None, same as TRACKERS_FOLDER) 'TRACKERS_TO_EVAL': None, # Filenames of trackers to eval (if None, all in folder) 'CLASSES_TO_EVAL': ['pedestrian'], # Valid: ['pedestrian'] 'BENCHMARK': 'MOT17', # Valid: 'MOT17', 'MOT16', 'MOT20', 'MOT15' 'SPLIT_TO_EVAL': 'train', # Valid: 'train', 'test', 'all' 'INPUT_AS_ZIP': False, # Whether tracker input files are zipped 'PRINT_CONFIG': True, # Whether to print current config 'DO_PREPROC': True, # Whether to perform preprocessing (never done for 2D_MOT_2015) 'TRACKER_SUB_FOLDER': 'data', # Tracker files are in TRACKER_FOLDER/tracker_name/TRACKER_SUB_FOLDER 'OUTPUT_SUB_FOLDER': '', # Output files are saved in OUTPUT_FOLDER/tracker_name/OUTPUT_SUB_FOLDER Metric arguments: 'METRICS': ['HOTA', 'CLEAR', 'Identity', 'VACE'] """ import sys import os import argparse from multiprocessing import freeze_support from pathlib import Path # Setup paths current_dir = Path(__file__).resolve().parent boxmot_dir = current_dir.parent trackeval_dir = boxmot_dir / "engine" / "trackeval" # Add trackeval to sys.path sys.path.insert(0, str(trackeval_dir)) # Add current dir to sys.path to find custom_mot_challenge_2d_box.py sys.path.insert(0, str(current_dir)) import trackeval # noqa: E402 from custom_mot_challenge_2d_box import CustomMotChallenge2DBox if __name__ == '__main__': freeze_support() # Command line interface: default_eval_config = trackeval.Evaluator.get_default_eval_config() default_eval_config['DISPLAY_LESS_PROGRESS'] = False # Use CustomMotChallenge2DBox for default config default_dataset_config = CustomMotChallenge2DBox.get_default_dataset_config() default_metrics_config = {'METRICS': ['HOTA', 'CLEAR', 'Identity'], 'THRESHOLD': 0.5} config = {**default_eval_config, **default_dataset_config, **default_metrics_config} # Merge default configs parser = argparse.ArgumentParser() for setting in config.keys(): if setting == 'DISTRACTOR_CLASS_IDS': parser.add_argument("--" + setting, nargs='*') # allow empty list elif type(config[setting]) == list or type(config[setting]) == type(None): parser.add_argument("--" + setting, nargs='+') else: parser.add_argument("--" + setting) args = parser.parse_args().__dict__ for setting in args.keys(): if args[setting] is not None: if type(config[setting]) == type(True): if args[setting] == 'True': x = True elif args[setting] == 'False': x = False else: raise Exception('Command line parameter ' + setting + 'must be True or False') elif type(config[setting]) == type(1): x = int(args[setting]) elif type(args[setting]) == type(None): x = None elif setting == 'SEQ_INFO': seq_info_dict = {} for entry in args[setting]: if ':' in entry: name, length = entry.split(':', 1) seq_info_dict[name] = int(length) if length else None elif '=' in entry: name, length = entry.split('=', 1) seq_info_dict[name] = int(length) if length else None else: seq_info_dict[entry] = None x = seq_info_dict elif setting in {'CLASS_IDS', 'DISTRACTOR_CLASS_IDS'}: x = [int(v) for v in args[setting]] if args[setting] is not None else [] else: x = args[setting] config[setting] = x eval_config = {k: v for k, v in config.items() if k in default_eval_config.keys()} dataset_config = {k: v for k, v in config.items() if k in default_dataset_config.keys()} metrics_config = {k: v for k, v in config.items() if k in default_metrics_config.keys()} # Run code evaluator = trackeval.Evaluator(eval_config) # Use CustomMotChallenge2DBox dataset_list = [CustomMotChallenge2DBox(dataset_config)] metrics_list = [] for metric in [trackeval.metrics.HOTA, trackeval.metrics.CLEAR, trackeval.metrics.Identity, trackeval.metrics.VACE]: if metric.get_name() in metrics_config['METRICS']: metrics_list.append(metric(metrics_config)) if len(metrics_list) == 0: raise Exception('No metrics selected for evaluation') evaluator.evaluate(dataset_list, metrics_list) ================================================ FILE: boxmot/utils/timing.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license import time from boxmot.utils import logger as LOGGER class TimingStats: """Track timing statistics for detection, ReID, and tracking phases.""" def __init__(self): self.reset() def reset(self): self.totals = { 'preprocess': 0.0, 'inference': 0.0, 'postprocess': 0.0, 'reid': 0.0, 'track': 0.0, 'plot': 0.0, 'total': 0.0, } self.frames = 0 self._frame_start = None self._track_start = None self._plot_start = None def start_frame(self): """Mark the start of frame processing.""" self._frame_start = time.perf_counter() def start_tracking(self): """Mark the start of tracking phase.""" self._track_start = time.perf_counter() def end_tracking(self): """Mark the end of tracking phase and record time.""" if self._track_start is not None: elapsed = (time.perf_counter() - self._track_start) * 1000 self.totals['track'] += elapsed self._last_track_time = elapsed self._track_start = None def get_last_track_time(self): """Get the last tracking time in ms.""" return getattr(self, '_last_track_time', 0) def get_last_reid_time(self): """Get the last ReID time in ms (accumulated during last track update).""" return getattr(self, '_last_reid_time', 0) def reset_frame_reid(self): """Reset per-frame ReID accumulator (call before each track update).""" self._last_reid_time = 0 def start_plot(self): """Mark the start of plotting phase.""" self._plot_start = time.perf_counter() def end_plot(self): """Mark the end of plotting phase and record time.""" if self._plot_start is not None: self.totals['plot'] += (time.perf_counter() - self._plot_start) * 1000 self._plot_start = None def add_reid_time(self, time_ms): """Add ReID time in milliseconds.""" self.totals['reid'] += time_ms # Also accumulate for per-frame tracking self._last_reid_time = getattr(self, '_last_reid_time', 0) + time_ms def record_ultralytics_times(self, predictor): """Record timing from Ultralytics results.""" # Ultralytics stores speed info in results[].speed dict # speed contains: preprocess, inference, postprocess times in ms if hasattr(predictor, 'results') and predictor.results: for result in predictor.results: if hasattr(result, 'speed') and result.speed: self.totals['preprocess'] += result.speed.get('preprocess', 0) or 0 self.totals['inference'] += result.speed.get('inference', 0) or 0 self.totals['postprocess'] += result.speed.get('postprocess', 0) or 0 def end_frame(self): """Mark the end of frame processing.""" if self._frame_start is not None: self.totals['total'] += (time.perf_counter() - self._frame_start) * 1000 self.frames += 1 self._frame_start = None def print_summary(self): """Print execution time summary table with blue color palette.""" # Check if we have any data to display has_data = any(v > 0 for v in self.totals.values()) if not has_data: return frames = self.frames if self.frames > 0 else 1 # Avoid division by zero # Calculate detection total det_total = self.totals['preprocess'] + self.totals['inference'] + self.totals['postprocess'] total_time = self.totals['total'] plot_time = self.totals['plot'] reid_total = self.totals['reid'] track_total = self.totals['track'] # Determine workflow mode based on what was recorded # - Real-time tracking: tracking done frame-by-frame with ReID embedded (assoc = track - reid) # - Batch evaluation: ReID + tracking both recorded separately (assoc = track only since ReID is standalone) # # In batch mode, ReID is done *before* tracking with pre-computed embeddings, # so track_total is pure association time. In real-time, ReID is inside track. # We can detect batch mode if frames==0 (timing was aggregated from subprocess) # or by looking for a flag. For now, use heuristic: if reid_total > 0 but frames==0, batch mode. is_batch_mode = self.frames == 0 or (reid_total > 0 and det_total > 0) # In batch mode: track_total is pure association (ReID was separate) # In real-time mode: association = track - reid if is_batch_mode: assoc_time = track_total # Track is association-only when ReID is pre-computed else: assoc_time = max(0, track_total - reid_total) # Calculate overhead (unaccounted time) - only meaningful if total was recorded accounted = det_total + reid_total + track_total + plot_time # If no total time recorded, estimate from components if total_time == 0: total_time = accounted # For batch mode, track time doesn't overlap with det+reid overhead = max(0, total_time - accounted) # Helper to calculate percentage def pct(value): return (value / total_time * 100) if total_time > 0 else 0 # Helper to calculate FPS from avg ms def fps_from_avg(avg_ms): return 1000 / avg_ms if avg_ms > 0 else 0 # Helper for colored logging def log(msg): LOGGER.opt(colors=True).info(msg) log("") log("" + "=" * 105 + "") log(f"{'📊 TIMING SUMMARY':^105}") log("" + "=" * 105 + "") log(f"{'Component':<20} | {'Total (ms)':<12} | {'Avg (ms)':<12} | {'FPS':<10} | {'% of Total':<12}") log("" + "-" * 105 + "") # Detection pipeline for key in ['preprocess', 'inference', 'postprocess']: total = self.totals[key] avg = total / frames fps = fps_from_avg(avg) log(f"{key.capitalize():<20} | {total:<12.1f} | {avg:<12.2f} | {fps:<10.1f} | {pct(total):<12.1f}") det_avg = det_total / frames det_fps = fps_from_avg(det_avg) log(f"{'Detection (total)':<20} | {det_total:<12.1f} | {det_avg:<12.2f} | {det_fps:<10.1f} | {pct(det_total):<12.1f}") log("" + "-" * 105 + "") # ReID / Tracking section - display depends on workflow mode reid_avg = reid_total / frames if frames > 0 else 0 reid_fps = fps_from_avg(reid_avg) log(f"{'ReID':<20} | {reid_total:<12.1f} | {reid_avg:<12.2f} | {reid_fps:<10.1f} | {pct(reid_total):<12.1f}") # Show association/track in both modes if track_total > 0: assoc_avg = assoc_time / frames if frames > 0 else 0 assoc_fps = fps_from_avg(assoc_avg) log(f"{'Association':<20} | {assoc_time:<12.1f} | {assoc_avg:<12.2f} | {assoc_fps:<10.1f} | {pct(assoc_time):<12.1f}") tracking_total = track_total if not is_batch_mode else (reid_total + track_total) tracking_avg = tracking_total / frames if frames > 0 else 0 tracking_fps = fps_from_avg(tracking_avg) log( f"{'Tracking (total)':<20} | {tracking_total:<12.1f} | " f"{tracking_avg:<12.2f} | {tracking_fps:<10.1f} | {pct(tracking_total):<12.1f}" ) log("" + "-" * 105 + "") # Plotting and overhead if plot_time > 0: plot_avg = plot_time / frames plot_fps = fps_from_avg(plot_avg) log(f"{'Plotting':<20} | {plot_time:<12.1f} | {plot_avg:<12.2f} | {plot_fps:<10.1f} | {pct(plot_time):<12.1f}") if overhead > 0: overhead_avg = overhead / frames overhead_fps = fps_from_avg(overhead_avg) log(f"{'Other (I/O, etc)':<20} | {overhead:<12.1f} | {overhead_avg:<12.2f} | {overhead_fps:<10.1f} | {pct(overhead):<12.1f}") log("" + "-" * 105 + "") avg_total = total_time / frames total_fps = fps_from_avg(avg_total) log(f"{'Total':<20} | {total_time:<12.1f} | {avg_total:<12.2f} | {total_fps:<10.1f} | {100.0:<12.1f}") log(f"{'Frames':<20} | {frames:<12}") log("" + "=" * 105 + "") log("") class TimedReIDWrapper: """Wrapper around ReID model to track timing.""" def __init__(self, model, timing_stats): self._model = model self._timing_stats = timing_stats def get_features(self, *args, **kwargs): """Wrap get_features to measure timing.""" t0 = time.perf_counter() result = self._model.get_features(*args, **kwargs) elapsed_ms = (time.perf_counter() - t0) * 1000 self._timing_stats.add_reid_time(elapsed_ms) return result def __getattr__(self, name): """Forward all other attributes to the wrapped model.""" return getattr(self._model, name) def wrap_tracker_reid(tracker, timing_stats): """ Wrap a tracker's ReID model with timing instrumentation. Args: tracker: The tracker instance. timing_stats: TimingStats instance to record ReID timing. """ # Different trackers store ReID model in different attributes reid_model = None reid_attr = None if hasattr(tracker, 'model') and tracker.model is not None: reid_model = tracker.model reid_attr = 'model' elif hasattr(tracker, 'reid_model') and tracker.reid_model is not None: reid_model = tracker.reid_model reid_attr = 'reid_model' if reid_model is not None and hasattr(reid_model, 'get_features'): wrapped = TimedReIDWrapper(reid_model, timing_stats) setattr(tracker, reid_attr, wrapped) ================================================ FILE: boxmot/utils/torch_utils.py ================================================ # Mikel Broström 🔥 BoxMOT 🧾 AGPL-3.0 license import os import platform import torch from .. import __version__ from . import logger as LOGGER def get_system_info(): return f"BoxMOT v{__version__} 🚀 Python-{platform.python_version()} torch-{torch.__version__}" def parse_device(device): device = ( str(device) .lower() .replace("cuda:", "") .replace("none", "") .replace("(", "") .replace(")", "") .replace("[", "") .replace("]", "") .replace("'", "") .replace(" ", "") ) return device def assert_cuda_available(device): if not ( torch.cuda.is_available() and torch.cuda.device_count() >= len(device.replace(",", "")) ): install = ( "See https://pytorch.org/get-started/locally/ for up-to-date torch install instructions if no CUDA devices are seen by torch.\n" if torch.cuda.device_count() == 0 else "" ) raise ValueError( f"Invalid CUDA 'device={device}' requested. Use 'device=cpu' or pass valid CUDA device(s) if available, i.e. 'device=0' or 'device=0,1,2,3' for Multi-GPU.\n" + f"\ntorch.cuda.is_available(): {torch.cuda.is_available()}" + f"\ntorch.cuda.device_count(): {torch.cuda.device_count()}" + f"\nos.environ['CUDA_VISIBLE_DEVICES']: {os.environ.get('CUDA_VISIBLE_DEVICES', None)}\n{install}" ) def select_device(device="", batch=0): s = get_system_info() device = parse_device(device) mps = device == "mps" cpu = device == "cpu" or device == "" and not torch.cuda.is_available() if cpu or mps: os.environ["CUDA_VISIBLE_DEVICES"] = "-1" elif device: os.environ["CUDA_VISIBLE_DEVICES"] = device assert_cuda_available(device) if not cpu and not mps and torch.cuda.is_available(): devices = device.split(",") if device else ["0"] n = len(devices) if n > 1 and batch > 0 and batch % n != 0: raise ValueError(f"'batch={batch}' must be a multiple of GPU count {n}.") s += "\n" + "\n".join( f"CUDA:{d} ({torch.cuda.get_device_properties(i).name}, {torch.cuda.get_device_properties(i).total_memory / (1 << 20):.0f}MiB)" for i, d in enumerate(devices) ) arg = "cuda:" + devices[0] elif mps: s += "MPS" arg = "mps" else: s += "CPU" arg = "cpu" LOGGER.info(s) return torch.device(arg) ================================================ FILE: boxmot/utils/visualization.py ================================================ import colorsys import hashlib from abc import ABC, abstractmethod import cv2 as cv import numpy as np class BaseVisualization(ABC): """ Abstract base class for visualization methods in BaseTracker. """ def id_to_color( self, id: int, saturation: float = 0.75, value: float = 0.95, state: str = "confirmed" ) -> tuple: """ Returns green for target_id, otherwise generates a consistent unique BGR color using ID hashing. """ target_id = getattr(self, "target_id", None) if target_id is not None: return (0, 255, 0) if id == target_id else (0, 0, 0) # Default: consistent hashed color for other IDs hash_object = hashlib.sha256(str(id).encode()) hash_digest = hash_object.hexdigest() hue = int(hash_digest[:8], 16) / 0xFFFFFFFF # Convert HSV to RGB rgb = colorsys.hsv_to_rgb(hue, saturation, value) rgb_255 = tuple(int(component * 255) for component in rgb) # Convert to BGR return rgb_255[::-1] def _draw_dashed_rect(self, img, x1, y1, x2, y2, color, thickness, dash=10, gap=10): """Dashed rectangle for AABB (used for 'lost'/'predicted').""" # Top / Bottom for i in range(x1, x2, dash + gap): img = cv.line(img, (i, y1), (min(i + dash, x2), y1), color, thickness) img = cv.line(img, (i, y2), (min(i + dash, x2), y2), color, thickness) # Left / Right for i in range(y1, y2, dash + gap): img = cv.line(img, (x1, i), (x1, min(i + dash, y2)), color, thickness) img = cv.line(img, (x2, i), (x2, min(i + dash, y2)), color, thickness) return img @staticmethod def _obb_to_polygon(box: tuple) -> np.ndarray: arr = np.asarray(box, dtype=np.float32).reshape(-1) if arr.size >= 8: return arr[:8].reshape(4, 2) angle = arr[4] * 180.0 / np.pi box_poly = ((arr[0], arr[1]), (arr[2], arr[3]), angle) return cv.boxPoints(box_poly).astype(np.float32) def plot_box_on_img( self, img: np.ndarray, box: tuple, conf: float, cls: int, id: int, thickness: int = 2, fontscale: float = 0.5, state: str = "confirmed", style: str = "solid", # "solid" | "dashed" (dashed only for AABB) ) -> np.ndarray: """ Draws a bounding box with ID, confidence, and class information on an image. """ color = self.id_to_color(id, state=state) if self.is_obb: box_arr = np.asarray(box, dtype=np.float32).reshape(-1) box_poly = np.int_(self._obb_to_polygon(box)) center = np.mean(box_poly, axis=0).astype(int) label = f"id: {int(id)}, conf: {conf:.2f}, c: {int(cls)}" if box_arr.size >= 5 and box_arr.size < 8: label += f", a: {box_arr[4]:.2f}" # Draw the rectangle on the image img = cv.polylines( img, [box_poly], isClosed=True, color=color, thickness=thickness, ) img = cv.putText( img, label, (int(center[0]), int(center[1]) - 10), cv.FONT_HERSHEY_SIMPLEX, fontscale, color, thickness, ) else: x1, y1, x2, y2 = map(int, (box[0], box[1], box[2], box[3])) if style == "dashed": img = self._draw_dashed_rect(img, x1, y1, x2, y2, color, thickness) else: img = cv.rectangle( img, (x1, y1), (x2, y2), color, thickness, ) img = cv.putText( img, f"id: {int(id)}, conf: {conf:.2f}, c: {int(cls)}", (x1, max(0, y1 - 10)), cv.FONT_HERSHEY_SIMPLEX, fontscale, color, thickness, ) return img def plot_trackers_trajectories( self, img: np.ndarray, observations: list, id: int, state: str = "confirmed" ) -> np.ndarray: """ Draws the trajectories of tracked objects based on historical observations. """ for i, box in enumerate(observations): trajectory_thickness = int(np.sqrt(float(i + 1)) * 1.2) if self.is_obb: poly = self._obb_to_polygon(box) center = np.mean(poly, axis=0) img = cv.circle( img, (int(center[0]), int(center[1])), 2, color=self.id_to_color(int(id), state=state), thickness=trajectory_thickness, ) else: img = cv.circle( img, (int((box[0] + box[2]) / 2), int((box[1] + box[3]) / 2)), 2, color=self.id_to_color(int(id), state=state), thickness=trajectory_thickness, ) return img # ---------- Helpers for a DRY plot_results ---------- def _all_active_tracks(self): """Flatten active tracks across classes (if per-class).""" if getattr(self, "per_class_active_tracks", None) is None: return list(getattr(self, "active_tracks", []) or []) tracks = [] for k in self.per_class_active_tracks.keys(): tracks += self.per_class_active_tracks[k] return tracks def _infer_state(self, a): """Infer a generic state string for a track when lost/removed lists are not present.""" if hasattr(a, "hits"): # DeepOCSort / OCSort if a.hits < getattr(self, "min_hits", 0): return None # not yet confirmed -> skip elif hasattr(a, "is_activated"): # ByteTrack if not a.is_activated: return None if hasattr(a, "time_since_update"): if a.time_since_update == 0: return "confirmed" elif a.time_since_update <= getattr(self, "max_age", 1_000_000): return "predicted" else: return "lost" if hasattr(a, "state"): try: from boxmot.trackers.bytetrack.basetrack import TrackState if a.state == TrackState.Tracked: return "confirmed" elif a.state == TrackState.Lost: return "predicted" else: return "lost" except Exception: return "confirmed" if getattr(a, "is_activated", True) else "lost" return "confirmed" @abstractmethod def _display_groups(self): pass def _draw_track(self, img, a, forced_state, style, thickness, fontscale, show_trajectories): if not getattr(a, "history_observations", None): return img state = forced_state or self._infer_state(a) if state is None: return img # e.g., below min_hits # If the track is lost (predicted), use the current Kalman Filter prediction # instead of the last history observation (which is the last seen detection) if state == "predicted": if self.is_obb and hasattr(a, "_state_obb_for_plot"): box = a._state_obb_for_plot() elif self.is_obb and hasattr(a, "xywha"): box = a.xywha elif hasattr(a, "xyxy"): box = a.xyxy elif hasattr(a, "get_state"): box = a.get_state() # Handle OCSORT's get_state returning (1, 4) array if isinstance(box, np.ndarray) and box.ndim == 2 and box.shape[0] == 1: box = box[0] else: box = a.history_observations[-1] else: box = a.history_observations[-1] conf = getattr(a, "conf", 1.0) cls = getattr(a, "cls", -1) img = self.plot_box_on_img( img=img, box=box, conf=conf, cls=cls, id=int(getattr(a, "id")), thickness=thickness, fontscale=fontscale, state=state, style=style if (state == "predicted" and not self.is_obb) else "solid", ) if show_trajectories: img = self.plot_trackers_trajectories(img, a.history_observations, int(getattr(a, "id")), state=state) return img def plot_results( self, img: np.ndarray, show_trajectories: bool, thickness: int = 2, fontscale: float = 0.5, show_lost: bool = False, ) -> np.ndarray: """ Visualizes the trajectories of all active tracks on the image. """ for tracks, forced_state, style in self._display_groups(): if not show_lost and forced_state in ("predicted", "removed"): continue for a in tracks: if not show_lost and forced_state is None: state = self._infer_state(a) if state != "confirmed": continue img = self._draw_track( img, a, forced_state=forced_state, style=style, thickness=thickness, fontscale=fontscale, show_trajectories=show_trajectories, ) return img class ExplicitStateVisualization(BaseVisualization): """ Visualization for trackers that maintain explicit lists for lost and removed tracks. """ def _display_groups(self): lost_list = getattr(self, "lost_stracks", None) removed_list = getattr(self, "removed_stracks", None) # Maintain internal frame index for TTL accounting self._plot_frame_idx += 1 now = self._plot_frame_idx ttl = int(max(0, getattr(self, "removed_display_frames", self.removed_display_frames))) # Active yield (self._all_active_tracks(), "confirmed", "solid") # Lost (dashed, orange) if lost_list: yield (list(lost_list), "predicted", "dashed") # Removed (gray, solid), with TTL + tombstone if removed_list and ttl > 0: filtered_removed = [] for a in removed_list: if not getattr(a, "history_observations", None): continue sf = int(getattr(a, "start_frame", getattr(a, "birth_frame", -1))) rid = int(getattr(a, "id")) key = (rid, sf) if sf >= 0 else rid if key in self._removed_expired: continue if key not in self._removed_first_seen: self._removed_first_seen[key] = now if (now - self._removed_first_seen[key]) < ttl: filtered_removed.append(a) else: self._removed_expired.add(key) if filtered_removed: yield (filtered_removed, "removed", "solid") # Optional: simple memory cap if len(self._removed_expired) > 10000: horizon = getattr(self, "removed_tombstone_horizon", 10000) cutoff = now - max(ttl, 1) - horizon to_drop = [k for k, t0 in self._removed_first_seen.items() if t0 < cutoff] for k in to_drop: self._removed_first_seen.pop(k, None) self._removed_expired.discard(k) class InferredStateVisualization(BaseVisualization): """ Visualization for trackers that only expose active tracks and state is inferred. """ def _display_groups(self): # Maintain internal frame index for TTL accounting self._plot_frame_idx += 1 # Generic fallback: only active tracks; state per track active_tracks = self._all_active_tracks() if active_tracks: yield (active_tracks, None, "dashed") class VisualizationMixin(BaseVisualization): """ Mixin class for visualization methods in BaseTracker. """ def _display_groups(self): lost_list = getattr(self, "lost_stracks", None) removed_list = getattr(self, "removed_stracks", None) if (lost_list is not None) or (removed_list is not None): return ExplicitStateVisualization._display_groups(self) else: return InferredStateVisualization._display_groups(self) ================================================ FILE: docs/modes/eval.md ================================================ # eval ::: mkdocs-click :module: boxmot.engine.cli :command: boxmot :depth: 1 :command: eval :style: table :prog_name: boxmot eval ================================================ FILE: docs/modes/generate.md ================================================ # generate ::: mkdocs-click :module: boxmot.engine.cli :command: boxmot :depth: 1 :command: generate :style: table :prog_name: boxmot generate ================================================ FILE: docs/modes/track.md ================================================ # track ::: mkdocs-click :module: boxmot.engine.cli :command: boxmot :depth: 1 :command: track :style: table :prog_name: boxmot track ================================================ FILE: docs/modes/tune.md ================================================ # tune ::: mkdocs-click :module: boxmot.engine.cli :command: boxmot :depth: 1 :command: tune :style: table :prog_name: boxmot tune ================================================ FILE: docs/trackers/boosttrack.md ================================================ # BoostTrack ::: boxmot.trackers.boosttrack.boosttrack.BoostTrack ================================================ FILE: docs/trackers/botsort.md ================================================ # BotSort ::: boxmot.trackers.botsort.botsort.BotSort ================================================ FILE: docs/trackers/bytetrack.md ================================================ # ByteTrack ::: boxmot.trackers.bytetrack.bytetrack.ByteTrack ================================================ FILE: docs/trackers/deepocsort.md ================================================ # DeepOcSort ::: boxmot.trackers.deepocsort.deepocsort.DeepOcSort ================================================ FILE: docs/trackers/ocsort.md ================================================ # OcSort ::: boxmot.trackers.ocsort.ocsort.OcSort ================================================ FILE: docs/trackers/sfsort.md ================================================ # SFSORT ::: boxmot.trackers.sfsort.sfsort.SFSORT ================================================ FILE: docs/trackers/strongsort.md ================================================ # StrongSort ::: boxmot.trackers.strongsort.strongsort.StrongSort ================================================ FILE: examples/det/efficientdet_boxmot.ipynb ================================================ { "cells": [ { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "pip install effdet" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from pathlib import Path\n", "\n", "import cv2\n", "import torch\n", "from effdet import create_model\n", "from effdet.config import get_efficientdet_config\n", "from torchvision import transforms\n", "\n", "from boxmot import BotSort\n", "from boxmot.utils.ops import letterbox\n", "\n", "# Load EfficientDet model\n", "device = torch.device('mps') # Use 'cuda' if you have a GPU\n", "\n", "model_name = 'tf_efficientdet_d0' # You can choose a different variant like 'tf_efficientdet_d3'\n", "config = get_efficientdet_config(model_name)\n", "model = create_model(model_name, bench_task='predict', pretrained=True).to(device)\n", "model.eval()\n", "\n", "# Initialize the tracker\n", "tracker = BotSort(\n", " reid_weights=Path('osnet_x0_25_msmt17.pt'), # Path to ReID model\n", " device=device, # Use CPU for inference\n", " half=False\n", ")\n", "\n", "input_size = config.image_size\n", "\n", "preprocess = transforms.Compose([\n", " transforms.ToTensor(),\n", " transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])\n", "])\n", "\n", "# Open the video file\n", "vid = cv2.VideoCapture(0) # or 'path/to/your.avi'\n", "\n", "while True:\n", " # Capture frame-by-frame\n", " ret, frame = vid.read()\n", "\n", " # If ret is False, it means we have reached the end of the video\n", " if not ret:\n", " break\n", "\n", " # Apply letterbox resizing\n", " frame_letterbox, ratio, (dw, dh) = letterbox(frame, new_shape=input_size, auto=False, scaleFill=True)\n", " \n", " # Preprocess frame for EfficientDet (resize and normalize)\n", " frame_tensor = preprocess(frame_letterbox).unsqueeze(0).to(device)\n", "\n", " # Perform detection\n", " with torch.no_grad():\n", " detections = model(frame_tensor)[0]\n", " \n", " # Assuming detections is shaped [100, 6], with [x1, y1, x2, y2, confidence, class]\n", " confidence_threshold = 0.5\n", " \n", " # Filter detections based on confidence threshold\n", " mask = detections[:, 4] >= confidence_threshold\n", " filtered_dets = detections[mask]\n", "\n", " # Rescale coordinates from letterbox back to the original frame size\n", " filtered_dets[:, 0] = (filtered_dets[:, 0] - dw) / ratio[0]\n", " filtered_dets[:, 1] = (filtered_dets[:, 1] - dh) / ratio[1]\n", " filtered_dets[:, 2] = (filtered_dets[:, 2] - dw) / ratio[0]\n", " filtered_dets[:, 3] = (filtered_dets[:, 3] - dh) / ratio[1]\n", "\n", " # Convert class to integer and stack results\n", " dets = torch.cat((filtered_dets[:, :5], filtered_dets[:, 5].unsqueeze(1).int()), dim=1)\n", "\n", " # Convert to numpy array (N X (x, y, x, y, conf, cls))\n", " dets = dets.cpu().numpy()\n", "\n", " # Update the tracker\n", " res = tracker.update(dets, frame) # --> M X (x, y, x, y, id, conf, cls, ind)\n", "\n", " # Plot tracking results on the image\n", " tracker.plot_results(frame, show_trajectories=True)\n", "\n", " # Display the frame\n", " cv2.imshow('BoXMOT + EfficientDet', frame)\n", "\n", " # Simulate wait for key press to continue, press 'q' to exit\n", " key = cv2.waitKey(1) & 0xFF\n", " if key == ord('q'):\n", " break\n", "\n", "# Release resources\n", "vid.release()\n", "cv2.destroyAllWindows()\n" ] } ], "metadata": { "kernelspec": { "display_name": "boxmot-YDNZdsaB-py3.11", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.5" } }, "nbformat": 4, "nbformat_minor": 2 } ================================================ FILE: examples/det/obb.ipynb ================================================ { "cells": [ { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2\r" ] } ], "source": [ "import cv2\n", "import numpy as np\n", "\n", "from boxmot import OcSort\n", "\n", "# Initialize the tracker\n", "tracker = OcSort(\n", " asso_func=\"centroid\",\n", " min_hits=10,\n", " asso_threshold=0.98,\n", " det_thresh = 0.7,\n", " max_age=20,\n", " use_byte=True,\n", " Q_xy_scaling = 0.01,\n", " Q_s_scaling = 0.0001,\n", ")\n", "\n", "def get_parabolic_array(i):\n", " \"\"\"\n", " Generates coordinates where x increases linearly,\n", " y follows a parabolic curve (y = base + coeff * i^2),\n", " and the angle matches the tangent of the curve.\n", " \"\"\"\n", " # -- FIRST ROW --\n", " # Define x1, y1\n", " x1 = 144 + i\n", " y1 = 212 + 0.01 * (i ** 2)\n", " \n", " # Slope = 2 * coeff * i => for 0.01 * i^2, slope = 2*0.01*i = 0.02*i\n", " slope1 = 0.02 * i\n", " # Angle in radians\n", " angle1 = np.arctan(slope1)\n", " \n", " # -- SECOND ROW --\n", " # Define x2, y2 with a different coefficient\n", " x2 = 425 + i\n", " y2 = 281 + 0.02 * (i ** 2)\n", " \n", " # Slope for 0.02 * i^2 is 2*0.02*i = 0.04*i\n", " slope2 = 0.04 * i\n", " # Angle in radians\n", " angle2 = np.arctan(slope2)\n", " \n", " # Build the array\n", " det = np.array([\n", " [x1, y1, 45, 30, angle1, 0.82, 0], # row 1\n", " [x2, y2, 45, 30, angle2, 0.72, 65] # row 2\n", " ])\n", " \n", " return det\n", "\n", "\n", "for i in range(0, 100):\n", "\n", " #frame = cv2.imread(str(img_dir / (file.stem + '.png')))\n", " frame = np.zeros((1080,1080,3))\n", " \n", " det = get_parabolic_array(i)\n", "\n", " # Update the tracker\n", " res = tracker.update(det, frame) # --> M X (x, y, x, y, id, conf, cls, ind)\n", " \n", " # Plot tracking results on the image\n", " tracker.plot_results(frame, show_trajectories=True, fontscale=2, thickness=4)\n", "\n", " # Display the frame\n", " cv2.imshow('BoXMOT', frame)\n", "\n", " print(len(tracker.active_tracks),end='\\r')\n", "\n", " key = cv2.waitKey(1) & 0xFF\n", " if key == ord('q') or key ==27:\n", " break\n", "\n", "cv2.destroyAllWindows()" ] } ], "metadata": { "kernelspec": { "display_name": "boxmot-YDNZdsaB-py3.11", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.5" } }, "nbformat": 4, "nbformat_minor": 2 } ================================================ FILE: examples/det/rfdetr_boxmot.ipynb ================================================ { "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Requirement already satisfied: rfdetr in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (1.0.8)\n", "Requirement already satisfied: cython in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from rfdetr) (3.0.12)\n", "Requirement already satisfied: pycocotools in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from rfdetr) (2.0.8)\n", "Requirement already satisfied: torch>=1.13.0 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from rfdetr) (2.2.2)\n", "Requirement already satisfied: torchvision>=0.14.0 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from rfdetr) (0.17.2)\n", "Requirement already satisfied: fairscale in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from rfdetr) (0.4.13)\n", "Requirement already satisfied: scipy in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from rfdetr) (1.13.1)\n", "Requirement already satisfied: timm in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from rfdetr) (1.0.15)\n", "Requirement already satisfied: tqdm in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from rfdetr) (4.67.1)\n", "Requirement already satisfied: numpy in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from rfdetr) (1.26.4)\n", "Requirement already satisfied: accelerate in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from rfdetr) (1.5.2)\n", "Requirement already satisfied: transformers in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from rfdetr) (4.50.2)\n", "Requirement already satisfied: peft in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from rfdetr) (0.15.1)\n", "Requirement already satisfied: ninja in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from rfdetr) (1.11.1.4)\n", "Requirement already satisfied: einops in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from rfdetr) (0.8.1)\n", "Requirement already satisfied: wandb in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from rfdetr) (0.19.8)\n", "Requirement already satisfied: pandas in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from rfdetr) (2.2.3)\n", "Requirement already satisfied: pylabel in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from rfdetr) (0.1.55)\n", "Requirement already satisfied: onnx in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from rfdetr) (1.16.1)\n", "Requirement already satisfied: onnxsim in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from rfdetr) (0.4.36)\n", "Requirement already satisfied: onnx_graphsurgeon in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from rfdetr) (0.5.7)\n", "Requirement already satisfied: polygraphy in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from rfdetr) (0.49.20)\n", "Requirement already satisfied: open_clip_torch in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from rfdetr) (2.31.0)\n", "Requirement already satisfied: rf100vl in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from rfdetr) (1.0.0)\n", "Requirement already satisfied: pydantic in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from rfdetr) (2.11.0)\n", "Requirement already satisfied: supervision in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from rfdetr) (0.25.1)\n", "Requirement already satisfied: filelock in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from torch>=1.13.0->rfdetr) (3.18.0)\n", "Requirement already satisfied: typing-extensions>=4.8.0 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from torch>=1.13.0->rfdetr) (4.12.2)\n", "Requirement already satisfied: sympy in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from torch>=1.13.0->rfdetr) (1.13.3)\n", "Requirement already satisfied: networkx in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from torch>=1.13.0->rfdetr) (3.1)\n", "Requirement already satisfied: jinja2 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from torch>=1.13.0->rfdetr) (3.1.6)\n", "Requirement already satisfied: fsspec in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from torch>=1.13.0->rfdetr) (2025.3.0)\n", "Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from torchvision>=0.14.0->rfdetr) (11.1.0)\n", "Requirement already satisfied: packaging>=20.0 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from accelerate->rfdetr) (24.2)\n", "Requirement already satisfied: psutil in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from accelerate->rfdetr) (7.0.0)\n", "Requirement already satisfied: pyyaml in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from accelerate->rfdetr) (6.0.2)\n", "Requirement already satisfied: huggingface-hub>=0.21.0 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from accelerate->rfdetr) (0.29.3)\n", "Requirement already satisfied: safetensors>=0.4.3 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from accelerate->rfdetr) (0.5.3)\n", "Requirement already satisfied: protobuf>=3.20.2 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from onnx->rfdetr) (5.29.4)\n", "Requirement already satisfied: rich in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from onnxsim->rfdetr) (13.9.4)\n", "Requirement already satisfied: regex in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from open_clip_torch->rfdetr) (2024.11.6)\n", "Requirement already satisfied: ftfy in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from open_clip_torch->rfdetr) (6.3.1)\n", "Requirement already satisfied: python-dateutil>=2.8.2 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from pandas->rfdetr) (2.9.0.post0)\n", "Requirement already satisfied: pytz>=2020.1 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from pandas->rfdetr) (2025.1)\n", "Requirement already satisfied: tzdata>=2022.7 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from pandas->rfdetr) (2025.1)\n", "Requirement already satisfied: matplotlib>=2.1.0 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from pycocotools->rfdetr) (3.9.4)\n", "Requirement already satisfied: annotated-types>=0.6.0 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from pydantic->rfdetr) (0.7.0)\n", "Requirement already satisfied: pydantic-core==2.33.0 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from pydantic->rfdetr) (2.33.0)\n", "Requirement already satisfied: typing-inspection>=0.4.0 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from pydantic->rfdetr) (0.4.0)\n", "Requirement already satisfied: bbox-visualizer in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from pylabel->rfdetr) (0.2.0)\n", "Requirement already satisfied: opencv-python in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from pylabel->rfdetr) (4.11.0.86)\n", "Requirement already satisfied: scikit-learn in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from pylabel->rfdetr) (1.6.1)\n", "Requirement already satisfied: jupyter-bbox-widget in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from pylabel->rfdetr) (0.6.0)\n", "Requirement already satisfied: roboflow in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from rf100vl->rfdetr) (1.1.58)\n", "Requirement already satisfied: contourpy>=1.0.7 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from supervision->rfdetr) (1.3.0)\n", "Requirement already satisfied: defusedxml<0.8.0,>=0.7.1 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from supervision->rfdetr) (0.7.1)\n", "Requirement already satisfied: requests>=2.26.0 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from supervision->rfdetr) (2.32.3)\n", "Requirement already satisfied: tokenizers<0.22,>=0.21 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from transformers->rfdetr) (0.21.1)\n", "Requirement already satisfied: click!=8.0.0,>=7.1 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from wandb->rfdetr) (8.1.8)\n", "Requirement already satisfied: docker-pycreds>=0.4.0 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from wandb->rfdetr) (0.4.0)\n", "Requirement already satisfied: gitpython!=3.1.29,>=1.0.0 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from wandb->rfdetr) (3.1.44)\n", "Requirement already satisfied: platformdirs in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from wandb->rfdetr) (4.3.7)\n", "Requirement already satisfied: sentry-sdk>=2.0.0 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from wandb->rfdetr) (2.24.1)\n", "Requirement already satisfied: setproctitle in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from wandb->rfdetr) (1.3.5)\n", "Requirement already satisfied: setuptools in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from wandb->rfdetr) (69.1.0)\n", "Requirement already satisfied: six>=1.4.0 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from docker-pycreds>=0.4.0->wandb->rfdetr) (1.17.0)\n", "Requirement already satisfied: gitdb<5,>=4.0.1 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from gitpython!=3.1.29,>=1.0.0->wandb->rfdetr) (4.0.12)\n", "Requirement already satisfied: cycler>=0.10 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from matplotlib>=2.1.0->pycocotools->rfdetr) (0.12.1)\n", "Requirement already satisfied: fonttools>=4.22.0 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from matplotlib>=2.1.0->pycocotools->rfdetr) (4.56.0)\n", "Requirement already satisfied: kiwisolver>=1.3.1 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from matplotlib>=2.1.0->pycocotools->rfdetr) (1.4.7)\n", "Requirement already satisfied: pyparsing>=2.3.1 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from matplotlib>=2.1.0->pycocotools->rfdetr) (3.2.1)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from requests>=2.26.0->supervision->rfdetr) (3.4.1)\n", "Requirement already satisfied: idna<4,>=2.5 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from requests>=2.26.0->supervision->rfdetr) (3.7)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from requests>=2.26.0->supervision->rfdetr) (2.3.0)\n", "Requirement already satisfied: certifi>=2017.4.17 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from requests>=2.26.0->supervision->rfdetr) (2025.1.31)\n", "Requirement already satisfied: wcwidth in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from ftfy->open_clip_torch->rfdetr) (0.2.13)\n", "Requirement already satisfied: MarkupSafe>=2.0 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from jinja2->torch>=1.13.0->rfdetr) (3.0.2)\n", "Requirement already satisfied: anywidget>=0.9.0 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from jupyter-bbox-widget->pylabel->rfdetr) (0.9.18)\n", "Requirement already satisfied: markdown-it-py>=2.2.0 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from rich->onnxsim->rfdetr) (3.0.0)\n", "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from rich->onnxsim->rfdetr) (2.19.1)\n", "Requirement already satisfied: opencv-python-headless==4.10.0.84 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from roboflow->rf100vl->rfdetr) (4.10.0.84)\n", "Requirement already satisfied: pillow-heif>=0.18.0 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from roboflow->rf100vl->rfdetr) (0.22.0)\n", "Requirement already satisfied: python-dotenv in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from roboflow->rf100vl->rfdetr) (1.1.0)\n", "Requirement already satisfied: requests-toolbelt in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from roboflow->rf100vl->rfdetr) (1.0.0)\n", "Requirement already satisfied: filetype in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from roboflow->rf100vl->rfdetr) (1.2.0)\n", "Requirement already satisfied: joblib>=1.2.0 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from scikit-learn->pylabel->rfdetr) (1.4.2)\n", "Requirement already satisfied: threadpoolctl>=3.1.0 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from scikit-learn->pylabel->rfdetr) (3.6.0)\n", "Requirement already satisfied: mpmath<1.4,>=1.1.0 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from sympy->torch>=1.13.0->rfdetr) (1.3.0)\n", "Requirement already satisfied: ipywidgets>=7.6.0 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from anywidget>=0.9.0->jupyter-bbox-widget->pylabel->rfdetr) (8.1.5)\n", "Requirement already satisfied: psygnal>=0.8.1 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from anywidget>=0.9.0->jupyter-bbox-widget->pylabel->rfdetr) (0.12.0)\n", "Requirement already satisfied: smmap<6,>=3.0.1 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from gitdb<5,>=4.0.1->gitpython!=3.1.29,>=1.0.0->wandb->rfdetr) (5.0.2)\n", "Requirement already satisfied: mdurl~=0.1 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from markdown-it-py>=2.2.0->rich->onnxsim->rfdetr) (0.1.2)\n", "Requirement already satisfied: comm>=0.1.3 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from ipywidgets>=7.6.0->anywidget>=0.9.0->jupyter-bbox-widget->pylabel->rfdetr) (0.2.2)\n", "Requirement already satisfied: ipython>=6.1.0 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from ipywidgets>=7.6.0->anywidget>=0.9.0->jupyter-bbox-widget->pylabel->rfdetr) (8.18.1)\n", "Requirement already satisfied: traitlets>=4.3.1 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from ipywidgets>=7.6.0->anywidget>=0.9.0->jupyter-bbox-widget->pylabel->rfdetr) (5.14.3)\n", "Requirement already satisfied: widgetsnbextension~=4.0.12 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from ipywidgets>=7.6.0->anywidget>=0.9.0->jupyter-bbox-widget->pylabel->rfdetr) (4.0.13)\n", "Requirement already satisfied: jupyterlab-widgets~=3.0.12 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from ipywidgets>=7.6.0->anywidget>=0.9.0->jupyter-bbox-widget->pylabel->rfdetr) (3.0.13)\n", "Requirement already satisfied: decorator in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from ipython>=6.1.0->ipywidgets>=7.6.0->anywidget>=0.9.0->jupyter-bbox-widget->pylabel->rfdetr) (5.2.1)\n", "Requirement already satisfied: jedi>=0.16 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from ipython>=6.1.0->ipywidgets>=7.6.0->anywidget>=0.9.0->jupyter-bbox-widget->pylabel->rfdetr) (0.19.2)\n", "Requirement already satisfied: matplotlib-inline in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from ipython>=6.1.0->ipywidgets>=7.6.0->anywidget>=0.9.0->jupyter-bbox-widget->pylabel->rfdetr) (0.1.7)\n", "Requirement already satisfied: prompt-toolkit<3.1.0,>=3.0.41 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from ipython>=6.1.0->ipywidgets>=7.6.0->anywidget>=0.9.0->jupyter-bbox-widget->pylabel->rfdetr) (3.0.50)\n", "Requirement already satisfied: stack-data in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from ipython>=6.1.0->ipywidgets>=7.6.0->anywidget>=0.9.0->jupyter-bbox-widget->pylabel->rfdetr) (0.6.3)\n", "Requirement already satisfied: pexpect>4.3 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from ipython>=6.1.0->ipywidgets>=7.6.0->anywidget>=0.9.0->jupyter-bbox-widget->pylabel->rfdetr) (4.9.0)\n", "Requirement already satisfied: parso<0.9.0,>=0.8.4 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from jedi>=0.16->ipython>=6.1.0->ipywidgets>=7.6.0->anywidget>=0.9.0->jupyter-bbox-widget->pylabel->rfdetr) (0.8.4)\n", "Requirement already satisfied: ptyprocess>=0.5 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from pexpect>4.3->ipython>=6.1.0->ipywidgets>=7.6.0->anywidget>=0.9.0->jupyter-bbox-widget->pylabel->rfdetr) (0.7.0)\n", "Requirement already satisfied: executing>=1.2.0 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from stack-data->ipython>=6.1.0->ipywidgets>=7.6.0->anywidget>=0.9.0->jupyter-bbox-widget->pylabel->rfdetr) (2.2.0)\n", "Requirement already satisfied: asttokens>=2.1.0 in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from stack-data->ipython>=6.1.0->ipywidgets>=7.6.0->anywidget>=0.9.0->jupyter-bbox-widget->pylabel->rfdetr) (3.0.0)\n", "Requirement already satisfied: pure-eval in /Users/mikel.brostrom/Library/Caches/pypoetry/virtualenvs/boxmot-YDNZdsaB-py3.11/lib/python3.11/site-packages (from stack-data->ipython>=6.1.0->ipywidgets>=7.6.0->anywidget>=0.9.0->jupyter-bbox-widget->pylabel->rfdetr) (0.2.3)\n", "\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m24.0\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m25.0.1\u001b[0m\n", "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n", "Note: you may need to restart the kernel to use updated packages.\n" ] } ], "source": [ "pip install rfdetr" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\u001b[32m2025-03-28 12:02:18.458\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mboxmot.utils.torch_utils\u001b[0m:\u001b[36mselect_device\u001b[0m:\u001b[36m52\u001b[0m - \u001b[1mBoxMOT v12.0.2 🚀 Python-3.11.5 torch-2.2.2CPU\u001b[0m\n", "\u001b[32m2025-03-28 12:02:18.479\u001b[0m | \u001b[32m\u001b[1mSUCCESS \u001b[0m | \u001b[36mboxmot.appearance.reid_model_factory\u001b[0m:\u001b[36mload_pretrained_weights\u001b[0m:\u001b[36m183\u001b[0m - \u001b[32m\u001b[1mLoaded pretrained weights from osnet_x0_25_msmt17.pt\u001b[0m\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Loading pretrain weights\n" ] } ], "source": [ "from pathlib import Path\n", "\n", "import cv2\n", "import numpy as np\n", "import torch\n", "from PIL import Image\n", "from rfdetr import RFDETRBase\n", "\n", "from boxmot import BotSort\n", "\n", "# Load RFDETR model\n", "model = RFDETRBase(device='cpu')\n", "\n", "# Initialize the tracker\n", "tracker = BotSort(\n", " reid_weights=Path(\"osnet_x0_25_msmt17.pt\"), # Path to ReID model\n", " device=torch.device(\"cpu\"), # Change to 'cuda' if using GPU\n", " half=False\n", ")\n", "\n", "# Open the video file (0 for webcam or path to a video file)\n", "vid = cv2.VideoCapture(0)\n", "\n", "while True:\n", " # Capture frame-by-frame\n", " ret, frame = vid.read()\n", " if not ret:\n", " break\n", "\n", " # Convert frame to PIL Image format for RFDETR\n", " frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)\n", " image = Image.fromarray(frame_rgb)\n", "\n", " # Perform detection\n", " detections = model.predict(image, threshold=0.5)\n", " \n", " # Convert detections to numpy array in format: (x1, y1, x2, y2, conf, cls)\n", " dets = np.column_stack((\n", " detections.xyxy, # Bounding boxes (x1, y1, x2, y2)\n", " detections.confidence, # Confidence scores\n", " detections.class_id.astype(int) # Class IDs\n", " ))\n", "\n", " # Update the tracker\n", " res = tracker.update(dets, frame) # M X (x1, y1, x2, y2, id, conf, cls, ind)\n", "\n", " # Plot tracking results on the image\n", " tracker.plot_results(frame, show_trajectories=True)\n", "\n", " cv2.imshow('BoXMOT + Torchvision', frame)\n", "\n", " # Press 'q' to exit\n", " if cv2.waitKey(1) & 0xFF == ord('q'):\n", " break\n", "\n", "# Release resources\n", "vid.release()\n", "cv2.destroyAllWindows()" ] } ], "metadata": { "kernelspec": { "display_name": "boxmot-YDNZdsaB-py3.11", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.5" } }, "nbformat": 4, "nbformat_minor": 2 } ================================================ FILE: examples/det/torchvision_boxmot.ipynb ================================================ { "cells": [ { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Downloading: \"https://download.pytorch.org/models/fasterrcnn_resnet50_fpn_v2_coco-dd69338a.pth\" to /Users/mikel.brostrom/.cache/torch/hub/checkpoints/fasterrcnn_resnet50_fpn_v2_coco-dd69338a.pth\n", "100%|██████████| 167M/167M [00:19<00:00, 9.00MB/s] \n", "\u001b[32m2025-07-28 14:46:08.697\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mboxmot.utils.torch_utils\u001b[0m:\u001b[36mselect_device\u001b[0m:\u001b[36m78\u001b[0m - \u001b[1mBoxMOT v15.0.2 🚀 Python-3.11.5 torch-2.2.2CPU\u001b[0m\n", "\u001b[32m2025-07-28 14:46:08.698\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mboxmot.appearance.backends.base_backend\u001b[0m:\u001b[36mdownload_model\u001b[0m:\u001b[36m138\u001b[0m - \u001b[1mDownloading ReID weights from %s → %s\u001b[0m\n", "Downloading...\n", "From: https://drive.google.com/uc?id=1sSwXSUlj4_tHZequ_iZ8w_Jh0VaRQMqF\n", "To: /Users/mikel.brostrom/boxmot/examples/det/osnet_x0_25_msmt17.pt\n", "100%|██████████| 3.06M/3.06M [00:00<00:00, 7.95MB/s]\n", "\u001b[32m2025-07-28 14:46:14.452\u001b[0m | \u001b[32m\u001b[1mSUCCESS \u001b[0m | \u001b[36mboxmot.appearance.reid.registry\u001b[0m:\u001b[36mload_pretrained_weights\u001b[0m:\u001b[36m64\u001b[0m - \u001b[32m\u001b[1mLoaded pretrained weights from osnet_x0_25_msmt17.pt\u001b[0m\n" ] }, { "ename": "KeyboardInterrupt", "evalue": "", "output_type": "error", "traceback": [ "\u001b[31m---------------------------------------------------------------------------\u001b[39m", "\u001b[31mKeyboardInterrupt\u001b[39m Traceback (most recent call last)", "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[2]\u001b[39m\u001b[32m, line 28\u001b[39m\n\u001b[32m 26\u001b[39m tracker.plot_results(bgr, show_trajectories=\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[32m 27\u001b[39m cv2.imshow(\u001b[33m'\u001b[39m\u001b[33mBoXMOT + Torchvision\u001b[39m\u001b[33m'\u001b[39m, bgr)\n\u001b[32m---> \u001b[39m\u001b[32m28\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m cv2.waitKey(\u001b[32m1\u001b[39m) & \u001b[32m0xFF\u001b[39m == \u001b[38;5;28mord\u001b[39m(\u001b[33m'\u001b[39m\u001b[33mq\u001b[39m\u001b[33m'\u001b[39m): \u001b[38;5;28;01mbreak\u001b[39;00m\n\u001b[32m 29\u001b[39m cap.release(); cv2.destroyAllWindows()\n", "\u001b[31mKeyboardInterrupt\u001b[39m: " ] } ], "source": [ "import cv2, torch, numpy as np\n", "from pathlib import Path\n", "from boxmot import BotSort\n", "from torchvision.models.detection import fasterrcnn_resnet50_fpn_v2, FasterRCNN_ResNet50_FPN_V2_Weights as W\n", "\n", "dev = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\n", "w = W.DEFAULT\n", "model = fasterrcnn_resnet50_fpn_v2(weights=w, box_score_thresh=0.5).to(dev).eval()\n", "prep = w.transforms()\n", "tracker = BotSort(reid_weights=Path('osnet_x0_25_msmt17.pt'), device=dev, half=False)\n", "\n", "cap = cv2.VideoCapture(0)\n", "with torch.inference_mode():\n", " while True:\n", " ok, bgr = cap.read()\n", " if not ok: break\n", " rgb = cv2.cvtColor(bgr, cv2.COLOR_BGR2RGB)\n", " t = torch.from_numpy(rgb).permute(2,0,1).to(torch.uint8)\n", " out = model([prep(t).to(dev)])[0]\n", " s = out['scores'].cpu().numpy()\n", " keep = s >= 0.5\n", " dets = np.concatenate([out['boxes'][keep].cpu().numpy(),\n", " s[keep,None],\n", " out['labels'][keep,None].cpu().numpy()], 1)\n", " tracker.update(dets, bgr)\n", " tracker.plot_results(bgr, show_trajectories=True)\n", " cv2.imshow('BoXMOT + Torchvision', bgr)\n", " if cv2.waitKey(1) & 0xFF == ord('q'): break\n", "cap.release(); cv2.destroyAllWindows()\n" ] } ], "metadata": { "kernelspec": { "display_name": "boxmot-YDNZdsaB-py3.11", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.5" } }, "nbformat": 4, "nbformat_minor": 2 } ================================================ FILE: examples/det/yolox_boxmot.ipynb ================================================ { "cells": [ { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "pip install yolox --no-deps # onnxruntime==1.8.0 is putdated, hence --no-deps" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from pathlib import Path\n", "\n", "import cv2\n", "import gdown\n", "import numpy as np\n", "import torch\n", "from yolox.exp import get_exp\n", "from yolox.utils import postprocess\n", "from yolox.utils.model_utils import fuse_model\n", "\n", "from boxmot import BotSort\n", "from boxmot.utils.ops import yolox_preprocess\n", "\n", "# Dictionary for YOLOX model weights URLs\n", "YOLOX_ZOO = {\n", " 'yolox_n.pt': 'https://drive.google.com/uc?id=1AoN2AxzVwOLM0gJ15bcwqZUpFjlDV1dX',\n", " 'yolox_s.pt': 'https://drive.google.com/uc?id=1uSmhXzyV1Zvb4TJJCzpsZOIcw7CCJLxj',\n", " 'yolox_m.pt': 'https://drive.google.com/uc?id=11Zb0NN_Uu7JwUd9e6Nk8o2_EUfxWqsun',\n", " 'yolox_l.pt': 'https://drive.google.com/uc?id=1XwfUuCBF4IgWBWK2H7oOhQgEj9Mrb3rz',\n", " 'yolox_x.pt': 'https://drive.google.com/uc?id=1P4mY0Yyd3PPTybgZkjMYhFri88nTmJX5',\n", "}\n", "\n", "# Preprocessing pipeline\n", "input_size = [800, 1440]\n", "device = torch.device('cpu')\n", "yolox_model = 'yolox_s.pt'\n", "yolox_model_path = Path(yolox_model)\n", "\n", "# Download model if not present\n", "if not yolox_model_path.exists():\n", " gdown.download(YOLOX_ZOO[yolox_model], output=str(yolox_model_path), quiet=False)\n", "\n", "# Initialize YOLOX model\n", "exp = get_exp(None, 'yolox_s')\n", "exp.num_classes = 1\n", "ckpt = torch.load(yolox_model_path, map_location=device)\n", "\n", "model = exp.get_model()\n", "model.load_state_dict(ckpt[\"model\"])\n", "model = fuse_model(model).to(device).eval()\n", "\n", "# Initialize tracker\n", "tracker = BotSort(reid_weights=Path('osnet_x0_25_msmt17.pt'), device=device, half=False)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Video capture setup\n", "vid = cv2.VideoCapture(0)\n", "\n", "while True:\n", " ret, frame = vid.read()\n", " if not ret:\n", " break\n", "\n", " # Preprocess frame\n", " frame_img, ratio = yolox_preprocess(frame, input_size=input_size)\n", " frame_tensor = torch.Tensor(frame_img).unsqueeze(0).to(device)\n", "\n", " # Detection with YOLOX\n", " with torch.no_grad():\n", " dets = model(frame_tensor)\n", " dets = postprocess(dets, 1, 0.5, 0.7, class_agnostic=True)[0]\n", "\n", " if dets is not None:\n", " # Rescale coordinates from letterbox back to the original frame size\n", " dets[:, 0] = (dets[:, 0]) / ratio\n", " dets[:, 1] = (dets[:, 1]) / ratio\n", " dets[:, 2] = (dets[:, 2]) / ratio\n", " dets[:, 3] = (dets[:, 3]) / ratio\n", " dets[:, 4] *= dets[:, 5]\n", " dets = dets[:, [0, 1, 2, 3, 4, 6]].cpu().numpy()\n", " else:\n", " dets = np.empty((0, 6))\n", "\n", " # Update tracker\n", " res = tracker.update(dets, frame)\n", "\n", " # Plot results and display\n", " tracker.plot_results(frame, show_trajectories=True)\n", " cv2.imshow('BoXMOT + YOLOX', frame)\n", "\n", " if cv2.waitKey(1) & 0xFF == ord('q'):\n", " break\n", "\n", "# Release resources\n", "vid.release()\n", "cv2.destroyAllWindows()" ] } ], "metadata": { "kernelspec": { "display_name": "boxmot-YDNZdsaB-py3.11", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.5" } }, "nbformat": 4, "nbformat_minor": 2 } ================================================ FILE: examples/pose/torchvision_boxmot.ipynb ================================================ { "cells": [ { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from pathlib import Path\n", "\n", "import cv2\n", "import numpy as np\n", "import torch\n", "import torchvision\n", "\n", "from boxmot import BotSort\n", "\n", "# Load a pre-trained Keypoint R-CNN model from torchvision\n", "device = torch.device('cpu') # Change to 'cuda' if you have a GPU available\n", "pose_model = torchvision.models.detection.keypointrcnn_resnet50_fpn(pretrained=True)\n", "pose_model.eval().to(device)\n", "\n", "tracker = BotSort(\n", " reid_weights=Path('osnet_x0_25_msmt17.pt'), # ReID model to use\n", " device=device,\n", " half=False,\n", ")\n", "\n", "# Open the video file\n", "vid = cv2.VideoCapture(0)\n", "\n", "# Function to generate a unique color for each track ID\n", "def get_color(track_id):\n", " np.random.seed(int(track_id))\n", " return tuple(np.random.randint(0, 255, 3).tolist())\n", "\n", "while True:\n", " ret, im = vid.read()\n", " if not ret:\n", " break\n", "\n", " # Convert frame to tensor and move to device\n", " frame_tensor = torchvision.transforms.functional.to_tensor(im).unsqueeze(0).to(device)\n", "\n", " # Run the Keypoint R-CNN model to detect keypoints and bounding boxes\n", " with torch.no_grad():\n", " results = pose_model(frame_tensor)[0]\n", "\n", " # Extract detections (bounding boxes and keypoints)\n", " dets = []\n", " keypoints = []\n", "\n", " confidence_threshold = 0.5\n", " for i, score in enumerate(results['scores']):\n", " if score >= confidence_threshold:\n", " # Extract bounding box and score\n", " x1, y1, x2, y2 = results['boxes'][i].cpu().numpy()\n", " conf = score.item()\n", " cls = results['labels'][i].item() # Assuming that 'labels' would be person class\n", " dets.append([x1, y1, x2, y2, conf, cls])\n", "\n", " # Extract keypoints\n", " keypoint = results['keypoints'][i].cpu().numpy().tolist()\n", " keypoints.append(keypoint)\n", "\n", " # Convert detections to a numpy array (N x (x, y, x, y, conf, cls))\n", " dets = np.array(dets)\n", "\n", " # Update tracker with detections and image\n", " tracks = tracker.update(dets, im) # M x (x, y, x, y, id, conf, cls, ind)\n", "\n", " if len(tracks) > 0:\n", " inds = tracks[:, 7].astype('int') # Get track indices as int\n", "\n", " # Use the indices to match tracks with keypoints\n", " keypoints = [keypoints[i] for i in inds if i < len(keypoints)] # Reorder keypoints to match the tracks\n", "\n", " # Draw bounding boxes and keypoints in the same loop\n", " for i, track in enumerate(tracks):\n", " x1, y1, x2, y2, track_id, conf, cls = track[:7].astype('int')\n", " color = get_color(track_id)\n", "\n", " # Draw bounding box with unique color\n", " cv2.rectangle(im, (x1, y1), (x2, y2), color, 2)\n", "\n", " # Add text with ID, confidence, and class\n", " cv2.putText(im, f'ID: {track_id}, Conf: {conf:.2f}, Class: {cls}', \n", " (x1, y1 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, color, 2)\n", "\n", " # Draw keypoints for the corresponding track\n", " if i < len(keypoints):\n", " kp = keypoints[i]\n", " for point in kp:\n", " x, y, confidence = int(point[0]), int(point[1]), point[2]\n", " if confidence > 0.5: # Only draw keypoints with confidence > 0.5\n", " cv2.circle(im, (x, y), 3, color, -1) # Draw keypoints in the color of the corresponding track\n", "\n", " # Display the image\n", " cv2.imshow('Pose Tracking', im)\n", "\n", " # Break on pressing q or space\n", " key = cv2.waitKey(1) & 0xFF\n", " if key == ord(' ') or key == ord('q'):\n", " break\n", "\n", "vid.release()\n", "cv2.destroyAllWindows()" ] } ], "metadata": { "kernelspec": { "display_name": "boxmot-YDNZdsaB-py3.11", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.5" } }, "nbformat": 4, "nbformat_minor": 2 } ================================================ FILE: examples/seg/torchvision_boxmot.ipynb ================================================ { "cells": [ { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "from pathlib import Path\n", "\n", "import cv2\n", "import numpy as np\n", "import torch\n", "import torchvision\n", "\n", "from boxmot import BotSort\n", "\n", "# Load a pre-trained Mask R-CNN model from torchvision\n", "device = torch.device('cpu') # Change to 'cuda' if you have a GPU available\n", "segmentation_model = torchvision.models.detection.maskrcnn_resnet50_fpn(pretrained=True)\n", "segmentation_model.eval().to(device)\n", "\n", "tracker = BotSort(\n", " reid_weights=Path('osnet_x0_25_msmt17.pt'), # ReID model to use\n", " device=device,\n", " half=False,\n", ")\n", "\n", "# Open the video file\n", "vid = cv2.VideoCapture(0)\n", "\n", "# Function to generate a unique color for each track ID\n", "def get_color(track_id):\n", " np.random.seed(int(track_id))\n", " return tuple(np.random.randint(0, 255, 3).tolist())\n", "\n", "while True:\n", " ret, im = vid.read()\n", " if not ret:\n", " break\n", "\n", " # Convert frame to tensor and move to device\n", " frame_tensor = torchvision.transforms.functional.to_tensor(im).unsqueeze(0).to(device)\n", "\n", " # Run the Mask R-CNN model to detect bounding boxes and masks\n", " with torch.no_grad():\n", " results = segmentation_model(frame_tensor)[0]\n", "\n", " # Extract detections (bounding boxes, masks, and scores)\n", " dets = []\n", " masks = []\n", " confidence_threshold = 0.5\n", "\n", " for i, score in enumerate(results['scores']):\n", " if score >= confidence_threshold:\n", " # Extract bounding box and score\n", " x1, y1, x2, y2 = results['boxes'][i].cpu().numpy()\n", " conf = score.item()\n", " cls = results['labels'][i].item() # Assuming 'labels' represents the class\n", " dets.append([x1, y1, x2, y2, conf, cls])\n", "\n", " # Extract mask and add to list\n", " mask = results['masks'][i, 0].cpu().numpy() # Use the first channel (binary mask)\n", " masks.append(mask)\n", "\n", " # Convert detections to a numpy array (N x (x, y, x, y, conf, cls))\n", " dets = np.array(dets)\n", "\n", " # Update tracker with detections and image\n", " tracks = tracker.update(dets, im) # M x (x, y, x, y, id, conf, cls, ind)\n", "\n", " # Draw segmentation masks and bounding boxes in a single loop\n", " if len(tracks) > 0:\n", " inds = tracks[:, 7].astype('int') # Get track indices as int\n", "\n", " # Use the indices to match tracks with masks\n", " if len(masks) > 0:\n", " masks = [masks[i] for i in inds if i < len(masks)] # Reorder masks to match the tracks\n", "\n", " # Iterate over tracks and corresponding masks to draw them together\n", " for track, mask in zip(tracks, masks):\n", " track_id = int(track[4]) # Extract track ID\n", " color = get_color(track_id) # Use unique color for each track\n", " \n", " # Draw the segmentation mask on the image\n", " if mask is not None:\n", " # Binarize the mask\n", " mask = (mask > 0.5).astype(np.uint8)\n", " \n", " # Blend mask color with the image\n", " im[mask == 1] = im[mask == 1] * 0.5 + np.array(color) * 0.5\n", "\n", " # Draw the bounding box\n", " x1, y1, x2, y2 = track[:4].astype('int')\n", " cv2.rectangle(im, (x1, y1), (x2, y2), color, 2)\n", " \n", " # Add text with ID, confidence, and class\n", " conf = track[5]\n", " cls = track[6]\n", " cv2.putText(im, f'ID: {track_id}, Conf: {conf:.2f}, Class: {cls}', \n", " (x1, y1 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, color, 2)\n", "\n", " # Display the image\n", " cv2.imshow('Segmentation Tracking', im)\n", "\n", " # Break on pressing q or space\n", " key = cv2.waitKey(1) & 0xFF\n", " if key == ord(' ') or key == ord('q'):\n", " break\n", "\n", "vid.release()\n", "cv2.destroyAllWindows()" ] } ], "metadata": { "kernelspec": { "display_name": "boxmot-YDNZdsaB-py3.11", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.5" } }, "nbformat": 4, "nbformat_minor": 2 } ================================================ FILE: mkdocs.yml ================================================ site_name: "" theme: name: material logo: logo/logo.png features: - navigation.sections - navigation.expand markdown_extensions: - mkdocs-click - md_in_html - pymdownx.highlight: anchor_linenums: true line_spans: __span pygments_lang_class: true - pymdownx.inlinehilite - pymdownx.snippets - pymdownx.superfences plugins: - search - include-markdown - mkdocstrings: handlers: python: options: selection: members: "__all__" filters: - "!^update$" nav: - Home: index.md - Quickstart: quickstart.md - CLI: - Track: modes/track.md - Generate: modes/generate.md - Evaluate: modes/eval.md - Tune: modes/tune.md - Trackers: - ByteTrack: trackers/bytetrack.md - BotSort: trackers/botsort.md - SFSORT: trackers/sfsort.md - StrongSort: trackers/strongsort.md - OcSort: trackers/ocsort.md - DeepOcSort: trackers/deepocsort.md # - HybridSort: api/trackers/hybridsort.md - BoostTrack: trackers/boosttrack.md ================================================ FILE: pyproject.toml ================================================ # ===================================================== # pyproject.toml for BoxMOT # ===================================================== ######################### # UV-specific Overrides # ######################### # Override yolox's outdated dependencies [[tool.uv.dependency-metadata]] name = "yolox" version = "0.3.0" requires-dist = [ "onnx>=1.17.0", "onnxsim>=0.4.33,<0.5 ; python_version < '3.12'", "onnxsim-prebuilt>=0.4.36.post1 ; python_version >= '3.12'", "tabulate", ] ############ # Flake8 # ############ [tool.uv.extra-build-dependencies] yolox = ["setuptools", "torch<3.0.0,>=2.2.1"] [tool.ruff] line-length = 120 exclude = [".tox", "*.egg", "build", "temp"] [tool.ruff.lint] select = ["E", "W", "F", "I"] ignore = ["E731", "F405", "E402", "W504", "W605", "E741"] ############## # Build System # ############## [build-system] requires = ["hatchling"] build-backend = "hatchling.build" ########### # Project # ########### [project] name = "boxmot" version = "16.0.11" description = "BoxMOT: pluggable SOTA tracking modules for segmentation, object detection and pose estimation models" readme = "README.md" requires-python = ">=3.9,<3.13" license = { text = "AGPL-3.0" } authors = [ { name = "Mikel Broström" }, ] classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Software Development", "Topic :: Scientific/Engineering", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Scientific/Engineering :: Image Recognition", "Topic :: Scientific/Engineering :: Image Processing", ] keywords = [ "tracking", "tracking-by-detection", "machine-learning", "deep-learning", "vision", "ML", "DL", "AI", "YOLO", ] dependencies = [ # Kalman filters for motion models (SORT/OCSort/HybridSort) "filterpy<2.0.0,>=1.4.5", # Download pretrained weights/checkpoints from Google Drive "gdown<6.0.0,>=5.1.0", # Fast LAP/Hungarian solver for data association "lapx<1.0.0,>=0.5.5", "loguru<1.0.0,>=0.7.2", "numpy", "regex<2025.0.0,>=2024.0.0", "scikit-learn<2.0.0,>=1.3.0", "pandas<3.0.0,>=2.0.0", "opencv-python<5.0.0,>=4.7.0", "torch>=2.2.1,<3.0.0", "torchvision>=0.17.1,<1.0.0", "click>=8.1.8", # clip reid needs "ftfy<7.0.0,>=6.1.3", "yacs<1.0.0,>=0.1.8", ] [project.scripts] boxmot = "boxmot.engine.cli:main" ######################################## # local-only “dev/test/docs/ci” stacks # ######################################## [dependency-groups] dev = ["ipykernel>=6.29.5,<7.0.0", "pre-commit>=4.0.1"] test = ["pytest>=8.0.2,<10.0.0", "pytest-cov>=6.0.0,<7.0.0"] docs = [ "mkdocs>=1.6.1", "mkdocs-click>=0.9.0", "mkdocs-include-markdown-plugin>=7.1.6", "mkdocs-material>=9.6.15", "mkdocstrings>=0.30.0", "mkdocstrings-python>=1.16.12", ] ############################# # runtime / feature toggles # ############################# [project.optional-dependencies] yolo = [ "ultralytics>=3.8.200", "yolox==0.3.0", ] evolve = [ "ray[tune]==2.49.2", "plotly==5.19.0", "bayesian-optimization==2.0.4", "optuna==3.5.0", "pydantic==2.7.2" ] onnx = [ "onnx==1.17.0 ; python_version < '3.10'", "onnx==1.20.1 ; python_version >= '3.10'", "onnxruntime==1.18.1 ; python_version < '3.10'", "onnxruntime==1.24.3 ; python_version >= '3.10'", "onnxslim>=0.1.67", "onnxscript>=0.1.0" ] openvino = ["openvino>=2025.2.0"] tflite = [ # onnx2tf flatbuffer_direct stack: only on linux/win, and only on py3.12 "onnx2tf>=2.3.3,<3.0.0 ; python_version >= '3.12' and python_version < '3.13' and (sys_platform == 'linux' or sys_platform == 'win32')", "onnx==1.20.1 ; python_version >= '3.12' and python_version < '3.13' and (sys_platform == 'linux' or sys_platform == 'win32')", "onnxruntime==1.24.3 ; python_version >= '3.12' and python_version < '3.13' and (sys_platform == 'linux' or sys_platform == 'win32')", "onnxsim-prebuilt==0.4.39.post2 ; python_version >= '3.12' and python_version < '3.13' and (sys_platform == 'linux' or sys_platform == 'win32')", "onnxoptimizer==0.4.2 ; python_version >= '3.12' and python_version < '3.13' and (sys_platform == 'linux' or sys_platform == 'win32')", "sne4onnx>=2.0.1 ; python_version >= '3.12' and python_version < '3.13' and (sys_platform == 'linux' or sys_platform == 'win32')", "sng4onnx>=2.0.1 ; python_version >= '3.12' and python_version < '3.13' and (sys_platform == 'linux' or sys_platform == 'win32')", "tensorflow==2.19.0 ; python_version >= '3.12' and python_version < '3.13' and (sys_platform == 'linux' or sys_platform == 'win32')", "tf-keras==2.19.0 ; python_version >= '3.12' and python_version < '3.13' and (sys_platform == 'linux' or sys_platform == 'win32')", "h5py==3.12.1 ; python_version >= '3.12' and python_version < '3.13' and (sys_platform == 'linux' or sys_platform == 'win32')", "psutil==5.9.5 ; python_version >= '3.12' and python_version < '3.13' and (sys_platform == 'linux' or sys_platform == 'win32')", "ml-dtypes==0.5.1 ; python_version >= '3.12' and python_version < '3.13' and (sys_platform == 'linux' or sys_platform == 'win32')", "flatbuffers==25.12.19 ; python_version >= '3.12' and python_version < '3.13' and (sys_platform == 'linux' or sys_platform == 'win32')", "onnxslim>=0.1.31 ; python_version >= '3.12' and python_version < '3.13' and (sys_platform == 'linux' or sys_platform == 'win32')", "ai-edge-litert==2.1.2 ; python_version >= '3.12' and python_version < '3.13' and (sys_platform == 'linux' or sys_platform == 'win32')", ] ================================================ FILE: tests/__init__.py ================================================ ================================================ FILE: tests/performance/__init__.py ================================================ ================================================ FILE: tests/performance/test_cmcs_p.py ================================================ import time import cv2 import numpy as np import pytest from boxmot.motion.cmc.ecc import ECC from boxmot.motion.cmc.orb import ORB from boxmot.motion.cmc.sift import SIFT from boxmot.motion.cmc.sof import SOF from boxmot.utils import ROOT # Fixture for creating CMC objects @pytest.fixture def cmc_object(request): cmc_class = request.param return cmc_class() # Define the test function @pytest.mark.parametrize("cmc_object", [ECC, ORB, SIFT, SOF], indirect=True) def test_cmc_apply(cmc_object): # Create dummy images and detections curr_img = cv2.imread( str(ROOT / "assets/MOT17-mini/train/MOT17-04-FRCNN/img1/000005.jpg") ) prev_img = cv2.imread( str(ROOT / "assets/MOT17-mini/train/MOT17-04-FRCNN/img1/000001.jpg") ) print(curr_img.shape) print(prev_img.shape) dets = np.array([[0, 0, 10, 10]]) n_runs = 100 start = time.process_time() for i in range(0, n_runs): warp_matrix = cmc_object.apply(prev_img, dets) warp_matrix = cmc_object.apply(curr_img, dets) end = time.process_time() elapsed_time_per_interation = (end - start) / n_runs # Define a threshold for the maximum allowed time max_allowed_time = 0.1 # Assert that the elapsed time is within the allowed limit assert ( elapsed_time_per_interation < max_allowed_time ), "CMC algorithm processing time exceeds the allowed limit" ================================================ FILE: tests/performance/test_tracking_p.py ================================================ import subprocess import time import numpy as np import pytest from boxmot import create_tracker, get_tracker_config from boxmot.utils import WEIGHTS from tests.test_config import ( MOTION_N_APPEARANCE_TRACKING_NAMES, MOTION_ONLY_TRACKING_NAMES, ) @pytest.mark.parametrize("tracker_type", MOTION_ONLY_TRACKING_NAMES) def test_motion_tracker_update_time(tracker_type): tracker_conf = get_tracker_config(tracker_type) tracker = create_tracker( tracker_type=tracker_type, tracker_config=tracker_conf, reid_weights=WEIGHTS / "mobilenetv2_x1_4_dukemtmcreid.pt", device="cpu", half=False, per_class=False, ) rgb = np.random.randint(0, 255, size=(640, 640, 3), dtype=np.uint8) det = np.array([[144, 212, 578, 480, 0.82, 0], [425, 281, 576, 472, 0.56, 65]]) n_runs = 100 # Warm-up iteration to ensure initialization overhead is not measured tracker.update(det, rgb) start = time.perf_counter() for _ in range(n_runs): tracker.update(det, rgb) end = time.perf_counter() elapsed_time_per_iteration = (end - start) / n_runs fps = 1.0 / elapsed_time_per_iteration # Print FPS for each tracker type print(f"Tracker type: {tracker_type} - FPS: {fps:.2f}") result = subprocess.run( "cat /proc/cpuinfo | grep 'model name' | head -1", shell=True, capture_output=True, text=True, ) print(result.stdout.strip()) max_allowed_time = 0.005 # maximum allowed time per iteration in seconds assert elapsed_time_per_iteration < max_allowed_time, ( f"Tracking algorithm's processing time per iteration ({elapsed_time_per_iteration:.6f}s) " f"exceeds the allowed limit of {max_allowed_time}s." ) @pytest.mark.parametrize("tracker_type", MOTION_N_APPEARANCE_TRACKING_NAMES) def test_motion_n_appearance_tracker_update_time(tracker_type): tracker_conf = get_tracker_config(tracker_type) tracker = create_tracker( tracker_type=tracker_type, tracker_config=tracker_conf, reid_weights=WEIGHTS / "mobilenetv2_x1_4_dukemtmcreid.pt", device="cpu", half=False, per_class=False, ) rgb = np.random.randint(0, 255, size=(640, 640, 3), dtype=np.uint8) det = np.array([[144, 212, 578, 480, 0.82, 0], [425, 281, 576, 472, 0.56, 65]]) n_runs = 100 # Warm-up iteration to avoid initialization overhead in timing tracker.update(det, rgb) start = time.perf_counter() for _ in range(n_runs): tracker.update(det, rgb) end = time.perf_counter() elapsed_time_per_iteration = (end - start) / n_runs fps = 1.0 / elapsed_time_per_iteration # Print FPS for each tracker type print(f"Tracker type: {tracker_type} - FPS: {fps:.2f}") max_allowed_time = 6 # maximum allowed time per iteration in seconds assert elapsed_time_per_iteration < max_allowed_time, ( f"Tracking algorithm's processing time per iteration ({elapsed_time_per_iteration:.4f}s) " f"exceeds the allowed limit of {max_allowed_time}s." ) ================================================ FILE: tests/test_config.py ================================================ from boxmot import ( BoostTrack, BotSort, ByteTrack, DeepOcSort, OcSort, StrongSort, HybridSort, SFSORT, ) MOTION_N_APPEARANCE_TRACKING_NAMES = [ "botsort", "deepocsort", "strongsort", "boosttrack", "hybridsort", ] MOTION_ONLY_TRACKING_NAMES = ["ocsort", "bytetrack", "sfsort"] MOTION_N_APPEARANCE_TRACKING_METHODS = [StrongSort, BotSort, DeepOcSort, BoostTrack, HybridSort] MOTION_ONLY_TRACKING_METHODS = [OcSort, ByteTrack, SFSORT] ALL_TRACKERS = [ "botsort", "deepocsort", "ocsort", "bytetrack", "sfsort", "strongsort", "boosttrack", "hybridsort", ] PER_CLASS_TRACKERS = [ "botsort", "deepocsort", "ocsort", "bytetrack", "sfsort", "boosttrack", "hybridsort", ] ================================================ FILE: tests/unit/__init__.py ================================================ ================================================ FILE: tests/unit/test_base_backend.py ================================================ import numpy as np import torch import cv2 from pathlib import Path from boxmot.reid.backends.base_backend import BaseModelBackend from boxmot.reid.core.registry import ReIDModelRegistry class DummyBackend(BaseModelBackend): def __init__(self): self.device = torch.device("cpu") self.half = False self.input_shape = (16, 8) self.mean_array = torch.zeros((1, 3, 1, 1), device=self.device) self.std_array = torch.ones((1, 3, 1, 1), device=self.device) self.nhwc = False def forward(self, im_batch): return im_batch def load_model(self, w): return None class InitOnlyBackend(BaseModelBackend): def forward(self, im_batch): return im_batch def load_model(self, w): self.loaded_weights = Path(w) def test_boxes_to_xyxy_keeps_aabb_boxes(): boxes = np.array([[10, 20, 30, 40, 0.9, 0]], dtype=np.float32) xyxy = DummyBackend._boxes_to_xyxy(boxes) assert xyxy.shape == (1, 4) np.testing.assert_array_equal(xyxy[0], np.array([10, 20, 30, 40], dtype=np.float32)) def test_boxes_to_xyxy_converts_obb_detections(): boxes = np.array([[32, 24, 20, 10, 0.0, 0.9, 0]], dtype=np.float32) xyxy = DummyBackend._boxes_to_xyxy(boxes) assert xyxy.shape == (1, 4) np.testing.assert_allclose(xyxy[0], np.array([22, 19, 42, 29], dtype=np.float32), atol=1e-4) def test_boxes_to_xyxy_converts_obb_track_outputs(): boxes = np.array([[32, 24, 20, 10, 0.0, 7, 0.9, 0, 5]], dtype=np.float32) xyxy = DummyBackend._boxes_to_xyxy(boxes) assert xyxy.shape == (1, 4) np.testing.assert_allclose(xyxy[0], np.array([22, 19, 42, 29], dtype=np.float32), atol=1e-4) def test_get_crops_accepts_obb_boxes(): backend = DummyBackend() img = np.zeros((64, 64, 3), dtype=np.uint8) img[19:29, 22:42] = 255 boxes = np.array([[32, 24, 20, 10, 0.0]], dtype=np.float32) crops = backend.get_crops(boxes, img) assert tuple(crops.shape) == (1, 3, 16, 8) assert torch.count_nonzero(crops) > 0 def test_get_crops_rectifies_rotated_obb_boxes(): backend = DummyBackend() img = np.zeros((96, 96, 3), dtype=np.uint8) rect = ((48.0, 48.0), (40.0, 20.0), 35.0) corners = cv2.boxPoints(rect).astype(np.int32) cv2.fillConvexPoly(img, corners, (255, 255, 255)) box = np.array([[48.0, 48.0, 40.0, 20.0, np.deg2rad(35.0)]], dtype=np.float32) crops = backend.get_crops(box, img) crop = crops[0].permute(1, 2, 0).cpu().numpy() assert tuple(crops.shape) == (1, 3, 16, 8) assert crop.mean() > 0.2 def test_base_backend_preserves_explicit_export_paths(monkeypatch): monkeypatch.setattr(ReIDModelRegistry, "get_model_name", lambda _weights: "osnet_x0_25") monkeypatch.setattr(ReIDModelRegistry, "get_nr_classes", lambda _weights: 1) monkeypatch.setattr(ReIDModelRegistry, "build_model", lambda *args, **kwargs: object()) explicit_path = Path("models/osnet_x0_25_msmt17_saved_model/osnet_x0_25_msmt17_float32.tflite") backend = InitOnlyBackend(explicit_path, torch.device("cpu"), half=False) assert backend.weights == explicit_path assert backend.loaded_weights == explicit_path ================================================ FILE: tests/unit/test_cmcs_u.py ================================================ import numpy as np import pytest from boxmot.motion.cmc.ecc import ECC from boxmot.motion.cmc.orb import ORB from boxmot.motion.cmc.sift import SIFT from boxmot.motion.cmc.sof import SOF # Fixture for creating CMC objects @pytest.fixture def cmc_object(request): cmc_class = request.param return cmc_class() # Define the test function @pytest.mark.parametrize("cmc_object", [ECC, ORB, SIFT, SOF], indirect=True) def test_cmc_apply(cmc_object): # Create dummy images and detections prev_img = np.zeros((100, 100, 3), dtype=np.uint8) dets = np.array([[0, 0, 10, 10]]) # Apply the CMC algorithm result = cmc_object.apply(prev_img, dets) # Assert the type of result assert isinstance(result, np.ndarray) # Test preprocessing function @pytest.mark.parametrize("cmc_object", [ECC, ORB, SIFT, SOF], indirect=True) def test_cmc_preprocess(cmc_object): # Create a dummy image img = np.zeros((200, 200, 3), dtype=np.uint8) processed_img = cmc_object.preprocess(img) # Assert the shape of the processed image, scale is 0.1 by default assert processed_img.shape == (30, 30) # Test apply function with empty detections @pytest.mark.parametrize("cmc_object", [ECC, ORB, SIFT, SOF], indirect=True) def test_cmc_apply_empty_detections(cmc_object): # Create dummy images and empty detections prev_img = np.zeros((100, 100, 3), dtype=np.uint8) dets = np.array([]) # Apply the CMC algorithm result = cmc_object.apply(prev_img, dets) # Assert that result is an identity matrix assert np.array_equal(result, np.eye(2, 3, dtype=np.float32)) ================================================ FILE: tests/unit/test_cuda.py ================================================ from pathlib import Path import pytest import torch from boxmot.reid.core.auto_backend import ReidAutoBackend REID_MODELS = [ Path("mobilenetv2_x1_0_market1501.pt"), ] @pytest.mark.parametrize("reid_model", REID_MODELS) def test_reidbackend_device(reid_model): device = "cuda:0" if torch.cuda.is_available() else "cpu" rab = ReidAutoBackend(weights=reid_model, device=device, half=False) r = rab.get_backend() if torch.cuda.is_available(): assert next(r.model.parameters()).is_cuda else: assert next(r.model.parameters()).device.type == "cpu" @pytest.mark.parametrize("reid_model", REID_MODELS) def test_reidbackend_half(reid_model): half = True if torch.cuda.is_available() else False device = "cuda:0" if torch.cuda.is_available() else "cpu" rab = ReidAutoBackend(weights=reid_model, device=device, half=False) r = rab.get_backend() if device == "cpu": expected_dtype = torch.float32 else: expected_dtype = torch.float16 actual_dtype = next(r.model.parameters()).dtype assert actual_dtype == expected_dtype ================================================ FILE: tests/unit/test_dataloader.py ================================================ import pytest import numpy as np import configparser import cv2 from pathlib import Path from boxmot.utils.dataloaders.dataset import ( read_seq_fps, compute_fps_mask, MOTDataset, MOTSequence, ) def test_read_seq_fps(tmp_path): # create a seqinfo.ini seq_dir = tmp_path / "SEQ01" seq_dir.mkdir() cfg = configparser.ConfigParser() cfg["Sequence"] = {"frameRate": "30"} with open(seq_dir / "seqinfo.ini", "w") as f: cfg.write(f) assert read_seq_fps(seq_dir) == 30 # missing file should raise with pytest.raises(FileNotFoundError): read_seq_fps(tmp_path / "NONEXISTENT") def test_compute_fps_mask(): frames = np.arange(1, 7) # [1,2,3,4,5,6] # downsample from 6→3 fps => step=2 → keep [1,3,5] mask = compute_fps_mask(frames, orig_fps=6, target_fps=3) assert mask.dtype == bool assert frames[mask].tolist() == [1, 3, 5] @pytest.fixture def simple_sequence(tmp_path): """ Create a minimal MOT sequence structure: seq_dir/ img1/000001.jpg, 000002.jpg seqinfo.ini (fps 2) gt/gt.txt det_emb_root/model/dets/SEQ.txt det_emb_root/model/embs/reid/SEQ.txt """ # seq dir & images seq_dir = tmp_path / "SEQ" img_dir = seq_dir / "img1" gt_dir = seq_dir / "gt" img_dir.mkdir(parents=True) gt_dir.mkdir() # write two dummy images img = np.zeros((8, 8, 3), np.uint8) for i in (1, 2): cv2.imwrite(str(img_dir / f"{i:06d}.jpg"), img) # seqinfo.ini fps=2 cfg = configparser.ConfigParser() cfg["Sequence"] = {"frameRate": "2"} with open(seq_dir / "seqinfo.ini", "w") as f: cfg.write(f) # ground truth with two frames gt = np.array([[1, 0, 0, 0, 0, 0], [2, 1, 1, 1, 1, 1]]) np.savetxt(gt_dir / "gt.txt", gt, delimiter=",") # detection + embedding roots det_emb_root = tmp_path / "runs" model = det_emb_root / "model" det_dir = model / "dets" emb_dir = model / "embs" / "reid" det_dir.mkdir(parents=True) emb_dir.mkdir(parents=True) # two det rows (frame_id, x,y,w,h,score) dets = np.array([[1, 0, 0, 1, 1, 0.9], [2, 0, 0, 1, 1, 0.8]]) np.savetxt(det_dir / "SEQ.txt", dets, fmt="%f") # two 128-d embeddings embs = np.vstack([np.arange(128), np.arange(128)]) np.savetxt(emb_dir / "SEQ.txt", embs, fmt="%f") return { "mot_root": tmp_path, "det_emb_root": det_emb_root, "model_name": "model", "reid_name": "reid", "seq_name": "SEQ", "seq_dir": seq_dir, } def test_dataset_indexing_and_iteration(simple_sequence): ds = MOTDataset( mot_root=str(simple_sequence["mot_root"]), det_emb_root=str(simple_sequence["det_emb_root"]), model_name=simple_sequence["model_name"], reid_name=simple_sequence["reid_name"], target_fps=None, ) # sequence_names assert simple_sequence["seq_name"] in ds.sequence_names() # get_sequence yields 2 frames in order seq = ds.get_sequence(simple_sequence["seq_name"]) out = list(seq) assert len(out) == 2 for idx, frame in enumerate(out, start=1): assert frame["frame_id"] == idx assert frame["img"].shape == (8, 8, 3) # without downsampling, dets and embs should match original assert frame["dets"].shape[0] == 1 assert frame["embs"].shape == (1, 128) def test_unknown_sequence_raises(simple_sequence): ds = MOTDataset(mot_root=str(simple_sequence["mot_root"])) with pytest.raises(KeyError): _ = ds.get_sequence("DOES_NOT_EXIST") def test_mismatched_dets_embs_raise(tmp_path, simple_sequence): # overwrite embeddings with only one row emb_file = ( tmp_path / "runs" / "model" / "embs" / "reid" / "SEQ.txt" ) one_emb = np.arange(128) np.savetxt(emb_file, one_emb[None, :], fmt="%f") with pytest.raises(ValueError): MOTDataset( mot_root=str(simple_sequence["mot_root"]), det_emb_root=str(simple_sequence["det_emb_root"]), model_name=simple_sequence["model_name"], reid_name=simple_sequence["reid_name"], target_fps=None, ).get_sequence(simple_sequence["seq_name"]) def test_fps_downsampling_and_gt_temp(tmp_path): # manually create minimal sequence as before seq_dir = tmp_path / "S" img_dir = seq_dir / "img1" gt_dir = seq_dir / "gt" img_dir.mkdir(parents=True) gt_dir.mkdir() # two dummy images img = np.zeros((4, 4, 3), np.uint8) for i in (1, 2): cv2.imwrite(str(img_dir / f"{i:06d}.jpg"), img) # seqinfo.ini fps=2 cfg = configparser.ConfigParser() cfg["Sequence"] = {"frameRate": "2"} with open(seq_dir / "seqinfo.ini", "w") as f: cfg.write(f) # ground truth with two rows gt = np.array([[1, 9], [2, 8]]) np.savetxt(gt_dir / "gt.txt", gt, delimiter=",", fmt="%d") # create dets/embs with both frames det_emb_root = tmp_path / "R" det_dir = det_emb_root / "M" / "dets" emb_dir = det_emb_root / "M" / "embs" / "R" det_dir.mkdir(parents=True) emb_dir.mkdir(parents=True) dets = np.array([[1, 0, 0, 1, 1, 0.5], [2, 0, 0, 1, 1, 0.4]]) embs = np.vstack([np.arange(128), np.arange(128)]) np.savetxt(det_dir / "S.txt", dets, fmt="%f") np.savetxt(emb_dir / "S.txt", embs, fmt="%f") # instantiate and trigger downsampling & gt_temp write ds = MOTDataset( mot_root=str(tmp_path), det_emb_root=str(det_emb_root), model_name="M", reid_name="R", target_fps=1, ) _ = ds.get_sequence("S") # triggers prep # load gt_temp.txt (numpy.loadtxt returns 1d for single row) gt_temp = np.loadtxt(seq_dir / "gt" / "gt_temp.txt", delimiter=",") # ensure only frame 1 remains # handle single-row vs 2d output if gt_temp.ndim == 1: # single row array assert gt_temp[0] == 1 and gt_temp[1] == 9 else: assert gt_temp.shape == (1, 2) assert gt_temp[0, 0] == 1 and gt_temp[0, 1] == 9 ================================================ FILE: tests/unit/test_exporters_dynamic.py ================================================ import types import sys from pathlib import Path import pytest import torch from boxmot.reid.core.auto_backend import ReidAutoBackend from boxmot.reid.exporters.onnx_exporter import ONNXExporter from boxmot.utils import ROOT, WEIGHTS from boxmot.utils.checks import RequirementsChecker def _load_existing_osnet_model_and_input(batch_size=2): candidates = [ ROOT / "osnet_x0_25_msmt17.pt", WEIGHTS / "osnet_x0_25_msmt17.pt", ] weights = next((p for p in candidates if p.exists()), None) if weights is None: pytest.skip("Missing osnet_x0_25_msmt17.pt in repository root or engine/weights.") backend = ReidAutoBackend(weights=weights, device="cpu", half=False) model = backend.model.model.eval() im = torch.randn(batch_size, 3, 256, 128) return model, im def _install_fake_onnx(monkeypatch): fake_onnx_model = types.SimpleNamespace(ir_version=9) fake_onnx = types.SimpleNamespace( __version__="0.0-test", defs=types.SimpleNamespace(onnx_opset_version=lambda: 18), checker=types.SimpleNamespace(check_model=lambda _m: None), load=lambda _p: fake_onnx_model, save=lambda _m, _p: None, ) monkeypatch.setitem(sys.modules, "onnx", fake_onnx) def _disable_dep_sync(monkeypatch): monkeypatch.setattr(RequirementsChecker, "sync_extra", lambda *args, **kwargs: None) @pytest.mark.parametrize("batch_size", [1, 2, 4]) def test_onnx_export_dynamic_uses_dynamic_shapes(monkeypatch, tmp_path, batch_size): _disable_dep_sync(monkeypatch) _install_fake_onnx(monkeypatch) calls = [] def fake_export(model, args, f, **kwargs): calls.append((args, kwargs)) Path(f).touch() monkeypatch.setattr(torch.onnx, "export", fake_export) model, im = _load_existing_osnet_model_and_input(batch_size=batch_size) out_file = tmp_path / "osnet_x0_25_msmt17.pt" exporter = ONNXExporter(model, im, out_file, opset=17, dynamic=True, half=False, simplify=False) exported = exporter.export() assert exported == out_file.with_suffix(".onnx") assert len(calls) == 1 export_args, export_kwargs = calls[0] assert export_args[0].shape[0] == batch_size assert "dynamic_shapes" in export_kwargs assert "dynamic_axes" not in export_kwargs @pytest.mark.parametrize("batch_size", [1, 3]) def test_onnx_export_dynamic_fallback_uses_dynamic_axes(monkeypatch, tmp_path, batch_size): _disable_dep_sync(monkeypatch) _install_fake_onnx(monkeypatch) calls = [] def fake_export(model, args, f, **kwargs): calls.append((args, kwargs)) if len(calls) == 1: raise RuntimeError("force dynamic fallback") Path(f).touch() monkeypatch.setattr(torch.onnx, "export", fake_export) model, im = _load_existing_osnet_model_and_input(batch_size=batch_size) out_file = tmp_path / "osnet_x0_25_msmt17.pt" exporter = ONNXExporter(model, im, out_file, opset=17, dynamic=True, half=False, simplify=False) exported = exporter.export() assert exported == out_file.with_suffix(".onnx") assert len(calls) == 2 first_args, first_kwargs = calls[0] second_args, second_kwargs = calls[1] assert first_args[0].shape[0] == batch_size assert second_args[0].shape[0] == batch_size assert "dynamic_shapes" in first_kwargs assert "dynamic_axes" in second_kwargs @pytest.mark.parametrize("batch_size", [1, 2, 5]) def test_onnx_export_static_has_no_dynamic_shapes(monkeypatch, tmp_path, batch_size): _disable_dep_sync(monkeypatch) _install_fake_onnx(monkeypatch) calls = [] def fake_export(model, args, f, **kwargs): calls.append((args, kwargs)) Path(f).touch() monkeypatch.setattr(torch.onnx, "export", fake_export) model, im = _load_existing_osnet_model_and_input(batch_size=batch_size) out_file = tmp_path / "osnet_x0_25_msmt17.pt" exporter = ONNXExporter(model, im, out_file, opset=17, dynamic=False, half=False, simplify=False) exported = exporter.export() assert exported == out_file.with_suffix(".onnx") assert len(calls) == 1 export_args, export_kwargs = calls[0] assert export_args[0].shape[0] == batch_size assert "dynamic_shapes" not in export_kwargs assert "dynamic_axes" not in export_kwargs ================================================ FILE: tests/unit/test_inference.py ================================================ from pathlib import Path import numpy as np from boxmot.engine.cli import ensure_model_extension from boxmot.engine.inference import extract_detections, filter_detections, resolve_yolo_model_path from boxmot.trackers.ocsort.ocsort import convert_obb_to_z, convert_x_to_obb from boxmot.trackers.basetracker import BaseTracker from boxmot.trackers.detection_layout import AABB_DETECTIONS, OBB_DETECTIONS from boxmot.utils.iou import iou_obb_pair from boxmot.utils import WEIGHTS class _TensorWrapper: def __init__(self, array: np.ndarray): self._array = np.asarray(array, dtype=np.float32) def cpu(self): return self def numpy(self): return self._array @property def shape(self): return self._array.shape class _PredictionWrapper: def __init__(self, array: np.ndarray): self.data = _TensorWrapper(array) def __len__(self): return len(self.data.numpy()) class _Result: def __init__(self, boxes=None, obb=None): self.boxes = boxes self.obb = obb class _DummyTracker(BaseTracker): @BaseTracker.setup_decorator @BaseTracker.per_class_decorator def update(self, dets: np.ndarray, img: np.ndarray, embs: np.ndarray = None) -> np.ndarray: self.check_inputs(dets, img, embs) return np.empty((0, 9 if self.is_obb else 8), dtype=np.float32) def _display_groups(self): return [] class _DummyOBBTracker(_DummyTracker): supports_obb = True def test_extract_detections_reads_aabb_results(): boxes = _PredictionWrapper([[1, 2, 3, 4, 0.9, 0]]) result = _Result(boxes=boxes) dets = extract_detections(result) assert dets.shape == (1, 6) np.testing.assert_array_equal(dets[0], np.array([1, 2, 3, 4, 0.9, 0], dtype=np.float32)) def test_extract_detections_reads_obb_results(): obb = _PredictionWrapper([[10, 20, 30, 40, 0.5, 0.8, 1]]) result = _Result(obb=obb) dets = extract_detections(result) assert dets.shape == (1, 7) np.testing.assert_array_equal( dets[0], np.array([10, 20, 30, 40, 0.5, 0.8, 1], dtype=np.float32), ) def test_extract_detections_preserves_empty_obb_width(): result = _Result(obb=_PredictionWrapper(np.empty((0, 7), dtype=np.float32))) dets = extract_detections(result) assert dets.shape == (0, 7) def test_filter_detections_keeps_valid_obb_boxes(): dets = np.array( [ [100, 100, 20, 10, 0.2, 0.9, 0], [100, 100, 0, 10, 0.2, 0.9, 0], ], dtype=np.float32, ) filtered = filter_detections(dets, min_area=50.0) assert filtered.shape == (1, 7) np.testing.assert_array_equal(filtered[0], dets[0]) def test_tracker_infers_obb_mode_on_empty_followup_frame(): tracker = _DummyOBBTracker(asso_func="iou") image = np.zeros((64, 64, 3), dtype=np.uint8) obb_dets = np.array([[32, 32, 20, 10, 0.1, 0.9, 0]], dtype=np.float32) tracker.update(obb_dets, image) tracker.update(np.empty((0, 7), dtype=np.float32), image) assert tracker.is_obb is True assert tracker.detection_layout is OBB_DETECTIONS assert tracker.asso_func_name == "iou_obb" def test_tracker_layout_helpers_switch_with_detection_mode(): tracker = _DummyOBBTracker(asso_func="iou") tracker._set_detection_mode(False) assert tracker.detection_layout is AABB_DETECTIONS assert tracker.empty_detections().shape == (0, 6) assert tracker.empty_output().shape == (0, 8) tracker._set_detection_mode(True) assert tracker.detection_layout is OBB_DETECTIONS assert tracker.empty_detections().shape == (0, 7) assert tracker.empty_output().shape == (0, 9) def test_tracker_rejects_obb_when_not_supported(): tracker = _DummyTracker(asso_func="iou") image = np.zeros((64, 64, 3), dtype=np.uint8) obb_dets = np.array([[32, 32, 20, 10, 0.1, 0.9, 0]], dtype=np.float32) try: tracker.update(obb_dets, image) except AssertionError as exc: assert str(exc) == ( "_DummyTracker does not support OBB detections. " "Use an OBB-capable tracker such as ByteTrack, BotSort, OCSort, or SFSORT." ) else: raise AssertionError("Expected unsupported OBB trackers to fail fast") def test_ocsort_obb_state_roundtrip_handles_column_vectors(): obb = np.array([32, 24, 20, 10, 0.25], dtype=np.float32) state = convert_obb_to_z(obb) decoded = convert_x_to_obb(state) assert decoded.shape == (1, 5) np.testing.assert_allclose(decoded[0], obb, rtol=1e-6, atol=1e-6) def test_iou_obb_pair_accepts_column_like_inputs_and_radians(): dets = np.array([[32, 24, 20, 10, 0.25, 0.9]], dtype=object) trks = np.array([[32, 24, 20, 10, 0.25, 0.8]], dtype=object) iou = iou_obb_pair(0, 0, dets, trks) assert iou > 0.99 def test_resolve_yolo_model_path_routes_non_rtdetr_to_weights_dir(): resolved = resolve_yolo_model_path("yolov8n.pt") assert resolved == WEIGHTS / "yolov8n.pt" def test_resolve_yolo_model_path_keeps_rtdetr_name_without_path_prefix(): resolved = resolve_yolo_model_path("/tmp/models/rtdetr_v2_r18vd.pt") assert resolved.name == "rtdetr_v2_r18vd.pt" assert str(resolved.parent) == "." def test_ensure_model_extension_preserves_explicit_export_paths(): model_path = "models/osnet_x0_25_msmt17_saved_model/osnet_x0_25_msmt17_float32.tflite" resolved = ensure_model_extension(model_path) assert resolved == Path(model_path) def test_ensure_model_extension_keeps_bare_reid_names_in_weights_dir(): resolved = ensure_model_extension("osnet_x0_25_msmt17") assert resolved == WEIGHTS / "osnet_x0_25_msmt17.pt" ================================================ FILE: tests/unit/test_kalman_filters_modes.py ================================================ import numpy as np import pytest from boxmot.motion.kalman_filters.xyah import KalmanFilterXYAH from boxmot.motion.kalman_filters.xyhr import KalmanFilterXYHR from boxmot.motion.kalman_filters.xysr import KalmanFilterXYSR from boxmot.motion.kalman_filters.xywh import KalmanFilterXYWH def _angle_diff(a: float, b: float) -> float: return float((a - b + np.pi) % (2.0 * np.pi) - np.pi) @pytest.mark.parametrize( ("kf_cls", "init_measurement", "update_measurement"), [ ( KalmanFilterXYWH, np.array([100.0, 80.0, 40.0, 20.0]), np.array([101.0, 79.5, 40.5, 20.5]), ), ( KalmanFilterXYAH, np.array([100.0, 80.0, 1.6, 60.0]), np.array([100.5, 80.2, 1.58, 60.1]), ), ], ) def test_xywh_xyah_support_aabb_mode(kf_cls, init_measurement, update_measurement): kf = kf_cls(ndim=4) mean, covariance = kf.initiate(init_measurement) mean, covariance = kf.predict(mean, covariance) new_mean, new_cov = kf.update(mean, covariance, update_measurement, confidence=0.9) assert new_mean.shape == (8,) assert new_cov.shape == (8, 8) assert new_mean[2] > 0 and new_mean[3] > 0 assert np.all(np.isfinite(new_mean)) assert np.all(np.isfinite(new_cov)) distance = kf.gating_distance(new_mean, new_cov, update_measurement[None, :]) assert distance.shape == (1,) assert np.isfinite(distance[0]) @pytest.mark.parametrize( ("kf_cls", "init_measurement", "update_measurement"), [ ( KalmanFilterXYWH, np.array([100.0, 80.0, 40.0, 20.0, np.pi - 0.01]), np.array([101.0, 79.5, 40.5, 20.5, -np.pi + 0.02]), ), ( KalmanFilterXYAH, np.array([100.0, 80.0, 1.6, 60.0, np.pi - 0.03]), np.array([100.5, 80.2, 1.58, 60.1, -np.pi + 0.01]), ), ], ) def test_xywh_xyah_support_obb_mode(kf_cls, init_measurement, update_measurement): kf = kf_cls(ndim=5) mean, covariance = kf.initiate(init_measurement) mean, covariance = kf.predict(mean, covariance) new_mean, new_cov = kf.update(mean, covariance, update_measurement, confidence=0.9) assert new_mean.shape == (10,) assert new_cov.shape == (10, 10) assert new_mean[2] > 0 and new_mean[3] > 0 assert -np.pi <= float(new_mean[4]) < np.pi assert abs(_angle_diff(float(new_mean[4]), update_measurement[4])) < 0.2 distance = kf.gating_distance(new_mean, new_cov, update_measurement[None, :]) assert distance.shape == (1,) assert np.isfinite(distance[0]) def test_xysr_supports_aabb_mode(): kf = KalmanFilterXYSR(dim_x=7, dim_z=4, max_obs=50) init_measurement = np.array([[300.0], [200.0], [50000.0], [1.5]]) mean, covariance = kf.initiate(init_measurement) kf.x = mean.copy() kf.P = covariance.copy() kf.predict() measurement = np.array([[305.0], [202.0], [50500.0], [1.45]]) kf.update(measurement) assert kf.x.shape == (7, 1) assert kf.P.shape == (7, 7) assert kf.x[2, 0] > 0 and kf.x[3, 0] > 0 assert np.all(np.isfinite(kf.x)) assert np.all(np.isfinite(kf.P)) assert np.isfinite(kf.md_for_measurement(measurement)) def test_xysr_supports_obb_mode(): kf = KalmanFilterXYSR(dim_x=9, dim_z=5, max_obs=50) init_measurement = np.array([[300.0], [200.0], [50000.0], [1.5], [np.pi - 0.01]]) mean, covariance = kf.initiate(init_measurement) kf.x = mean.copy() kf.P = covariance.copy() kf.predict() measurement = np.array([[305.0], [202.0], [50500.0], [1.45], [-np.pi + 0.02]]) kf.update(measurement) assert kf.x.shape == (9, 1) assert kf.P.shape == (9, 9) assert kf.x[2, 0] > 0 and kf.x[3, 0] > 0 assert -np.pi <= float(kf.x[4, 0]) < np.pi assert abs(float(kf.y[4, 0])) < 0.2 assert np.isfinite(float(kf.x[8, 0])) assert abs(float(kf.x[8, 0])) < 0.2 assert np.isfinite(kf.md_for_measurement(measurement)) def test_xysr_obb_aligns_equivalent_ratio_angle_forms(): kf = KalmanFilterXYSR(dim_x=9, dim_z=5, max_obs=50) theta_ref = 0.35 init_measurement = np.array([[300.0], [200.0], [50000.0], [2.0], [theta_ref]]) mean, covariance = kf.initiate(init_measurement) kf.x = mean.copy() kf.P = covariance.copy() kf.predict() # Equivalent rectangle representation in XYSR: # r -> 1/r and theta -> theta + pi/2 equivalent_measurement = np.array( [[300.5], [199.5], [50050.0], [0.5], [theta_ref + (np.pi / 2.0)]] ) kf.update(equivalent_measurement) assert abs(_angle_diff(float(kf.x[4, 0]), theta_ref)) < 0.25 assert abs(np.log(float(kf.x[3, 0]) / 2.0)) < 0.35 assert np.isfinite(float(kf.x[8, 0])) assert abs(float(kf.x[8, 0])) < 0.2 def test_xysr_obb_unfreeze_handles_angle_wrap(): kf = KalmanFilterXYSR(dim_x=9, dim_z=5, max_obs=50) obs1 = np.array([[300.0], [200.0], [50000.0], [1.5], [np.pi - 0.05]]) obs2 = np.array([[320.0], [210.0], [51000.0], [1.4], [-np.pi + 0.04]]) obs3 = np.array([[350.0], [230.0], [52000.0], [1.3], [np.pi - 0.02]]) kf.predict() kf.update(obs1) kf.predict() kf.update(obs2) for _ in range(5): kf.predict() kf.update(None) kf.predict() kf.update(obs3) assert np.all(np.isfinite(kf.x)) assert -np.pi <= float(kf.x[4, 0]) < np.pi assert abs(float(kf.y[4, 0])) < 0.3 def test_xysr_unfreeze_with_column_vectors(): """Regression test for mikel-brostrom/boxmot#2207.""" kf = KalmanFilterXYSR(dim_x=7, dim_z=4, max_obs=50) kf.F = np.eye(7) kf.F[:4, 4:] = np.pad(np.eye(3), ((0, 1), (0, 0))) kf.H = np.zeros((4, 7)) kf.H[:4, :4] = np.eye(4) kf.R *= 10.0 obs1 = np.array([[300.0], [200.0], [50000.0], [1.5]]) obs2 = np.array([[320.0], [210.0], [51000.0], [1.4]]) kf.predict() kf.update(obs1) kf.predict() kf.update(obs2) for _ in range(5): kf.predict() kf.update(None) obs3 = np.array([[350.0], [230.0], [52000.0], [1.3]]) kf.predict() kf.update(obs3) state = kf.x.flatten() assert np.all(np.isfinite(state)), f"State contains non-finite values: {state}" assert abs(state[0] - 350.0) < 100 assert abs(state[1] - 230.0) < 100 def test_xysr_unfreeze_insufficient_history(): """Guard against missing replay anchors after history truncation.""" kf = KalmanFilterXYSR(dim_x=7, dim_z=4, max_obs=4) kf.F = np.eye(7) kf.F[:4, 4:] = np.pad(np.eye(3), ((0, 1), (0, 0))) kf.H = np.zeros((4, 7)) kf.H[:4, :4] = np.eye(4) kf.R *= 10.0 obs1 = np.array([[300.0], [200.0], [50000.0], [1.5]]) kf.predict() kf.update(obs1) for _ in range(10): kf.predict() kf.update(None) obs2 = np.array([[320.0], [210.0], [51000.0], [1.4]]) kf.predict() kf.update(obs2) state = kf.x.flatten() assert np.all(np.isfinite(state)), f"State contains non-finite values: {state}" def test_xyhr_supports_aabb_mode_and_column_measurement(): kf = KalmanFilterXYHR(np.array([[100.0], [80.0], [40.0], [1.2]]), dim_z=4, ndim=8) pred_x, pred_cov = kf.predict() upd_x, upd_cov = kf.update(np.array([101.0, 80.5, 39.0, 1.25])) assert pred_x.shape == (8,) assert pred_cov.shape == (8, 8) assert upd_x.shape == (8,) assert upd_cov.shape == (8, 8) assert upd_x[2] > 0 and upd_x[3] > 0 assert np.all(np.isfinite(upd_x)) assert np.all(np.isfinite(upd_cov)) def test_xyhr_supports_obb_mode_and_inference(): inferred = KalmanFilterXYHR(np.array([10.0, 11.0, 12.0, 1.1, 0.3])) assert inferred.dim_z == 5 assert inferred.dim_x == 10 kf = KalmanFilterXYHR( np.array([100.0, 80.0, 40.0, 1.2, np.pi - 0.02]), dim_z=5, ndim=10, ) pred_x, pred_cov = kf.predict() measurement = np.array([101.0, 80.5, 39.0, 1.25, -np.pi + 0.01]) upd_x, upd_cov = kf.update(measurement) assert pred_x.shape == (10,) assert pred_cov.shape == (10, 10) assert upd_x.shape == (10,) assert upd_cov.shape == (10, 10) assert upd_x[2] > 0 and upd_x[3] > 0 assert -np.pi <= float(upd_x[4]) < np.pi assert abs(_angle_diff(float(upd_x[4]), measurement[4])) < 0.2 ================================================ FILE: tests/unit/test_postprocessing.py ================================================ import numpy as np from boxmot.postprocessing.gsi import gaussian_smooth, linear_interpolation from boxmot.postprocessing.gbrc import gradient_boosting_smooth from boxmot.postprocessing.gbrc import linear_interpolation as gbrc_linear_interpolation def test_gsi(): tracking_results = np.array( [ [1, 1, 1475, 419, 75, 169, 0, 0, -1], [2, 1, 1475, 419, 75, 169, 0, 0, -1], [4, 1, 1475, 419, 75, 169, 0, 0, -1], [6, 1, 1475, 419, 75, 169, 0, 0, -1], ] ) li = linear_interpolation(tracking_results, interval=20) gsi = gaussian_smooth(li, tau=10) assert len(gsi) == 6 def test_gbrc(): tracking_results = np.array( [ [1, 1, 1475, 419, 75, 169, 0, 0, -1], [2, 1, 1475, 419, 75, 169, 0, 0, -1], [4, 1, 1475, 419, 75, 169, 0, 0, -1], [6, 1, 1475, 419, 75, 169, 0, 0, -1], ] ) li = gbrc_linear_interpolation(tracking_results, interval=20) gbrc = gradient_boosting_smooth(li) assert len(gbrc) == 6 assert gbrc.shape[1] == 9 ================================================ FILE: tests/unit/test_reidbackend.py ================================================ from pathlib import Path import cv2 import numpy as np import pytest from boxmot.reid.backends.onnx_backend import ONNXBackend from boxmot.reid.backends.openvino_backend import OpenVinoBackend from boxmot.reid.backends.pytorch_backend import PyTorchBackend from boxmot.reid.backends.torchscript_backend import TorchscriptBackend from boxmot.reid.core.auto_backend import ReidAutoBackend from boxmot.utils import ROOT, WEIGHTS # Exported artifacts are covered by the dedicated CI export job. REID_MODEL_CASES = [ (WEIGHTS / "osnet_x0_25_msmt17.pt", PyTorchBackend, False), (WEIGHTS / "osnet_x0_25_msmt17.torchscript", TorchscriptBackend, True), (WEIGHTS / "osnet_x0_25_msmt17.onnx", ONNXBackend, True), (WEIGHTS / "osnet_x0_25_msmt17_openvino_model", OpenVinoBackend, True), ] def get_backend(weights: Path, requires_export: bool): """Return a backend instance, skipping exported formats when artifacts are absent.""" if requires_export and not weights.exists(): pytest.skip(f"Missing exported ReID artifact: {weights}") rab = ReidAutoBackend(weights=weights, device="cpu", half=False) return rab.get_backend() @pytest.mark.parametrize("reid_model, _, requires_export", REID_MODEL_CASES) def test_reidbackend_output(reid_model, _, requires_export): b = get_backend(reid_model, requires_export) img = cv2.imread( str(ROOT / "assets/MOT17-mini/train/MOT17-04-FRCNN/img1/000001.jpg") ) dets = np.array([[144, 212, 578, 480, 0.82, 0], [425, 281, 576, 472, 0.56, 65]]) embs = b.get_features(dets[:, 0:4], img) assert embs.shape[0] == 2 # two crops should give two embeddings assert embs.shape[1] == 512 # osnet embeddings are of size 512 @pytest.mark.parametrize("reid_model, backend, requires_export", REID_MODEL_CASES) def test_reidbackend_type(reid_model, backend, requires_export): b = get_backend(reid_model, requires_export) assert isinstance(b, backend) ================================================ FILE: tests/unit/test_tflite_backend.py ================================================ import types import boxmot.reid.backends.tflite_backend as tflite_backend_module from boxmot.reid.backends.tflite_backend import TFLiteBackend class DummyChecker: def __init__(self): self.calls = [] def check_packages(self, requirements): self.calls.append(tuple(requirements)) def make_backend() -> TFLiteBackend: backend = TFLiteBackend.__new__(TFLiteBackend) backend.checker = DummyChecker() return backend def test_tflite_backend_prefers_litert_interpreter(monkeypatch): backend = make_backend() litert_interpreter = type("LiteRTInterpreter", (), {}) def fake_import_module(name): if name == "ai_edge_litert.interpreter": return types.SimpleNamespace(Interpreter=litert_interpreter) raise AssertionError(f"Unexpected import: {name}") monkeypatch.setattr(tflite_backend_module, "import_module", fake_import_module) interpreter_class = backend._get_interpreter_class() assert interpreter_class is litert_interpreter assert backend.checker.calls == [] def test_tflite_backend_installs_litert_when_no_runtime_is_available(monkeypatch): backend = make_backend() litert_interpreter = type("LiteRTInterpreter", (), {}) calls = [] def fake_import_module(name): calls.append(name) if name != "ai_edge_litert.interpreter": raise AssertionError(f"Unexpected import: {name}") if len(calls) == 1: raise ModuleNotFoundError(name) return types.SimpleNamespace(Interpreter=litert_interpreter) monkeypatch.setattr(tflite_backend_module, "import_module", fake_import_module) interpreter_class = backend._get_interpreter_class() assert interpreter_class is litert_interpreter assert backend.checker.calls == [("ai-edge-litert",)] assert calls == ["ai_edge_litert.interpreter", "ai_edge_litert.interpreter"] ================================================ FILE: tests/unit/test_tflite_exporter.py ================================================ import os import sys import types from pathlib import Path import torch import boxmot.reid.exporters.tflite_exporter as tflite_exporter_module from boxmot.engine.export import create_export_tasks from boxmot.reid.exporters.tflite_exporter import TFLiteExporter from boxmot.utils.checks import RequirementsChecker def _disable_dep_sync(monkeypatch): monkeypatch.setattr(RequirementsChecker, "sync_extra", lambda *args, **kwargs: None) def _install_fake_tflite_stack(monkeypatch, convert_impl): monkeypatch.setitem( sys.modules, "onnx2tf", types.SimpleNamespace(__version__="2.4.0", convert=convert_impl), ) monkeypatch.setitem(sys.modules, "tensorflow", types.SimpleNamespace(__version__="2.19.0")) monkeypatch.setattr(tflite_exporter_module.sys, "platform", "linux") def test_tflite_export_uses_flatbuffer_direct_and_prefers_float32(monkeypatch, tmp_path): _disable_dep_sync(monkeypatch) weights = tmp_path / "osnet_x0_25_msmt17.pt" weights.with_suffix(".onnx").touch() calls = [] def fake_convert( *, input_onnx_file_path, output_folder_path, tflite_backend=None, verbosity=None, output_float16_tflite=None, ): calls.append( { "input_onnx_file_path": input_onnx_file_path, "output_folder_path": output_folder_path, "tflite_backend": tflite_backend, "verbosity": verbosity, "output_float16_tflite": output_float16_tflite, } ) output_dir = Path(output_folder_path) output_dir.mkdir(parents=True, exist_ok=True) (output_dir / "osnet_x0_25_msmt17_float16.tflite").touch() (output_dir / "osnet_x0_25_msmt17_float32.tflite").touch() _install_fake_tflite_stack(monkeypatch, fake_convert) exporter = TFLiteExporter(None, None, weights, opset=18, dynamic=True, half=False, simplify=True) exported = exporter.export() assert Path(exported).name == "osnet_x0_25_msmt17_float32.tflite" assert len(calls) == 1 assert calls[0]["input_onnx_file_path"] == str(weights.with_suffix(".onnx")) assert calls[0]["output_folder_path"].endswith(os.sep) assert calls[0]["tflite_backend"] == "flatbuffer_direct" assert calls[0]["verbosity"] == "info" assert calls[0]["output_float16_tflite"] is False def test_tflite_export_generates_onnx_when_missing(monkeypatch, tmp_path): _disable_dep_sync(monkeypatch) weights = tmp_path / "osnet_x0_25_msmt17.pt" onnx_calls = [] class FakeONNXExporter: def __init__(self, model, im, file, opset=None, dynamic=False, half=False, simplify=False): onnx_calls.append( { "model": model, "im": im, "file": file, "opset": opset, "dynamic": dynamic, "half": half, "simplify": simplify, } ) self.file = Path(file) def export(self): onnx_path = self.file.with_suffix(".onnx") onnx_path.touch() return onnx_path def fake_convert( *, input_onnx_file_path, output_folder_path, tflite_backend=None, verbosity=None, output_float16_tflite=None, ): output_dir = Path(output_folder_path) output_dir.mkdir(parents=True, exist_ok=True) (output_dir / "osnet_x0_25_msmt17_float16.tflite").touch() monkeypatch.setattr(tflite_exporter_module, "ONNXExporter", FakeONNXExporter) _install_fake_tflite_stack(monkeypatch, fake_convert) image = torch.randn(1, 3, 256, 128) model = object() exporter = TFLiteExporter(model, image, weights, opset=17, dynamic=True, half=True, simplify=False) exported = exporter.export() assert Path(exported).name == "osnet_x0_25_msmt17_float16.tflite" assert len(onnx_calls) == 1 assert onnx_calls[0]["model"] is model assert onnx_calls[0]["im"] is image assert onnx_calls[0]["file"] == weights assert onnx_calls[0]["opset"] == 17 assert onnx_calls[0]["dynamic"] is True assert onnx_calls[0]["half"] is True assert onnx_calls[0]["simplify"] is False def test_create_export_tasks_passes_tflite_export_settings(): args = types.SimpleNamespace( include=("tflite",), weights=Path("models/osnet_x0_25_msmt17.pt"), opset=18, dynamic=True, half=True, simplify=False, optimize=False, verbose=False, ) model = object() dummy_input = torch.randn(2, 3, 256, 128) tasks = create_export_tasks(args, model, dummy_input) flag, exporter_class, exp_args = tasks["tflite"] assert flag is True assert exporter_class is TFLiteExporter assert exp_args[0] is model assert exp_args[1] is dummy_input assert exp_args[2] == args.weights assert exp_args[3:] == (18, True, True, False) ================================================ FILE: tests/unit/test_trackers.py ================================================ from pathlib import Path import numpy as np import pytest from boxmot import ( DeepOcSort, OcSort, create_tracker, get_tracker_config, ) from boxmot.trackers.deepocsort.deepocsort import ( KalmanBoxTracker as DeepOCSortKalmanBoxTracker, ) from boxmot.trackers.botsort.botsort import BotSort from boxmot.trackers.botsort.botsort_track import STrack as BotSortTrack from boxmot.trackers.bytetrack.bytetrack import ByteTrack, STrack as ByteTrackTrack from boxmot.trackers.ocsort.ocsort import KalmanBoxTracker as OCSortKalmanBoxTracker from boxmot.trackers.sfsort.sfsort import SFSORT from boxmot.utils.matching import iou_distance from boxmot.utils import WEIGHTS from tests.test_config import ( ALL_TRACKERS, MOTION_N_APPEARANCE_TRACKING_METHODS, MOTION_N_APPEARANCE_TRACKING_NAMES, MOTION_ONLY_TRACKING_METHODS, PER_CLASS_TRACKERS, ) # --- existing tests --- @pytest.mark.parametrize("Tracker", MOTION_N_APPEARANCE_TRACKING_METHODS) def test_motion_n_appearance_trackers_instantiation(Tracker): Tracker( reid_weights=Path(WEIGHTS / "osnet_x0_25_msmt17.pt"), device="cpu", half=True, ) @pytest.mark.parametrize("Tracker", MOTION_ONLY_TRACKING_METHODS) def test_motion_only_trackers_instantiation(Tracker): Tracker() @pytest.mark.parametrize("tracker_type", ALL_TRACKERS) def test_tracker_output_size(tracker_type): tracker_conf = get_tracker_config(tracker_type) tracker = create_tracker( tracker_type=tracker_type, tracker_config=tracker_conf, reid_weights=WEIGHTS / "mobilenetv2_x1_4_dukemtmcreid.pt", device="cpu", half=False, per_class=False, ) rgb = np.random.randint(255, size=(640, 640, 3), dtype=np.uint8) det = np.array([[144, 212, 400, 480, 0.82, 0], [425, 281, 576, 472, 0.72, 65]]) output = tracker.update(det, rgb) assert output.shape == (2, 8) def test_dynamic_max_obs_based_on_max_age(): max_age = 400 ocsort = OcSort(max_age=max_age) assert ocsort.max_obs == (max_age + 5) def create_kalman_box_tracker_ocsort(bbox, cls, det_ind, tracker): return OCSortKalmanBoxTracker( bbox, cls, det_ind, Q_xy_scaling=tracker.Q_xy_scaling, Q_s_scaling=tracker.Q_s_scaling, ) def create_kalman_box_tracker_deepocsort(bbox, cls, det_ind, tracker): det = np.concatenate([bbox, [cls, det_ind]]) return DeepOCSortKalmanBoxTracker( det, Q_xy_scaling=tracker.Q_xy_scaling, Q_s_scaling=tracker.Q_s_scaling ) TRACKER_CREATORS = { OcSort: create_kalman_box_tracker_ocsort, DeepOcSort: create_kalman_box_tracker_deepocsort, } @pytest.mark.parametrize( "Tracker, init_args", [ (OcSort, {}), ( DeepOcSort, { "reid_weights": Path(WEIGHTS / "osnet_x0_25_msmt17.pt"), "device": "cpu", "half": True, }, ), ], ) def test_Q_matrix_scaling(Tracker, init_args): bbox = np.array([0, 0, 100, 100, 0.9]) cls = 1 det_ind = 0 Q_xy_scaling = 0.05 Q_s_scaling = 0.0005 tracker = Tracker(Q_xy_scaling=Q_xy_scaling, Q_s_scaling=Q_s_scaling, **init_args) create_kalman_box_tracker = TRACKER_CREATORS[Tracker] kalman_box_tracker = create_kalman_box_tracker(bbox, cls, det_ind, tracker) assert kalman_box_tracker.kf.Q[4, 4] == Q_xy_scaling, "Q_xy scaling incorrect for x' velocity" assert kalman_box_tracker.kf.Q[5, 5] == Q_xy_scaling, "Q_xy scaling incorrect for y' velocity" assert kalman_box_tracker.kf.Q[6, 6] == Q_s_scaling, "Q_s scaling incorrect for s' (scale) velocity" @pytest.mark.parametrize("tracker_type", PER_CLASS_TRACKERS) def test_per_class_tracker_output_size(tracker_type): tracker_conf = get_tracker_config(tracker_type) tracker = create_tracker( tracker_type=tracker_type, tracker_config=tracker_conf, reid_weights=WEIGHTS / "mobilenetv2_x1_4_dukemtmcreid.pt", device="cpu", half=False, per_class=True, ) rgb = np.random.randint(255, size=(640, 640, 3), dtype=np.uint8) det = np.array([ [100, 100, 300, 250, 0.95, 0], # class 0 [400, 300, 550, 450, 0.90, 65], # class 65 ]) embs = np.random.random(size=(2, 512)) _ = tracker.update(det, rgb, embs) output = tracker.update(det, rgb, embs) assert output.shape == (2, 8) @pytest.mark.parametrize("tracker_type", PER_CLASS_TRACKERS) def test_per_class_tracker_active_tracks(tracker_type): tracker_conf = get_tracker_config(tracker_type) tracker = create_tracker( tracker_type=tracker_type, tracker_config=tracker_conf, reid_weights=WEIGHTS / "mobilenetv2_x1_4_dukemtmcreid.pt", device="cpu", half=False, per_class=True, ) rgb = np.random.randint(255, size=(640, 640, 3), dtype=np.uint8) det = np.array([ [100, 100, 300, 250, 0.95, 0], # class 0 [400, 300, 550, 450, 0.90, 65], # class 65 ]) embs = np.random.random(size=(2, 512)) tracker.update(det, rgb, embs) assert tracker.per_class_active_tracks[0], "No active tracks for class 0" assert tracker.per_class_active_tracks[65], "No active tracks for class 65" def test_botsort_supports_obb_without_reid(): tracker = BotSort( reid_weights=WEIGHTS / "mobilenetv2_x1_4_dukemtmcreid.pt", device="cpu", half=False, with_reid=False, ) rgb = np.random.randint(255, size=(640, 640, 3), dtype=np.uint8) det = np.array([[320, 240, 80, 40, 0.15, 0.95, 0]], dtype=np.float32) out1 = tracker.update(det, rgb) out2 = tracker.update(det, rgb) assert out1.shape[1] == 9 assert out2.shape[1] == 9 np.testing.assert_allclose(out2[0, :5], det[0, :5], atol=1e-2) def test_botsort_obb_matching_uses_oriented_geometry(): det = np.array([320, 240, 80, 40, 0.15, 0.95, 0, 0], dtype=np.float32) track_a = BotSortTrack(det, max_obs=10, is_obb=True) track_b = BotSortTrack(det, max_obs=10, is_obb=True) cost = iou_distance([track_a], [track_b], is_obb=True) assert cost.shape == (1, 1) assert cost[0, 0] < 1e-3 def test_botsort_obb_state_history_follows_rotation_without_flips(): tracker = BotSort( reid_weights=WEIGHTS / "mobilenetv2_x1_4_dukemtmcreid.pt", device="cpu", half=False, with_reid=False, ) rgb = np.random.randint(255, size=(640, 640, 3), dtype=np.uint8) angles = np.linspace(0.0, 6.1, 20, dtype=np.float32) for angle in angles: det = np.array([[320, 240, 90, 40, angle, 0.95, 0]], dtype=np.float32) tracker.update(det, rgb) assert tracker.active_tracks history = np.asarray(tracker.active_tracks[0].history_observations, dtype=np.float32) assert history.shape[1] == 8 centers = history.reshape(-1, 4, 2).mean(axis=1) assert np.max(np.abs(centers - centers[0])) < 1e-2 assert np.max(np.abs(history[-1] - history[0])) > 1.0 def test_bytetrack_supports_obb_outputs(): tracker = ByteTrack() rgb = np.random.randint(255, size=(640, 640, 3), dtype=np.uint8) det = np.array([[320, 240, 80, 40, 0.15, 0.95, 0]], dtype=np.float32) out1 = tracker.update(det, rgb) out2 = tracker.update(det, rgb) assert out1.shape == (1, 9) assert out2.shape == (1, 9) np.testing.assert_allclose(out2[0, :5], det[0, :5], atol=1e-2) def test_bytetrack_obb_matching_uses_oriented_geometry(): det = np.array([320, 240, 80, 40, 0.15, 0.95, 0, 0], dtype=np.float32) track_a = ByteTrackTrack(det, max_obs=10, is_obb=True) track_b = ByteTrackTrack(det, max_obs=10, is_obb=True) cost = iou_distance([track_a], [track_b], is_obb=True) assert cost.shape == (1, 1) assert cost[0, 0] < 1e-3 def test_bytetrack_obb_state_history_follows_rotation_without_flips(): tracker = ByteTrack(track_thresh=0.1, min_conf=0.01, match_thresh=0.99) rgb = np.random.randint(255, size=(640, 640, 3), dtype=np.uint8) angles = np.linspace(0.0, 6.1, 20, dtype=np.float32) for angle in angles: det = np.array([[320, 240, 90, 40, angle, 0.95, 0]], dtype=np.float32) tracker.update(det, rgb) assert tracker.active_tracks history = np.asarray(tracker.active_tracks[0].history_observations, dtype=np.float32) assert history.shape[1] == 8 centers = history.reshape(-1, 4, 2).mean(axis=1) assert np.max(np.abs(centers - centers[0])) < 1e-2 assert np.max(np.abs(history[-1] - history[0])) > 1.0 def test_ocsort_obb_state_history_uses_state_corners(): tracker = OcSort(det_thresh=0.1) rgb = np.random.randint(255, size=(640, 640, 3), dtype=np.uint8) angles = np.linspace(0.0, 6.1, 20, dtype=np.float32) for angle in angles: det = np.array([[320, 240, 90, 40, angle, 0.95, 0]], dtype=np.float32) tracker.update(det, rgb) assert tracker.active_tracks history = np.asarray(tracker.active_tracks[0].history_observations, dtype=np.float32) assert history.shape[1] == 8 assert np.max(np.abs(history[-1] - history[0])) > 1.0 def test_ocsort_obb_state_history_uses_post_update_state_center(): tracker = OcSort(det_thresh=0.1, min_hits=1) rgb = np.random.randint(255, size=(640, 640, 3), dtype=np.uint8) det1 = np.array([[100, 100, 90, 40, 0.0, 0.95, 0]], dtype=np.float32) det2 = np.array([[102, 102, 90, 40, 1.0, 0.95, 0]], dtype=np.float32) tracker.update(det1, rgb) tracker.update(det2, rgb) assert tracker.active_tracks track = tracker.active_tracks[0] assert len(track.history_observations) >= 1 history_center = ( np.asarray(track.history_observations[-1], dtype=np.float32).reshape(4, 2).mean(axis=0) ) state_center = np.asarray(track.get_state()[0][:2], dtype=np.float32) np.testing.assert_allclose(history_center, state_center, atol=0.75) def test_sfsort_obb_state_history_uses_state_corners(): tracker = SFSORT() rgb = np.random.randint(255, size=(640, 640, 3), dtype=np.uint8) angles = np.linspace(0.0, 6.1, 20, dtype=np.float32) for angle in angles: det = np.array([[320, 240, 90, 40, angle, 0.95, 0]], dtype=np.float32) tracker.update(det, rgb) assert tracker.active_tracks history = np.asarray(tracker.active_tracks[0].history_observations, dtype=np.float32) assert history.shape[1] == 8 assert np.max(np.abs(history[-1] - history[0])) > 1.0 def test_sfsort_supports_obb_outputs(): tracker = SFSORT() rgb = np.random.randint(255, size=(640, 640, 3), dtype=np.uint8) det = np.array([[320, 240, 80, 40, 0.15, 0.95, 0]], dtype=np.float32) out1 = tracker.update(det, rgb) out2 = tracker.update(det, rgb) assert out1.shape == (1, 9) assert out2.shape == (1, 9) np.testing.assert_allclose(out2[0, :5], det[0, :5], atol=1e-2) def test_sfsort_obb_angle_update_uses_damping(): tracker = SFSORT(obb_theta_damping=0.8) rgb = np.random.randint(255, size=(640, 640, 3), dtype=np.uint8) det1 = np.array([[320, 240, 80, 40, 0.00, 0.95, 0]], dtype=np.float32) det2 = np.array([[320, 240, 80, 40, 0.40, 0.95, 0]], dtype=np.float32) out1 = tracker.update(det1, rgb) out2 = tracker.update(det2, rgb) assert out1.shape == (1, 9) assert out2.shape == (1, 9) assert int(out2[0, 5]) == int(out1[0, 5]) measured_delta = abs(float(det2[0, 4] - det1[0, 4])) tracked_delta = abs(float(out2[0, 4] - out1[0, 4])) assert 0.0 < tracked_delta < measured_delta def test_sfsort_obb_plotting_draws_tracks(): tracker = SFSORT() img = np.zeros((256, 256, 3), dtype=np.uint8) det = np.array([[128, 128, 60, 30, 0.3, 0.95, 0]], dtype=np.float32) tracker.update(det, img) rendered = tracker.plot_results(img.copy(), show_trajectories=True) assert np.any(rendered != 0) @pytest.mark.parametrize("tracker_type", ALL_TRACKERS) @pytest.mark.parametrize("dets", [None, np.array([])]) def test_tracker_with_no_detections(tracker_type, dets): tracker_conf = get_tracker_config(tracker_type) tracker = create_tracker( tracker_type=tracker_type, tracker_config=tracker_conf, reid_weights=WEIGHTS / "mobilenetv2_x1_4_dukemtmcreid.pt", device="cpu", half=False, per_class=False, ) rgb = np.random.randint(255, size=(640, 640, 3), dtype=np.uint8) embs = np.random.random(size=(0, 512)) output = tracker.update(dets, rgb, embs) assert output.size == 0, "Output should be empty when no detections are provided" @pytest.mark.parametrize("tracker_type", PER_CLASS_TRACKERS) def test_per_class_isolation(tracker_type): tracker = create_tracker( tracker_type, get_tracker_config(tracker_type), WEIGHTS / "mobilenetv2_x1_4_dukemtmcreid.pt", device="cpu", half=False, per_class=True, ) det = np.array( [ [100, 100, 150, 150, 0.9, 1], [102, 102, 152, 152, 0.9, 2], ] ) rgb = np.zeros((640, 640, 3), dtype=np.uint8) embs = np.random.rand(2, 512) out = tracker.update(det, rgb, embs) ids = set(out[:, 1].tolist()) assert len(ids) == 2, "Each class should get a separate track even if overlapping" @pytest.mark.parametrize("tracker_type", MOTION_N_APPEARANCE_TRACKING_NAMES) def test_emb_trackers_requires_embeddings(tracker_type): tracker_conf = get_tracker_config(tracker_type) tracker = create_tracker( tracker_type=tracker_type, tracker_config=tracker_conf, reid_weights=WEIGHTS / "mobilenetv2_x1_4_dukemtmcreid.pt", device="cpu", half=False, per_class=False, ) det = np.array([[10, 10, 20, 20, 0.7, 0]]) rgb = np.zeros((640, 640, 3), dtype=np.uint8) with pytest.raises(AssertionError): tracker.update(det, rgb, np.random.rand(2, 512)) @pytest.mark.parametrize("tracker_type", ALL_TRACKERS) def test_invalid_det_array_shape(tracker_type): tracker = create_tracker( tracker_type, get_tracker_config(tracker_type), WEIGHTS / "mobilenetv2_x1_4_dukemtmcreid.pt", device="cpu", half=False, per_class=False, ) img = np.zeros((640, 640, 3), dtype=np.uint8) embs = np.random.rand(2, 512) bad_det = np.random.rand(2, 5) with pytest.raises(AssertionError): tracker.update(bad_det, img, embs) # def test_get_tracker_config_invalid_name(): # """Requesting config for an unknown tracker should raise a KeyError.""" # with pytest.raises(KeyError): # get_tracker_config("not_a_tracker") @pytest.mark.parametrize("tracker_type", ALL_TRACKERS) def test_track_id_stable_over_frames(tracker_type): """ If the same detection appears in successive frames, the tracker should assign the same track ID. """ cfg = get_tracker_config(tracker_type) tracker = create_tracker( tracker_type=tracker_type, tracker_config=cfg, reid_weights=WEIGHTS / "mobilenetv2_x1_4_dukemtmcreid.pt", device="cpu", half=False, per_class=False, ) det = np.array([[50, 50, 100, 100, 0.95, 3]]) rgb = np.zeros((640, 640, 3), dtype=np.uint8) # choose embedding only if needed if tracker_type in MOTION_N_APPEARANCE_TRACKING_NAMES: embs = np.random.rand(1, 512) out1 = tracker.update(det, rgb, embs) out2 = tracker.update(det, rgb, embs) else: out1 = tracker.update(det, rgb) out2 = tracker.update(det, rgb) assert out1.shape == out2.shape == (1, 8), "Unexpected output shape" # track ID is at column 1 assert out1[0, 4] == out2[0, 4], "Track ID should remain the same across frames" def test_create_tracker_invalid_tracker_name(): """Creating a tracker with an unknown name should raise a ValueError.""" with pytest.raises(ValueError, match="Unknown tracker type: 'nonexistent_tracker'"): create_tracker( tracker_type="nonexistent_tracker", tracker_config=get_tracker_config("botsort"), reid_weights=WEIGHTS / "mobilenetv2_x1_4_dukemtmcreid.pt", device="cpu", half=False, per_class=False, ) ================================================ FILE: tests/unit/test_visualization.py ================================================ import unittest import numpy as np import cv2 from unittest.mock import MagicMock, patch from boxmot.utils.visualization import VisualizationMixin class MockTracker(VisualizationMixin): def __init__(self): self.is_obb = False self.target_id = None self.removed_display_frames = 10 self._plot_frame_idx = 0 self._removed_first_seen = {} self._removed_expired = set() self.removed_tombstone_horizon = 100 self.active_tracks = [] self.lost_stracks = [] self.removed_stracks = [] class MockTrack: def __init__(self, id, history, state="confirmed", conf=0.9, cls=0): self.id = id self.history_observations = history self.state = state self.conf = conf self.cls = cls self.time_since_update = 0 self.is_activated = True self.hits = 10 self.xyxy = history[-1] if history else [0, 0, 10, 10] def get_state(self): return np.array(self.xyxy) class TestVisualization(unittest.TestCase): def setUp(self): self.tracker = MockTracker() self.img = np.zeros((100, 100, 3), dtype=np.uint8) def test_plot_results_regular(self): # Setup active track track = MockTrack(1, [[10, 10, 50, 50]]) self.tracker.active_tracks = [track] # Plot without show_lost res = self.tracker.plot_results( self.img.copy(), show_trajectories=True, show_lost=False ) # Verify something was drawn (image not all zeros) # The box is at 10,10 to 50,50, so check a pixel in that region # Note: exact pixel values depend on color hashing, but shouldn't be 0 self.assertTrue(np.any(res[10:50, 10:50] != 0), "Should draw active track") def test_plot_results_show_lost(self): # Setup lost track lost_track = MockTrack(2, [[20, 20, 60, 60]], state="lost") # Mock state inference for lost track lost_track.time_since_update = 5 self.tracker.lost_stracks = [lost_track] # Plot with show_lost=True res = self.tracker.plot_results( self.img.copy(), show_trajectories=True, show_lost=True ) # Verify lost track is drawn self.assertTrue(np.any(res[20:60, 20:60] != 0), "Should draw lost track when show_lost=True") def test_plot_results_hide_lost(self): # Setup lost track lost_track = MockTrack(2, [[20, 20, 60, 60]], state="lost") lost_track.time_since_update = 5 self.tracker.lost_stracks = [lost_track] # Plot with show_lost=False res = self.tracker.plot_results( self.img.copy(), show_trajectories=True, show_lost=False ) # Verify lost track is NOT drawn (image should remain all zeros) self.assertTrue(np.all(res == 0), "Should not draw lost track when show_lost=False") def test_dashed_rect(self): # Test internal dashed rect drawing img = np.zeros((100, 100, 3), dtype=np.uint8) color = (255, 255, 255) self.tracker._draw_dashed_rect(img, 10, 10, 90, 90, color, 2) # Check corners are drawn self.assertTrue(np.any(img[10, 10:20] != 0), "Top-left corner should be drawn") # Check gaps exist (approximate check based on dash/gap size) # dash=10, gap=10. So 10-20 drawn, 20-30 gap. self.assertTrue(np.all(img[10, 22:28] == 0), "Gap should be present in dashed line") if __name__ == '__main__': unittest.main() ================================================ FILE: tests/unit/test_yolox_batch.py ================================================ import pytest from boxmot.detectors import get_yolo_inferer def test_get_yolo_inferer_routes_yolox_model(): inferer_cls = get_yolo_inferer("yolox_s.pt") assert inferer_cls.__name__ == "YoloXStrategy" def test_get_yolo_inferer_returns_callable_strategy_for_yolox(): inferer_cls = get_yolo_inferer("yolox_n.pt") assert callable(inferer_cls) @pytest.mark.parametrize("name", ["yolox_s.pt", "yolox_x_MOT17_ablation.pt"]) def test_get_yolo_inferer_accepts_common_yolox_names(name): inferer_cls = get_yolo_inferer(name) assert inferer_cls.__name__ == "YoloXStrategy"