diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml deleted file mode 100644 index 9109ef04..00000000 --- a/.github/workflows/cmake.yml +++ /dev/null @@ -1,53 +0,0 @@ -name: CMake - -on: - push: - branches: [ "cyrus2d" ] - pull_request: - branches: [ "cyrus2d" ] - -env: - # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) - BUILD_TYPE: Release - -jobs: - build: - # The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac. - # You can convert this to a matrix build if you need cross-platform coverage. - # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - name: Install Dep - run: | - sudo apt update - sudo apt install build-essential libboost-all-dev autoconf automake libtool - sudo apt install libeigen3-dev - - name: Install LibRCSC - run: | - git clone https://github.com/helios-base/librcsc.git - cd librcsc - git checkout 19175f339dcb5c3f61b56a8c1bff5345109f22ef - mkdir build - cd build - cmake .. - make -j8 - make install - - name: Install CppDnn - run: | - git clone https://github.com/Cyrus2D/CppDNN.git - cd CppDNN - mkdir build - cd build - cmake .. - make - sudo make install - - name: Configure CMake - # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. - # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type - run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} - - - name: Build - # Build your program with the given configuration - run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 00000000..e954b41e --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,76 @@ +name: Build and Release + +on: + workflow_dispatch: + # push: + # branches: + # - cyrus2d + +jobs: + build: + runs-on: ubuntu-20.04 + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Set up dependencies + run: | + sudo apt update + sudo apt install -y build-essential libboost-all-dev cmake + + - name: Install librcsc + run: | + git clone https://github.com/helios-base/librcsc.git + cd librcsc + git checkout 19175f339dcb5c3f61b56a8c1bff5345109f22ef + mkdir build + cd build + cmake .. + make + sudo make install + + - name: Build project + run: | + mkdir build + cd build + cmake .. + make + cd bin + mkdir lib + cp ~/local/lib/libr* lib/ + + - name: Create zip file + run: | + cd build + mv bin cyrus + chmod 777 cyrus/* -R + zip -r cyrus.zip cyrus + mv cyrus.zip ../ + - name: Get latest tag + id: get_latest_tag + uses: actions/github-script@v6 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + const latestTag = await github.rest.repos.listTags({ + owner: context.repo.owner, + repo: context.repo.repo, + per_page: 1, + page: 1 + }); + const latestTagName = latestTag.data.length > 0 ? latestTag.data[0].name : "0"; + const newTag = (parseInt(latestTagName, 10) + 1).toString(); + core.setOutput('new_tag', newTag); + # ------------------------------------------- Release + - name: Create Release + id: create_release + uses: ncipollo/release-action@v1 + with: + artifacts: "${{ github.workspace }}/cyrus.zip" + token: ${{ secrets.GITHUB_TOKEN }} + tag: ${{ steps.get_latest_tag.outputs.new_tag }} + release_name: ${{ steps.get_latest_tag.outputs.new_tag }} + release_body: "FOXSY CYRUS BASE" + draft: false + prerelease: false diff --git a/.gitignore b/.gitignore index effe8e59..d4ab35cb 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,37 @@ sample_player sample_trainer start.sh train.sh - +build/ +cmake-build-debug +.idea/* +*.o +*.Po +compile +config.guess +config.sub +depcomp +install-sh +missing +src/Makefile +src/Makefile.in +autom4te.cache/ +config.log +config.status +.deps/ +.dirstamp +vscode/ +stamp-h1 +COPYING +configure +aclocal.m4 +src/player/Makefile.in +src/player/Makefile +src/trainer/Makefile +src/trainer/Makefile.in +src/coach/Makefile +src/coach/Makefile.in +Makefile.in +Makefile +INSTALL +config.h +config.h.in diff --git a/CMakeLists.txt b/CMakeLists.txt index b184de4d..cf44d218 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,6 +9,7 @@ endif() # compliler options set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED True) +set(CMAKE_CXX_EXTENSIONS OFF) if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "Release" CACHE STRING "" FORCE) diff --git a/README.md b/README.md index 2c3ea3dc..23d572b1 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Cyrus2D Base +a# Cyrus2D Base [![GitHub license](https://img.shields.io/github/license/helios-base/helios-base)](https://github.com/helios-base/helios-base/blob/master/LISENCE) Cyrus2D-base is a sample team for the RoboCup Soccer 2D Simulator. @@ -6,6 +6,8 @@ This base is a Helios base Fork. We merged the newest version of Helios base(Agent2D) with the Gliders2D base V2.6 together, After that we applied several features of Cyrus2021, the champion of RoboCup 2021 in Soccer Simulation 2D league to improve the performance and capabilities of this base. +This version of Cyrus2D Base is implemented for Foxsy AI project. + ![The evolution of Helios2D, Glider2D and Cyrus2D base codes](https://github.com/Cyrus2D/Cyrus2DBase/blob/cyrus2d/cyrus-base.png) All programs can work with rcssserver-18. @@ -15,61 +17,157 @@ All programs can work with rcssserver-18. ## Quick Start -The latest Cyrus2D-base depends on the following libraries: - - Boost 1.38 or later https://www.boost.org/ - - The latest helios librcsc https://github.com/helios-base/librcsc +Download latest version "cyrus.zip" from https://github.com/Cyrus2D/FoxsyCyrus2DBase/releases -In the case of Ubuntu 16.04 or later, execute the following commands for installing a basic development environment: -``` -sudo apt update -sudo apt install build-essential libboost-all-dev cmake -``` -And, install librcsc (compatible with [librcsc-master-4c45970](https://github.com/helios-base/librcsc/tree/19175f339dcb5c3f61b56a8c1bff5345109f22ef)): -``` -git clone https://github.com/helios-base/librcsc.git -git checkout 19175f339dcb5c3f61b56a8c1bff5345109f22ef -cd librcsc -mkdir build -cd build -cmake .. -make -make install -``` -After that, install Eigen3: https://eigen.tuxfamily.org/dox/index.html -``` -sudo apt install libeigen3-dev -``` -Then, install CppDNN: -``` -git clone https://github.com/Cyrus2D/CppDNN.git -cd CppDNN -mkdir build -cd build -cmake .. -make -sudo make install -``` -To build binaries, execute commands from the root of source directory: -``` -mkdir build -cd build -cmake .. -make -``` +Extract "cyrus.zip" -To start the cyrud2d team, invoke the start script in `bin` directory. +Run "start.sh" with the following parameters: +- -t: team name +- -p: player port number (coach port number = player port number + 2) +- -c: config path (path should be directory and in the directory config.json should be exist) +- -j: json config +- -e: encoding type (default=json, [json, temp] (in temp encoding, we do not have space, +- - , -> #c# + - " -> #qq# + - ' -> #q# + +### Examples + +```bash +./start.sh -t Test -p 6000 -c ~/Data/1 + +./start.sh -t Test -p 6000 -c ~/Data/1/f.config + +./start.sh -t Test -p 6000 -c ~/Data/1/ + +./start.sh -t Test -p 6000 -j '{"version":1, "formation_name":"433"}' + +./start.sh -t Test -p 6000 -j '{"version":1, "formation_name":"433"}' -e json + +./start.sh -t Test -p 6000 -j #q#{#qq#version#qq#:1#c##qq#formation_name#qq#:#qq#433#qq#}#q# -e temp ``` -cd build/bin -./start.sh + +### Json Settings +- `formation_name`: name of formation (default: "433") options "4231-3133", "433-343l", "433", "442-334", "442-424", "523-5232" +- `winner_formation_name`: name of formation when our score is more than opponent score (default: "433") options "4231-3133", "433-343l", "433", "442-334", "442-424", "523-5232" +- `loser_formation_name`: name of formation when opponent score is more than our score (default: "433") options "4231-3133", "433-343l", "433", "442-334", "442-424", "523-5232" +- `offensive_kick_planner_use_direct_pass`: use direct pass in offensive kick planner (default: true) +- `offensive_kick_planner_use_lead_pass`: use lead pass in offensive kick planner (default: true) +- `offensive_kick_planner_use_through_pass`: use through pass in offensive kick planner (default: true) +- `offensive_kick_planner_use_cross_pass`: use cross pass in offensive kick planner (default: true) +- `offensive_kick_planner_use_short_dribble`: use short dribble in offensive kick planner (default: true) +- `offensive_kick_planner_use_long_dribble`: use long dribble in offensive kick planner (default: true) +- `offensive_kick_planner_use_sample_shot`: use sample shot in offensive kick planner (default: true) [to search more than 1 layer] +- `offensive_kick_planner_use_sample_pass`: use sample pass in offensive kick planner (default: true) [to search more than 1 layer] +- `offensive_kick_planner_use_sample_dribble`: use sample dribble in offensive kick planner (default: true) [to search more than 1 layer] +- `moving_save_energy`: save energy level (default: 60) [0 to 100] +- `pressing` : 0 or 1 - 0 means no pressing and 1 means pressing +- `offside_trap`: use offside trap (default: true) + +### Json Form Schema +```json +{ + "title": "CYRUS Settings", + "description": "A simple form example.", + "type": "object", + "required": [ + "firstName", + "lastName" + ], + "properties": { + "formation_name": { + "type": "string", + "enum": [ + "433", + "442", + "523" + ] + }, + "winner_formation_name": { + "type": "string", + "enum": [ + "433", + "442", + "523" + ] + }, + "loser_formation_name": { + "type": "string", + "enum": [ + "433", + "442", + "523" + ] + }, + "offensive_kick_planner_use_direct_pass": { + "type": "boolean", + "default": true + }, + "offensive_kick_planner_use_lead_pass": { + "type": "boolean", + "default": true + }, + "offensive_kick_planner_use_through_pass": { + "type": "boolean", + "default": true + }, + "offensive_kick_planner_use_cross_pass": { + "type": "boolean", + "default": true + }, + "offensive_kick_planner_use_short_dribble": { + "type": "boolean", + "default": true + }, + "offensive_kick_planner_use_long_dribble": { + "type": "boolean", + "default": true + }, + "offensive_kick_planner_use_sample_shot": { + "type": "boolean", + "default": true + }, + "offensive_kick_planner_use_sample_pass": { + "type": "boolean", + "default": true + }, + "offensive_kick_planner_use_sample_dribble": { + "type": "boolean", + "default": true + }, + "moving_save_energy": { + "type": "number", + "maximum": 100, + "minimum": 0, + "default": 60 + }, + "pressing": { + "type": "number", + "maximum": 1, + "minimum": 0, + "default": 0 + }, + "offside_trap": { + "type": "number", + "maximum" : 1, + "minimum" : 0, + "default" : 0 + }, + "aggressiveness": { + "type": "number", + "maximum" : 1, + "minimum" : 0, + "default" : 0 + } + } +} ``` -## Change Logo -- Create a logo with the size of 256x64 pixels and save it as a png file. width: 256px, height: 64px -- Decrease number of colors to 20 (https://onlinepngtools.com/decrease-png-color-count) -- Convert the png file to xpm (https://www.onlineconvert.com/png-to-xpm) -- Open the xpm file and change the name of char * variable to "team_logo_xpm". The second line should be "static const char *team_logo_xpm[] = {" -- Copy content of the file and paste it in src/team_logo_xpm +To test you can use the below links: +- (rjsf-team.github.io)[https://rjsf-team.github.io/react-jsonschema-form/] +- (brutusin.org)[http://brutusin.org/json-forms/] + ## References The paper about Cyrus2D Base: @@ -87,20 +185,3 @@ Berlin, 2014. http://dx.doi.org/10.1007/978-3-662-44468-9_46 The paper about Gliders2D Base: - M. Prokopenko, P. Wang, Fractals2019: Combinatorial Optimisation with Dynamic Constraint Annealing, RoboCup 2019: Robot World Cup XXIII, 616-630 (Champion paper), Springer-Verlag, 2019; also: arXiv:1909.01788, 2019. - M. Prokopenko, P. Wang, Gliders2d: Source Code Base for RoboCup 2D Soccer Simulation League, RoboCup 2019: Robot World Cup XXIII, 418-428, Springer-Verlag, 2019; also: arXiv:1812.10202, 2018. - -Related works: -- going to be compeleted soon. - -- Hidehisa Akiyama, Tomoharu Nakashima, HELIOS Base: An Open Source Package for the RoboCup Soccer 2D Simulation, In Sven Behnke, Manuela Veloso, Arnoud Visser, and Rong Xiong editors, RoboCup2013: Robot World XVII, Lecture Notes in Artificial Intelligence, Springer Verlag, Berlin, 2014. http://dx.doi.org/10.1007/978-3-662-44468-9_46 -- Hidehisa Akiyama, Daisuke Katagami, Katsumi Nitta, Team Formation Construction Using a GUI Tool in the RoboCup Soccer Simulation, SCIS & ISIS, 2006, Volume 2006, SCIS & ISIS 2006, Session ID TH-D2-5, Pages 80-85, Released September 12, 2008, https://doi.org/10.14864/softscis.2006.0.80.0 -- Hidehisa Akiyama, Daisuke Katagami, Katsumi Nitta, Training of Agent Positioning using Human's Instruction, Journal of Advanced Computational Intelligence and Intelligent Informatics, Vol. 11 No.8, pp.998--1006, 2007-10-20. https://doi.org/10.20965/jaciii.2007.p0998 -- 秋山 英久, 野田 五十樹, エージェント配置問題における三角形分割を利用した近似モデル, 人工知能学会論文誌, 2008, 23 巻, 4 号, p. 255-267, 公開日 2008/04/24, Online ISSN 1346-8030, Print ISSN 1346-0714, https://doi.org/10.1527/tjsai.23.255 -- Hidehisa Akiyama, Itsuki Noda, Multi-Agent Positioning Mechanism in the Dynamic Environment, In Ubbo Visser, Fernando Ribeiro, Takeshi Ohashi, and Frank Dellaert, editors, RoboCup 2007: Robot Soccer World Cup XI Lecture Notes in Artificial Intelligence, vol. 5001, Springer, pp.377-384, July 2008. https://doi.org/10.1007/978-3-540-68847-1_38 -- Hidehisa Akiyama, Tomoharu Nakashima, Shigeto Aramaki, Online Cooperative Behavior Planning using a Tree Search Method in the RoboCup Soccer Simulation, Proc. of 4th IEEE International Conference on Intelligent Networking and Collaborative Systems (INCoS-2012), 2012 Sep. https://doi.org/10.1109/iNCoS.2012.83 -- Hidehisa Akiyama, Tomoharu Nakashima, HELIOS2012: RoboCup 2012 Soccer Simulation 2D League Champion, RoboCup 2012: Robot Soccer World Cup XVI Lecture Notes in Computer Science Volume 7500, pp.13-19, June 2013. http://dx.doi.org/10.1007/978-3-642-39250-4_2 -- Takuya Fukushima, Tomoharu Nakashima, Hidehisa Akiyama, Mimicking an Expert Team through the Learning of Evaluation Functions from Action Sequences, RoboCup 2018: Robot World Cup XXII Lecture Notes in Computer Science, Vol. 11374, Springer, Cham, pp 170-180, 04 August 2019 https://doi.org/10.1007/978-3-030-27544-0_14 -- Hidehisa Akiyama, Tomoharu Nakashima, Takuya Fukushima, Jiarun Zhong, Yudai Suzuki, An Ohori, HELIOS2018: RoboCup 2018 Soccer Simulation 2D League Champion, RoboCup 2018: Robot World Cup XXII, Lecture Notes in Computer Science, Vol.11374, Springer, Cham, pp.450-461, 04 August 2019. https://doi.org/10.1007/978-3-030-27544-0_37 -- 福島卓弥, 中島智晴, 秋山英久, RoboCupサッカーにおけるニューラルネットワークを用いた評価関数モデリング, 電気学会論文誌C(電子・情報・システム部門誌), 2019, 139 巻, 10 号, pp. 1128-1133, 2019-10-01 https://doi.org/10.1541/ieejeiss.139.1128 -- 秋山 英久, 中島 智晴, 五十嵐 治一, RoboCup サッカーシミュレーションにおける局面評価の表現法と学習法, 知能と情報, 2020, 32 巻, 2 号, p. 691-703, 公開日 2020/04/15, Online ISSN 1881-7203, Print ISSN 1347-7986, https://doi.org/10.3156/jsoft.32.2_691 -- Takuya Fukushima, Tomoharu Nakashima, Hidehisa Akiyama, Evaluation-function modeling with multi-layered perceptron for RoboCup soccer 2D simulation, Artificial Life and Robotics, Volume 25, issue 3, pp.440-445, 2020-04-30. https://doi.org/10.1007/s10015-020-00602-w - diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 49538a00..ecc55622 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -14,16 +14,6 @@ file( FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE ) -configure_file( - ${PROJECT_SOURCE_DIR}/src/keepaway.sh.in - ${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/keepaway.sh - @ONLY - ) -file( - COPY ${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/keepaway.sh - DESTINATION ${PROJECT_BINARY_DIR}/bin - FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE - ) configure_file( ${PROJECT_SOURCE_DIR}/src/train.sh.in @@ -38,7 +28,7 @@ file( # copy other files to the binary direcotry file(COPY - formations-dt formations-keeper formations-taker player.conf coach.conf start-debug.sh start-offline.sh unmark_dnn_weights.txt + formations player.conf coach.conf start-debug.sh start-offline.sh # DESTINATION ${PROJECT_BINARY_DIR}/src/ DESTINATION ${PROJECT_BINARY_DIR}/bin ) diff --git a/src/formations-dt/before-kick-off.conf b/src/formations-dt/before-kick-off.conf deleted file mode 100644 index 61e9b215..00000000 --- a/src/formations-dt/before-kick-off.conf +++ /dev/null @@ -1,99 +0,0 @@ -{ - "version" : "20220408-135243", - "method" : "Static", - "role" : [ - { - "number" : 1, - "name" : "Goalie", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 2, - "name" : "CenterBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 3, - "name" : "CenterBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 4, - "name" : "SideBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 5, - "name" : "SideBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 6, - "name" : "OffensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 7, - "name" : "DefensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 8, - "name" : "DefensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 9, - "name" : "SideHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 10, - "name" : "SideHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 11, - "name" : "CenterForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - } - ], - "data" : [ - { - "index" : 0, - "ball" : { "x" : 0.00, "y" : 0.00 }, - "1" : { "x" : -49.00, "y" : 0.00 }, - "2" : { "x" : -12.50, "y" : -5.00 }, - "3" : { "x" : -12.50, "y" : 5.00 }, - "4" : { "x" : -11.60, "y" : -15.80 }, - "5" : { "x" : -11.60, "y" : 15.80 }, - "6" : { "x" : -6.70, "y" : -1.90 }, - "7" : { "x" : -10.00, "y" : -10.80 }, - "8" : { "x" : -10.00, "y" : 10.80 }, - "9" : { "x" : -0.50, "y" : -23.80 }, - "10" : { "x" : -0.50, "y" : 23.80 }, - "11" : { "x" : -0.39, "y" : 0.00 } } - ] -} diff --git a/src/formations-dt/goal-kick-opp.conf b/src/formations-dt/goal-kick-opp.conf deleted file mode 100644 index 0483b43c..00000000 --- a/src/formations-dt/goal-kick-opp.conf +++ /dev/null @@ -1,99 +0,0 @@ -{ - "version" : "20220408-143912", - "method" : "Static", - "role" : [ - { - "number" : 1, - "name" : "Goalie", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 2, - "name" : "CenterBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 3, - "name" : "CenterBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 4, - "name" : "SideBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 5, - "name" : "SideBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 6, - "name" : "DefensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 7, - "name" : "OffensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 8, - "name" : "OffensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 9, - "name" : "SideForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 10, - "name" : "SideForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 11, - "name" : "CenterForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - } - ], - "data" : [ - { - "index" : 0, - "ball" : { "x" : 0.00, "y" : 0.00 }, - "1" : { "x" : -49.00, "y" : 0.00 }, - "2" : { "x" : 0.04, "y" : -10.00 }, - "3" : { "x" : 0.04, "y" : 10.00 }, - "4" : { "x" : 0.04, "y" : -20.00 }, - "5" : { "x" : 0.04, "y" : 20.00 }, - "6" : { "x" : 10.00, "y" : 0.00 }, - "7" : { "x" : 15.00, "y" : -12.00 }, - "8" : { "x" : 15.00, "y" : 12.00 }, - "9" : { "x" : 31.00, "y" : -17.50 }, - "10" : { "x" : 31.00, "y" : 17.50 }, - "11" : { "x" : 31.00, "y" : 0.00 } } - ] -} diff --git a/src/formations-dt/goal-kick-our.conf b/src/formations-dt/goal-kick-our.conf deleted file mode 100644 index 763b2d56..00000000 --- a/src/formations-dt/goal-kick-our.conf +++ /dev/null @@ -1,99 +0,0 @@ -{ - "version" : "20220408-143921", - "method" : "Static", - "role" : [ - { - "number" : 1, - "name" : "Goalie", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 2, - "name" : "CenterBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 3, - "name" : "CenterBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 4, - "name" : "SideBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 5, - "name" : "SideBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 6, - "name" : "DefensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 7, - "name" : "OffensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 8, - "name" : "OffensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 9, - "name" : "SideForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 10, - "name" : "SideForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 11, - "name" : "CenterForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - } - ], - "data" : [ - { - "index" : 0, - "ball" : { "x" : 0.00, "y" : 0.00 }, - "1" : { "x" : -49.00, "y" : 0.00 }, - "2" : { "x" : -44.50, "y" : -4.00 }, - "3" : { "x" : -44.50, "y" : 4.00 }, - "4" : { "x" : -42.00, "y" : -24.00 }, - "5" : { "x" : -42.00, "y" : 24.00 }, - "6" : { "x" : -32.00, "y" : 0.00 }, - "7" : { "x" : -32.50, "y" : -13.00 }, - "8" : { "x" : -32.50, "y" : 13.00 }, - "9" : { "x" : -13.00, "y" : -27.00 }, - "10" : { "x" : -13.00, "y" : 27.00 }, - "11" : { "x" : -13.00, "y" : 0.00 } } - ] -} diff --git a/src/formations-dt/goalie-catch-opp.conf b/src/formations-dt/goalie-catch-opp.conf deleted file mode 100644 index 2728b8c2..00000000 --- a/src/formations-dt/goalie-catch-opp.conf +++ /dev/null @@ -1,99 +0,0 @@ -{ - "version" : "20220408-135303", - "method" : "Static", - "role" : [ - { - "number" : 1, - "name" : "Goalie", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 2, - "name" : "CenterBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 3, - "name" : "CenterBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 4, - "name" : "SideBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 5, - "name" : "SideBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 6, - "name" : "DefensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 7, - "name" : "OffensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 8, - "name" : "OffensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 9, - "name" : "SideForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 10, - "name" : "SideForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 11, - "name" : "CenterForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - } - ], - "data" : [ - { - "index" : 0, - "ball" : { "x" : 0.00, "y" : 0.00 }, - "1" : { "x" : -49.00, "y" : 0.00 }, - "2" : { "x" : 0.04, "y" : -10.00 }, - "3" : { "x" : 0.04, "y" : 10.00 }, - "4" : { "x" : 0.04, "y" : -20.00 }, - "5" : { "x" : 0.04, "y" : 20.00 }, - "6" : { "x" : 10.00, "y" : 0.00 }, - "7" : { "x" : 10.00, "y" : -12.00 }, - "8" : { "x" : 10.00, "y" : 12.00 }, - "9" : { "x" : 20.00, "y" : -20.00 }, - "10" : { "x" : 20.00, "y" : 20.00 }, - "11" : { "x" : 20.00, "y" : 0.00 } } - ] -} diff --git a/src/formations-dt/goalie-catch-our.conf b/src/formations-dt/goalie-catch-our.conf deleted file mode 100644 index ca4b04d8..00000000 --- a/src/formations-dt/goalie-catch-our.conf +++ /dev/null @@ -1,99 +0,0 @@ -{ - "version" : "20220408-135308", - "method" : "Static", - "role" : [ - { - "number" : 1, - "name" : "Goalie", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 2, - "name" : "CenterBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 3, - "name" : "CenterBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 4, - "name" : "SideBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 5, - "name" : "SideBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 6, - "name" : "DefensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 7, - "name" : "OffensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 8, - "name" : "OffensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 9, - "name" : "SideForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 10, - "name" : "SideForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 11, - "name" : "CenterForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - } - ], - "data" : [ - { - "index" : 0, - "ball" : { "x" : 0.00, "y" : 0.00 }, - "1" : { "x" : -49.00, "y" : 0.00 }, - "2" : { "x" : -29.50, "y" : -7.70 }, - "3" : { "x" : -29.50, "y" : 7.70 }, - "4" : { "x" : -29.50, "y" : -25.50 }, - "5" : { "x" : -29.50, "y" : 25.50 }, - "6" : { "x" : -29.00, "y" : 0.00 }, - "7" : { "x" : -15.50, "y" : -12.00 }, - "8" : { "x" : -15.50, "y" : 12.00 }, - "9" : { "x" : -15.00, "y" : -27.00 }, - "10" : { "x" : -15.00, "y" : 27.00 }, - "11" : { "x" : -8.00, "y" : 0.00 } } - ] -} diff --git a/src/formations-dt/goalie-formation.conf b/src/formations-dt/goalie-formation.conf deleted file mode 100644 index 10be19af..00000000 --- a/src/formations-dt/goalie-formation.conf +++ /dev/null @@ -1,2227 +0,0 @@ -{ - "version": "20220408-134548", - "method": "DelaunayTriangulation", - "role": [ - { - "number": 1, - "name": "Goalie", - "type": "G", - "side": "C", - "pair": 0 - }, - { - "number": 2, - "name": "CenterBack", - "type": "DF", - "side": "L", - "pair": 3 - }, - { - "number": 3, - "name": "CenterBack", - "type": "DF", - "side": "R", - "pair": 2 - }, - { - "number": 4, - "name": "SideBack", - "type": "DF", - "side": "L", - "pair": 5 - }, - { - "number": 5, - "name": "SideBack", - "type": "DF", - "side": "R", - "pair": 4 - }, - { - "number": 6, - "name": "DefensiveHalf", - "type": "FW", - "side": "C", - "pair": 0 - }, - { - "number": 7, - "name": "OffensiveHalf", - "type": "MF", - "side": "L", - "pair": 8 - }, - { - "number": 8, - "name": "OffensiveHalf", - "type": "MF", - "side": "R", - "pair": 7 - }, - { - "number": 9, - "name": "SideForward", - "type": "FW", - "side": "L", - "pair": 10 - }, - { - "number": 10, - "name": "SideForward", - "type": "FW", - "side": "R", - "pair": 9 - }, - { - "number": 11, - "name": "CenterForward", - "type": "FW", - "side": "C", - "pair": 0 - } - ], - "data": [ - { - "index": 0, - "ball": { - "x": -26.95, - "y": -31.61 - }, - "1": { - "x": -46.5, - "y": -3.0 - }, - "2": { - "x": -30.65, - "y": -16.82 - }, - "3": { - "x": -30.77, - "y": -6.44 - }, - "4": { - "x": -30.05, - "y": -29.1 - }, - "5": { - "x": -30.29, - "y": 3.7 - }, - "6": { - "x": -26.24, - "y": -14.19 - }, - "7": { - "x": -21.83, - "y": -26.72 - }, - "8": { - "x": -15.46, - "y": 2.33 - }, - "9": { - "x": -7.87, - "y": -31.01 - }, - "10": { - "x": -5.82, - "y": 19.94 - }, - "11": { - "x": -7.39, - "y": -15.15 - } - }, - { - "index": 1, - "ball": { - "x": -26.95, - "y": 31.61 - }, - "1": { - "x": -46.5, - "y": 3.0 - }, - "2": { - "x": -30.77, - "y": 6.44 - }, - "3": { - "x": -30.65, - "y": 16.82 - }, - "4": { - "x": -30.29, - "y": -3.7 - }, - "5": { - "x": -30.05, - "y": 29.1 - }, - "6": { - "x": -26.24, - "y": 14.19 - }, - "7": { - "x": -15.46, - "y": -2.33 - }, - "8": { - "x": -21.83, - "y": 26.72 - }, - "9": { - "x": -5.82, - "y": -19.94 - }, - "10": { - "x": -7.87, - "y": 31.01 - }, - "11": { - "x": -7.39, - "y": 15.15 - } - }, - { - "index": 2, - "ball": { - "x": -41.78, - "y": 0.0 - }, - "1": { - "x": -46.5, - "y": 0.0 - }, - "2": { - "x": -47.07, - "y": -2.61 - }, - "3": { - "x": -47.42, - "y": 2.25 - }, - "4": { - "x": -48.96, - "y": -5.34 - }, - "5": { - "x": -49.2, - "y": 5.1 - }, - "6": { - "x": -44.1, - "y": 0.12 - }, - "7": { - "x": -39.5, - "y": -6.0 - }, - "8": { - "x": -39.5, - "y": 6.0 - }, - "9": { - "x": -24.75, - "y": -22.0 - }, - "10": { - "x": -24.74, - "y": 22.0 - }, - "11": { - "x": -18.5, - "y": 0.0 - } - }, - { - "index": 3, - "ball": { - "x": -36.02, - "y": -35.0 - }, - "1": { - "x": -46.5, - "y": -3.0 - }, - "2": { - "x": -36.61, - "y": -15.15 - }, - "3": { - "x": -36.26, - "y": -6.68 - }, - "4": { - "x": -36.14, - "y": -28.15 - }, - "5": { - "x": -34.6, - "y": 4.3 - }, - "6": { - "x": -31.61, - "y": -14.07 - }, - "7": { - "x": -26.72, - "y": -28.86 - }, - "8": { - "x": -20.16, - "y": 0.6 - }, - "9": { - "x": -10.23, - "y": -30.77 - }, - "10": { - "x": -7.44, - "y": 19.44 - }, - "11": { - "x": -7.62, - "y": -11.95 - } - }, - { - "index": 4, - "ball": { - "x": -36.02, - "y": 35.0 - }, - "1": { - "x": -46.5, - "y": 3.0 - }, - "2": { - "x": -36.26, - "y": 6.68 - }, - "3": { - "x": -36.61, - "y": 15.15 - }, - "4": { - "x": -34.6, - "y": -4.3 - }, - "5": { - "x": -36.14, - "y": 28.15 - }, - "6": { - "x": -31.61, - "y": 14.07 - }, - "7": { - "x": -20.16, - "y": -0.6 - }, - "8": { - "x": -26.72, - "y": 28.86 - }, - "9": { - "x": -7.44, - "y": -19.44 - }, - "10": { - "x": -10.23, - "y": 30.77 - }, - "11": { - "x": -7.62, - "y": 11.95 - } - }, - { - "index": 5, - "ball": { - "x": -36.04, - "y": -9.96 - }, - "1": { - "x": -46.5, - "y": -3.0 - }, - "2": { - "x": -42.92, - "y": -5.42 - }, - "3": { - "x": -39.7, - "y": -0.44 - }, - "4": { - "x": -41.75, - "y": -11.87 - }, - "5": { - "x": -41.27, - "y": 5.82 - }, - "6": { - "x": -35.75, - "y": -4.69 - }, - "7": { - "x": -32.28, - "y": -16.19 - }, - "8": { - "x": -27.62, - "y": 9.02 - }, - "9": { - "x": -18.0, - "y": -27.39 - }, - "10": { - "x": -18.0, - "y": 22.0 - }, - "11": { - "x": -14.78, - "y": -5.49 - } - }, - { - "index": 6, - "ball": { - "x": -36.04, - "y": 9.96 - }, - "1": { - "x": -46.5, - "y": 3.0 - }, - "2": { - "x": -39.7, - "y": 0.44 - }, - "3": { - "x": -42.92, - "y": 5.42 - }, - "4": { - "x": -41.27, - "y": -5.91 - }, - "5": { - "x": -41.75, - "y": 11.87 - }, - "6": { - "x": -35.75, - "y": 4.69 - }, - "7": { - "x": -27.62, - "y": -9.02 - }, - "8": { - "x": -32.28, - "y": 16.19 - }, - "9": { - "x": -18.0, - "y": -22.0 - }, - "10": { - "x": -18.0, - "y": 27.39 - }, - "11": { - "x": -14.78, - "y": 5.49 - } - }, - { - "index": 7, - "ball": { - "x": -43.39, - "y": -9.53 - }, - "1": { - "x": -47.85, - "y": -6.0 - }, - "2": { - "x": -46.77, - "y": -5.52 - }, - "3": { - "x": -43.97, - "y": -0.25 - }, - "4": { - "x": -45.77, - "y": -9.15 - }, - "5": { - "x": -47.4, - "y": 3.89 - }, - "6": { - "x": -40.77, - "y": -6.11 - }, - "7": { - "x": -38.79, - "y": -14.81 - }, - "8": { - "x": -38.46, - "y": 3.97 - }, - "9": { - "x": -23.3, - "y": -28.2 - }, - "10": { - "x": -23.2, - "y": 20.07 - }, - "11": { - "x": -23.56, - "y": -7.45 - } - }, - { - "index": 8, - "ball": { - "x": -43.39, - "y": 9.53 - }, - "1": { - "x": -47.85, - "y": 6.0 - }, - "2": { - "x": -43.97, - "y": 0.25 - }, - "3": { - "x": -46.77, - "y": 5.52 - }, - "4": { - "x": -47.4, - "y": -3.89 - }, - "5": { - "x": -45.77, - "y": 9.15 - }, - "6": { - "x": -40.77, - "y": 6.11 - }, - "7": { - "x": -38.46, - "y": -3.97 - }, - "8": { - "x": -38.79, - "y": 14.81 - }, - "9": { - "x": -23.2, - "y": -20.07 - }, - "10": { - "x": -23.3, - "y": 28.2 - }, - "11": { - "x": -23.56, - "y": 7.45 - } - }, - { - "index": 9, - "ball": { - "x": -54.5, - "y": -36.0 - }, - "1": { - "x": -51.0, - "y": -6.5 - }, - "2": { - "x": -47.04, - "y": -18.02 - }, - "3": { - "x": -45.42, - "y": -8.52 - }, - "4": { - "x": -49.09, - "y": -27.29 - }, - "5": { - "x": -43.37, - "y": 0.0 - }, - "6": { - "x": -42.18, - "y": -14.13 - }, - "7": { - "x": -42.72, - "y": -24.49 - }, - "8": { - "x": -27.43, - "y": 5.25 - }, - "9": { - "x": -19.32, - "y": -30.06 - }, - "10": { - "x": -12.88, - "y": 19.8 - }, - "11": { - "x": -14.91, - "y": -9.18 - } - }, - { - "index": 10, - "ball": { - "x": -54.5, - "y": 36.0 - }, - "1": { - "x": -51.0, - "y": 6.5 - }, - "2": { - "x": -45.42, - "y": 8.52 - }, - "3": { - "x": -47.04, - "y": 18.02 - }, - "4": { - "x": -43.37, - "y": -0.0 - }, - "5": { - "x": -49.09, - "y": 27.29 - }, - "6": { - "x": -42.18, - "y": 14.13 - }, - "7": { - "x": -27.43, - "y": -5.25 - }, - "8": { - "x": -42.72, - "y": 24.49 - }, - "9": { - "x": -12.88, - "y": -19.8 - }, - "10": { - "x": -19.32, - "y": 30.06 - }, - "11": { - "x": -14.91, - "y": 9.18 - } - }, - { - "index": 11, - "ball": { - "x": -54.5, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -47.0, - "y": -2.5 - }, - "3": { - "x": -47.0, - "y": 2.5 - }, - "4": { - "x": -47.0, - "y": -7.0 - }, - "5": { - "x": -47.0, - "y": 7.0 - }, - "6": { - "x": -43.0, - "y": 0.0 - }, - "7": { - "x": -35.0, - "y": -13.0 - }, - "8": { - "x": -35.0, - "y": 13.0 - }, - "9": { - "x": -24.75, - "y": -22.0 - }, - "10": { - "x": -24.75, - "y": 22.0 - }, - "11": { - "x": -23.0, - "y": 0.0 - } - }, - { - "index": 12, - "ball": { - "x": -54.5, - "y": -10.57 - }, - "1": { - "x": -51.0, - "y": -7.0 - }, - "2": { - "x": -48.41, - "y": -5.8 - }, - "3": { - "x": -48.76, - "y": -1.66 - }, - "4": { - "x": -51.01, - "y": -8.52 - }, - "5": { - "x": -48.65, - "y": 3.2 - }, - "6": { - "x": -44.37, - "y": -2.62 - }, - "7": { - "x": -43.73, - "y": -9.47 - }, - "8": { - "x": -39.9, - "y": 4.33 - }, - "9": { - "x": -24.81, - "y": -29.58 - }, - "10": { - "x": -18.82, - "y": 25.56 - }, - "11": { - "x": -23.0, - "y": -8.59 - } - }, - { - "index": 13, - "ball": { - "x": -54.5, - "y": 10.57 - }, - "1": { - "x": -51.0, - "y": 7.0 - }, - "2": { - "x": -48.76, - "y": 1.66 - }, - "3": { - "x": -48.41, - "y": 5.8 - }, - "4": { - "x": -48.65, - "y": -3.2 - }, - "5": { - "x": -51.01, - "y": 8.52 - }, - "6": { - "x": -44.37, - "y": 2.62 - }, - "7": { - "x": -39.9, - "y": -4.33 - }, - "8": { - "x": -43.73, - "y": 9.47 - }, - "9": { - "x": -18.82, - "y": -25.56 - }, - "10": { - "x": -24.81, - "y": 29.58 - }, - "11": { - "x": -23.0, - "y": 8.59 - } - }, - { - "index": 14, - "ball": { - "x": -42.1, - "y": -28.03 - }, - "1": { - "x": -49.0, - "y": -6.5 - }, - "2": { - "x": -42.94, - "y": -15.32 - }, - "3": { - "x": -41.86, - "y": -7.55 - }, - "4": { - "x": -43.37, - "y": -24.38 - }, - "5": { - "x": -39.49, - "y": 0.65 - }, - "6": { - "x": -38.73, - "y": -13.27 - }, - "7": { - "x": -32.56, - "y": -22.9 - }, - "8": { - "x": -25.09, - "y": 4.6 - }, - "9": { - "x": -15.62, - "y": -30.53 - }, - "10": { - "x": -12.76, - "y": 21.71 - }, - "11": { - "x": -13.95, - "y": -11.81 - } - }, - { - "index": 15, - "ball": { - "x": -42.1, - "y": 28.03 - }, - "1": { - "x": -49.0, - "y": 6.5 - }, - "2": { - "x": -41.86, - "y": 7.55 - }, - "3": { - "x": -42.94, - "y": 15.32 - }, - "4": { - "x": -39.49, - "y": -0.65 - }, - "5": { - "x": -43.37, - "y": 24.38 - }, - "6": { - "x": -38.73, - "y": 13.27 - }, - "7": { - "x": -25.09, - "y": -4.6 - }, - "8": { - "x": -32.56, - "y": 22.9 - }, - "9": { - "x": -12.76, - "y": -21.71 - }, - "10": { - "x": -15.62, - "y": 30.53 - }, - "11": { - "x": -13.95, - "y": 11.81 - } - }, - { - "index": 16, - "ball": { - "x": -48.97, - "y": -17.73 - }, - "1": { - "x": -50.0, - "y": -7.0 - }, - "2": { - "x": -47.08, - "y": -6.22 - }, - "3": { - "x": -44.08, - "y": -1.75 - }, - "4": { - "x": -47.77, - "y": -12.89 - }, - "5": { - "x": -47.07, - "y": 2.17 - }, - "6": { - "x": -44.09, - "y": -7.25 - }, - "7": { - "x": -43.12, - "y": -14.18 - }, - "8": { - "x": -37.99, - "y": 0.52 - }, - "9": { - "x": -30.17, - "y": -23.92 - }, - "10": { - "x": -20.89, - "y": 22.42 - }, - "11": { - "x": -21.75, - "y": -9.68 - } - }, - { - "index": 17, - "ball": { - "x": -48.97, - "y": 17.73 - }, - "1": { - "x": -50.0, - "y": 7.0 - }, - "2": { - "x": -44.08, - "y": 1.75 - }, - "3": { - "x": -47.08, - "y": 6.22 - }, - "4": { - "x": -47.07, - "y": -2.17 - }, - "5": { - "x": -47.77, - "y": 12.89 - }, - "6": { - "x": -44.09, - "y": 7.25 - }, - "7": { - "x": -37.99, - "y": -0.52 - }, - "8": { - "x": -43.12, - "y": 14.18 - }, - "9": { - "x": -20.89, - "y": -22.42 - }, - "10": { - "x": -30.17, - "y": 23.92 - }, - "11": { - "x": -21.75, - "y": 9.68 - } - }, - { - "index": 18, - "ball": { - "x": -22.08, - "y": 0.0 - }, - "1": { - "x": -46.5, - "y": -0.0 - }, - "2": { - "x": -25.43, - "y": -2.48 - }, - "3": { - "x": -25.34, - "y": 2.23 - }, - "4": { - "x": -26.2, - "y": -9.16 - }, - "5": { - "x": -25.77, - "y": 8.65 - }, - "6": { - "x": -20.42, - "y": 0.05 - }, - "7": { - "x": -15.86, - "y": -12.83 - }, - "8": { - "x": -15.25, - "y": 11.97 - }, - "9": { - "x": -6.18, - "y": -22.01 - }, - "10": { - "x": -5.43, - "y": 22.12 - }, - "11": { - "x": -3.02, - "y": -0.0 - } - }, - { - "index": 19, - "ball": { - "x": -31.0, - "y": 0.0 - }, - "1": { - "x": -46.5, - "y": -0.0 - }, - "2": { - "x": -36.73, - "y": -2.99 - }, - "3": { - "x": -36.66, - "y": 2.67 - }, - "4": { - "x": -36.2, - "y": -8.93 - }, - "5": { - "x": -36.12, - "y": 8.13 - }, - "6": { - "x": -30.47, - "y": 0.22 - }, - "7": { - "x": -28.84, - "y": -12.26 - }, - "8": { - "x": -27.85, - "y": 9.82 - }, - "9": { - "x": -18.03, - "y": -21.0 - }, - "10": { - "x": -18.93, - "y": 22.26 - }, - "11": { - "x": -11.02, - "y": -0.0 - } - }, - { - "index": 20, - "ball": { - "x": -48.35, - "y": -9.55 - }, - "1": { - "x": -50.0, - "y": -7.0 - }, - "2": { - "x": -48.12, - "y": -6.51 - }, - "3": { - "x": -46.32, - "y": -2.57 - }, - "4": { - "x": -48.12, - "y": -8.17 - }, - "5": { - "x": -48.2, - "y": 1.88 - }, - "6": { - "x": -44.09, - "y": -7.25 - }, - "7": { - "x": -43.12, - "y": -14.18 - }, - "8": { - "x": -41.22, - "y": 1.92 - }, - "9": { - "x": -27.41, - "y": -28.75 - }, - "10": { - "x": -25.72, - "y": 19.11 - }, - "11": { - "x": -23.0, - "y": -9.49 - } - }, - { - "index": 21, - "ball": { - "x": -48.35, - "y": 9.55 - }, - "1": { - "x": -50.0, - "y": 7.0 - }, - "2": { - "x": -46.32, - "y": 2.57 - }, - "3": { - "x": -48.12, - "y": 6.51 - }, - "4": { - "x": -48.2, - "y": -1.88 - }, - "5": { - "x": -48.12, - "y": 8.17 - }, - "6": { - "x": -44.09, - "y": 7.25 - }, - "7": { - "x": -41.22, - "y": -1.92 - }, - "8": { - "x": -43.12, - "y": 14.18 - }, - "9": { - "x": -25.72, - "y": -19.11 - }, - "10": { - "x": -27.41, - "y": 28.75 - }, - "11": { - "x": -23.0, - "y": 9.49 - } - }, - { - "index": 22, - "ball": { - "x": -22.08, - "y": -18.0 - }, - "1": { - "x": -46.5, - "y": -3.0 - }, - "2": { - "x": -26.23, - "y": -11.18 - }, - "3": { - "x": -26.32, - "y": -2.43 - }, - "4": { - "x": -25.96, - "y": -18.3 - }, - "5": { - "x": -26.32, - "y": 6.85 - }, - "6": { - "x": -21.58, - "y": -9.68 - }, - "7": { - "x": -17.81, - "y": -14.21 - }, - "8": { - "x": -14.69, - "y": 5.77 - }, - "9": { - "x": -4.33, - "y": -28.84 - }, - "10": { - "x": -4.51, - "y": 21.27 - }, - "11": { - "x": -4.87, - "y": -10.54 - } - }, - { - "index": 23, - "ball": { - "x": -22.08, - "y": 18.0 - }, - "1": { - "x": -46.5, - "y": 3.0 - }, - "2": { - "x": -26.32, - "y": 2.43 - }, - "3": { - "x": -26.23, - "y": 11.18 - }, - "4": { - "x": -26.32, - "y": -6.85 - }, - "5": { - "x": -25.96, - "y": 18.3 - }, - "6": { - "x": -21.58, - "y": 9.68 - }, - "7": { - "x": -14.69, - "y": -5.77 - }, - "8": { - "x": -17.81, - "y": 14.21 - }, - "9": { - "x": -4.51, - "y": -21.27 - }, - "10": { - "x": -4.33, - "y": 28.84 - }, - "11": { - "x": -4.87, - "y": 10.54 - } - }, - { - "index": 24, - "ball": { - "x": -22.08, - "y": -9.0 - }, - "1": { - "x": -46.5, - "y": -3.0 - }, - "2": { - "x": -25.24, - "y": -8.92 - }, - "3": { - "x": -25.42, - "y": -0.63 - }, - "4": { - "x": -24.96, - "y": -15.41 - }, - "5": { - "x": -25.33, - "y": 8.11 - }, - "6": { - "x": -22.62, - "y": -5.05 - }, - "7": { - "x": -17.81, - "y": -12.41 - }, - "8": { - "x": -15.25, - "y": 11.97 - }, - "9": { - "x": -6.18, - "y": -22.01 - }, - "10": { - "x": -5.43, - "y": 22.12 - }, - "11": { - "x": -3.02, - "y": -4.62 - } - }, - { - "index": 25, - "ball": { - "x": -22.08, - "y": 9.0 - }, - "1": { - "x": -46.5, - "y": 3.0 - }, - "2": { - "x": -25.42, - "y": 0.63 - }, - "3": { - "x": -25.24, - "y": 8.92 - }, - "4": { - "x": -25.33, - "y": -8.11 - }, - "5": { - "x": -24.96, - "y": 15.41 - }, - "6": { - "x": -22.62, - "y": 5.05 - }, - "7": { - "x": -15.25, - "y": -11.97 - }, - "8": { - "x": -17.81, - "y": 12.41 - }, - "9": { - "x": -5.43, - "y": -22.12 - }, - "10": { - "x": -6.18, - "y": 22.01 - }, - "11": { - "x": -3.02, - "y": 4.62 - } - }, - { - "index": 26, - "ball": { - "x": 54.5, - "y": -36.0 - }, - "1": { - "x": -43.0, - "y": 0.0 - }, - "2": { - "x": -0.72, - "y": -12.0 - }, - "3": { - "x": -0.84, - "y": 1.08 - }, - "4": { - "x": 7.19, - "y": -26.29 - }, - "5": { - "x": 10.0, - "y": 8.0 - }, - "6": { - "x": 21.83, - "y": -14.13 - }, - "7": { - "x": 35.28, - "y": -23.97 - }, - "8": { - "x": 40.92, - "y": -8.74 - }, - "9": { - "x": 44.22, - "y": -30.85 - }, - "10": { - "x": 43.53, - "y": 4.78 - }, - "11": { - "x": 48.38, - "y": -19.52 - } - }, - { - "index": 27, - "ball": { - "x": 54.5, - "y": 36.0 - }, - "1": { - "x": -43.0, - "y": -0.0 - }, - "2": { - "x": -0.84, - "y": -1.08 - }, - "3": { - "x": -0.72, - "y": 12.0 - }, - "4": { - "x": 10.0, - "y": -8.0 - }, - "5": { - "x": 7.19, - "y": 26.29 - }, - "6": { - "x": 21.83, - "y": 14.13 - }, - "7": { - "x": 40.92, - "y": 8.74 - }, - "8": { - "x": 35.28, - "y": 23.97 - }, - "9": { - "x": 43.53, - "y": -4.78 - }, - "10": { - "x": 44.22, - "y": 30.85 - }, - "11": { - "x": 48.38, - "y": 19.52 - } - }, - { - "index": 28, - "ball": { - "x": -11.99, - "y": -18.0 - }, - "1": { - "x": -43.0, - "y": -3.0 - }, - "2": { - "x": -16.27, - "y": -16.18 - }, - "3": { - "x": -15.84, - "y": -2.91 - }, - "4": { - "x": -15.07, - "y": -22.26 - }, - "5": { - "x": -16.18, - "y": 9.68 - }, - "6": { - "x": -14.56, - "y": -9.93 - }, - "7": { - "x": -4.78, - "y": -18.39 - }, - "8": { - "x": -4.15, - "y": 4.87 - }, - "9": { - "x": 2.88, - "y": -30.37 - }, - "10": { - "x": 3.7, - "y": 21.9 - }, - "11": { - "x": 3.7, - "y": -9.01 - } - }, - { - "index": 29, - "ball": { - "x": -11.99, - "y": 18.0 - }, - "1": { - "x": -43.0, - "y": 3.0 - }, - "2": { - "x": -15.84, - "y": 2.91 - }, - "3": { - "x": -16.27, - "y": 16.18 - }, - "4": { - "x": -16.18, - "y": -9.68 - }, - "5": { - "x": -15.07, - "y": 22.26 - }, - "6": { - "x": -14.56, - "y": 9.93 - }, - "7": { - "x": -4.15, - "y": -4.87 - }, - "8": { - "x": -4.78, - "y": 18.39 - }, - "9": { - "x": 3.7, - "y": -21.9 - }, - "10": { - "x": 2.88, - "y": 30.37 - }, - "11": { - "x": 3.7, - "y": 9.01 - } - }, - { - "index": 30, - "ball": { - "x": -11.99, - "y": -9.0 - }, - "1": { - "x": -43.0, - "y": -2.0 - }, - "2": { - "x": -15.58, - "y": -9.93 - }, - "3": { - "x": -15.93, - "y": 0.77 - }, - "4": { - "x": -15.5, - "y": -17.12 - }, - "5": { - "x": -15.75, - "y": 9.76 - }, - "6": { - "x": -13.96, - "y": -5.31 - }, - "7": { - "x": -7.75, - "y": -14.42 - }, - "8": { - "x": -5.59, - "y": 7.66 - }, - "9": { - "x": 2.25, - "y": -28.39 - }, - "10": { - "x": 2.16, - "y": 21.36 - }, - "11": { - "x": 2.61, - "y": -5.23 - } - }, - { - "index": 31, - "ball": { - "x": -11.99, - "y": 9.0 - }, - "1": { - "x": -43.0, - "y": 2.0 - }, - "2": { - "x": -15.93, - "y": -0.77 - }, - "3": { - "x": -15.58, - "y": 9.93 - }, - "4": { - "x": -15.75, - "y": -9.76 - }, - "5": { - "x": -15.5, - "y": 17.12 - }, - "6": { - "x": -13.96, - "y": 5.31 - }, - "7": { - "x": -5.59, - "y": -7.66 - }, - "8": { - "x": -7.75, - "y": 14.42 - }, - "9": { - "x": 2.16, - "y": -21.36 - }, - "10": { - "x": 2.25, - "y": 28.39 - }, - "11": { - "x": 2.61, - "y": 5.23 - } - }, - { - "index": 32, - "ball": { - "x": -11.99, - "y": 0.0 - }, - "1": { - "x": -43.0, - "y": -0.0 - }, - "2": { - "x": -15.75, - "y": -3.42 - }, - "3": { - "x": -15.75, - "y": 2.65 - }, - "4": { - "x": -15.75, - "y": -11.9 - }, - "5": { - "x": -16.7, - "y": 10.7 - }, - "6": { - "x": -13.96, - "y": 0.0 - }, - "7": { - "x": -8.05, - "y": -13.27 - }, - "8": { - "x": -7.11, - "y": 11.99 - }, - "9": { - "x": -2.2, - "y": -23.11 - }, - "10": { - "x": -0.94, - "y": 22.86 - }, - "11": { - "x": 1.91, - "y": -0.0 - } - }, - { - "index": 33, - "ball": { - "x": -8.22, - "y": -36.0 - }, - "1": { - "x": -43.0, - "y": -4.0 - }, - "2": { - "x": -14.98, - "y": -24.57 - }, - "3": { - "x": -16.26, - "y": -7.31 - }, - "4": { - "x": -11.73, - "y": -33.05 - }, - "5": { - "x": -14.25, - "y": 7.67 - }, - "6": { - "x": -12.5, - "y": -16.95 - }, - "7": { - "x": -8.04, - "y": -26.49 - }, - "8": { - "x": -3.97, - "y": -5.41 - }, - "9": { - "x": 7.86, - "y": -31.17 - }, - "10": { - "x": 8.29, - "y": 2.34 - }, - "11": { - "x": 8.75, - "y": -16.72 - } - }, - { - "index": 34, - "ball": { - "x": -8.22, - "y": 36.0 - }, - "1": { - "x": -43.0, - "y": 4.0 - }, - "2": { - "x": -16.26, - "y": 7.31 - }, - "3": { - "x": -14.98, - "y": 24.57 - }, - "4": { - "x": -14.25, - "y": -7.67 - }, - "5": { - "x": -11.73, - "y": 33.05 - }, - "6": { - "x": -12.5, - "y": 16.95 - }, - "7": { - "x": -3.97, - "y": 5.41 - }, - "8": { - "x": -8.04, - "y": 26.49 - }, - "9": { - "x": 8.29, - "y": -2.34 - }, - "10": { - "x": 7.86, - "y": 31.17 - }, - "11": { - "x": 8.75, - "y": 16.72 - } - }, - { - "index": 35, - "ball": { - "x": -42.52, - "y": -6.04 - }, - "1": { - "x": -46.5, - "y": -4.75 - }, - "2": { - "x": -46.86, - "y": -4.31 - }, - "3": { - "x": -44.95, - "y": 0.79 - }, - "4": { - "x": -46.88, - "y": -7.76 - }, - "5": { - "x": -47.74, - "y": 4.5 - }, - "6": { - "x": -41.81, - "y": -3.85 - }, - "7": { - "x": -38.81, - "y": -11.62 - }, - "8": { - "x": -38.43, - "y": 4.91 - }, - "9": { - "x": -23.63, - "y": -25.89 - }, - "10": { - "x": -23.57, - "y": 20.85 - }, - "11": { - "x": -21.37, - "y": -4.64 - } - }, - { - "index": 36, - "ball": { - "x": -42.52, - "y": 6.04 - }, - "1": { - "x": -46.5, - "y": 4.75 - }, - "2": { - "x": -44.95, - "y": -0.79 - }, - "3": { - "x": -46.86, - "y": 4.31 - }, - "4": { - "x": -47.74, - "y": -4.5 - }, - "5": { - "x": -46.88, - "y": 7.76 - }, - "6": { - "x": -41.81, - "y": 3.85 - }, - "7": { - "x": -38.43, - "y": -4.91 - }, - "8": { - "x": -38.81, - "y": 11.62 - }, - "9": { - "x": -23.57, - "y": -20.85 - }, - "10": { - "x": -23.63, - "y": 25.89 - }, - "11": { - "x": -21.37, - "y": 4.64 - } - }, - { - "index": 37, - "ball": { - "x": 0.0, - "y": 0.0 - }, - "1": { - "x": -43.0, - "y": 0.0 - }, - "2": { - "x": -11.97, - "y": -8.07 - }, - "3": { - "x": -12.04, - "y": 6.87 - }, - "4": { - "x": -10.58, - "y": -16.23 - }, - "5": { - "x": -10.87, - "y": 15.7 - }, - "6": { - "x": -8.22, - "y": -0.19 - }, - "7": { - "x": -0.03, - "y": -8.56 - }, - "8": { - "x": -0.17, - "y": 8.44 - }, - "9": { - "x": 11.36, - "y": -18.82 - }, - "10": { - "x": 11.39, - "y": 18.52 - }, - "11": { - "x": 11.78, - "y": -0.06 - } - }, - { - "index": 38, - "ball": { - "x": -41.21, - "y": -4.43 - }, - "1": { - "x": -46.5, - "y": -3.2 - }, - "2": { - "x": -46.31, - "y": -3.86 - }, - "3": { - "x": -45.02, - "y": 1.13 - }, - "4": { - "x": -46.83, - "y": -7.52 - }, - "5": { - "x": -47.24, - "y": 4.93 - }, - "6": { - "x": -41.69, - "y": -2.52 - }, - "7": { - "x": -38.02, - "y": -10.27 - }, - "8": { - "x": -37.09, - "y": 5.97 - }, - "9": { - "x": -23.14, - "y": -24.69 - }, - "10": { - "x": -23.11, - "y": 21.46 - }, - "11": { - "x": -19.25, - "y": -3.06 - } - }, - { - "index": 39, - "ball": { - "x": -41.21, - "y": 4.43 - }, - "1": { - "x": -46.5, - "y": 3.2 - }, - "2": { - "x": -45.02, - "y": -1.13 - }, - "3": { - "x": -46.31, - "y": 3.86 - }, - "4": { - "x": -47.24, - "y": -4.93 - }, - "5": { - "x": -46.83, - "y": 7.52 - }, - "6": { - "x": -41.69, - "y": 2.52 - }, - "7": { - "x": -37.09, - "y": -5.97 - }, - "8": { - "x": -38.02, - "y": 10.27 - }, - "9": { - "x": -23.11, - "y": -21.46 - }, - "10": { - "x": -23.14, - "y": 24.69 - }, - "11": { - "x": -19.25, - "y": 3.06 - } - }, - { - "index": 40, - "ball": { - "x": -42.38, - "y": -8.44 - }, - "1": { - "x": -46.5, - "y": -6.0 - }, - "2": { - "x": -46.42, - "y": -5.12 - }, - "3": { - "x": -43.87, - "y": 0.07 - }, - "4": { - "x": -45.73, - "y": -8.97 - }, - "5": { - "x": -46.9, - "y": 4.29 - }, - "6": { - "x": -40.61, - "y": -5.24 - }, - "7": { - "x": -38.15, - "y": -13.91 - }, - "8": { - "x": -37.38, - "y": 4.78 - }, - "9": { - "x": -22.88, - "y": -27.37 - }, - "10": { - "x": -22.81, - "y": 20.51 - }, - "11": { - "x": -21.98, - "y": -6.34 - } - }, - { - "index": 41, - "ball": { - "x": -42.38, - "y": 8.44 - }, - "1": { - "x": -46.5, - "y": 6.0 - }, - "2": { - "x": -43.87, - "y": -0.07 - }, - "3": { - "x": -46.42, - "y": 5.12 - }, - "4": { - "x": -46.9, - "y": -4.29 - }, - "5": { - "x": -45.73, - "y": 8.97 - }, - "6": { - "x": -40.61, - "y": 5.24 - }, - "7": { - "x": -37.38, - "y": -4.78 - }, - "8": { - "x": -38.15, - "y": 13.91 - }, - "9": { - "x": -22.81, - "y": -20.51 - }, - "10": { - "x": -22.88, - "y": 27.37 - }, - "11": { - "x": -21.98, - "y": 6.34 - } - } - ] -} \ No newline at end of file diff --git a/src/formations-dt/indirect-freekick-opp-formation.conf b/src/formations-dt/indirect-freekick-opp-formation.conf deleted file mode 100644 index c5e398b3..00000000 --- a/src/formations-dt/indirect-freekick-opp-formation.conf +++ /dev/null @@ -1,1156 +0,0 @@ -{ - "version": "20220408-134548", - "method": "DelaunayTriangulation", - "role": [ - { - "number": 1, - "name": "Goalie", - "type": "G", - "side": "C", - "pair": 0 - }, - { - "number": 2, - "name": "CenterBack", - "type": "DF", - "side": "L", - "pair": 3 - }, - { - "number": 3, - "name": "CenterBack", - "type": "DF", - "side": "R", - "pair": 2 - }, - { - "number": 4, - "name": "SideBack", - "type": "DF", - "side": "L", - "pair": 5 - }, - { - "number": 5, - "name": "SideBack", - "type": "DF", - "side": "R", - "pair": 4 - }, - { - "number": 6, - "name": "DefensiveHalf", - "type": "FW", - "side": "C", - "pair": 0 - }, - { - "number": 7, - "name": "OffensiveHalf", - "type": "MF", - "side": "L", - "pair": 8 - }, - { - "number": 8, - "name": "OffensiveHalf", - "type": "MF", - "side": "R", - "pair": 7 - }, - { - "number": 9, - "name": "SideForward", - "type": "FW", - "side": "L", - "pair": 10 - }, - { - "number": 10, - "name": "SideForward", - "type": "FW", - "side": "R", - "pair": 9 - }, - { - "number": 11, - "name": "CenterForward", - "type": "FW", - "side": "C", - "pair": 0 - } - ], - "data": [ - { - "index": 0, - "ball": { - "x": 0.0, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -11.63, - "y": -4.6 - }, - "3": { - "x": -11.9, - "y": 4.06 - }, - "4": { - "x": -10.09, - "y": -16.13 - }, - "5": { - "x": -9.91, - "y": 14.51 - }, - "6": { - "x": -11.18, - "y": -0.36 - }, - "7": { - "x": -6.58, - "y": -8.2 - }, - "8": { - "x": -7.57, - "y": 8.29 - }, - "9": { - "x": -1.26, - "y": -11.99 - }, - "10": { - "x": -1.8, - "y": 12.17 - }, - "11": { - "x": 11.72, - "y": 0.0 - } - }, - { - "index": 1, - "ball": { - "x": -54.5, - "y": -36.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -45.6, - "y": -18.57 - }, - "3": { - "x": -45.24, - "y": -5.14 - }, - "4": { - "x": -49.75, - "y": -24.6 - }, - "5": { - "x": -45.6, - "y": 3.88 - }, - "6": { - "x": -39.84, - "y": -15.59 - }, - "7": { - "x": -41.91, - "y": -24.24 - }, - "8": { - "x": -34.88, - "y": -0.09 - }, - "9": { - "x": -29.11, - "y": -28.84 - }, - "10": { - "x": -14.69, - "y": 21.98 - }, - "11": { - "x": -14.9, - "y": -5.27 - } - }, - { - "index": 2, - "ball": { - "x": -54.5, - "y": 36.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -45.24, - "y": 5.14 - }, - "3": { - "x": -45.6, - "y": 18.57 - }, - "4": { - "x": -45.6, - "y": -3.88 - }, - "5": { - "x": -49.75, - "y": 24.6 - }, - "6": { - "x": -39.84, - "y": 15.59 - }, - "7": { - "x": -34.88, - "y": 0.09 - }, - "8": { - "x": -41.91, - "y": 24.24 - }, - "9": { - "x": -14.69, - "y": -21.98 - }, - "10": { - "x": -29.11, - "y": 28.84 - }, - "11": { - "x": -14.9, - "y": 5.27 - } - }, - { - "index": 3, - "ball": { - "x": 54.5, - "y": -36.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -5.68, - "y": -9.82 - }, - "3": { - "x": -4.51, - "y": 2.34 - }, - "4": { - "x": 5.86, - "y": -22.53 - }, - "5": { - "x": 10.0, - "y": 8.0 - }, - "6": { - "x": 20.82, - "y": -15.86 - }, - "7": { - "x": 31.99, - "y": -26.86 - }, - "8": { - "x": 35.24, - "y": -14.15 - }, - "9": { - "x": 39.02, - "y": -32.81 - }, - "10": { - "x": 43.71, - "y": -11.81 - }, - "11": { - "x": 40.11, - "y": -23.79 - } - }, - { - "index": 4, - "ball": { - "x": 54.5, - "y": 36.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -4.51, - "y": -2.34 - }, - "3": { - "x": -5.68, - "y": 9.82 - }, - "4": { - "x": 10.0, - "y": -8.0 - }, - "5": { - "x": 5.86, - "y": 22.53 - }, - "6": { - "x": 20.82, - "y": 15.86 - }, - "7": { - "x": 35.24, - "y": 14.15 - }, - "8": { - "x": 31.99, - "y": 26.86 - }, - "9": { - "x": 43.71, - "y": 11.81 - }, - "10": { - "x": 39.02, - "y": 32.81 - }, - "11": { - "x": 40.11, - "y": 23.79 - } - }, - { - "index": 5, - "ball": { - "x": -35.0, - "y": -21.0 - }, - "1": { - "x": -50.0, - "y": -6.5 - }, - "2": { - "x": -44.28, - "y": -10.05 - }, - "3": { - "x": -44.22, - "y": -1.48 - }, - "4": { - "x": -44.19, - "y": -15.75 - }, - "5": { - "x": -43.66, - "y": 4.83 - }, - "6": { - "x": -40.28, - "y": -10.05 - }, - "7": { - "x": -35.08, - "y": -10.56 - }, - "8": { - "x": -37.64, - "y": -2.21 - }, - "9": { - "x": -25.89, - "y": -20.1 - }, - "10": { - "x": -12.49, - "y": 14.65 - }, - "11": { - "x": -21.91, - "y": -8.74 - } - }, - { - "index": 6, - "ball": { - "x": -35.0, - "y": 21.0 - }, - "1": { - "x": -50.0, - "y": 6.5 - }, - "2": { - "x": -44.22, - "y": 1.48 - }, - "3": { - "x": -44.28, - "y": 10.05 - }, - "4": { - "x": -43.66, - "y": -4.83 - }, - "5": { - "x": -44.19, - "y": 15.75 - }, - "6": { - "x": -40.28, - "y": 10.05 - }, - "7": { - "x": -37.64, - "y": 2.21 - }, - "8": { - "x": -35.08, - "y": 10.56 - }, - "9": { - "x": -12.49, - "y": -14.65 - }, - "10": { - "x": -25.89, - "y": 20.1 - }, - "11": { - "x": -21.91, - "y": 8.74 - } - }, - { - "index": 7, - "ball": { - "x": -35.0, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -45.21, - "y": -2.19 - }, - "3": { - "x": -45.21, - "y": 2.19 - }, - "4": { - "x": -46.27, - "y": -4.12 - }, - "5": { - "x": -46.27, - "y": 4.12 - }, - "6": { - "x": -45.1, - "y": 0.0 - }, - "7": { - "x": -44.68, - "y": -5.14 - }, - "8": { - "x": -44.68, - "y": 5.14 - }, - "9": { - "x": -25.12, - "y": -16.78 - }, - "10": { - "x": -25.12, - "y": 16.78 - }, - "11": { - "x": -23.5, - "y": -0.09 - } - }, - { - "index": 8, - "ball": { - "x": -54.5, - "y": 0.0 - }, - "1": { - "x": -54.0, - "y": 0.0 - }, - "2": { - "x": -52.6, - "y": -2.0 - }, - "3": { - "x": -52.6, - "y": 2.0 - }, - "4": { - "x": -52.6, - "y": -6.5 - }, - "5": { - "x": -52.6, - "y": 6.5 - }, - "6": { - "x": -52.6, - "y": 0.0 - }, - "7": { - "x": -52.6, - "y": -4.0 - }, - "8": { - "x": -52.6, - "y": 4.0 - }, - "9": { - "x": -33.21, - "y": -19.76 - }, - "10": { - "x": -33.21, - "y": 19.76 - }, - "11": { - "x": -32.47, - "y": 0.11 - } - }, - { - "index": 9, - "ball": { - "x": -47.0, - "y": 0.0 - }, - "1": { - "x": -52.7, - "y": -0.35 - }, - "2": { - "x": -52.62, - "y": -2.09 - }, - "3": { - "x": -52.62, - "y": 1.08 - }, - "4": { - "x": -52.62, - "y": -3.88 - }, - "5": { - "x": -52.55, - "y": 3.65 - }, - "6": { - "x": -52.67, - "y": 2.37 - }, - "7": { - "x": -52.67, - "y": -5.34 - }, - "8": { - "x": -52.47, - "y": 4.96 - }, - "9": { - "x": -27.39, - "y": -19.82 - }, - "10": { - "x": -27.39, - "y": 19.82 - }, - "11": { - "x": -28.4, - "y": 0.07 - } - }, - { - "index": 10, - "ball": { - "x": -47.0, - "y": -9.0 - }, - "1": { - "x": -52.65, - "y": -3.93 - }, - "2": { - "x": -52.55, - "y": -2.72 - }, - "3": { - "x": -52.65, - "y": -1.11 - }, - "4": { - "x": -52.55, - "y": -5.09 - }, - "5": { - "x": -52.72, - "y": 3.91 - }, - "6": { - "x": -52.65, - "y": 0.66 - }, - "7": { - "x": -52.75, - "y": -6.25 - }, - "8": { - "x": -51.44, - "y": 2.87 - }, - "9": { - "x": -36.1, - "y": -15.24 - }, - "10": { - "x": -30.66, - "y": 15.55 - }, - "11": { - "x": -32.13, - "y": -3.29 - } - }, - { - "index": 11, - "ball": { - "x": -47.0, - "y": 9.0 - }, - "1": { - "x": -52.65, - "y": 3.93 - }, - "2": { - "x": -52.65, - "y": 1.11 - }, - "3": { - "x": -52.55, - "y": 2.72 - }, - "4": { - "x": -52.72, - "y": -3.91 - }, - "5": { - "x": -52.55, - "y": 5.09 - }, - "6": { - "x": -52.65, - "y": -0.66 - }, - "7": { - "x": -51.44, - "y": -2.87 - }, - "8": { - "x": -52.75, - "y": 6.25 - }, - "9": { - "x": -30.66, - "y": -15.55 - }, - "10": { - "x": -36.1, - "y": 15.24 - }, - "11": { - "x": -32.13, - "y": 3.29 - } - }, - { - "index": 12, - "ball": { - "x": -35.0, - "y": -9.0 - }, - "1": { - "x": -50.0, - "y": -3.02 - }, - "2": { - "x": -45.64, - "y": -4.17 - }, - "3": { - "x": -45.25, - "y": 0.23 - }, - "4": { - "x": -45.78, - "y": -7.75 - }, - "5": { - "x": -45.25, - "y": 5.29 - }, - "6": { - "x": -43.44, - "y": -2.95 - }, - "7": { - "x": -45.74, - "y": -6.2 - }, - "8": { - "x": -41.43, - "y": 1.89 - }, - "9": { - "x": -27.84, - "y": -17.2 - }, - "10": { - "x": -20.78, - "y": 14.99 - }, - "11": { - "x": -25.29, - "y": -3.66 - } - }, - { - "index": 13, - "ball": { - "x": -35.0, - "y": 9.0 - }, - "1": { - "x": -50.0, - "y": 3.02 - }, - "2": { - "x": -45.25, - "y": -0.23 - }, - "3": { - "x": -45.64, - "y": 4.17 - }, - "4": { - "x": -45.25, - "y": -5.29 - }, - "5": { - "x": -45.78, - "y": 7.75 - }, - "6": { - "x": -43.44, - "y": 2.95 - }, - "7": { - "x": -41.43, - "y": -1.89 - }, - "8": { - "x": -45.74, - "y": 6.2 - }, - "9": { - "x": -20.78, - "y": -14.99 - }, - "10": { - "x": -27.84, - "y": 17.2 - }, - "11": { - "x": -25.29, - "y": 3.66 - } - }, - { - "index": 14, - "ball": { - "x": -44.0, - "y": -21.0 - }, - "1": { - "x": -51.0, - "y": -6.0 - }, - "2": { - "x": -45.86, - "y": -4.39 - }, - "3": { - "x": -45.71, - "y": 1.02 - }, - "4": { - "x": -45.97, - "y": -7.15 - }, - "5": { - "x": -45.4, - "y": 5.78 - }, - "6": { - "x": -44.08, - "y": -6.92 - }, - "7": { - "x": -44.72, - "y": -8.96 - }, - "8": { - "x": -41.36, - "y": -0.49 - }, - "9": { - "x": -39.09, - "y": -10.43 - }, - "10": { - "x": -18.77, - "y": 16.91 - }, - "11": { - "x": -23.22, - "y": -6.1 - } - }, - { - "index": 15, - "ball": { - "x": -44.0, - "y": 21.0 - }, - "1": { - "x": -51.0, - "y": 6.0 - }, - "2": { - "x": -45.71, - "y": -1.02 - }, - "3": { - "x": -45.86, - "y": 4.39 - }, - "4": { - "x": -45.4, - "y": -5.78 - }, - "5": { - "x": -45.97, - "y": 7.15 - }, - "6": { - "x": -44.08, - "y": 6.92 - }, - "7": { - "x": -41.36, - "y": 0.49 - }, - "8": { - "x": -44.72, - "y": 8.96 - }, - "9": { - "x": -18.77, - "y": -16.91 - }, - "10": { - "x": -39.09, - "y": 10.43 - }, - "11": { - "x": -23.22, - "y": 6.1 - } - }, - { - "index": 16, - "ball": { - "x": -54.5, - "y": -21.0 - }, - "1": { - "x": -51.72, - "y": 0.0 - }, - "2": { - "x": -48.79, - "y": -7.15 - }, - "3": { - "x": -47.86, - "y": -0.17 - }, - "4": { - "x": -49.73, - "y": -13.2 - }, - "5": { - "x": -48.37, - "y": 6.05 - }, - "6": { - "x": -44.53, - "y": -8.0 - }, - "7": { - "x": -41.72, - "y": -14.39 - }, - "8": { - "x": -38.4, - "y": 0.34 - }, - "9": { - "x": -30.87, - "y": -24.94 - }, - "10": { - "x": -22.65, - "y": 21.03 - }, - "11": { - "x": -22.45, - "y": -2.96 - } - }, - { - "index": 17, - "ball": { - "x": -54.5, - "y": 21.0 - }, - "1": { - "x": -51.72, - "y": 0.0 - }, - "2": { - "x": -47.86, - "y": 0.17 - }, - "3": { - "x": -48.79, - "y": 7.15 - }, - "4": { - "x": -48.37, - "y": -6.05 - }, - "5": { - "x": -49.73, - "y": 13.2 - }, - "6": { - "x": -44.53, - "y": 8.0 - }, - "7": { - "x": -38.4, - "y": -0.34 - }, - "8": { - "x": -41.72, - "y": 14.39 - }, - "9": { - "x": -22.65, - "y": -21.03 - }, - "10": { - "x": -30.87, - "y": 24.94 - }, - "11": { - "x": -22.45, - "y": 2.96 - } - }, - { - "index": 18, - "ball": { - "x": -42.0, - "y": 0.0 - }, - "1": { - "x": -52.78, - "y": -1.21 - }, - "2": { - "x": -51.87, - "y": -1.06 - }, - "3": { - "x": -51.87, - "y": 1.06 - }, - "4": { - "x": -51.53, - "y": -3.25 - }, - "5": { - "x": -51.91, - "y": 3.48 - }, - "6": { - "x": -52.32, - "y": 1.44 - }, - "7": { - "x": -51.19, - "y": -5.22 - }, - "8": { - "x": -51.19, - "y": 5.22 - }, - "9": { - "x": -29.12, - "y": -16.35 - }, - "10": { - "x": -29.12, - "y": 16.35 - }, - "11": { - "x": -27.2, - "y": 0.06 - } - }, - { - "index": 19, - "ball": { - "x": -42.5, - "y": -9.0 - }, - "1": { - "x": -52.51, - "y": -1.65 - }, - "2": { - "x": -52.62, - "y": -3.52 - }, - "3": { - "x": -52.11, - "y": 1.08 - }, - "4": { - "x": -52.79, - "y": -4.94 - }, - "5": { - "x": -52.06, - "y": 3.41 - }, - "6": { - "x": -51.32, - "y": 0.57 - }, - "7": { - "x": -52.85, - "y": -6.47 - }, - "8": { - "x": -50.07, - "y": 5.28 - }, - "9": { - "x": -33.14, - "y": -15.92 - }, - "10": { - "x": -26.91, - "y": 15.37 - }, - "11": { - "x": -29.52, - "y": -3.47 - } - }, - { - "index": 20, - "ball": { - "x": -42.5, - "y": 9.0 - }, - "1": { - "x": -52.51, - "y": 1.65 - }, - "2": { - "x": -52.11, - "y": -1.08 - }, - "3": { - "x": -52.62, - "y": 3.52 - }, - "4": { - "x": -52.06, - "y": -3.41 - }, - "5": { - "x": -52.79, - "y": 4.94 - }, - "6": { - "x": -51.32, - "y": -0.57 - }, - "7": { - "x": -50.07, - "y": -5.28 - }, - "8": { - "x": -52.85, - "y": 6.47 - }, - "9": { - "x": -26.91, - "y": -15.37 - }, - "10": { - "x": -33.14, - "y": 15.92 - }, - "11": { - "x": -29.52, - "y": 3.47 - } - } - ] -} \ No newline at end of file diff --git a/src/formations-dt/indirect-freekick-our-formation.conf b/src/formations-dt/indirect-freekick-our-formation.conf deleted file mode 100644 index 666f105e..00000000 --- a/src/formations-dt/indirect-freekick-our-formation.conf +++ /dev/null @@ -1,1360 +0,0 @@ -{ - "version": "20220408-134548", - "method": "DelaunayTriangulation", - "role": [ - { - "number": 1, - "name": "Goalie", - "type": "G", - "side": "C", - "pair": 0 - }, - { - "number": 2, - "name": "CenterBack", - "type": "DF", - "side": "L", - "pair": 3 - }, - { - "number": 3, - "name": "CenterBack", - "type": "DF", - "side": "R", - "pair": 2 - }, - { - "number": 4, - "name": "SideBack", - "type": "DF", - "side": "L", - "pair": 5 - }, - { - "number": 5, - "name": "SideBack", - "type": "DF", - "side": "R", - "pair": 4 - }, - { - "number": 6, - "name": "DefensiveHalf", - "type": "FW", - "side": "C", - "pair": 0 - }, - { - "number": 7, - "name": "OffensiveHalf", - "type": "MF", - "side": "L", - "pair": 8 - }, - { - "number": 8, - "name": "OffensiveHalf", - "type": "MF", - "side": "R", - "pair": 7 - }, - { - "number": 9, - "name": "SideForward", - "type": "FW", - "side": "L", - "pair": 10 - }, - { - "number": 10, - "name": "SideForward", - "type": "FW", - "side": "R", - "pair": 9 - }, - { - "number": 11, - "name": "CenterForward", - "type": "FW", - "side": "C", - "pair": 0 - } - ], - "data": [ - { - "index": 0, - "ball": { - "x": 0.0, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -15.22, - "y": -4.84 - }, - "3": { - "x": -15.33, - "y": 3.66 - }, - "4": { - "x": -9.29, - "y": -15.12 - }, - "5": { - "x": -10.84, - "y": 13.69 - }, - "6": { - "x": -0.71, - "y": -0.36 - }, - "7": { - "x": 0.0, - "y": -6.97 - }, - "8": { - "x": 0.48, - "y": 6.73 - }, - "9": { - "x": 13.69, - "y": -20.13 - }, - "10": { - "x": 10.73, - "y": 24.0 - }, - "11": { - "x": 16.08, - "y": 0.0 - } - }, - { - "index": 1, - "ball": { - "x": -54.5, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -46.15, - "y": -1.92 - }, - "3": { - "x": -46.03, - "y": 2.88 - }, - "4": { - "x": -45.07, - "y": -7.57 - }, - "5": { - "x": -45.55, - "y": 7.93 - }, - "6": { - "x": -39.78, - "y": 0.0 - }, - "7": { - "x": -36.3, - "y": -15.98 - }, - "8": { - "x": -37.02, - "y": 11.78 - }, - "9": { - "x": -22.0, - "y": -28.0 - }, - "10": { - "x": -19.29, - "y": 26.44 - }, - "11": { - "x": -16.47, - "y": -0.84 - } - }, - { - "index": 2, - "ball": { - "x": 35.0, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 0.0, - "y": -7.38 - }, - "3": { - "x": 0.0, - "y": 7.38 - }, - "4": { - "x": 4.0, - "y": -17.7 - }, - "5": { - "x": 4.0, - "y": 17.7 - }, - "6": { - "x": 34.06, - "y": 0.17 - }, - "7": { - "x": 35.08, - "y": -7.07 - }, - "8": { - "x": 35.08, - "y": 7.07 - }, - "9": { - "x": 41.43, - "y": -5.14 - }, - "10": { - "x": 41.43, - "y": 5.14 - }, - "11": { - "x": 41.02, - "y": 0.04 - } - }, - { - "index": 3, - "ball": { - "x": 35.0, - "y": -9.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 1.68, - "y": -7.93 - }, - "3": { - "x": 4.93, - "y": 6.85 - }, - "4": { - "x": 5.0, - "y": -20.0 - }, - "5": { - "x": 12.26, - "y": 16.47 - }, - "6": { - "x": 32.19, - "y": -2.72 - }, - "7": { - "x": 34.49, - "y": -9.03 - }, - "8": { - "x": 35.0, - "y": 5.71 - }, - "9": { - "x": 41.47, - "y": -6.31 - }, - "10": { - "x": 43.25, - "y": 3.86 - }, - "11": { - "x": 42.76, - "y": -1.78 - } - }, - { - "index": 4, - "ball": { - "x": 35.0, - "y": 9.0 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": 4.93, - "y": -6.85 - }, - "3": { - "x": 1.68, - "y": 7.93 - }, - "4": { - "x": 12.26, - "y": -16.47 - }, - "5": { - "x": 5.0, - "y": 20.0 - }, - "6": { - "x": 32.19, - "y": 2.72 - }, - "7": { - "x": 35.0, - "y": -5.71 - }, - "8": { - "x": 34.49, - "y": 9.03 - }, - "9": { - "x": 43.25, - "y": -3.86 - }, - "10": { - "x": 41.47, - "y": 6.31 - }, - "11": { - "x": 42.76, - "y": 1.78 - } - }, - { - "index": 5, - "ball": { - "x": 54.5, - "y": -36.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -0.89, - "y": -12.98 - }, - "3": { - "x": 6.36, - "y": 2.29 - }, - "4": { - "x": 8.3, - "y": -27.3 - }, - "5": { - "x": 18.32, - "y": 10.56 - }, - "6": { - "x": 20.16, - "y": -10.85 - }, - "7": { - "x": 38.11, - "y": -27.75 - }, - "8": { - "x": 38.3, - "y": -4.2 - }, - "9": { - "x": 47.63, - "y": -30.13 - }, - "10": { - "x": 47.28, - "y": -2.38 - }, - "11": { - "x": 48.47, - "y": -19.77 - } - }, - { - "index": 6, - "ball": { - "x": 54.5, - "y": 36.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 6.36, - "y": -2.29 - }, - "3": { - "x": -0.89, - "y": 12.98 - }, - "4": { - "x": 18.32, - "y": -10.56 - }, - "5": { - "x": 8.3, - "y": 27.3 - }, - "6": { - "x": 20.16, - "y": 10.85 - }, - "7": { - "x": 38.3, - "y": 4.2 - }, - "8": { - "x": 38.11, - "y": 27.75 - }, - "9": { - "x": 47.28, - "y": 2.38 - }, - "10": { - "x": 47.63, - "y": 30.13 - }, - "11": { - "x": 48.47, - "y": 19.77 - } - }, - { - "index": 7, - "ball": { - "x": -54.5, - "y": -36.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -46.83, - "y": -11.96 - }, - "3": { - "x": -46.51, - "y": -4.65 - }, - "4": { - "x": -50.73, - "y": -32.15 - }, - "5": { - "x": -45.56, - "y": 4.77 - }, - "6": { - "x": -41.99, - "y": -15.01 - }, - "7": { - "x": -35.76, - "y": -22.52 - }, - "8": { - "x": -23.79, - "y": 0.76 - }, - "9": { - "x": -22.39, - "y": -31.81 - }, - "10": { - "x": -12.98, - "y": 19.47 - }, - "11": { - "x": -16.92, - "y": -13.11 - } - }, - { - "index": 8, - "ball": { - "x": -54.5, - "y": 36.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -46.51, - "y": 4.65 - }, - "3": { - "x": -46.83, - "y": 11.96 - }, - "4": { - "x": -45.56, - "y": -4.77 - }, - "5": { - "x": -50.73, - "y": 32.15 - }, - "6": { - "x": -41.99, - "y": 15.01 - }, - "7": { - "x": -23.79, - "y": -0.76 - }, - "8": { - "x": -35.76, - "y": 22.52 - }, - "9": { - "x": -12.98, - "y": -19.47 - }, - "10": { - "x": -22.39, - "y": 31.81 - }, - "11": { - "x": -16.92, - "y": 13.11 - } - }, - { - "index": 9, - "ball": { - "x": 35.0, - "y": -21.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 2.57, - "y": -11.68 - }, - "3": { - "x": 0.0, - "y": 2.08 - }, - "4": { - "x": 4.57, - "y": -22.24 - }, - "5": { - "x": 9.42, - "y": 13.35 - }, - "6": { - "x": 28.78, - "y": -11.75 - }, - "7": { - "x": 34.23, - "y": -20.86 - }, - "8": { - "x": 35.08, - "y": -1.7 - }, - "9": { - "x": 39.0, - "y": -16.86 - }, - "10": { - "x": 40.36, - "y": 5.79 - }, - "11": { - "x": 39.85, - "y": -10.22 - } - }, - { - "index": 10, - "ball": { - "x": 35.0, - "y": 21.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 0.0, - "y": -2.08 - }, - "3": { - "x": 2.57, - "y": 11.68 - }, - "4": { - "x": 9.42, - "y": -13.35 - }, - "5": { - "x": 4.57, - "y": 22.24 - }, - "6": { - "x": 28.78, - "y": 11.75 - }, - "7": { - "x": 35.08, - "y": 1.7 - }, - "8": { - "x": 34.23, - "y": 20.86 - }, - "9": { - "x": 40.36, - "y": -5.79 - }, - "10": { - "x": 39.0, - "y": 16.86 - }, - "11": { - "x": 39.85, - "y": 10.22 - } - }, - { - "index": 11, - "ball": { - "x": 54.5, - "y": -21.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 0.65, - "y": -10.71 - }, - "3": { - "x": 4.82, - "y": 4.56 - }, - "4": { - "x": 10.43, - "y": -23.74 - }, - "5": { - "x": 16.19, - "y": 14.12 - }, - "6": { - "x": 35.85, - "y": -10.13 - }, - "7": { - "x": 53.65, - "y": -21.12 - }, - "8": { - "x": 38.57, - "y": -0.34 - }, - "9": { - "x": 48.28, - "y": -12.94 - }, - "10": { - "x": 46.41, - "y": 5.79 - }, - "11": { - "x": 46.83, - "y": -5.88 - } - }, - { - "index": 12, - "ball": { - "x": 54.5, - "y": 21.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 4.82, - "y": -4.56 - }, - "3": { - "x": 0.65, - "y": 10.71 - }, - "4": { - "x": 16.19, - "y": -14.12 - }, - "5": { - "x": 10.43, - "y": 23.74 - }, - "6": { - "x": 35.85, - "y": 10.13 - }, - "7": { - "x": 38.57, - "y": 0.34 - }, - "8": { - "x": 53.65, - "y": 21.12 - }, - "9": { - "x": 46.41, - "y": -5.79 - }, - "10": { - "x": 48.28, - "y": 12.94 - }, - "11": { - "x": 46.83, - "y": 5.88 - } - }, - { - "index": 13, - "ball": { - "x": 54.5, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 2.74, - "y": -7.64 - }, - "3": { - "x": 2.74, - "y": 7.64 - }, - "4": { - "x": 13.31, - "y": -18.93 - }, - "5": { - "x": 13.31, - "y": 18.93 - }, - "6": { - "x": 36.62, - "y": 0.0 - }, - "7": { - "x": 40.15, - "y": -8.47 - }, - "8": { - "x": 40.15, - "y": 8.47 - }, - "9": { - "x": 50.41, - "y": -6.13 - }, - "10": { - "x": 50.41, - "y": 6.13 - }, - "11": { - "x": 53.0, - "y": 0.09 - } - }, - { - "index": 14, - "ball": { - "x": 47.0, - "y": -9.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 1.8, - "y": -8.51 - }, - "3": { - "x": 4.12, - "y": 6.57 - }, - "4": { - "x": 9.3, - "y": -20.53 - }, - "5": { - "x": 13.6, - "y": 16.77 - }, - "6": { - "x": 35.08, - "y": -1.19 - }, - "7": { - "x": 46.27, - "y": -8.92 - }, - "8": { - "x": 38.71, - "y": 5.18 - }, - "9": { - "x": 49.22, - "y": -6.09 - }, - "10": { - "x": 48.96, - "y": 2.61 - }, - "11": { - "x": 49.22, - "y": -2.42 - } - }, - { - "index": 15, - "ball": { - "x": 47.0, - "y": 9.0 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": 4.12, - "y": -6.57 - }, - "3": { - "x": 1.8, - "y": 8.51 - }, - "4": { - "x": 13.6, - "y": -16.77 - }, - "5": { - "x": 9.3, - "y": 20.53 - }, - "6": { - "x": 35.08, - "y": 1.19 - }, - "7": { - "x": 38.71, - "y": -5.18 - }, - "8": { - "x": 46.27, - "y": 8.92 - }, - "9": { - "x": 48.96, - "y": -2.61 - }, - "10": { - "x": 49.22, - "y": 6.09 - }, - "11": { - "x": 49.22, - "y": 2.42 - } - }, - { - "index": 16, - "ball": { - "x": 54.5, - "y": -9.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 1.82, - "y": -8.98 - }, - "3": { - "x": 3.65, - "y": 6.29 - }, - "4": { - "x": 12.05, - "y": -21.04 - }, - "5": { - "x": 14.57, - "y": 16.82 - }, - "6": { - "x": 36.28, - "y": -4.44 - }, - "7": { - "x": 53.9, - "y": -9.37 - }, - "8": { - "x": 39.46, - "y": 4.61 - }, - "9": { - "x": 50.58, - "y": -5.96 - }, - "10": { - "x": 47.13, - "y": 6.32 - }, - "11": { - "x": 46.66, - "y": -0.51 - } - }, - { - "index": 17, - "ball": { - "x": 54.5, - "y": 9.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 3.65, - "y": -6.29 - }, - "3": { - "x": 1.82, - "y": 8.98 - }, - "4": { - "x": 14.57, - "y": -16.82 - }, - "5": { - "x": 12.05, - "y": 21.04 - }, - "6": { - "x": 36.28, - "y": 4.44 - }, - "7": { - "x": 39.46, - "y": -4.61 - }, - "8": { - "x": 53.9, - "y": 9.37 - }, - "9": { - "x": 47.13, - "y": -6.32 - }, - "10": { - "x": 50.58, - "y": 5.96 - }, - "11": { - "x": 46.66, - "y": 0.51 - } - }, - { - "index": 18, - "ball": { - "x": 47.0, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 2.61, - "y": -7.53 - }, - "3": { - "x": 2.61, - "y": 7.53 - }, - "4": { - "x": 10.66, - "y": -18.55 - }, - "5": { - "x": 10.66, - "y": 18.55 - }, - "6": { - "x": 33.31, - "y": 0.0 - }, - "7": { - "x": 41.13, - "y": -6.1 - }, - "8": { - "x": 41.13, - "y": 6.1 - }, - "9": { - "x": 48.96, - "y": -4.35 - }, - "10": { - "x": 48.96, - "y": 4.35 - }, - "11": { - "x": 46.32, - "y": -0.09 - } - }, - { - "index": 19, - "ball": { - "x": 45.0, - "y": -3.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 2.04, - "y": -7.87 - }, - "3": { - "x": 2.87, - "y": 7.17 - }, - "4": { - "x": 9.46, - "y": -19.17 - }, - "5": { - "x": 11.01, - "y": 17.82 - }, - "6": { - "x": 32.43, - "y": -0.37 - }, - "7": { - "x": 44.5, - "y": -3.33 - }, - "8": { - "x": 37.42, - "y": 7.26 - }, - "9": { - "x": 49.33, - "y": -5.44 - }, - "10": { - "x": 49.22, - "y": 3.7 - }, - "11": { - "x": 49.52, - "y": -1.55 - } - }, - { - "index": 20, - "ball": { - "x": 45.0, - "y": 3.0 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": 2.87, - "y": -7.17 - }, - "3": { - "x": 2.04, - "y": 7.87 - }, - "4": { - "x": 11.01, - "y": -17.82 - }, - "5": { - "x": 9.46, - "y": 19.17 - }, - "6": { - "x": 32.43, - "y": 0.37 - }, - "7": { - "x": 37.42, - "y": -7.26 - }, - "8": { - "x": 44.5, - "y": 3.33 - }, - "9": { - "x": 49.22, - "y": -3.7 - }, - "10": { - "x": 49.33, - "y": 5.44 - }, - "11": { - "x": 49.52, - "y": 1.55 - } - }, - { - "index": 21, - "ball": { - "x": 40.0, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 1.21, - "y": -7.45 - }, - "3": { - "x": 1.21, - "y": 7.45 - }, - "4": { - "x": 7.08, - "y": -18.09 - }, - "5": { - "x": 7.08, - "y": 18.09 - }, - "6": { - "x": 31.79, - "y": -2.34 - }, - "7": { - "x": 39.13, - "y": -0.08 - }, - "8": { - "x": 37.84, - "y": 3.63 - }, - "9": { - "x": 45.44, - "y": -3.33 - }, - "10": { - "x": 45.44, - "y": 3.36 - }, - "11": { - "x": 45.59, - "y": -0.08 - } - }, - { - "index": 22, - "ball": { - "x": 44.53, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 2.34, - "y": -7.51 - }, - "3": { - "x": 2.34, - "y": 7.51 - }, - "4": { - "x": 9.94, - "y": -18.46 - }, - "5": { - "x": 9.94, - "y": 18.46 - }, - "6": { - "x": 32.41, - "y": -0.0 - }, - "7": { - "x": 38.6, - "y": -4.65 - }, - "8": { - "x": 38.6, - "y": 4.65 - }, - "9": { - "x": 47.48, - "y": -3.97 - }, - "10": { - "x": 47.48, - "y": 3.97 - }, - "11": { - "x": 44.62, - "y": -0.09 - } - }, - { - "index": 23, - "ball": { - "x": 47.0, - "y": -4.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 2.24, - "y": -7.99 - }, - "3": { - "x": 3.31, - "y": 7.09 - }, - "4": { - "x": 10.12, - "y": -19.48 - }, - "5": { - "x": 12.11, - "y": 17.74 - }, - "6": { - "x": 34.25, - "y": -0.55 - }, - "7": { - "x": 43.66, - "y": -7.46 - }, - "8": { - "x": 39.0, - "y": 6.28 - }, - "9": { - "x": 48.96, - "y": -7.58 - }, - "10": { - "x": 48.77, - "y": 0.53 - }, - "11": { - "x": 46.92, - "y": -3.75 - } - }, - { - "index": 24, - "ball": { - "x": 47.0, - "y": 4.0 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": 3.31, - "y": -7.09 - }, - "3": { - "x": 2.24, - "y": 7.99 - }, - "4": { - "x": 12.11, - "y": -17.74 - }, - "5": { - "x": 10.12, - "y": 19.48 - }, - "6": { - "x": 34.25, - "y": 0.55 - }, - "7": { - "x": 39.0, - "y": -6.28 - }, - "8": { - "x": 43.66, - "y": 7.46 - }, - "9": { - "x": 48.77, - "y": -0.53 - }, - "10": { - "x": 48.96, - "y": 7.58 - }, - "11": { - "x": 46.92, - "y": 3.75 - } - } - ] -} \ No newline at end of file diff --git a/src/formations-dt/kickin-our-formation.conf b/src/formations-dt/kickin-our-formation.conf deleted file mode 100644 index 0cf36640..00000000 --- a/src/formations-dt/kickin-our-formation.conf +++ /dev/null @@ -1,1156 +0,0 @@ -{ - "version": "20220408-134548", - "method": "DelaunayTriangulation", - "role": [ - { - "number": 1, - "name": "Goalie", - "type": "G", - "side": "C", - "pair": 0 - }, - { - "number": 2, - "name": "CenterBack", - "type": "DF", - "side": "L", - "pair": 3 - }, - { - "number": 3, - "name": "CenterBack", - "type": "DF", - "side": "R", - "pair": 2 - }, - { - "number": 4, - "name": "SideBack", - "type": "DF", - "side": "L", - "pair": 5 - }, - { - "number": 5, - "name": "SideBack", - "type": "DF", - "side": "R", - "pair": 4 - }, - { - "number": 6, - "name": "DefensiveHalf", - "type": "FW", - "side": "C", - "pair": 0 - }, - { - "number": 7, - "name": "OffensiveHalf", - "type": "MF", - "side": "L", - "pair": 8 - }, - { - "number": 8, - "name": "OffensiveHalf", - "type": "MF", - "side": "R", - "pair": 7 - }, - { - "number": 9, - "name": "SideForward", - "type": "FW", - "side": "L", - "pair": 10 - }, - { - "number": 10, - "name": "SideForward", - "type": "FW", - "side": "R", - "pair": 9 - }, - { - "number": 11, - "name": "CenterForward", - "type": "FW", - "side": "C", - "pair": 0 - } - ], - "data": [ - { - "index": 0, - "ball": { - "x": 54.0, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 0.0, - "y": -9.0 - }, - "3": { - "x": 0.0, - "y": 9.0 - }, - "4": { - "x": 7.0, - "y": -19.0 - }, - "5": { - "x": 7.0, - "y": 19.0 - }, - "6": { - "x": 21.0, - "y": 0.0 - }, - "7": { - "x": 35.0, - "y": -6.0 - }, - "8": { - "x": 35.0, - "y": 6.0 - }, - "9": { - "x": 46.0, - "y": -9.5 - }, - "10": { - "x": 46.0, - "y": 9.5 - }, - "11": { - "x": 46.0, - "y": 0.0 - } - }, - { - "index": 1, - "ball": { - "x": -54.0, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -47.0, - "y": -2.5 - }, - "3": { - "x": -47.0, - "y": 2.5 - }, - "4": { - "x": -47.0, - "y": -7.0 - }, - "5": { - "x": -47.0, - "y": 7.0 - }, - "6": { - "x": -43.0, - "y": 0.0 - }, - "7": { - "x": -35.0, - "y": -13.0 - }, - "8": { - "x": -35.0, - "y": 13.0 - }, - "9": { - "x": -22.0, - "y": -28.0 - }, - "10": { - "x": -22.0, - "y": 28.0 - }, - "11": { - "x": -18.49, - "y": 0.0 - } - }, - { - "index": 2, - "ball": { - "x": 0.0, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -15.06, - "y": -4.84 - }, - "3": { - "x": -15.18, - "y": 3.68 - }, - "4": { - "x": -12.58, - "y": -14.88 - }, - "5": { - "x": -13.39, - "y": 14.07 - }, - "6": { - "x": -5.61, - "y": 0.0 - }, - "7": { - "x": 0.11, - "y": -11.99 - }, - "8": { - "x": 0.11, - "y": 11.99 - }, - "9": { - "x": 10.37, - "y": -23.99 - }, - "10": { - "x": 10.84, - "y": 23.99 - }, - "11": { - "x": 10.84, - "y": 0.0 - } - }, - { - "index": 3, - "ball": { - "x": -54.0, - "y": -35.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -47.35, - "y": -11.81 - }, - "3": { - "x": -46.51, - "y": -4.65 - }, - "4": { - "x": -47.81, - "y": -26.33 - }, - "5": { - "x": -45.56, - "y": 4.77 - }, - "6": { - "x": -41.23, - "y": -11.92 - }, - "7": { - "x": -37.38, - "y": -21.36 - }, - "8": { - "x": -27.94, - "y": 1.74 - }, - "9": { - "x": -22.23, - "y": -31.17 - }, - "10": { - "x": -17.01, - "y": 19.99 - }, - "11": { - "x": -17.51, - "y": -11.55 - } - }, - { - "index": 4, - "ball": { - "x": -54.0, - "y": 35.0 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -46.51, - "y": 4.65 - }, - "3": { - "x": -47.35, - "y": 11.81 - }, - "4": { - "x": -45.56, - "y": -4.77 - }, - "5": { - "x": -47.81, - "y": 26.33 - }, - "6": { - "x": -41.23, - "y": 11.92 - }, - "7": { - "x": -27.94, - "y": -1.74 - }, - "8": { - "x": -37.38, - "y": 21.36 - }, - "9": { - "x": -17.01, - "y": -19.99 - }, - "10": { - "x": -22.23, - "y": 31.17 - }, - "11": { - "x": -17.51, - "y": 11.55 - } - }, - { - "index": 5, - "ball": { - "x": -36.02, - "y": -35.0 - }, - "1": { - "x": -50.0, - "y": -0.01 - }, - "2": { - "x": -39.12, - "y": -16.02 - }, - "3": { - "x": -38.87, - "y": -6.58 - }, - "4": { - "x": -36.39, - "y": -27.94 - }, - "5": { - "x": -36.76, - "y": 3.85 - }, - "6": { - "x": -28.32, - "y": -15.28 - }, - "7": { - "x": -22.23, - "y": -24.59 - }, - "8": { - "x": -20.16, - "y": 0.6 - }, - "9": { - "x": -10.43, - "y": -32.54 - }, - "10": { - "x": -7.44, - "y": 19.44 - }, - "11": { - "x": -7.2, - "y": -14.16 - } - }, - { - "index": 6, - "ball": { - "x": -36.02, - "y": 35.0 - }, - "1": { - "x": -50.0, - "y": 0.01 - }, - "2": { - "x": -38.87, - "y": 6.58 - }, - "3": { - "x": -39.12, - "y": 16.02 - }, - "4": { - "x": -36.76, - "y": -3.85 - }, - "5": { - "x": -36.39, - "y": 27.94 - }, - "6": { - "x": -28.32, - "y": 15.28 - }, - "7": { - "x": -20.16, - "y": -0.6 - }, - "8": { - "x": -22.23, - "y": 24.59 - }, - "9": { - "x": -7.44, - "y": -19.44 - }, - "10": { - "x": -10.43, - "y": 32.54 - }, - "11": { - "x": -7.2, - "y": 14.16 - } - }, - { - "index": 7, - "ball": { - "x": -12.0, - "y": -35.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -18.5, - "y": -21.61 - }, - "3": { - "x": -18.5, - "y": -8.94 - }, - "4": { - "x": -12.42, - "y": -34.65 - }, - "5": { - "x": -18.38, - "y": 4.72 - }, - "6": { - "x": -9.07, - "y": -14.9 - }, - "7": { - "x": -0.5, - "y": -22.48 - }, - "8": { - "x": -5.96, - "y": 0.12 - }, - "9": { - "x": 11.67, - "y": -32.29 - }, - "10": { - "x": 10.8, - "y": 14.03 - }, - "11": { - "x": 8.2, - "y": -15.15 - } - }, - { - "index": 8, - "ball": { - "x": -12.0, - "y": 35.0 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -18.5, - "y": 8.94 - }, - "3": { - "x": -18.5, - "y": 21.61 - }, - "4": { - "x": -18.38, - "y": -4.72 - }, - "5": { - "x": -12.42, - "y": 34.65 - }, - "6": { - "x": -9.07, - "y": 14.9 - }, - "7": { - "x": -5.96, - "y": -0.12 - }, - "8": { - "x": -0.5, - "y": 22.48 - }, - "9": { - "x": 10.8, - "y": -14.03 - }, - "10": { - "x": 11.67, - "y": 32.29 - }, - "11": { - "x": 8.2, - "y": 15.15 - } - }, - { - "index": 9, - "ball": { - "x": 38.13, - "y": -35.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -0.14, - "y": -16.53 - }, - "3": { - "x": 6.25, - "y": -1.8 - }, - "4": { - "x": 7.93, - "y": -28.0 - }, - "5": { - "x": 17.31, - "y": 8.77 - }, - "6": { - "x": 24.88, - "y": -17.67 - }, - "7": { - "x": 36.3, - "y": -31.49 - }, - "8": { - "x": 32.09, - "y": -0.36 - }, - "9": { - "x": 46.75, - "y": -24.64 - }, - "10": { - "x": 44.23, - "y": -0.72 - }, - "11": { - "x": 44.59, - "y": -13.82 - } - }, - { - "index": 10, - "ball": { - "x": 38.13, - "y": 35.0 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": 6.25, - "y": 1.8 - }, - "3": { - "x": -0.14, - "y": 16.53 - }, - "4": { - "x": 17.31, - "y": -8.77 - }, - "5": { - "x": 7.93, - "y": 28.0 - }, - "6": { - "x": 24.88, - "y": 17.67 - }, - "7": { - "x": 32.09, - "y": 0.36 - }, - "8": { - "x": 36.3, - "y": 31.49 - }, - "9": { - "x": 44.23, - "y": 0.72 - }, - "10": { - "x": 46.75, - "y": 24.64 - }, - "11": { - "x": 44.59, - "y": 13.82 - } - }, - { - "index": 11, - "ball": { - "x": 35.0, - "y": -35.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 1.68, - "y": -14.54 - }, - "3": { - "x": 6.49, - "y": -0.12 - }, - "4": { - "x": 6.37, - "y": -27.76 - }, - "5": { - "x": 15.86, - "y": 8.65 - }, - "6": { - "x": 22.73, - "y": -17.39 - }, - "7": { - "x": 33.41, - "y": -32.69 - }, - "8": { - "x": 29.81, - "y": 0.0 - }, - "9": { - "x": 43.03, - "y": -29.81 - }, - "10": { - "x": 41.7, - "y": -1.08 - }, - "11": { - "x": 42.31, - "y": -15.38 - } - }, - { - "index": 12, - "ball": { - "x": 35.0, - "y": 35.0 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": 6.49, - "y": 0.12 - }, - "3": { - "x": 1.68, - "y": 14.54 - }, - "4": { - "x": 15.86, - "y": -8.65 - }, - "5": { - "x": 6.37, - "y": 27.76 - }, - "6": { - "x": 22.73, - "y": 17.39 - }, - "7": { - "x": 29.81, - "y": -0.0 - }, - "8": { - "x": 33.41, - "y": 32.69 - }, - "9": { - "x": 41.7, - "y": 1.08 - }, - "10": { - "x": 43.03, - "y": 29.81 - }, - "11": { - "x": 42.31, - "y": 15.38 - } - }, - { - "index": 13, - "ball": { - "x": 24.88, - "y": -35.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -0.84, - "y": -21.03 - }, - "3": { - "x": 2.88, - "y": -5.53 - }, - "4": { - "x": 20.67, - "y": -32.93 - }, - "5": { - "x": 11.42, - "y": 7.69 - }, - "6": { - "x": 14.54, - "y": -13.46 - }, - "7": { - "x": 26.08, - "y": -19.11 - }, - "8": { - "x": 31.01, - "y": -6.01 - }, - "9": { - "x": 44.23, - "y": -29.93 - }, - "10": { - "x": 39.54, - "y": -1.08 - }, - "11": { - "x": 41.34, - "y": -17.43 - } - }, - { - "index": 14, - "ball": { - "x": 24.88, - "y": 35.0 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": 2.88, - "y": 5.53 - }, - "3": { - "x": -0.84, - "y": 21.03 - }, - "4": { - "x": 11.42, - "y": -7.69 - }, - "5": { - "x": 20.67, - "y": 32.93 - }, - "6": { - "x": 14.54, - "y": 13.46 - }, - "7": { - "x": 31.01, - "y": 6.01 - }, - "8": { - "x": 26.08, - "y": 19.11 - }, - "9": { - "x": 39.54, - "y": 1.08 - }, - "10": { - "x": 44.23, - "y": 29.93 - }, - "11": { - "x": 41.34, - "y": 17.43 - } - }, - { - "index": 15, - "ball": { - "x": 12.98, - "y": -35.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -3.61, - "y": -21.51 - }, - "3": { - "x": -0.12, - "y": -4.33 - }, - "4": { - "x": 9.86, - "y": -31.97 - }, - "5": { - "x": 8.29, - "y": 8.17 - }, - "6": { - "x": 8.51, - "y": -16.2 - }, - "7": { - "x": 20.91, - "y": -20.67 - }, - "8": { - "x": 18.15, - "y": -1.2 - }, - "9": { - "x": 37.02, - "y": -31.25 - }, - "10": { - "x": 31.49, - "y": -1.08 - }, - "11": { - "x": 34.97, - "y": -15.38 - } - }, - { - "index": 16, - "ball": { - "x": 12.98, - "y": 35.0 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -0.12, - "y": 4.33 - }, - "3": { - "x": -3.61, - "y": 21.51 - }, - "4": { - "x": 8.29, - "y": -8.17 - }, - "5": { - "x": 9.86, - "y": 31.97 - }, - "6": { - "x": 8.51, - "y": 16.2 - }, - "7": { - "x": 18.15, - "y": 1.2 - }, - "8": { - "x": 20.91, - "y": 20.67 - }, - "9": { - "x": 31.49, - "y": 1.08 - }, - "10": { - "x": 37.02, - "y": 31.25 - }, - "11": { - "x": 34.97, - "y": 15.38 - } - }, - { - "index": 17, - "ball": { - "x": 0.0, - "y": -35.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -7.58, - "y": -23.22 - }, - "3": { - "x": -9.06, - "y": -10.97 - }, - "4": { - "x": -1.56, - "y": -32.69 - }, - "5": { - "x": -5.37, - "y": 4.29 - }, - "6": { - "x": 0.0, - "y": -16.95 - }, - "7": { - "x": 7.57, - "y": -22.71 - }, - "8": { - "x": 5.49, - "y": -0.12 - }, - "9": { - "x": 24.47, - "y": -30.18 - }, - "10": { - "x": 23.68, - "y": 3.97 - }, - "11": { - "x": 20.91, - "y": -14.66 - } - }, - { - "index": 18, - "ball": { - "x": 0.0, - "y": 35.0 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -9.06, - "y": 10.97 - }, - "3": { - "x": -7.58, - "y": 23.22 - }, - "4": { - "x": -5.37, - "y": -4.29 - }, - "5": { - "x": -1.56, - "y": 32.69 - }, - "6": { - "x": 0.0, - "y": 16.95 - }, - "7": { - "x": 5.49, - "y": 0.12 - }, - "8": { - "x": 7.57, - "y": 22.71 - }, - "9": { - "x": 23.68, - "y": -3.97 - }, - "10": { - "x": 24.47, - "y": 30.18 - }, - "11": { - "x": 20.91, - "y": 14.66 - } - }, - { - "index": 19, - "ball": { - "x": 54.0, - "y": -35.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -0.24, - "y": -14.54 - }, - "3": { - "x": 7.21, - "y": -0.48 - }, - "4": { - "x": 8.3, - "y": -27.3 - }, - "5": { - "x": 17.19, - "y": 10.22 - }, - "6": { - "x": 34.76, - "y": -14.66 - }, - "7": { - "x": 42.78, - "y": -25.6 - }, - "8": { - "x": 38.65, - "y": -11.04 - }, - "9": { - "x": 51.54, - "y": -34.65 - }, - "10": { - "x": 46.27, - "y": -8.05 - }, - "11": { - "x": 46.07, - "y": -22.35 - } - }, - { - "index": 20, - "ball": { - "x": 54.0, - "y": 35.0 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": 7.21, - "y": 0.48 - }, - "3": { - "x": -0.24, - "y": 14.54 - }, - "4": { - "x": 17.19, - "y": -10.22 - }, - "5": { - "x": 8.3, - "y": 27.3 - }, - "6": { - "x": 34.76, - "y": 14.66 - }, - "7": { - "x": 38.65, - "y": 11.04 - }, - "8": { - "x": 42.78, - "y": 25.6 - }, - "9": { - "x": 46.27, - "y": 8.05 - }, - "10": { - "x": 51.54, - "y": 34.65 - }, - "11": { - "x": 46.07, - "y": 22.35 - } - } - ] -} \ No newline at end of file diff --git a/src/formations-dt/normal-formation.conf b/src/formations-dt/normal-formation.conf deleted file mode 100644 index 396b6596..00000000 --- a/src/formations-dt/normal-formation.conf +++ /dev/null @@ -1,6460 +0,0 @@ -{ - "version": "20220408-134548", - "method": "DelaunayTriangulation", - "role": [ - { - "number": 1, - "name": "Goalie", - "type": "G", - "side": "C", - "pair": 0 - }, - { - "number": 2, - "name": "CenterBack", - "type": "DF", - "side": "L", - "pair": 3 - }, - { - "number": 3, - "name": "CenterBack", - "type": "DF", - "side": "R", - "pair": 2 - }, - { - "number": 4, - "name": "SideBack", - "type": "DF", - "side": "L", - "pair": 5 - }, - { - "number": 5, - "name": "SideBack", - "type": "DF", - "side": "R", - "pair": 4 - }, - { - "number": 6, - "name": "DefensiveHalf", - "type": "FW", - "side": "C", - "pair": 0 - }, - { - "number": 7, - "name": "OffensiveHalf", - "type": "MF", - "side": "L", - "pair": 8 - }, - { - "number": 8, - "name": "OffensiveHalf", - "type": "MF", - "side": "R", - "pair": 7 - }, - { - "number": 9, - "name": "SideForward", - "type": "FW", - "side": "L", - "pair": 10 - }, - { - "number": 10, - "name": "SideForward", - "type": "FW", - "side": "R", - "pair": 9 - }, - { - "number": 11, - "name": "CenterForward", - "type": "FW", - "side": "C", - "pair": 0 - } - ], - "data": [ - { - "index": 0, - "ball": { - "x": 54.5, - "y": -36.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -0.72, - "y": -12.0 - }, - "3": { - "x": -0.84, - "y": 1.08 - }, - "4": { - "x": 4.9, - "y": -27.3 - }, - "5": { - "x": 10.0, - "y": 8.0 - }, - "6": { - "x": 27.43, - "y": -16.5 - }, - "7": { - "x": 33.12, - "y": -27.0 - }, - "8": { - "x": 38.22, - "y": -3.5 - }, - "9": { - "x": 44.22, - "y": -30.85 - }, - "10": { - "x": 46.0, - "y": 6.8 - }, - "11": { - "x": 46.28, - "y": -14.0 - } - }, - { - "index": 1, - "ball": { - "x": 54.5, - "y": 36.0 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -0.84, - "y": -1.08 - }, - "3": { - "x": -0.72, - "y": 12.0 - }, - "4": { - "x": 10.0, - "y": -8.0 - }, - "5": { - "x": 4.9, - "y": 27.3 - }, - "6": { - "x": 27.43, - "y": 16.5 - }, - "7": { - "x": 38.22, - "y": 3.5 - }, - "8": { - "x": 33.12, - "y": 27.0 - }, - "9": { - "x": 46.0, - "y": -6.8 - }, - "10": { - "x": 44.22, - "y": 30.85 - }, - "11": { - "x": 46.28, - "y": 14.0 - } - }, - { - "index": 2, - "ball": { - "x": 0.0, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -11.87, - "y": -4.66 - }, - "3": { - "x": -11.87, - "y": 4.66 - }, - "4": { - "x": -11.87, - "y": -15.78 - }, - "5": { - "x": -11.87, - "y": 15.78 - }, - "6": { - "x": -6.73, - "y": -1.87 - }, - "7": { - "x": 2.83, - "y": -10.81 - }, - "8": { - "x": 2.83, - "y": 10.81 - }, - "9": { - "x": 9.3, - "y": -23.78 - }, - "10": { - "x": 9.3, - "y": 23.78 - }, - "11": { - "x": 9.41, - "y": -3.12 - } - }, - { - "index": 3, - "ball": { - "x": 54.5, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 2.74, - "y": -6.07 - }, - "3": { - "x": 2.74, - "y": 6.07 - }, - "4": { - "x": 7.21, - "y": -18.58 - }, - "5": { - "x": 7.21, - "y": 18.58 - }, - "6": { - "x": 26.86, - "y": -3.2 - }, - "7": { - "x": 40.73, - "y": -3.77 - }, - "8": { - "x": 40.73, - "y": 3.77 - }, - "9": { - "x": 48.97, - "y": -9.82 - }, - "10": { - "x": 48.97, - "y": 9.82 - }, - "11": { - "x": 45.6, - "y": -1.65 - } - }, - { - "index": 4, - "ball": { - "x": 36.57, - "y": -12.09 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -0.32, - "y": -9.86 - }, - "3": { - "x": 0.52, - "y": 3.2 - }, - "4": { - "x": 5.09, - "y": -23.21 - }, - "5": { - "x": 6.15, - "y": 15.05 - }, - "6": { - "x": 18.98, - "y": -7.3 - }, - "7": { - "x": 27.73, - "y": -14.57 - }, - "8": { - "x": 32.4, - "y": 1.86 - }, - "9": { - "x": 39.17, - "y": -19.85 - }, - "10": { - "x": 42.41, - "y": 10.78 - }, - "11": { - "x": 38.1, - "y": -8.45 - } - }, - { - "index": 5, - "ball": { - "x": 36.57, - "y": 12.09 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": 0.52, - "y": -3.2 - }, - "3": { - "x": -0.32, - "y": 9.86 - }, - "4": { - "x": 6.15, - "y": -15.05 - }, - "5": { - "x": 5.09, - "y": 23.21 - }, - "6": { - "x": 18.98, - "y": 7.3 - }, - "7": { - "x": 32.4, - "y": -1.86 - }, - "8": { - "x": 27.73, - "y": 14.57 - }, - "9": { - "x": 42.41, - "y": -10.78 - }, - "10": { - "x": 39.17, - "y": 19.85 - }, - "11": { - "x": 38.1, - "y": 8.45 - } - }, - { - "index": 6, - "ball": { - "x": 48.51, - "y": -15.92 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 0.51, - "y": -10.77 - }, - "3": { - "x": 3.07, - "y": 3.38 - }, - "4": { - "x": 2.27, - "y": -23.46 - }, - "5": { - "x": 12.83, - "y": 13.63 - }, - "6": { - "x": 25.2, - "y": -9.33 - }, - "7": { - "x": 34.83, - "y": -14.95 - }, - "8": { - "x": 39.34, - "y": -1.01 - }, - "9": { - "x": 45.03, - "y": -20.81 - }, - "10": { - "x": 46.88, - "y": 6.76 - }, - "11": { - "x": 43.86, - "y": -8.86 - } - }, - { - "index": 7, - "ball": { - "x": 48.51, - "y": 15.92 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": 3.07, - "y": -3.38 - }, - "3": { - "x": 0.51, - "y": 10.77 - }, - "4": { - "x": 12.83, - "y": -13.63 - }, - "5": { - "x": 2.27, - "y": 23.46 - }, - "6": { - "x": 25.2, - "y": 9.33 - }, - "7": { - "x": 39.34, - "y": 1.01 - }, - "8": { - "x": 34.83, - "y": 14.95 - }, - "9": { - "x": 46.88, - "y": -6.76 - }, - "10": { - "x": 45.03, - "y": 20.81 - }, - "11": { - "x": 43.86, - "y": 8.86 - } - }, - { - "index": 8, - "ball": { - "x": 42.76, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 0.98, - "y": -5.97 - }, - "3": { - "x": 0.98, - "y": 5.97 - }, - "4": { - "x": 6.85, - "y": -19.24 - }, - "5": { - "x": 6.85, - "y": 19.24 - }, - "6": { - "x": 21.77, - "y": -2.76 - }, - "7": { - "x": 35.57, - "y": -5.84 - }, - "8": { - "x": 35.57, - "y": 5.84 - }, - "9": { - "x": 44.37, - "y": -9.81 - }, - "10": { - "x": 44.37, - "y": 9.81 - }, - "11": { - "x": 40.72, - "y": -2.36 - } - }, - { - "index": 9, - "ball": { - "x": 48.66, - "y": -5.01 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 1.54, - "y": -7.25 - }, - "3": { - "x": 2.33, - "y": 5.02 - }, - "4": { - "x": 6.06, - "y": -20.44 - }, - "5": { - "x": 8.38, - "y": 17.49 - }, - "6": { - "x": 24.7, - "y": -4.89 - }, - "7": { - "x": 37.7, - "y": -7.4 - }, - "8": { - "x": 39.2, - "y": 2.37 - }, - "9": { - "x": 46.09, - "y": -15.6 - }, - "10": { - "x": 46.8, - "y": 0.42 - }, - "11": { - "x": 43.57, - "y": -4.31 - } - }, - { - "index": 10, - "ball": { - "x": 48.66, - "y": 5.01 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": 2.33, - "y": -5.02 - }, - "3": { - "x": 1.54, - "y": 7.25 - }, - "4": { - "x": 8.38, - "y": -17.49 - }, - "5": { - "x": 6.06, - "y": 20.44 - }, - "6": { - "x": 24.7, - "y": 4.89 - }, - "7": { - "x": 39.2, - "y": -2.37 - }, - "8": { - "x": 37.7, - "y": 7.4 - }, - "9": { - "x": 46.8, - "y": -0.42 - }, - "10": { - "x": 46.09, - "y": 15.6 - }, - "11": { - "x": 43.57, - "y": 4.31 - } - }, - { - "index": 11, - "ball": { - "x": 50.57, - "y": -6.78 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 1.66, - "y": -7.71 - }, - "3": { - "x": 2.75, - "y": 4.77 - }, - "4": { - "x": 5.36, - "y": -20.8 - }, - "5": { - "x": 9.23, - "y": 16.82 - }, - "6": { - "x": 25.62, - "y": -5.67 - }, - "7": { - "x": 38.2, - "y": -8.13 - }, - "8": { - "x": 40.06, - "y": 1.43 - }, - "9": { - "x": 47.0, - "y": -17.67 - }, - "10": { - "x": 47.39, - "y": -0.36 - }, - "11": { - "x": 44.4, - "y": -4.93 - } - }, - { - "index": 12, - "ball": { - "x": 50.57, - "y": 6.78 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": 2.75, - "y": -4.77 - }, - "3": { - "x": 1.66, - "y": 7.71 - }, - "4": { - "x": 9.23, - "y": -16.82 - }, - "5": { - "x": 5.36, - "y": 20.8 - }, - "6": { - "x": 25.62, - "y": 5.67 - }, - "7": { - "x": 40.06, - "y": -1.43 - }, - "8": { - "x": 38.2, - "y": 8.13 - }, - "9": { - "x": 47.39, - "y": 0.36 - }, - "10": { - "x": 47.0, - "y": 17.67 - }, - "11": { - "x": 44.4, - "y": 4.93 - } - }, - { - "index": 13, - "ball": { - "x": 52.49, - "y": -17.1 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 0.95, - "y": -10.96 - }, - "3": { - "x": 3.74, - "y": 3.5 - }, - "4": { - "x": 0.75, - "y": -23.35 - }, - "5": { - "x": 14.73, - "y": 12.86 - }, - "6": { - "x": 27.02, - "y": -9.99 - }, - "7": { - "x": 36.71, - "y": -15.3 - }, - "8": { - "x": 40.72, - "y": -1.59 - }, - "9": { - "x": 47.62, - "y": -24.13 - }, - "10": { - "x": 47.64, - "y": 7.59 - }, - "11": { - "x": 45.39, - "y": -8.87 - } - }, - { - "index": 14, - "ball": { - "x": 52.49, - "y": 17.1 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": 3.74, - "y": -3.5 - }, - "3": { - "x": 0.95, - "y": 10.96 - }, - "4": { - "x": 14.73, - "y": -12.86 - }, - "5": { - "x": 0.75, - "y": 23.35 - }, - "6": { - "x": 27.02, - "y": 9.99 - }, - "7": { - "x": 40.72, - "y": 1.59 - }, - "8": { - "x": 36.71, - "y": 15.3 - }, - "9": { - "x": 47.64, - "y": -7.59 - }, - "10": { - "x": 47.62, - "y": 24.13 - }, - "11": { - "x": 45.39, - "y": 8.87 - } - }, - { - "index": 15, - "ball": { - "x": 52.49, - "y": -7.96 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 1.82, - "y": -7.99 - }, - "3": { - "x": 3.1, - "y": 4.66 - }, - "4": { - "x": 4.65, - "y": -20.95 - }, - "5": { - "x": 10.02, - "y": 16.31 - }, - "6": { - "x": 26.49, - "y": -6.22 - }, - "7": { - "x": 38.78, - "y": -8.58 - }, - "8": { - "x": 40.75, - "y": 0.8 - }, - "9": { - "x": 48.07, - "y": -19.82 - }, - "10": { - "x": 47.99, - "y": 0.19 - }, - "11": { - "x": 45.16, - "y": -5.26 - } - }, - { - "index": 16, - "ball": { - "x": 52.49, - "y": 7.96 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": 3.1, - "y": -4.66 - }, - "3": { - "x": 1.82, - "y": 7.99 - }, - "4": { - "x": 10.02, - "y": -16.31 - }, - "5": { - "x": 4.65, - "y": 20.95 - }, - "6": { - "x": 26.49, - "y": 6.22 - }, - "7": { - "x": 40.75, - "y": -0.8 - }, - "8": { - "x": 38.78, - "y": 8.58 - }, - "9": { - "x": 47.99, - "y": -0.19 - }, - "10": { - "x": 48.07, - "y": 19.82 - }, - "11": { - "x": 45.16, - "y": 5.26 - } - }, - { - "index": 17, - "ball": { - "x": 49.25, - "y": -9.29 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 1.25, - "y": -8.48 - }, - "3": { - "x": 2.73, - "y": 4.33 - }, - "4": { - "x": 4.73, - "y": -21.62 - }, - "5": { - "x": 9.92, - "y": 16.07 - }, - "6": { - "x": 25.18, - "y": -6.62 - }, - "7": { - "x": 37.01, - "y": -10.02 - }, - "8": { - "x": 39.69, - "y": 0.74 - }, - "9": { - "x": 46.18, - "y": -17.93 - }, - "10": { - "x": 47.11, - "y": 1.01 - }, - "11": { - "x": 43.96, - "y": -6.11 - } - }, - { - "index": 18, - "ball": { - "x": 49.25, - "y": 9.29 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": 2.73, - "y": -4.33 - }, - "3": { - "x": 1.25, - "y": 8.48 - }, - "4": { - "x": 9.92, - "y": -16.07 - }, - "5": { - "x": 4.73, - "y": 21.62 - }, - "6": { - "x": 25.18, - "y": 6.62 - }, - "7": { - "x": 39.69, - "y": -0.74 - }, - "8": { - "x": 37.01, - "y": 10.02 - }, - "9": { - "x": 47.11, - "y": -1.01 - }, - "10": { - "x": 46.18, - "y": 17.93 - }, - "11": { - "x": 43.96, - "y": 6.11 - } - }, - { - "index": 19, - "ball": { - "x": 46.74, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 1.62, - "y": -6.08 - }, - "3": { - "x": 1.62, - "y": 6.08 - }, - "4": { - "x": 7.1, - "y": -19.05 - }, - "5": { - "x": 7.1, - "y": 19.05 - }, - "6": { - "x": 23.75, - "y": -0.9 - }, - "7": { - "x": 37.73, - "y": -4.99 - }, - "8": { - "x": 37.73, - "y": 4.99 - }, - "9": { - "x": 45.7, - "y": -9.75 - }, - "10": { - "x": 45.7, - "y": 9.75 - }, - "11": { - "x": 42.56, - "y": -2.13 - } - }, - { - "index": 20, - "ball": { - "x": 42.61, - "y": -5.6 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 0.5, - "y": -7.52 - }, - "3": { - "x": 1.36, - "y": 4.72 - }, - "4": { - "x": 6.18, - "y": -20.97 - }, - "5": { - "x": 7.57, - "y": 17.56 - }, - "6": { - "x": 21.91, - "y": -4.9 - }, - "7": { - "x": 34.21, - "y": -9.06 - }, - "8": { - "x": 36.27, - "y": 3.21 - }, - "9": { - "x": 43.47, - "y": -15.1 - }, - "10": { - "x": 45.41, - "y": 2.8 - }, - "11": { - "x": 40.91, - "y": -5.04 - } - }, - { - "index": 21, - "ball": { - "x": 42.61, - "y": 5.6 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": 1.36, - "y": -4.72 - }, - "3": { - "x": 0.5, - "y": 7.52 - }, - "4": { - "x": 7.57, - "y": -17.56 - }, - "5": { - "x": 6.18, - "y": 20.97 - }, - "6": { - "x": 21.91, - "y": 4.9 - }, - "7": { - "x": 36.27, - "y": -3.21 - }, - "8": { - "x": 34.21, - "y": 9.06 - }, - "9": { - "x": 45.41, - "y": -2.8 - }, - "10": { - "x": 43.47, - "y": 15.1 - }, - "11": { - "x": 40.91, - "y": 5.04 - } - }, - { - "index": 22, - "ball": { - "x": 45.86, - "y": -3.54 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 1.23, - "y": -6.89 - }, - "3": { - "x": 1.78, - "y": 5.23 - }, - "4": { - "x": 6.49, - "y": -20.18 - }, - "5": { - "x": 7.68, - "y": 18.07 - }, - "6": { - "x": 23.37, - "y": -4.21 - }, - "7": { - "x": 36.61, - "y": -7.09 - }, - "8": { - "x": 37.8, - "y": 3.47 - }, - "9": { - "x": 45.04, - "y": -13.82 - }, - "10": { - "x": 45.96, - "y": 2.43 - }, - "11": { - "x": 42.32, - "y": -3.85 - } - }, - { - "index": 23, - "ball": { - "x": 45.86, - "y": 3.54 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": 1.78, - "y": -5.23 - }, - "3": { - "x": 1.23, - "y": 6.89 - }, - "4": { - "x": 7.68, - "y": -18.07 - }, - "5": { - "x": 6.49, - "y": 20.18 - }, - "6": { - "x": 23.37, - "y": 4.21 - }, - "7": { - "x": 37.8, - "y": -3.47 - }, - "8": { - "x": 36.61, - "y": 7.09 - }, - "9": { - "x": 45.96, - "y": -2.43 - }, - "10": { - "x": 45.04, - "y": 13.82 - }, - "11": { - "x": 42.32, - "y": 3.85 - } - }, - { - "index": 24, - "ball": { - "x": 46.89, - "y": -6.49 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 1.14, - "y": -7.7 - }, - "3": { - "x": 2.17, - "y": 4.7 - }, - "4": { - "x": 5.83, - "y": -20.99 - }, - "5": { - "x": 8.52, - "y": 17.12 - }, - "6": { - "x": 23.98, - "y": -5.41 - }, - "7": { - "x": 36.48, - "y": -8.62 - }, - "8": { - "x": 38.57, - "y": 2.07 - }, - "9": { - "x": 45.21, - "y": -15.64 - }, - "10": { - "x": 46.51, - "y": 0.08 - }, - "11": { - "x": 42.89, - "y": -5.11 - } - }, - { - "index": 25, - "ball": { - "x": 46.89, - "y": 6.49 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": 2.17, - "y": -4.7 - }, - "3": { - "x": 1.14, - "y": 7.7 - }, - "4": { - "x": 8.52, - "y": -17.12 - }, - "5": { - "x": 5.83, - "y": 20.99 - }, - "6": { - "x": 23.98, - "y": 5.41 - }, - "7": { - "x": 38.57, - "y": -2.07 - }, - "8": { - "x": 36.48, - "y": 8.62 - }, - "9": { - "x": 46.51, - "y": -0.08 - }, - "10": { - "x": 45.21, - "y": 15.64 - }, - "11": { - "x": 42.89, - "y": 5.11 - } - }, - { - "index": 26, - "ball": { - "x": 38.63, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 0.18, - "y": -5.93 - }, - "3": { - "x": 0.18, - "y": 5.93 - }, - "4": { - "x": 6.41, - "y": -19.34 - }, - "5": { - "x": 6.41, - "y": 19.34 - }, - "6": { - "x": 19.71, - "y": -2.62 - }, - "7": { - "x": 32.73, - "y": -6.84 - }, - "8": { - "x": 32.73, - "y": 6.84 - }, - "9": { - "x": 42.2, - "y": -11.81 - }, - "10": { - "x": 42.2, - "y": 11.81 - }, - "11": { - "x": 38.61, - "y": -2.57 - } - }, - { - "index": 27, - "ball": { - "x": 39.22, - "y": -5.75 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -0.15, - "y": -7.62 - }, - "3": { - "x": 0.71, - "y": 4.57 - }, - "4": { - "x": 6.1, - "y": -21.14 - }, - "5": { - "x": 6.93, - "y": 17.6 - }, - "6": { - "x": 20.2, - "y": -4.84 - }, - "7": { - "x": 31.8, - "y": -9.98 - }, - "8": { - "x": 34.05, - "y": 3.87 - }, - "9": { - "x": 41.58, - "y": -16.28 - }, - "10": { - "x": 44.01, - "y": 6.35 - }, - "11": { - "x": 39.22, - "y": -5.35 - } - }, - { - "index": 28, - "ball": { - "x": 39.22, - "y": 5.75 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": 0.71, - "y": -4.57 - }, - "3": { - "x": -0.15, - "y": 7.62 - }, - "4": { - "x": 6.93, - "y": -17.6 - }, - "5": { - "x": 6.1, - "y": 21.14 - }, - "6": { - "x": 20.2, - "y": 4.84 - }, - "7": { - "x": 34.05, - "y": -3.87 - }, - "8": { - "x": 31.8, - "y": 9.98 - }, - "9": { - "x": 44.01, - "y": -6.35 - }, - "10": { - "x": 41.58, - "y": 16.28 - }, - "11": { - "x": 39.22, - "y": 5.35 - } - }, - { - "index": 29, - "ball": { - "x": 30.37, - "y": -15.92 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -0.85, - "y": -11.87 - }, - "3": { - "x": -0.92, - "y": 2.05 - }, - "4": { - "x": 3.83, - "y": -24.4 - }, - "5": { - "x": 6.0, - "y": 14.49 - }, - "6": { - "x": 15.44, - "y": -8.7 - }, - "7": { - "x": 21.07, - "y": -17.96 - }, - "8": { - "x": 27.44, - "y": 1.55 - }, - "9": { - "x": 34.11, - "y": -24.3 - }, - "10": { - "x": 34.71, - "y": 14.57 - }, - "11": { - "x": 34.7, - "y": -10.66 - } - }, - { - "index": 30, - "ball": { - "x": 30.37, - "y": 15.92 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -0.92, - "y": -2.05 - }, - "3": { - "x": -0.85, - "y": 11.87 - }, - "4": { - "x": 6.0, - "y": -14.49 - }, - "5": { - "x": 3.83, - "y": 24.4 - }, - "6": { - "x": 15.44, - "y": 8.7 - }, - "7": { - "x": 27.44, - "y": -1.55 - }, - "8": { - "x": 21.07, - "y": 17.96 - }, - "9": { - "x": 34.71, - "y": -14.57 - }, - "10": { - "x": 34.11, - "y": 24.3 - }, - "11": { - "x": 34.7, - "y": 10.66 - } - }, - { - "index": 31, - "ball": { - "x": 0.0, - "y": -36.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -13.46, - "y": -19.18 - }, - "3": { - "x": -13.46, - "y": -5.93 - }, - "4": { - "x": -13.46, - "y": -30.3 - }, - "5": { - "x": -13.46, - "y": 7.52 - }, - "6": { - "x": -8.38, - "y": -16.63 - }, - "7": { - "x": -7.37, - "y": -25.18 - }, - "8": { - "x": -4.81, - "y": -1.58 - }, - "9": { - "x": 13.45, - "y": -32.14 - }, - "10": { - "x": 10.92, - "y": 18.27 - }, - "11": { - "x": 14.62, - "y": -20.6 - } - }, - { - "index": 32, - "ball": { - "x": 0.0, - "y": 36.0 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -13.46, - "y": 5.93 - }, - "3": { - "x": -13.46, - "y": 19.18 - }, - "4": { - "x": -13.46, - "y": -7.52 - }, - "5": { - "x": -13.46, - "y": 30.3 - }, - "6": { - "x": -8.38, - "y": 16.63 - }, - "7": { - "x": -4.81, - "y": 1.58 - }, - "8": { - "x": -7.37, - "y": 25.18 - }, - "9": { - "x": 10.92, - "y": -18.27 - }, - "10": { - "x": 13.45, - "y": 32.14 - }, - "11": { - "x": 14.62, - "y": 20.6 - } - }, - { - "index": 33, - "ball": { - "x": 44.53, - "y": -22.41 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 0.11, - "y": -13.35 - }, - "3": { - "x": 2.77, - "y": 2.31 - }, - "4": { - "x": 0.88, - "y": -25.3 - }, - "5": { - "x": 11.45, - "y": 11.23 - }, - "6": { - "x": 23.64, - "y": -11.92 - }, - "7": { - "x": 30.42, - "y": -20.33 - }, - "8": { - "x": 36.76, - "y": -1.94 - }, - "9": { - "x": 41.44, - "y": -22.71 - }, - "10": { - "x": 45.59, - "y": 7.46 - }, - "11": { - "x": 42.36, - "y": -11.75 - } - }, - { - "index": 34, - "ball": { - "x": 44.53, - "y": 22.41 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": 2.77, - "y": -2.31 - }, - "3": { - "x": 0.11, - "y": 13.35 - }, - "4": { - "x": 11.45, - "y": -11.23 - }, - "5": { - "x": 0.88, - "y": 25.3 - }, - "6": { - "x": 23.64, - "y": 11.92 - }, - "7": { - "x": 36.76, - "y": 1.94 - }, - "8": { - "x": 30.42, - "y": 20.33 - }, - "9": { - "x": 45.59, - "y": -7.46 - }, - "10": { - "x": 41.44, - "y": 22.71 - }, - "11": { - "x": 42.36, - "y": 11.75 - } - }, - { - "index": 35, - "ball": { - "x": 44.09, - "y": -29.78 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -0.11, - "y": -16.11 - }, - "3": { - "x": 3.08, - "y": 1.45 - }, - "4": { - "x": 2.15, - "y": -27.12 - }, - "5": { - "x": 9.54, - "y": 9.86 - }, - "6": { - "x": 23.78, - "y": -15.03 - }, - "7": { - "x": 28.49, - "y": -25.4 - }, - "8": { - "x": 35.1, - "y": -2.94 - }, - "9": { - "x": 39.72, - "y": -25.13 - }, - "10": { - "x": 44.65, - "y": 7.22 - }, - "11": { - "x": 42.31, - "y": -14.34 - } - }, - { - "index": 36, - "ball": { - "x": 44.09, - "y": 29.78 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": 3.08, - "y": -1.45 - }, - "3": { - "x": -0.11, - "y": 16.11 - }, - "4": { - "x": 9.54, - "y": -9.86 - }, - "5": { - "x": 2.15, - "y": 27.12 - }, - "6": { - "x": 23.78, - "y": 15.03 - }, - "7": { - "x": 35.1, - "y": 2.94 - }, - "8": { - "x": 28.49, - "y": 25.4 - }, - "9": { - "x": 44.65, - "y": -7.22 - }, - "10": { - "x": 39.72, - "y": 25.13 - }, - "11": { - "x": 42.31, - "y": 14.34 - } - }, - { - "index": 37, - "ball": { - "x": 29.19, - "y": -34.36 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -0.64, - "y": -17.91 - }, - "3": { - "x": -0.74, - "y": -0.94 - }, - "4": { - "x": 2.3, - "y": -27.83 - }, - "5": { - "x": 9.4, - "y": 8.12 - }, - "6": { - "x": 15.16, - "y": -16.5 - }, - "7": { - "x": 19.03, - "y": -27.25 - }, - "8": { - "x": 26.04, - "y": -3.11 - }, - "9": { - "x": 36.79, - "y": -29.36 - }, - "10": { - "x": 29.88, - "y": 13.71 - }, - "11": { - "x": 34.81, - "y": -17.65 - } - }, - { - "index": 38, - "ball": { - "x": 29.19, - "y": 34.36 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -0.74, - "y": 0.94 - }, - "3": { - "x": -0.64, - "y": 17.91 - }, - "4": { - "x": 9.4, - "y": -8.12 - }, - "5": { - "x": 2.3, - "y": 27.83 - }, - "6": { - "x": 15.16, - "y": 16.5 - }, - "7": { - "x": 26.04, - "y": 3.11 - }, - "8": { - "x": 19.03, - "y": 27.25 - }, - "9": { - "x": 29.88, - "y": -13.71 - }, - "10": { - "x": 36.79, - "y": 29.36 - }, - "11": { - "x": 34.81, - "y": 17.65 - } - }, - { - "index": 39, - "ball": { - "x": 33.03, - "y": -31.26 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -0.32, - "y": -18.02 - }, - "3": { - "x": 0.28, - "y": -0.08 - }, - "4": { - "x": 2.01, - "y": -27.43 - }, - "5": { - "x": 7.63, - "y": 9.43 - }, - "6": { - "x": 17.29, - "y": -15.35 - }, - "7": { - "x": 20.92, - "y": -26.07 - }, - "8": { - "x": 28.24, - "y": -2.72 - }, - "9": { - "x": 38.57, - "y": -27.83 - }, - "10": { - "x": 34.68, - "y": 12.1 - }, - "11": { - "x": 36.65, - "y": -16.3 - } - }, - { - "index": 40, - "ball": { - "x": 33.03, - "y": 31.26 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": 0.28, - "y": 0.08 - }, - "3": { - "x": -0.32, - "y": 18.02 - }, - "4": { - "x": 7.63, - "y": -9.43 - }, - "5": { - "x": 2.01, - "y": 27.43 - }, - "6": { - "x": 17.29, - "y": 15.35 - }, - "7": { - "x": 28.24, - "y": 2.72 - }, - "8": { - "x": 20.92, - "y": 26.07 - }, - "9": { - "x": 34.68, - "y": -12.1 - }, - "10": { - "x": 38.57, - "y": 27.83 - }, - "11": { - "x": 36.65, - "y": 16.3 - } - }, - { - "index": 41, - "ball": { - "x": 23.0, - "y": -5.16 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -0.21, - "y": -7.63 - }, - "3": { - "x": -0.11, - "y": 5.09 - }, - "4": { - "x": 2.99, - "y": -20.69 - }, - "5": { - "x": 2.22, - "y": 17.45 - }, - "6": { - "x": 10.52, - "y": -4.14 - }, - "7": { - "x": 15.33, - "y": -13.53 - }, - "8": { - "x": 18.29, - "y": 8.05 - }, - "9": { - "x": 23.07, - "y": -25.95 - }, - "10": { - "x": 24.74, - "y": 20.06 - }, - "11": { - "x": 29.04, - "y": -6.0 - } - }, - { - "index": 42, - "ball": { - "x": 23.0, - "y": 5.16 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -0.11, - "y": -5.09 - }, - "3": { - "x": -0.21, - "y": 7.63 - }, - "4": { - "x": 2.22, - "y": -17.45 - }, - "5": { - "x": 2.99, - "y": 20.69 - }, - "6": { - "x": 10.52, - "y": 4.14 - }, - "7": { - "x": 18.29, - "y": -8.05 - }, - "8": { - "x": 15.33, - "y": 13.53 - }, - "9": { - "x": 24.74, - "y": -20.06 - }, - "10": { - "x": 23.07, - "y": 25.95 - }, - "11": { - "x": 29.04, - "y": 6.0 - } - }, - { - "index": 43, - "ball": { - "x": 28.16, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -0.32, - "y": -5.62 - }, - "3": { - "x": -0.32, - "y": 5.62 - }, - "4": { - "x": 4.32, - "y": -19.24 - }, - "5": { - "x": 4.32, - "y": 19.24 - }, - "6": { - "x": 13.8, - "y": -2.33 - }, - "7": { - "x": 22.61, - "y": -9.6 - }, - "8": { - "x": 22.61, - "y": 9.6 - }, - "9": { - "x": 29.71, - "y": -21.47 - }, - "10": { - "x": 29.71, - "y": 21.47 - }, - "11": { - "x": 32.25, - "y": -1.0 - } - }, - { - "index": 44, - "ball": { - "x": 34.65, - "y": -5.75 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -0.21, - "y": -7.52 - }, - "3": { - "x": -0.31, - "y": 4.4 - }, - "4": { - "x": 5.74, - "y": -21.22 - }, - "5": { - "x": 5.89, - "y": 17.64 - }, - "6": { - "x": 17.72, - "y": -4.69 - }, - "7": { - "x": 27.93, - "y": -11.15 - }, - "8": { - "x": 30.34, - "y": 4.95 - }, - "9": { - "x": 37.52, - "y": -18.78 - }, - "10": { - "x": 40.2, - "y": 11.53 - }, - "11": { - "x": 36.7, - "y": -5.66 - } - }, - { - "index": 45, - "ball": { - "x": 34.65, - "y": 5.75 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -0.31, - "y": -4.4 - }, - "3": { - "x": -0.21, - "y": 7.52 - }, - "4": { - "x": 5.89, - "y": -17.64 - }, - "5": { - "x": 5.74, - "y": 21.22 - }, - "6": { - "x": 17.72, - "y": 4.69 - }, - "7": { - "x": 30.34, - "y": -4.95 - }, - "8": { - "x": 27.93, - "y": 11.15 - }, - "9": { - "x": 40.2, - "y": -11.53 - }, - "10": { - "x": 37.52, - "y": 18.78 - }, - "11": { - "x": 36.7, - "y": 5.66 - } - }, - { - "index": 46, - "ball": { - "x": 19.91, - "y": -28.6 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -1.48, - "y": -16.74 - }, - "3": { - "x": -1.48, - "y": -0.42 - }, - "4": { - "x": -1.48, - "y": -26.53 - }, - "5": { - "x": -1.48, - "y": 9.86 - }, - "6": { - "x": 8.44, - "y": -13.83 - }, - "7": { - "x": 11.6, - "y": -24.14 - }, - "8": { - "x": 21.83, - "y": -1.79 - }, - "9": { - "x": 28.02, - "y": -30.94 - }, - "10": { - "x": 24.91, - "y": 17.54 - }, - "11": { - "x": 28.57, - "y": -16.62 - } - }, - { - "index": 47, - "ball": { - "x": 19.91, - "y": 28.6 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -1.48, - "y": 0.42 - }, - "3": { - "x": -1.48, - "y": 16.74 - }, - "4": { - "x": -1.48, - "y": -9.86 - }, - "5": { - "x": -1.48, - "y": 26.53 - }, - "6": { - "x": 8.44, - "y": 13.83 - }, - "7": { - "x": 21.83, - "y": 1.79 - }, - "8": { - "x": 11.6, - "y": 24.14 - }, - "9": { - "x": 24.91, - "y": -17.54 - }, - "10": { - "x": 28.02, - "y": 30.94 - }, - "11": { - "x": 28.57, - "y": 16.62 - } - }, - { - "index": 48, - "ball": { - "x": 14.3, - "y": -11.06 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -1.48, - "y": -10.7 - }, - "3": { - "x": -1.48, - "y": 1.91 - }, - "4": { - "x": -1.48, - "y": -21.99 - }, - "5": { - "x": -1.48, - "y": 13.04 - }, - "6": { - "x": 4.24, - "y": -6.29 - }, - "7": { - "x": 5.05, - "y": -17.13 - }, - "8": { - "x": 13.68, - "y": 6.13 - }, - "9": { - "x": 17.23, - "y": -26.9 - }, - "10": { - "x": 18.09, - "y": 19.6 - }, - "11": { - "x": 22.95, - "y": -9.41 - } - }, - { - "index": 49, - "ball": { - "x": 14.3, - "y": 11.06 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -1.48, - "y": -1.91 - }, - "3": { - "x": -1.48, - "y": 10.7 - }, - "4": { - "x": -1.48, - "y": -13.04 - }, - "5": { - "x": -1.48, - "y": 21.99 - }, - "6": { - "x": 4.24, - "y": 6.29 - }, - "7": { - "x": 13.68, - "y": -6.13 - }, - "8": { - "x": 5.05, - "y": 17.13 - }, - "9": { - "x": 18.09, - "y": -19.6 - }, - "10": { - "x": 17.23, - "y": 26.9 - }, - "11": { - "x": 22.95, - "y": 9.41 - } - }, - { - "index": 50, - "ball": { - "x": 11.35, - "y": -25.07 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -2.46, - "y": -17.49 - }, - "3": { - "x": -2.46, - "y": -2.01 - }, - "4": { - "x": -2.46, - "y": -25.75 - }, - "5": { - "x": -2.46, - "y": 11.03 - }, - "6": { - "x": 1.71, - "y": -12.12 - }, - "7": { - "x": 3.25, - "y": -22.2 - }, - "8": { - "x": 16.29, - "y": -0.28 - }, - "9": { - "x": 18.9, - "y": -29.64 - }, - "10": { - "x": 17.57, - "y": 18.46 - }, - "11": { - "x": 22.04, - "y": -15.92 - } - }, - { - "index": 51, - "ball": { - "x": 11.35, - "y": 25.07 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -2.46, - "y": 2.01 - }, - "3": { - "x": -2.46, - "y": 17.49 - }, - "4": { - "x": -2.46, - "y": -11.03 - }, - "5": { - "x": -2.46, - "y": 25.75 - }, - "6": { - "x": 1.71, - "y": 12.12 - }, - "7": { - "x": 16.29, - "y": 0.28 - }, - "8": { - "x": 3.25, - "y": 22.2 - }, - "9": { - "x": 17.57, - "y": -18.46 - }, - "10": { - "x": 18.9, - "y": 29.64 - }, - "11": { - "x": 22.04, - "y": 15.92 - } - }, - { - "index": 52, - "ball": { - "x": 9.58, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -4.36, - "y": -5.3 - }, - "3": { - "x": -4.36, - "y": 5.3 - }, - "4": { - "x": -4.36, - "y": -17.44 - }, - "5": { - "x": -4.36, - "y": 17.44 - }, - "6": { - "x": 0.91, - "y": -0.62 - }, - "7": { - "x": 5.26, - "y": -12.1 - }, - "8": { - "x": 5.26, - "y": 12.1 - }, - "9": { - "x": 14.64, - "y": -25.04 - }, - "10": { - "x": 14.64, - "y": 25.04 - }, - "11": { - "x": 17.81, - "y": -1.03 - } - }, - { - "index": 53, - "ball": { - "x": 18.58, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 0.85, - "y": -5.51 - }, - "3": { - "x": 0.85, - "y": 5.51 - }, - "4": { - "x": 0.85, - "y": -16.43 - }, - "5": { - "x": 0.85, - "y": 16.43 - }, - "6": { - "x": 7.52, - "y": -2.11 - }, - "7": { - "x": 11.95, - "y": -11.59 - }, - "8": { - "x": 11.95, - "y": 11.59 - }, - "9": { - "x": 20.57, - "y": -25.76 - }, - "10": { - "x": 20.57, - "y": 25.76 - }, - "11": { - "x": 25.23, - "y": -0.34 - } - }, - { - "index": 54, - "ball": { - "x": 3.83, - "y": -20.2 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -9.01, - "y": -15.58 - }, - "3": { - "x": -9.01, - "y": -2.33 - }, - "4": { - "x": -9.01, - "y": -24.18 - }, - "5": { - "x": -9.01, - "y": 11.76 - }, - "6": { - "x": -4.47, - "y": -9.91 - }, - "7": { - "x": -3.05, - "y": -19.66 - }, - "8": { - "x": 10.11, - "y": 2.0 - }, - "9": { - "x": 11.32, - "y": -27.46 - }, - "10": { - "x": 11.22, - "y": 18.5 - }, - "11": { - "x": 15.55, - "y": -14.21 - } - }, - { - "index": 55, - "ball": { - "x": 3.83, - "y": 20.2 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -9.01, - "y": 2.33 - }, - "3": { - "x": -9.01, - "y": 15.58 - }, - "4": { - "x": -9.01, - "y": -11.76 - }, - "5": { - "x": -9.01, - "y": 24.18 - }, - "6": { - "x": -4.47, - "y": 9.91 - }, - "7": { - "x": 10.11, - "y": -2.0 - }, - "8": { - "x": -3.05, - "y": 19.66 - }, - "9": { - "x": 11.22, - "y": -18.5 - }, - "10": { - "x": 11.32, - "y": 27.46 - }, - "11": { - "x": 15.55, - "y": 14.21 - } - }, - { - "index": 56, - "ball": { - "x": 6.19, - "y": -10.32 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -6.46, - "y": -10.81 - }, - "3": { - "x": -6.46, - "y": 2.54 - }, - "4": { - "x": -6.46, - "y": -20.75 - }, - "5": { - "x": -6.46, - "y": 13.99 - }, - "6": { - "x": -2.15, - "y": -5.86 - }, - "7": { - "x": -0.16, - "y": -16.34 - }, - "8": { - "x": 9.32, - "y": 6.62 - }, - "9": { - "x": 11.66, - "y": -29.11 - }, - "10": { - "x": 12.63, - "y": 18.96 - }, - "11": { - "x": 16.23, - "y": -9.25 - } - }, - { - "index": 57, - "ball": { - "x": 6.19, - "y": 10.32 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -6.46, - "y": -2.54 - }, - "3": { - "x": -6.46, - "y": 10.81 - }, - "4": { - "x": -6.46, - "y": -13.99 - }, - "5": { - "x": -6.46, - "y": 20.75 - }, - "6": { - "x": -2.15, - "y": 5.86 - }, - "7": { - "x": 9.32, - "y": -6.62 - }, - "8": { - "x": -0.16, - "y": 16.34 - }, - "9": { - "x": 12.63, - "y": -18.96 - }, - "10": { - "x": 11.66, - "y": 29.11 - }, - "11": { - "x": 16.23, - "y": 9.25 - } - }, - { - "index": 58, - "ball": { - "x": 10.47, - "y": -29.78 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -2.76, - "y": -19.92 - }, - "3": { - "x": -2.76, - "y": -5.51 - }, - "4": { - "x": -2.76, - "y": -27.98 - }, - "5": { - "x": -2.76, - "y": 9.34 - }, - "6": { - "x": 0.92, - "y": -14.14 - }, - "7": { - "x": 3.65, - "y": -23.76 - }, - "8": { - "x": 14.34, - "y": -1.54 - }, - "9": { - "x": 19.43, - "y": -31.04 - }, - "10": { - "x": 18.15, - "y": 18.08 - }, - "11": { - "x": 21.84, - "y": -17.79 - } - }, - { - "index": 59, - "ball": { - "x": 10.47, - "y": 29.78 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -2.76, - "y": 5.51 - }, - "3": { - "x": -2.76, - "y": 19.92 - }, - "4": { - "x": -2.76, - "y": -9.34 - }, - "5": { - "x": -2.76, - "y": 27.98 - }, - "6": { - "x": 0.92, - "y": 14.14 - }, - "7": { - "x": 14.34, - "y": 1.54 - }, - "8": { - "x": 3.65, - "y": 23.76 - }, - "9": { - "x": 18.15, - "y": -18.08 - }, - "10": { - "x": 19.43, - "y": 31.04 - }, - "11": { - "x": 21.84, - "y": 17.79 - } - }, - { - "index": 60, - "ball": { - "x": 13.27, - "y": -33.18 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -2.12, - "y": -19.39 - }, - "3": { - "x": -2.12, - "y": -3.39 - }, - "4": { - "x": -2.12, - "y": -28.61 - }, - "5": { - "x": -2.12, - "y": 8.33 - }, - "6": { - "x": 3.2, - "y": -15.64 - }, - "7": { - "x": 7.31, - "y": -25.26 - }, - "8": { - "x": 15.53, - "y": -2.38 - }, - "9": { - "x": 22.52, - "y": -31.88 - }, - "10": { - "x": 21.76, - "y": 17.76 - }, - "11": { - "x": 24.21, - "y": -18.79 - } - }, - { - "index": 61, - "ball": { - "x": 13.27, - "y": 33.18 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -2.12, - "y": 3.39 - }, - "3": { - "x": -2.12, - "y": 19.39 - }, - "4": { - "x": -2.12, - "y": -8.33 - }, - "5": { - "x": -2.12, - "y": 28.61 - }, - "6": { - "x": 3.2, - "y": 15.64 - }, - "7": { - "x": 15.53, - "y": 2.38 - }, - "8": { - "x": 7.31, - "y": 25.26 - }, - "9": { - "x": 21.76, - "y": -17.76 - }, - "10": { - "x": 22.52, - "y": 31.88 - }, - "11": { - "x": 24.21, - "y": 18.79 - } - }, - { - "index": 62, - "ball": { - "x": -16.96, - "y": -30.52 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -23.33, - "y": -18.45 - }, - "3": { - "x": -23.33, - "y": -4.34 - }, - "4": { - "x": -23.33, - "y": -29.67 - }, - "5": { - "x": -23.33, - "y": 9.35 - }, - "6": { - "x": -19.24, - "y": -13.98 - }, - "7": { - "x": -19.38, - "y": -24.33 - }, - "8": { - "x": -14.1, - "y": -0.07 - }, - "9": { - "x": 0.44, - "y": -30.41 - }, - "10": { - "x": -4.28, - "y": 17.04 - }, - "11": { - "x": 0.06, - "y": -9.81 - } - }, - { - "index": 63, - "ball": { - "x": -16.96, - "y": 30.52 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -23.33, - "y": 4.34 - }, - "3": { - "x": -23.33, - "y": 18.45 - }, - "4": { - "x": -23.33, - "y": -9.35 - }, - "5": { - "x": -23.33, - "y": 29.67 - }, - "6": { - "x": -19.24, - "y": 13.98 - }, - "7": { - "x": -14.1, - "y": 0.07 - }, - "8": { - "x": -19.38, - "y": 24.33 - }, - "9": { - "x": -4.28, - "y": -17.04 - }, - "10": { - "x": 0.44, - "y": 30.41 - }, - "11": { - "x": 0.06, - "y": 9.81 - } - }, - { - "index": 64, - "ball": { - "x": -4.28, - "y": -16.81 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -14.2, - "y": -16.11 - }, - "3": { - "x": -14.2, - "y": -4.45 - }, - "4": { - "x": -14.2, - "y": -23.74 - }, - "5": { - "x": -14.2, - "y": 10.28 - }, - "6": { - "x": -8.8, - "y": -11.13 - }, - "7": { - "x": -3.79, - "y": -19.5 - }, - "8": { - "x": -11.25, - "y": 3.4 - }, - "9": { - "x": 6.03, - "y": -29.81 - }, - "10": { - "x": 2.6, - "y": 22.3 - }, - "11": { - "x": 5.59, - "y": -8.48 - } - }, - { - "index": 65, - "ball": { - "x": -4.28, - "y": 16.81 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -14.2, - "y": 4.45 - }, - "3": { - "x": -14.2, - "y": 16.11 - }, - "4": { - "x": -14.2, - "y": -10.28 - }, - "5": { - "x": -14.2, - "y": 23.74 - }, - "6": { - "x": -8.8, - "y": 11.13 - }, - "7": { - "x": -11.25, - "y": -3.4 - }, - "8": { - "x": -3.79, - "y": 19.5 - }, - "9": { - "x": 2.6, - "y": -22.3 - }, - "10": { - "x": 6.03, - "y": 29.81 - }, - "11": { - "x": 5.59, - "y": 8.48 - } - }, - { - "index": 66, - "ball": { - "x": -7.08, - "y": -27.57 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -14.46, - "y": -19.34 - }, - "3": { - "x": -14.46, - "y": -4.77 - }, - "4": { - "x": -14.46, - "y": -27.55 - }, - "5": { - "x": -14.46, - "y": 10.45 - }, - "6": { - "x": -10.91, - "y": -14.26 - }, - "7": { - "x": -6.54, - "y": -22.94 - }, - "8": { - "x": -6.22, - "y": 1.56 - }, - "9": { - "x": 6.84, - "y": -30.97 - }, - "10": { - "x": 1.32, - "y": 18.51 - }, - "11": { - "x": 6.91, - "y": -10.52 - } - }, - { - "index": 67, - "ball": { - "x": -7.08, - "y": 27.57 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -14.46, - "y": 4.77 - }, - "3": { - "x": -14.46, - "y": 19.34 - }, - "4": { - "x": -14.46, - "y": -10.45 - }, - "5": { - "x": -14.46, - "y": 27.55 - }, - "6": { - "x": -10.91, - "y": 14.26 - }, - "7": { - "x": -6.22, - "y": -1.56 - }, - "8": { - "x": -6.54, - "y": 22.94 - }, - "9": { - "x": 1.32, - "y": -18.51 - }, - "10": { - "x": 6.84, - "y": 30.97 - }, - "11": { - "x": 6.91, - "y": 10.52 - } - }, - { - "index": 68, - "ball": { - "x": -7.96, - "y": -31.41 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -14.84, - "y": -21.3 - }, - "3": { - "x": -14.84, - "y": -4.24 - }, - "4": { - "x": -14.84, - "y": -30.2 - }, - "5": { - "x": -14.84, - "y": 11.0 - }, - "6": { - "x": -11.44, - "y": -14.98 - }, - "7": { - "x": -7.63, - "y": -24.27 - }, - "8": { - "x": -6.86, - "y": 0.18 - }, - "9": { - "x": 7.39, - "y": -31.3 - }, - "10": { - "x": 1.09, - "y": 17.04 - }, - "11": { - "x": 8.36, - "y": -10.67 - } - }, - { - "index": 69, - "ball": { - "x": -7.96, - "y": 31.41 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -14.84, - "y": 4.24 - }, - "3": { - "x": -14.84, - "y": 21.3 - }, - "4": { - "x": -14.84, - "y": -11.0 - }, - "5": { - "x": -14.84, - "y": 30.2 - }, - "6": { - "x": -11.44, - "y": 14.98 - }, - "7": { - "x": -6.86, - "y": -0.18 - }, - "8": { - "x": -7.63, - "y": 24.27 - }, - "9": { - "x": 1.09, - "y": -17.04 - }, - "10": { - "x": 7.39, - "y": 31.3 - }, - "11": { - "x": 8.36, - "y": 10.67 - } - }, - { - "index": 70, - "ball": { - "x": -23.89, - "y": -34.21 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -31.09, - "y": -19.09 - }, - "3": { - "x": -31.18, - "y": -8.56 - }, - "4": { - "x": -31.0, - "y": -29.26 - }, - "5": { - "x": -31.36, - "y": 5.71 - }, - "6": { - "x": -28.33, - "y": -15.08 - }, - "7": { - "x": -24.4, - "y": -27.57 - }, - "8": { - "x": -21.81, - "y": -5.98 - }, - "9": { - "x": -3.39, - "y": -30.07 - }, - "10": { - "x": -7.83, - "y": 15.33 - }, - "11": { - "x": -3.41, - "y": -8.93 - } - }, - { - "index": 71, - "ball": { - "x": -23.89, - "y": 34.21 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -31.18, - "y": 8.56 - }, - "3": { - "x": -31.09, - "y": 19.09 - }, - "4": { - "x": -31.36, - "y": -5.71 - }, - "5": { - "x": -31.0, - "y": 29.26 - }, - "6": { - "x": -28.33, - "y": 15.08 - }, - "7": { - "x": -21.81, - "y": 5.98 - }, - "8": { - "x": -24.4, - "y": 27.57 - }, - "9": { - "x": -7.83, - "y": -15.33 - }, - "10": { - "x": -3.39, - "y": 30.07 - }, - "11": { - "x": -3.41, - "y": 8.93 - } - }, - { - "index": 72, - "ball": { - "x": -54.5, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -48.76, - "y": -3.3 - }, - "3": { - "x": -48.76, - "y": 3.3 - }, - "4": { - "x": -50.99, - "y": -5.44 - }, - "5": { - "x": -50.99, - "y": 5.44 - }, - "6": { - "x": -45.54, - "y": 0.27 - }, - "7": { - "x": -41.98, - "y": -6.6 - }, - "8": { - "x": -41.98, - "y": 6.6 - }, - "9": { - "x": -23.83, - "y": -22.2 - }, - "10": { - "x": -23.83, - "y": 22.2 - }, - "11": { - "x": -30.03, - "y": 4.57 - } - }, - { - "index": 73, - "ball": { - "x": -19.61, - "y": -5.46 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -29.4, - "y": -5.17 - }, - "3": { - "x": -29.4, - "y": 1.7 - }, - "4": { - "x": -29.4, - "y": -14.19 - }, - "5": { - "x": -29.4, - "y": 10.35 - }, - "6": { - "x": -26.9, - "y": -2.32 - }, - "7": { - "x": -26.4, - "y": -9.94 - }, - "8": { - "x": -25.74, - "y": 6.02 - }, - "9": { - "x": -6.06, - "y": -26.78 - }, - "10": { - "x": -6.72, - "y": 24.53 - }, - "11": { - "x": -8.99, - "y": -3.01 - } - }, - { - "index": 74, - "ball": { - "x": -19.61, - "y": 5.46 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -29.4, - "y": -1.7 - }, - "3": { - "x": -29.4, - "y": 5.17 - }, - "4": { - "x": -29.4, - "y": -10.35 - }, - "5": { - "x": -29.4, - "y": 14.19 - }, - "6": { - "x": -26.9, - "y": 2.32 - }, - "7": { - "x": -25.74, - "y": -6.02 - }, - "8": { - "x": -26.4, - "y": 9.94 - }, - "9": { - "x": -6.72, - "y": -24.53 - }, - "10": { - "x": -6.06, - "y": 26.78 - }, - "11": { - "x": -8.99, - "y": 3.01 - } - }, - { - "index": 75, - "ball": { - "x": -7.96, - "y": -7.37 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -15.46, - "y": -9.85 - }, - "3": { - "x": -15.46, - "y": 0.32 - }, - "4": { - "x": -15.46, - "y": -18.86 - }, - "5": { - "x": -15.46, - "y": 12.51 - }, - "6": { - "x": -12.21, - "y": -6.37 - }, - "7": { - "x": -11.75, - "y": -14.53 - }, - "8": { - "x": -12.4, - "y": 5.44 - }, - "9": { - "x": 1.69, - "y": -28.01 - }, - "10": { - "x": 0.38, - "y": 24.81 - }, - "11": { - "x": 0.76, - "y": -4.5 - } - }, - { - "index": 76, - "ball": { - "x": -7.96, - "y": 7.37 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -15.46, - "y": -0.32 - }, - "3": { - "x": -15.46, - "y": 9.85 - }, - "4": { - "x": -15.46, - "y": -12.51 - }, - "5": { - "x": -15.46, - "y": 18.86 - }, - "6": { - "x": -12.21, - "y": 6.37 - }, - "7": { - "x": -12.4, - "y": -5.44 - }, - "8": { - "x": -11.75, - "y": 14.53 - }, - "9": { - "x": 0.38, - "y": -24.81 - }, - "10": { - "x": 1.69, - "y": 28.01 - }, - "11": { - "x": 0.76, - "y": 4.5 - } - }, - { - "index": 77, - "ball": { - "x": -5.31, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -14.59, - "y": -4.5 - }, - "3": { - "x": -14.59, - "y": 4.5 - }, - "4": { - "x": -14.59, - "y": -16.26 - }, - "5": { - "x": -14.59, - "y": 16.26 - }, - "6": { - "x": -9.26, - "y": -1.26 - }, - "7": { - "x": -11.66, - "y": -9.54 - }, - "8": { - "x": -11.66, - "y": 9.54 - }, - "9": { - "x": 2.61, - "y": -26.72 - }, - "10": { - "x": 2.61, - "y": 26.72 - }, - "11": { - "x": 2.2, - "y": -0.09 - } - }, - { - "index": 78, - "ball": { - "x": -2.06, - "y": -11.35 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -12.72, - "y": -12.51 - }, - "3": { - "x": -12.72, - "y": -1.8 - }, - "4": { - "x": -12.72, - "y": -20.98 - }, - "5": { - "x": -12.72, - "y": 10.81 - }, - "6": { - "x": -6.73, - "y": -8.68 - }, - "7": { - "x": -1.72, - "y": -17.72 - }, - "8": { - "x": -8.14, - "y": 4.87 - }, - "9": { - "x": 6.48, - "y": -29.12 - }, - "10": { - "x": 4.06, - "y": 24.04 - }, - "11": { - "x": 6.06, - "y": -6.47 - } - }, - { - "index": 79, - "ball": { - "x": -2.06, - "y": 11.35 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -12.72, - "y": 1.8 - }, - "3": { - "x": -12.72, - "y": 12.51 - }, - "4": { - "x": -12.72, - "y": -10.81 - }, - "5": { - "x": -12.72, - "y": 20.98 - }, - "6": { - "x": -6.73, - "y": 8.68 - }, - "7": { - "x": -8.14, - "y": -4.87 - }, - "8": { - "x": -1.72, - "y": 17.72 - }, - "9": { - "x": 4.06, - "y": -24.04 - }, - "10": { - "x": 6.48, - "y": 29.12 - }, - "11": { - "x": 6.06, - "y": 6.47 - } - }, - { - "index": 80, - "ball": { - "x": -3.39, - "y": -5.9 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -14.2, - "y": -9.33 - }, - "3": { - "x": -14.2, - "y": 0.85 - }, - "4": { - "x": -14.2, - "y": -19.08 - }, - "5": { - "x": -14.2, - "y": 12.29 - }, - "6": { - "x": -7.76, - "y": -5.48 - }, - "7": { - "x": -11.01, - "y": -14.53 - }, - "8": { - "x": -10.52, - "y": 6.83 - }, - "9": { - "x": 4.62, - "y": -28.05 - }, - "10": { - "x": 3.43, - "y": 25.44 - }, - "11": { - "x": 4.7, - "y": -3.75 - } - }, - { - "index": 81, - "ball": { - "x": -3.39, - "y": 5.9 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -14.2, - "y": -0.85 - }, - "3": { - "x": -14.2, - "y": 9.33 - }, - "4": { - "x": -14.2, - "y": -12.29 - }, - "5": { - "x": -14.2, - "y": 19.08 - }, - "6": { - "x": -7.76, - "y": 5.48 - }, - "7": { - "x": -10.52, - "y": -6.83 - }, - "8": { - "x": -11.01, - "y": 14.53 - }, - "9": { - "x": 3.43, - "y": -25.44 - }, - "10": { - "x": 4.62, - "y": 28.05 - }, - "11": { - "x": 4.7, - "y": 3.75 - } - }, - { - "index": 82, - "ball": { - "x": -9.44, - "y": -24.77 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -15.46, - "y": -17.59 - }, - "3": { - "x": -15.46, - "y": -3.6 - }, - "4": { - "x": -15.46, - "y": -24.9 - }, - "5": { - "x": -15.46, - "y": 9.54 - }, - "6": { - "x": -13.12, - "y": -13.42 - }, - "7": { - "x": -8.86, - "y": -21.71 - }, - "8": { - "x": -8.23, - "y": 2.36 - }, - "9": { - "x": 4.27, - "y": -30.45 - }, - "10": { - "x": -0.29, - "y": 19.43 - }, - "11": { - "x": 3.59, - "y": -10.02 - } - }, - { - "index": 83, - "ball": { - "x": -9.44, - "y": 24.77 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -15.46, - "y": 3.6 - }, - "3": { - "x": -15.46, - "y": 17.59 - }, - "4": { - "x": -15.46, - "y": -9.54 - }, - "5": { - "x": -15.46, - "y": 24.9 - }, - "6": { - "x": -13.12, - "y": 13.42 - }, - "7": { - "x": -8.23, - "y": -2.36 - }, - "8": { - "x": -8.86, - "y": 21.71 - }, - "9": { - "x": -0.29, - "y": -19.43 - }, - "10": { - "x": 4.27, - "y": 30.45 - }, - "11": { - "x": 3.59, - "y": 10.02 - } - }, - { - "index": 84, - "ball": { - "x": -12.39, - "y": -12.39 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -20.15, - "y": -11.98 - }, - "3": { - "x": -20.15, - "y": -1.72 - }, - "4": { - "x": -20.15, - "y": -20.92 - }, - "5": { - "x": -20.15, - "y": 9.72 - }, - "6": { - "x": -16.37, - "y": -8.83 - }, - "7": { - "x": -11.58, - "y": -16.74 - }, - "8": { - "x": -17.07, - "y": 3.81 - }, - "9": { - "x": -0.53, - "y": -28.52 - }, - "10": { - "x": -2.47, - "y": 23.22 - }, - "11": { - "x": -2.1, - "y": -6.61 - } - }, - { - "index": 85, - "ball": { - "x": -12.39, - "y": 12.39 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -20.15, - "y": 1.72 - }, - "3": { - "x": -20.15, - "y": 11.98 - }, - "4": { - "x": -20.15, - "y": -9.72 - }, - "5": { - "x": -20.15, - "y": 20.92 - }, - "6": { - "x": -16.37, - "y": 8.83 - }, - "7": { - "x": -17.07, - "y": -3.81 - }, - "8": { - "x": -11.58, - "y": 16.74 - }, - "9": { - "x": -2.47, - "y": -23.22 - }, - "10": { - "x": -0.53, - "y": 28.52 - }, - "11": { - "x": -2.1, - "y": 6.61 - } - }, - { - "index": 86, - "ball": { - "x": -16.37, - "y": -15.78 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -28.06, - "y": -10.88 - }, - "3": { - "x": -28.06, - "y": -3.3 - }, - "4": { - "x": -28.06, - "y": -22.93 - }, - "5": { - "x": -28.06, - "y": 8.65 - }, - "6": { - "x": -25.74, - "y": -7.4 - }, - "7": { - "x": -21.9, - "y": -17.58 - }, - "8": { - "x": -24.13, - "y": 1.96 - }, - "9": { - "x": -2.6, - "y": -28.7 - }, - "10": { - "x": -4.82, - "y": 22.01 - }, - "11": { - "x": -4.48, - "y": -7.55 - } - }, - { - "index": 87, - "ball": { - "x": -16.37, - "y": 15.78 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -28.06, - "y": 3.3 - }, - "3": { - "x": -28.06, - "y": 10.88 - }, - "4": { - "x": -28.06, - "y": -8.65 - }, - "5": { - "x": -28.06, - "y": 22.93 - }, - "6": { - "x": -25.74, - "y": 7.4 - }, - "7": { - "x": -24.13, - "y": -1.96 - }, - "8": { - "x": -21.9, - "y": 17.58 - }, - "9": { - "x": -4.82, - "y": -22.01 - }, - "10": { - "x": -2.6, - "y": 28.7 - }, - "11": { - "x": -4.48, - "y": 7.55 - } - }, - { - "index": 88, - "ball": { - "x": -32.73, - "y": -29.19 - }, - "1": { - "x": -50.45, - "y": -4.19 - }, - "2": { - "x": -35.2, - "y": -19.18 - }, - "3": { - "x": -35.2, - "y": -8.48 - }, - "4": { - "x": -35.2, - "y": -25.96 - }, - "5": { - "x": -35.2, - "y": 0.98 - }, - "6": { - "x": -35.2, - "y": -14.45 - }, - "7": { - "x": -32.43, - "y": -24.62 - }, - "8": { - "x": -28.77, - "y": -4.1 - }, - "9": { - "x": -10.38, - "y": -28.63 - }, - "10": { - "x": -13.04, - "y": 16.63 - }, - "11": { - "x": -12.0, - "y": -7.92 - } - }, - { - "index": 89, - "ball": { - "x": -32.73, - "y": 29.19 - }, - "1": { - "x": -50.45, - "y": 4.19 - }, - "2": { - "x": -35.2, - "y": 8.48 - }, - "3": { - "x": -35.2, - "y": 19.18 - }, - "4": { - "x": -35.2, - "y": -0.98 - }, - "5": { - "x": -35.2, - "y": 25.96 - }, - "6": { - "x": -35.2, - "y": 14.45 - }, - "7": { - "x": -28.77, - "y": 4.1 - }, - "8": { - "x": -32.43, - "y": 24.62 - }, - "9": { - "x": -13.04, - "y": -16.63 - }, - "10": { - "x": -10.38, - "y": 28.63 - }, - "11": { - "x": -12.0, - "y": 7.92 - } - }, - { - "index": 90, - "ball": { - "x": -24.03, - "y": -17.55 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -31.63, - "y": -12.22 - }, - "3": { - "x": -31.63, - "y": -3.75 - }, - "4": { - "x": -31.63, - "y": -19.9 - }, - "5": { - "x": -31.63, - "y": 6.25 - }, - "6": { - "x": -29.75, - "y": -8.65 - }, - "7": { - "x": -26.45, - "y": -16.86 - }, - "8": { - "x": -28.2, - "y": 0.53 - }, - "9": { - "x": -7.22, - "y": -28.24 - }, - "10": { - "x": -9.15, - "y": 21.01 - }, - "11": { - "x": -9.46, - "y": -7.39 - } - }, - { - "index": 91, - "ball": { - "x": -24.03, - "y": 17.55 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -31.63, - "y": 3.75 - }, - "3": { - "x": -31.63, - "y": 12.22 - }, - "4": { - "x": -31.63, - "y": -6.25 - }, - "5": { - "x": -31.63, - "y": 19.9 - }, - "6": { - "x": -29.75, - "y": 8.65 - }, - "7": { - "x": -28.2, - "y": -0.53 - }, - "8": { - "x": -26.45, - "y": 16.86 - }, - "9": { - "x": -9.15, - "y": -21.01 - }, - "10": { - "x": -7.22, - "y": 28.24 - }, - "11": { - "x": -9.46, - "y": 7.39 - } - }, - { - "index": 92, - "ball": { - "x": -31.26, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -35.2, - "y": -1.96 - }, - "3": { - "x": -35.2, - "y": 1.96 - }, - "4": { - "x": -35.2, - "y": -9.55 - }, - "5": { - "x": -35.2, - "y": 9.55 - }, - "6": { - "x": -32.79, - "y": -0.09 - }, - "7": { - "x": -34.09, - "y": -6.02 - }, - "8": { - "x": -34.09, - "y": 6.02 - }, - "9": { - "x": -13.07, - "y": -24.74 - }, - "10": { - "x": -13.07, - "y": 24.74 - }, - "11": { - "x": -18.33, - "y": 1.17 - } - }, - { - "index": 93, - "ball": { - "x": -29.34, - "y": -15.33 - }, - "1": { - "x": -50.18, - "y": -3.66 - }, - "2": { - "x": -36.18, - "y": -11.42 - }, - "3": { - "x": -36.18, - "y": -2.72 - }, - "4": { - "x": -36.18, - "y": -15.43 - }, - "5": { - "x": -35.97, - "y": 6.83 - }, - "6": { - "x": -36.18, - "y": -7.58 - }, - "7": { - "x": -26.82, - "y": -15.97 - }, - "8": { - "x": -34.5, - "y": 1.51 - }, - "9": { - "x": -10.73, - "y": -27.4 - }, - "10": { - "x": -12.11, - "y": 21.27 - }, - "11": { - "x": -13.3, - "y": -6.21 - } - }, - { - "index": 94, - "ball": { - "x": -29.34, - "y": 15.33 - }, - "1": { - "x": -50.18, - "y": 3.66 - }, - "2": { - "x": -36.18, - "y": 2.72 - }, - "3": { - "x": -36.18, - "y": 11.42 - }, - "4": { - "x": -35.97, - "y": -6.83 - }, - "5": { - "x": -36.18, - "y": 15.43 - }, - "6": { - "x": -36.18, - "y": 7.58 - }, - "7": { - "x": -34.5, - "y": -1.51 - }, - "8": { - "x": -26.82, - "y": 15.97 - }, - "9": { - "x": -12.11, - "y": -21.27 - }, - "10": { - "x": -10.73, - "y": 27.4 - }, - "11": { - "x": -13.3, - "y": 6.21 - } - }, - { - "index": 95, - "ball": { - "x": -37.01, - "y": -33.03 - }, - "1": { - "x": -50.63, - "y": -4.91 - }, - "2": { - "x": -38.41, - "y": -17.84 - }, - "3": { - "x": -38.41, - "y": -8.3 - }, - "4": { - "x": -38.41, - "y": -28.28 - }, - "5": { - "x": -38.41, - "y": 2.14 - }, - "6": { - "x": -36.98, - "y": -15.52 - }, - "7": { - "x": -35.11, - "y": -25.78 - }, - "8": { - "x": -30.02, - "y": -7.05 - }, - "9": { - "x": -12.13, - "y": -28.47 - }, - "10": { - "x": -14.85, - "y": 14.96 - }, - "11": { - "x": -14.23, - "y": -6.96 - } - }, - { - "index": 96, - "ball": { - "x": -37.01, - "y": 33.03 - }, - "1": { - "x": -50.63, - "y": 4.91 - }, - "2": { - "x": -38.41, - "y": 8.3 - }, - "3": { - "x": -38.41, - "y": 17.84 - }, - "4": { - "x": -38.41, - "y": -2.14 - }, - "5": { - "x": -38.41, - "y": 28.28 - }, - "6": { - "x": -36.98, - "y": 15.52 - }, - "7": { - "x": -30.02, - "y": 7.05 - }, - "8": { - "x": -35.11, - "y": 25.78 - }, - "9": { - "x": -14.85, - "y": -14.96 - }, - "10": { - "x": -12.13, - "y": 28.47 - }, - "11": { - "x": -14.23, - "y": 6.96 - } - }, - { - "index": 97, - "ball": { - "x": -54.5, - "y": -36.0 - }, - "1": { - "x": -50.99, - "y": -6.07 - }, - "2": { - "x": -49.02, - "y": -15.7 - }, - "3": { - "x": -47.51, - "y": -3.84 - }, - "4": { - "x": -49.38, - "y": -26.05 - }, - "5": { - "x": -47.95, - "y": 2.05 - }, - "6": { - "x": -41.44, - "y": -16.51 - }, - "7": { - "x": -42.78, - "y": -25.34 - }, - "8": { - "x": -38.32, - "y": -5.35 - }, - "9": { - "x": -20.87, - "y": -26.29 - }, - "10": { - "x": -22.49, - "y": 12.44 - }, - "11": { - "x": -21.63, - "y": -4.01 - } - }, - { - "index": 98, - "ball": { - "x": -54.5, - "y": 36.0 - }, - "1": { - "x": -50.99, - "y": 6.07 - }, - "2": { - "x": -47.51, - "y": 3.84 - }, - "3": { - "x": -49.02, - "y": 15.7 - }, - "4": { - "x": -47.95, - "y": -2.05 - }, - "5": { - "x": -49.38, - "y": 26.05 - }, - "6": { - "x": -41.44, - "y": 16.51 - }, - "7": { - "x": -38.32, - "y": 5.35 - }, - "8": { - "x": -42.78, - "y": 25.34 - }, - "9": { - "x": -22.49, - "y": -12.44 - }, - "10": { - "x": -20.87, - "y": 26.29 - }, - "11": { - "x": -21.63, - "y": 4.01 - } - }, - { - "index": 99, - "ball": { - "x": -48.66, - "y": -22.71 - }, - "1": { - "x": -50.72, - "y": -6.07 - }, - "2": { - "x": -47.6, - "y": -10.53 - }, - "3": { - "x": -46.08, - "y": -3.12 - }, - "4": { - "x": -48.49, - "y": -18.65 - }, - "5": { - "x": -43.58, - "y": 3.75 - }, - "6": { - "x": -44.3, - "y": -13.29 - }, - "7": { - "x": -40.32, - "y": -17.03 - }, - "8": { - "x": -41.17, - "y": -5.8 - }, - "9": { - "x": -19.94, - "y": -26.01 - }, - "10": { - "x": -21.01, - "y": 17.44 - }, - "11": { - "x": -22.62, - "y": -5.8 - } - }, - { - "index": 100, - "ball": { - "x": -37.78, - "y": 0.18 - }, - "1": { - "x": -50.26, - "y": -0.0 - }, - "2": { - "x": -42.39, - "y": -1.37 - }, - "3": { - "x": -42.39, - "y": 1.37 - }, - "4": { - "x": -45.28, - "y": -3.66 - }, - "5": { - "x": -45.28, - "y": 3.66 - }, - "6": { - "x": -38.37, - "y": -0.02 - }, - "7": { - "x": -40.19, - "y": -6.6 - }, - "8": { - "x": -40.19, - "y": 6.6 - }, - "9": { - "x": -16.28, - "y": -23.92 - }, - "10": { - "x": -16.28, - "y": 23.92 - }, - "11": { - "x": -23.52, - "y": 0.3 - } - }, - { - "index": 101, - "ball": { - "x": -40.37, - "y": 6.96 - }, - "1": { - "x": -50.35, - "y": 1.51 - }, - "2": { - "x": -45.01, - "y": 2.5 - }, - "3": { - "x": -43.4, - "y": 5.09 - }, - "4": { - "x": -47.69, - "y": -2.32 - }, - "5": { - "x": -45.19, - "y": 7.4 - }, - "6": { - "x": -40.28, - "y": 2.94 - }, - "7": { - "x": -40.73, - "y": -1.43 - }, - "8": { - "x": -40.99, - "y": 7.05 - }, - "9": { - "x": -17.58, - "y": -22.32 - }, - "10": { - "x": -17.17, - "y": 24.96 - }, - "11": { - "x": -25.29, - "y": 2.72 - } - }, - { - "index": 102, - "ball": { - "x": -40.37, - "y": -6.96 - }, - "1": { - "x": -50.35, - "y": -1.51 - }, - "2": { - "x": -43.4, - "y": -5.09 - }, - "3": { - "x": -45.01, - "y": -2.5 - }, - "4": { - "x": -45.19, - "y": -7.4 - }, - "5": { - "x": -47.69, - "y": 2.32 - }, - "6": { - "x": -40.28, - "y": -2.94 - }, - "7": { - "x": -40.99, - "y": -7.05 - }, - "8": { - "x": -40.73, - "y": 1.43 - }, - "9": { - "x": -17.17, - "y": -24.96 - }, - "10": { - "x": -17.58, - "y": 22.32 - }, - "11": { - "x": -25.29, - "y": -2.72 - } - }, - { - "index": 103, - "ball": { - "x": -37.52, - "y": 13.2 - }, - "1": { - "x": -50.55, - "y": 2.21 - }, - "2": { - "x": -42.42, - "y": 5.0 - }, - "3": { - "x": -40.82, - "y": 8.83 - }, - "4": { - "x": -43.05, - "y": -1.52 - }, - "5": { - "x": -40.1, - "y": 12.49 - }, - "6": { - "x": -39.03, - "y": 6.33 - }, - "7": { - "x": -40.1, - "y": 1.07 - }, - "8": { - "x": -37.78, - "y": 10.44 - }, - "9": { - "x": -16.13, - "y": -21.04 - }, - "10": { - "x": -15.2, - "y": 26.17 - }, - "11": { - "x": -16.1, - "y": 3.57 - } - }, - { - "index": 104, - "ball": { - "x": -37.52, - "y": -13.2 - }, - "1": { - "x": -50.55, - "y": -2.21 - }, - "2": { - "x": -40.82, - "y": -8.83 - }, - "3": { - "x": -42.42, - "y": -5.0 - }, - "4": { - "x": -40.1, - "y": -12.49 - }, - "5": { - "x": -43.05, - "y": 1.52 - }, - "6": { - "x": -39.03, - "y": -6.33 - }, - "7": { - "x": -37.78, - "y": -10.44 - }, - "8": { - "x": -40.1, - "y": -1.07 - }, - "9": { - "x": -15.2, - "y": -26.17 - }, - "10": { - "x": -16.13, - "y": 21.04 - }, - "11": { - "x": -16.1, - "y": -3.57 - } - }, - { - "index": 105, - "ball": { - "x": -44.03, - "y": 15.52 - }, - "1": { - "x": -51.17, - "y": 4.73 - }, - "2": { - "x": -46.88, - "y": 4.46 - }, - "3": { - "x": -44.47, - "y": 12.49 - }, - "4": { - "x": -45.28, - "y": -0.89 - }, - "5": { - "x": -45.99, - "y": 14.01 - }, - "6": { - "x": -42.69, - "y": 8.39 - }, - "7": { - "x": -39.84, - "y": 6.33 - }, - "8": { - "x": -40.55, - "y": 13.29 - }, - "9": { - "x": -19.18, - "y": -19.79 - }, - "10": { - "x": -18.26, - "y": 25.75 - }, - "11": { - "x": -23.06, - "y": 2.94 - } - }, - { - "index": 106, - "ball": { - "x": -44.03, - "y": -15.52 - }, - "1": { - "x": -51.17, - "y": -4.73 - }, - "2": { - "x": -44.47, - "y": -12.49 - }, - "3": { - "x": -46.88, - "y": -4.46 - }, - "4": { - "x": -45.99, - "y": -14.01 - }, - "5": { - "x": -45.28, - "y": 0.89 - }, - "6": { - "x": -42.69, - "y": -8.39 - }, - "7": { - "x": -40.55, - "y": -13.29 - }, - "8": { - "x": -39.84, - "y": -6.33 - }, - "9": { - "x": -18.26, - "y": -25.75 - }, - "10": { - "x": -19.18, - "y": 19.79 - }, - "11": { - "x": -23.06, - "y": -2.94 - } - }, - { - "index": 107, - "ball": { - "x": -50.27, - "y": 16.33 - }, - "1": { - "x": -50.72, - "y": 4.82 - }, - "2": { - "x": -49.74, - "y": 1.25 - }, - "3": { - "x": -50.81, - "y": 11.33 - }, - "4": { - "x": -46.7, - "y": -4.19 - }, - "5": { - "x": -51.43, - "y": 14.1 - }, - "6": { - "x": -47.95, - "y": 10.62 - }, - "7": { - "x": -43.14, - "y": 5.53 - }, - "8": { - "x": -45.63, - "y": 12.85 - }, - "9": { - "x": -21.79, - "y": -18.78 - }, - "10": { - "x": -21.02, - "y": 24.95 - }, - "11": { - "x": -24.85, - "y": 5.0 - } - }, - { - "index": 108, - "ball": { - "x": -50.27, - "y": -16.33 - }, - "1": { - "x": -50.72, - "y": -4.82 - }, - "2": { - "x": -50.81, - "y": -11.33 - }, - "3": { - "x": -49.74, - "y": -1.25 - }, - "4": { - "x": -51.43, - "y": -14.1 - }, - "5": { - "x": -46.7, - "y": 4.19 - }, - "6": { - "x": -47.95, - "y": -10.62 - }, - "7": { - "x": -45.63, - "y": -12.85 - }, - "8": { - "x": -43.14, - "y": -5.53 - }, - "9": { - "x": -21.02, - "y": -24.95 - }, - "10": { - "x": -21.79, - "y": 18.78 - }, - "11": { - "x": -24.85, - "y": -5.0 - } - }, - { - "index": 109, - "ball": { - "x": -48.66, - "y": 22.71 - }, - "1": { - "x": -50.72, - "y": 6.07 - }, - "2": { - "x": -46.08, - "y": 3.12 - }, - "3": { - "x": -47.6, - "y": 10.53 - }, - "4": { - "x": -43.58, - "y": -3.75 - }, - "5": { - "x": -48.49, - "y": 18.65 - }, - "6": { - "x": -44.3, - "y": 13.29 - }, - "7": { - "x": -41.17, - "y": 5.8 - }, - "8": { - "x": -40.32, - "y": 17.03 - }, - "9": { - "x": -21.01, - "y": -17.44 - }, - "10": { - "x": -19.94, - "y": 26.01 - }, - "11": { - "x": -22.62, - "y": 5.8 - } - }, - { - "index": 110, - "ball": { - "x": -39.52, - "y": -28.16 - }, - "1": { - "x": -50.72, - "y": -5.35 - }, - "2": { - "x": -42.24, - "y": -14.99 - }, - "3": { - "x": -42.24, - "y": -5.44 - }, - "4": { - "x": -41.53, - "y": -24.18 - }, - "5": { - "x": -41.26, - "y": 2.05 - }, - "6": { - "x": -38.41, - "y": -14.72 - }, - "7": { - "x": -36.18, - "y": -22.21 - }, - "8": { - "x": -34.75, - "y": -6.07 - }, - "9": { - "x": -14.51, - "y": -27.72 - }, - "10": { - "x": -16.49, - "y": 16.49 - }, - "11": { - "x": -15.21, - "y": -6.6 - } - }, - { - "index": 111, - "ball": { - "x": -39.52, - "y": 28.16 - }, - "1": { - "x": -50.72, - "y": 5.35 - }, - "2": { - "x": -42.24, - "y": 5.44 - }, - "3": { - "x": -42.24, - "y": 14.99 - }, - "4": { - "x": -41.26, - "y": -2.05 - }, - "5": { - "x": -41.53, - "y": 24.18 - }, - "6": { - "x": -38.41, - "y": 14.72 - }, - "7": { - "x": -34.75, - "y": 6.07 - }, - "8": { - "x": -36.18, - "y": 22.21 - }, - "9": { - "x": -16.49, - "y": -16.49 - }, - "10": { - "x": -14.51, - "y": 27.72 - }, - "11": { - "x": -15.21, - "y": 6.6 - } - }, - { - "index": 112, - "ball": { - "x": -39.22, - "y": -22.12 - }, - "1": { - "x": -50.27, - "y": -4.55 - }, - "2": { - "x": -39.75, - "y": -15.61 - }, - "3": { - "x": -41.35, - "y": -5.62 - }, - "4": { - "x": -41.17, - "y": -19.98 - }, - "5": { - "x": -40.82, - "y": 1.07 - }, - "6": { - "x": -38.76, - "y": -11.51 - }, - "7": { - "x": -37.34, - "y": -17.84 - }, - "8": { - "x": -33.95, - "y": -5.35 - }, - "9": { - "x": -15.29, - "y": -27.15 - }, - "10": { - "x": -16.77, - "y": 18.47 - }, - "11": { - "x": -17.89, - "y": -6.51 - } - }, - { - "index": 113, - "ball": { - "x": -39.22, - "y": 22.12 - }, - "1": { - "x": -50.27, - "y": 4.55 - }, - "2": { - "x": -41.35, - "y": 5.62 - }, - "3": { - "x": -39.75, - "y": 15.61 - }, - "4": { - "x": -40.82, - "y": -1.07 - }, - "5": { - "x": -41.17, - "y": 19.98 - }, - "6": { - "x": -38.76, - "y": 11.51 - }, - "7": { - "x": -33.95, - "y": 5.35 - }, - "8": { - "x": -37.34, - "y": 17.84 - }, - "9": { - "x": -16.77, - "y": -18.47 - }, - "10": { - "x": -15.29, - "y": 27.15 - }, - "11": { - "x": -17.89, - "y": 6.51 - } - }, - { - "index": 114, - "ball": { - "x": -46.97, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -50.18, - "y": -1.96 - }, - "3": { - "x": -50.18, - "y": 1.96 - }, - "4": { - "x": -50.54, - "y": -4.01 - }, - "5": { - "x": -50.54, - "y": 4.01 - }, - "6": { - "x": -42.48, - "y": 0.43 - }, - "7": { - "x": -48.04, - "y": -2.05 - }, - "8": { - "x": -48.04, - "y": 2.05 - }, - "9": { - "x": -20.51, - "y": -23.0 - }, - "10": { - "x": -20.51, - "y": 23.0 - }, - "11": { - "x": -25.34, - "y": 1.91 - } - }, - { - "index": 115, - "ball": { - "x": -33.5, - "y": -13.38 - }, - "1": { - "x": -50.32, - "y": -2.56 - }, - "2": { - "x": -36.18, - "y": -10.44 - }, - "3": { - "x": -36.18, - "y": -3.21 - }, - "4": { - "x": -36.18, - "y": -14.81 - }, - "5": { - "x": -36.18, - "y": 6.51 - }, - "6": { - "x": -36.18, - "y": -6.51 - }, - "7": { - "x": -32.16, - "y": -15.97 - }, - "8": { - "x": -35.15, - "y": 1.6 - }, - "9": { - "x": -13.11, - "y": -26.66 - }, - "10": { - "x": -14.19, - "y": 21.38 - }, - "11": { - "x": -15.11, - "y": -4.6 - } - }, - { - "index": 116, - "ball": { - "x": -33.5, - "y": 13.38 - }, - "1": { - "x": -50.32, - "y": 2.56 - }, - "2": { - "x": -36.18, - "y": 3.21 - }, - "3": { - "x": -36.18, - "y": 10.44 - }, - "4": { - "x": -36.18, - "y": -6.51 - }, - "5": { - "x": -36.18, - "y": 14.81 - }, - "6": { - "x": -36.18, - "y": 6.51 - }, - "7": { - "x": -35.15, - "y": -1.6 - }, - "8": { - "x": -32.16, - "y": 15.97 - }, - "9": { - "x": -14.19, - "y": -21.38 - }, - "10": { - "x": -13.11, - "y": 26.66 - }, - "11": { - "x": -15.11, - "y": 4.6 - } - }, - { - "index": 117, - "ball": { - "x": -48.22, - "y": -9.88 - }, - "1": { - "x": -51.17, - "y": -5.0 - }, - "2": { - "x": -47.15, - "y": -6.16 - }, - "3": { - "x": -50.01, - "y": -1.52 - }, - "4": { - "x": -48.94, - "y": -7.85 - }, - "5": { - "x": -48.94, - "y": 4.01 - }, - "6": { - "x": -44.92, - "y": -6.96 - }, - "7": { - "x": -43.67, - "y": -9.19 - }, - "8": { - "x": -45.1, - "y": -0.98 - }, - "9": { - "x": -20.84, - "y": -24.54 - }, - "10": { - "x": -21.27, - "y": 20.92 - }, - "11": { - "x": -25.47, - "y": -2.23 - } - }, - { - "index": 118, - "ball": { - "x": -48.22, - "y": 9.88 - }, - "1": { - "x": -51.17, - "y": 5.0 - }, - "2": { - "x": -50.01, - "y": 1.52 - }, - "3": { - "x": -47.15, - "y": 6.16 - }, - "4": { - "x": -48.94, - "y": -4.01 - }, - "5": { - "x": -48.94, - "y": 7.85 - }, - "6": { - "x": -44.92, - "y": 6.96 - }, - "7": { - "x": -45.1, - "y": 0.98 - }, - "8": { - "x": -43.67, - "y": 9.19 - }, - "9": { - "x": -21.27, - "y": -20.92 - }, - "10": { - "x": -20.84, - "y": 24.54 - }, - "11": { - "x": -25.47, - "y": 2.23 - } - }, - { - "index": 119, - "ball": { - "x": 15.33, - "y": -21.38 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -1.46, - "y": -15.26 - }, - "3": { - "x": -1.46, - "y": -0.64 - }, - "4": { - "x": -1.46, - "y": -25.05 - }, - "5": { - "x": -1.46, - "y": 9.43 - }, - "6": { - "x": 4.93, - "y": -10.62 - }, - "7": { - "x": 4.93, - "y": -21.15 - }, - "8": { - "x": 18.46, - "y": 0.94 - }, - "9": { - "x": 21.33, - "y": -29.66 - }, - "10": { - "x": 20.06, - "y": 18.78 - }, - "11": { - "x": 24.72, - "y": -14.15 - } - }, - { - "index": 120, - "ball": { - "x": 15.33, - "y": 21.38 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -1.46, - "y": 0.64 - }, - "3": { - "x": -1.46, - "y": 15.26 - }, - "4": { - "x": -1.46, - "y": -9.43 - }, - "5": { - "x": -1.46, - "y": 25.05 - }, - "6": { - "x": 4.93, - "y": 10.62 - }, - "7": { - "x": 18.46, - "y": -0.94 - }, - "8": { - "x": 4.93, - "y": 21.15 - }, - "9": { - "x": 20.06, - "y": -18.78 - }, - "10": { - "x": 21.33, - "y": 29.66 - }, - "11": { - "x": 24.72, - "y": 14.15 - } - }, - { - "index": 121, - "ball": { - "x": -23.92, - "y": -28.14 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -31.72, - "y": -18.2 - }, - "3": { - "x": -31.45, - "y": -8.03 - }, - "4": { - "x": -31.63, - "y": -26.94 - }, - "5": { - "x": -31.72, - "y": 4.19 - }, - "6": { - "x": -30.2, - "y": -12.76 - }, - "7": { - "x": -26.36, - "y": -24.18 - }, - "8": { - "x": -24.49, - "y": -3.3 - }, - "9": { - "x": -4.77, - "y": -29.41 - }, - "10": { - "x": -8.3, - "y": 17.4 - }, - "11": { - "x": -5.6, - "y": -8.37 - } - }, - { - "index": 122, - "ball": { - "x": -23.92, - "y": 28.14 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -31.45, - "y": 8.03 - }, - "3": { - "x": -31.72, - "y": 18.2 - }, - "4": { - "x": -31.72, - "y": -4.19 - }, - "5": { - "x": -31.63, - "y": 26.94 - }, - "6": { - "x": -30.2, - "y": 12.76 - }, - "7": { - "x": -24.49, - "y": 3.3 - }, - "8": { - "x": -26.36, - "y": 24.18 - }, - "9": { - "x": -8.3, - "y": -17.4 - }, - "10": { - "x": -4.77, - "y": 29.41 - }, - "11": { - "x": -5.6, - "y": 8.37 - } - }, - { - "index": 123, - "ball": { - "x": -14.31, - "y": -25.22 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -20.46, - "y": -17.4 - }, - "3": { - "x": -20.46, - "y": -4.11 - }, - "4": { - "x": -20.46, - "y": -24.69 - }, - "5": { - "x": -20.46, - "y": 8.95 - }, - "6": { - "x": -17.35, - "y": -12.95 - }, - "7": { - "x": -14.6, - "y": -21.77 - }, - "8": { - "x": -12.2, - "y": 1.89 - }, - "9": { - "x": 1.02, - "y": -30.05 - }, - "10": { - "x": -3.09, - "y": 19.0 - }, - "11": { - "x": 0.14, - "y": -9.48 - } - }, - { - "index": 124, - "ball": { - "x": -14.31, - "y": 25.22 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -20.46, - "y": 4.11 - }, - "3": { - "x": -20.46, - "y": 17.4 - }, - "4": { - "x": -20.46, - "y": -8.95 - }, - "5": { - "x": -20.46, - "y": 24.69 - }, - "6": { - "x": -17.35, - "y": 12.95 - }, - "7": { - "x": -12.2, - "y": -1.89 - }, - "8": { - "x": -14.6, - "y": 21.77 - }, - "9": { - "x": -3.09, - "y": -19.0 - }, - "10": { - "x": 1.02, - "y": 30.05 - }, - "11": { - "x": 0.14, - "y": 9.48 - } - } - ] -} \ No newline at end of file diff --git a/src/formations-dt/setplay-opp-formation.conf b/src/formations-dt/setplay-opp-formation.conf deleted file mode 100644 index 4ed0b00b..00000000 --- a/src/formations-dt/setplay-opp-formation.conf +++ /dev/null @@ -1,2380 +0,0 @@ -{ - "version": "20220408-134548", - "method": "DelaunayTriangulation", - "role": [ - { - "number": 1, - "name": "Goalie", - "type": "G", - "side": "C", - "pair": 0 - }, - { - "number": 2, - "name": "CenterBack", - "type": "DF", - "side": "L", - "pair": 3 - }, - { - "number": 3, - "name": "CenterBack", - "type": "DF", - "side": "R", - "pair": 2 - }, - { - "number": 4, - "name": "SideBack", - "type": "DF", - "side": "L", - "pair": 5 - }, - { - "number": 5, - "name": "SideBack", - "type": "DF", - "side": "R", - "pair": 4 - }, - { - "number": 6, - "name": "DefensiveHalf", - "type": "FW", - "side": "C", - "pair": 0 - }, - { - "number": 7, - "name": "OffensiveHalf", - "type": "MF", - "side": "L", - "pair": 8 - }, - { - "number": 8, - "name": "OffensiveHalf", - "type": "MF", - "side": "R", - "pair": 7 - }, - { - "number": 9, - "name": "SideForward", - "type": "FW", - "side": "L", - "pair": 10 - }, - { - "number": 10, - "name": "SideForward", - "type": "FW", - "side": "R", - "pair": 9 - }, - { - "number": 11, - "name": "CenterForward", - "type": "FW", - "side": "C", - "pair": 0 - } - ], - "data": [ - { - "index": 0, - "ball": { - "x": 0.0, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -11.63, - "y": -4.6 - }, - "3": { - "x": -11.9, - "y": 4.06 - }, - "4": { - "x": -10.09, - "y": -16.13 - }, - "5": { - "x": -9.91, - "y": 14.51 - }, - "6": { - "x": -11.18, - "y": -0.36 - }, - "7": { - "x": -6.58, - "y": -8.2 - }, - "8": { - "x": -7.57, - "y": 8.29 - }, - "9": { - "x": -1.26, - "y": -11.99 - }, - "10": { - "x": -1.8, - "y": 12.17 - }, - "11": { - "x": 11.72, - "y": 0.0 - } - }, - { - "index": 1, - "ball": { - "x": -54.44, - "y": -20.73 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -47.41, - "y": -10.72 - }, - "3": { - "x": -45.24, - "y": -5.14 - }, - "4": { - "x": -50.02, - "y": -17.21 - }, - "5": { - "x": -45.6, - "y": 3.88 - }, - "6": { - "x": -39.73, - "y": -9.8 - }, - "7": { - "x": -40.83, - "y": -15.77 - }, - "8": { - "x": -30.82, - "y": 6.85 - }, - "9": { - "x": -24.78, - "y": -29.47 - }, - "10": { - "x": -14.69, - "y": 21.98 - }, - "11": { - "x": -14.9, - "y": -5.27 - } - }, - { - "index": 2, - "ball": { - "x": -54.44, - "y": 20.73 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -45.24, - "y": 5.14 - }, - "3": { - "x": -47.41, - "y": 10.72 - }, - "4": { - "x": -45.6, - "y": -3.88 - }, - "5": { - "x": -50.02, - "y": 17.21 - }, - "6": { - "x": -39.73, - "y": 9.8 - }, - "7": { - "x": -30.82, - "y": -6.85 - }, - "8": { - "x": -40.83, - "y": 15.77 - }, - "9": { - "x": -14.69, - "y": -21.98 - }, - "10": { - "x": -24.78, - "y": 29.47 - }, - "11": { - "x": -14.9, - "y": 5.27 - } - }, - { - "index": 3, - "ball": { - "x": 45.24, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -0.18, - "y": -6.92 - }, - "3": { - "x": -0.18, - "y": 6.92 - }, - "4": { - "x": 6.47, - "y": -17.34 - }, - "5": { - "x": 6.47, - "y": 17.34 - }, - "6": { - "x": 15.5, - "y": -0.0 - }, - "7": { - "x": 31.36, - "y": -6.2 - }, - "8": { - "x": 31.36, - "y": 6.2 - }, - "9": { - "x": 36.39, - "y": -9.79 - }, - "10": { - "x": 36.39, - "y": 9.79 - }, - "11": { - "x": 35.58, - "y": 0.54 - } - }, - { - "index": 4, - "ball": { - "x": -31.36, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -41.28, - "y": -3.97 - }, - "3": { - "x": -41.19, - "y": 3.97 - }, - "4": { - "x": -40.38, - "y": -8.74 - }, - "5": { - "x": -40.02, - "y": 8.47 - }, - "6": { - "x": -41.46, - "y": -0.27 - }, - "7": { - "x": -34.88, - "y": -9.1 - }, - "8": { - "x": -34.34, - "y": 9.19 - }, - "9": { - "x": -10.86, - "y": -21.61 - }, - "10": { - "x": -10.75, - "y": 21.75 - }, - "11": { - "x": -19.2, - "y": 0.27 - } - }, - { - "index": 5, - "ball": { - "x": 22.08, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -0.09, - "y": -9.37 - }, - "3": { - "x": 0.18, - "y": 7.75 - }, - "4": { - "x": 0.09, - "y": -19.47 - }, - "5": { - "x": 0.27, - "y": 19.02 - }, - "6": { - "x": 1.35, - "y": 0.0 - }, - "7": { - "x": 10.63, - "y": -6.13 - }, - "8": { - "x": 10.45, - "y": 5.5 - }, - "9": { - "x": 13.16, - "y": -10.72 - }, - "10": { - "x": 13.43, - "y": 11.36 - }, - "11": { - "x": 10.63, - "y": -0.27 - } - }, - { - "index": 6, - "ball": { - "x": 11.72, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -2.25, - "y": -6.67 - }, - "3": { - "x": -2.61, - "y": 4.6 - }, - "4": { - "x": -1.53, - "y": -14.15 - }, - "5": { - "x": -1.44, - "y": 14.78 - }, - "6": { - "x": -1.44, - "y": -0.18 - }, - "7": { - "x": 1.98, - "y": -8.92 - }, - "8": { - "x": 1.71, - "y": 8.56 - }, - "9": { - "x": 7.84, - "y": -13.16 - }, - "10": { - "x": 8.65, - "y": 12.89 - }, - "11": { - "x": 0.99, - "y": 0.0 - } - }, - { - "index": 7, - "ball": { - "x": -15.95, - "y": -22.98 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -28.75, - "y": -17.21 - }, - "3": { - "x": -28.57, - "y": -6.02 - }, - "4": { - "x": -28.66, - "y": -24.78 - }, - "5": { - "x": -28.3, - "y": 4.67 - }, - "6": { - "x": -25.34, - "y": -11.68 - }, - "7": { - "x": -25.88, - "y": -20.3 - }, - "8": { - "x": -21.02, - "y": -7.1 - }, - "9": { - "x": 0.09, - "y": -24.26 - }, - "10": { - "x": 2.02, - "y": 15.41 - }, - "11": { - "x": -12.76, - "y": -6.65 - } - }, - { - "index": 8, - "ball": { - "x": -15.95, - "y": 22.98 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -28.57, - "y": 6.02 - }, - "3": { - "x": -28.75, - "y": 17.21 - }, - "4": { - "x": -28.3, - "y": -4.67 - }, - "5": { - "x": -28.66, - "y": 24.78 - }, - "6": { - "x": -25.34, - "y": 11.68 - }, - "7": { - "x": -21.02, - "y": 7.1 - }, - "8": { - "x": -25.88, - "y": 20.3 - }, - "9": { - "x": 2.02, - "y": -15.41 - }, - "10": { - "x": 0.09, - "y": 24.26 - }, - "11": { - "x": -12.76, - "y": 6.65 - } - }, - { - "index": 9, - "ball": { - "x": 30.73, - "y": -36.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 0.18, - "y": -11.95 - }, - "3": { - "x": 0.09, - "y": 0.63 - }, - "4": { - "x": 0.45, - "y": -25.43 - }, - "5": { - "x": 3.05, - "y": 8.45 - }, - "6": { - "x": 8.27, - "y": -18.15 - }, - "7": { - "x": 18.6, - "y": -28.03 - }, - "8": { - "x": 22.55, - "y": -14.64 - }, - "9": { - "x": 20.84, - "y": -33.15 - }, - "10": { - "x": 29.56, - "y": -5.66 - }, - "11": { - "x": 23.09, - "y": -22.91 - } - }, - { - "index": 10, - "ball": { - "x": 30.73, - "y": 36.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 0.09, - "y": -0.63 - }, - "3": { - "x": 0.18, - "y": 11.95 - }, - "4": { - "x": 3.05, - "y": -8.45 - }, - "5": { - "x": 0.45, - "y": 25.43 - }, - "6": { - "x": 8.27, - "y": 18.15 - }, - "7": { - "x": 22.55, - "y": 14.64 - }, - "8": { - "x": 18.6, - "y": 28.03 - }, - "9": { - "x": 29.56, - "y": 5.66 - }, - "10": { - "x": 20.84, - "y": 33.15 - }, - "11": { - "x": 23.09, - "y": 22.91 - } - }, - { - "index": 11, - "ball": { - "x": -54.5, - "y": -36.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -45.64, - "y": -14.73 - }, - "3": { - "x": -45.24, - "y": -5.14 - }, - "4": { - "x": -49.75, - "y": -24.6 - }, - "5": { - "x": -45.6, - "y": 3.88 - }, - "6": { - "x": -39.84, - "y": -15.59 - }, - "7": { - "x": -41.33, - "y": -23.81 - }, - "8": { - "x": -34.88, - "y": -0.09 - }, - "9": { - "x": -34.41, - "y": -31.45 - }, - "10": { - "x": -13.66, - "y": 14.2 - }, - "11": { - "x": -15.54, - "y": -11.23 - } - }, - { - "index": 12, - "ball": { - "x": -54.5, - "y": 36.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -45.24, - "y": 5.14 - }, - "3": { - "x": -45.64, - "y": 14.73 - }, - "4": { - "x": -45.6, - "y": -3.88 - }, - "5": { - "x": -49.75, - "y": 24.6 - }, - "6": { - "x": -39.84, - "y": 15.59 - }, - "7": { - "x": -34.88, - "y": 0.09 - }, - "8": { - "x": -41.33, - "y": 23.81 - }, - "9": { - "x": -13.66, - "y": -14.2 - }, - "10": { - "x": -34.41, - "y": 31.45 - }, - "11": { - "x": -15.54, - "y": 11.23 - } - }, - { - "index": 13, - "ball": { - "x": -35.51, - "y": -20.1 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -35.85, - "y": -6.47 - }, - "3": { - "x": -35.94, - "y": -0.54 - }, - "4": { - "x": -35.51, - "y": -10.18 - }, - "5": { - "x": -35.85, - "y": 6.83 - }, - "6": { - "x": -31.54, - "y": -9.91 - }, - "7": { - "x": -26.05, - "y": -14.96 - }, - "8": { - "x": -28.84, - "y": -0.72 - }, - "9": { - "x": -21.72, - "y": -27.22 - }, - "10": { - "x": -4.96, - "y": 16.58 - }, - "11": { - "x": -12.35, - "y": -9.19 - } - }, - { - "index": 14, - "ball": { - "x": -35.51, - "y": 20.1 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -35.94, - "y": 0.54 - }, - "3": { - "x": -35.85, - "y": 6.47 - }, - "4": { - "x": -35.85, - "y": -6.83 - }, - "5": { - "x": -35.51, - "y": 10.18 - }, - "6": { - "x": -31.54, - "y": 9.91 - }, - "7": { - "x": -28.84, - "y": 0.72 - }, - "8": { - "x": -26.05, - "y": 14.96 - }, - "9": { - "x": -4.96, - "y": -16.58 - }, - "10": { - "x": -21.72, - "y": 27.22 - }, - "11": { - "x": -12.35, - "y": 9.19 - } - }, - { - "index": 15, - "ball": { - "x": 40.11, - "y": -36.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -0.63, - "y": -13.93 - }, - "3": { - "x": 0.45, - "y": -1.08 - }, - "4": { - "x": 9.7, - "y": -29.65 - }, - "5": { - "x": 4.94, - "y": 5.48 - }, - "6": { - "x": 11.18, - "y": -14.06 - }, - "7": { - "x": 26.5, - "y": -27.94 - }, - "8": { - "x": 29.92, - "y": -16.62 - }, - "9": { - "x": 31.09, - "y": -34.7 - }, - "10": { - "x": 32.43, - "y": -4.67 - }, - "11": { - "x": 31.98, - "y": -25.52 - } - }, - { - "index": 16, - "ball": { - "x": 40.11, - "y": 36.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 0.45, - "y": 1.08 - }, - "3": { - "x": -0.63, - "y": 13.93 - }, - "4": { - "x": 4.94, - "y": -5.48 - }, - "5": { - "x": 9.7, - "y": 29.65 - }, - "6": { - "x": 11.18, - "y": 14.06 - }, - "7": { - "x": 29.92, - "y": 16.62 - }, - "8": { - "x": 26.5, - "y": 27.94 - }, - "9": { - "x": 32.43, - "y": 4.67 - }, - "10": { - "x": 31.09, - "y": 34.7 - }, - "11": { - "x": 31.98, - "y": 25.52 - } - }, - { - "index": 17, - "ball": { - "x": 54.5, - "y": -36.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -0.54, - "y": -11.68 - }, - "3": { - "x": 0.09, - "y": 0.09 - }, - "4": { - "x": 12.58, - "y": -26.14 - }, - "5": { - "x": 4.94, - "y": 9.6 - }, - "6": { - "x": 20.39, - "y": -13.39 - }, - "7": { - "x": 35.49, - "y": -27.13 - }, - "8": { - "x": 35.49, - "y": -9.7 - }, - "9": { - "x": 39.53, - "y": -32.88 - }, - "10": { - "x": 46.0, - "y": -11.32 - }, - "11": { - "x": 37.2, - "y": -20.21 - } - }, - { - "index": 18, - "ball": { - "x": 54.5, - "y": 36.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 0.09, - "y": -0.09 - }, - "3": { - "x": -0.54, - "y": 11.68 - }, - "4": { - "x": 4.94, - "y": -9.6 - }, - "5": { - "x": 12.58, - "y": 26.14 - }, - "6": { - "x": 20.39, - "y": 13.39 - }, - "7": { - "x": 35.49, - "y": 9.7 - }, - "8": { - "x": 35.49, - "y": 27.13 - }, - "9": { - "x": 46.0, - "y": 11.32 - }, - "10": { - "x": 39.53, - "y": 32.88 - }, - "11": { - "x": 37.2, - "y": 20.21 - } - }, - { - "index": 19, - "ball": { - "x": 19.65, - "y": -36.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -1.44, - "y": -23.27 - }, - "3": { - "x": -0.36, - "y": -0.63 - }, - "4": { - "x": -0.45, - "y": -32.99 - }, - "5": { - "x": -0.09, - "y": 10.51 - }, - "6": { - "x": 1.17, - "y": -17.16 - }, - "7": { - "x": 2.34, - "y": -27.67 - }, - "8": { - "x": 8.36, - "y": -11.86 - }, - "9": { - "x": 10.27, - "y": -29.92 - }, - "10": { - "x": 15.18, - "y": -1.26 - }, - "11": { - "x": 12.85, - "y": -22.73 - } - }, - { - "index": 20, - "ball": { - "x": 19.65, - "y": 36.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -0.36, - "y": 0.63 - }, - "3": { - "x": -1.44, - "y": 23.27 - }, - "4": { - "x": -0.09, - "y": -10.51 - }, - "5": { - "x": -0.45, - "y": 32.99 - }, - "6": { - "x": 1.17, - "y": 17.16 - }, - "7": { - "x": 8.36, - "y": 11.86 - }, - "8": { - "x": 2.34, - "y": 27.67 - }, - "9": { - "x": 15.18, - "y": 1.26 - }, - "10": { - "x": 10.27, - "y": 29.92 - }, - "11": { - "x": 12.85, - "y": 22.73 - } - }, - { - "index": 21, - "ball": { - "x": 0.27, - "y": -36.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -18.57, - "y": -23.88 - }, - "3": { - "x": -18.93, - "y": -8.47 - }, - "4": { - "x": -15.68, - "y": -32.72 - }, - "5": { - "x": -15.77, - "y": 4.15 - }, - "6": { - "x": -12.98, - "y": -19.2 - }, - "7": { - "x": -12.08, - "y": -27.58 - }, - "8": { - "x": -6.67, - "y": -7.48 - }, - "9": { - "x": -6.58, - "y": -22.8 - }, - "10": { - "x": 8.56, - "y": 9.37 - }, - "11": { - "x": 0.09, - "y": -18.75 - } - }, - { - "index": 22, - "ball": { - "x": 0.27, - "y": 36.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -18.93, - "y": 8.47 - }, - "3": { - "x": -18.57, - "y": 23.88 - }, - "4": { - "x": -15.77, - "y": -4.15 - }, - "5": { - "x": -15.68, - "y": 32.72 - }, - "6": { - "x": -12.98, - "y": 19.2 - }, - "7": { - "x": -6.67, - "y": 7.48 - }, - "8": { - "x": -12.08, - "y": 27.58 - }, - "9": { - "x": 8.56, - "y": -9.37 - }, - "10": { - "x": -6.58, - "y": 22.8 - }, - "11": { - "x": 0.09, - "y": 18.75 - } - }, - { - "index": 23, - "ball": { - "x": 5.59, - "y": -11.36 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -8.36, - "y": -12.85 - }, - "3": { - "x": -7.1, - "y": -4.4 - }, - "4": { - "x": -6.92, - "y": -21.11 - }, - "5": { - "x": -5.59, - "y": 6.22 - }, - "6": { - "x": -5.12, - "y": -10.24 - }, - "7": { - "x": -5.57, - "y": -17.61 - }, - "8": { - "x": -1.98, - "y": -1.26 - }, - "9": { - "x": -3.05, - "y": -19.68 - }, - "10": { - "x": 13.16, - "y": 16.76 - }, - "11": { - "x": 6.94, - "y": -1.17 - } - }, - { - "index": 24, - "ball": { - "x": 5.59, - "y": 11.36 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -7.1, - "y": 4.4 - }, - "3": { - "x": -8.36, - "y": 12.85 - }, - "4": { - "x": -5.59, - "y": -6.22 - }, - "5": { - "x": -6.92, - "y": 21.11 - }, - "6": { - "x": -5.12, - "y": 10.24 - }, - "7": { - "x": -1.98, - "y": 1.26 - }, - "8": { - "x": -5.57, - "y": 17.61 - }, - "9": { - "x": 13.16, - "y": -16.76 - }, - "10": { - "x": -3.05, - "y": 19.68 - }, - "11": { - "x": 6.94, - "y": 1.17 - } - }, - { - "index": 25, - "ball": { - "x": 5.32, - "y": -20.37 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -9.61, - "y": -19.5 - }, - "3": { - "x": -7.66, - "y": -7.93 - }, - "4": { - "x": -8.45, - "y": -27.04 - }, - "5": { - "x": -7.12, - "y": 5.05 - }, - "6": { - "x": -6.94, - "y": -13.52 - }, - "7": { - "x": -6.65, - "y": -23.36 - }, - "8": { - "x": -0.72, - "y": -4.15 - }, - "9": { - "x": -5.93, - "y": -18.42 - }, - "10": { - "x": 11.43, - "y": 14.05 - }, - "11": { - "x": 5.59, - "y": -8.29 - } - }, - { - "index": 26, - "ball": { - "x": 5.32, - "y": 20.37 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -7.66, - "y": 7.93 - }, - "3": { - "x": -9.61, - "y": 19.5 - }, - "4": { - "x": -7.12, - "y": -5.05 - }, - "5": { - "x": -8.45, - "y": 27.04 - }, - "6": { - "x": -6.94, - "y": 13.52 - }, - "7": { - "x": -0.72, - "y": 4.15 - }, - "8": { - "x": -6.65, - "y": 23.36 - }, - "9": { - "x": 11.43, - "y": -14.05 - }, - "10": { - "x": -5.93, - "y": 18.42 - }, - "11": { - "x": 5.59, - "y": 8.29 - } - }, - { - "index": 27, - "ball": { - "x": 6.04, - "y": -27.85 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -6.02, - "y": -21.65 - }, - "3": { - "x": -5.77, - "y": -10.36 - }, - "4": { - "x": -6.65, - "y": -29.47 - }, - "5": { - "x": -4.69, - "y": 1.98 - }, - "6": { - "x": -2.34, - "y": -16.53 - }, - "7": { - "x": -4.04, - "y": -25.43 - }, - "8": { - "x": 0.81, - "y": -3.7 - }, - "9": { - "x": -1.35, - "y": -21.02 - }, - "10": { - "x": 11.65, - "y": 12.19 - }, - "11": { - "x": 8.47, - "y": -14.06 - } - }, - { - "index": 28, - "ball": { - "x": 6.04, - "y": 27.85 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -5.77, - "y": 10.36 - }, - "3": { - "x": -6.02, - "y": 21.65 - }, - "4": { - "x": -4.69, - "y": -1.98 - }, - "5": { - "x": -6.65, - "y": 29.47 - }, - "6": { - "x": -2.34, - "y": 16.53 - }, - "7": { - "x": 0.81, - "y": 3.7 - }, - "8": { - "x": -4.04, - "y": 25.43 - }, - "9": { - "x": 11.65, - "y": -12.19 - }, - "10": { - "x": -1.35, - "y": 21.02 - }, - "11": { - "x": 8.47, - "y": 14.06 - } - }, - { - "index": 29, - "ball": { - "x": 43.71, - "y": -26.77 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -0.54, - "y": -11.68 - }, - "3": { - "x": 0.09, - "y": 0.09 - }, - "4": { - "x": 3.15, - "y": -22.59 - }, - "5": { - "x": 4.94, - "y": 9.6 - }, - "6": { - "x": 18.69, - "y": -12.31 - }, - "7": { - "x": 27.58, - "y": -23.72 - }, - "8": { - "x": 32.7, - "y": -10.78 - }, - "9": { - "x": 31.36, - "y": -28.03 - }, - "10": { - "x": 40.79, - "y": -5.75 - }, - "11": { - "x": 31.98, - "y": -19.5 - } - }, - { - "index": 30, - "ball": { - "x": 43.71, - "y": 26.77 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 0.09, - "y": -0.09 - }, - "3": { - "x": -0.54, - "y": 11.68 - }, - "4": { - "x": 4.94, - "y": -9.6 - }, - "5": { - "x": 3.15, - "y": 22.59 - }, - "6": { - "x": 18.69, - "y": 12.31 - }, - "7": { - "x": 32.7, - "y": 10.78 - }, - "8": { - "x": 27.58, - "y": 23.72 - }, - "9": { - "x": 40.79, - "y": 5.75 - }, - "10": { - "x": 31.36, - "y": 28.03 - }, - "11": { - "x": 31.98, - "y": 19.5 - } - }, - { - "index": 31, - "ball": { - "x": 21.9, - "y": -12.8 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 0.08, - "y": -11.13 - }, - "3": { - "x": 0.03, - "y": 2.01 - }, - "4": { - "x": 0.18, - "y": -23.54 - }, - "5": { - "x": 0.45, - "y": 13.08 - }, - "6": { - "x": 7.55, - "y": -6.2 - }, - "7": { - "x": 7.28, - "y": -16.26 - }, - "8": { - "x": 11.5, - "y": -1.71 - }, - "9": { - "x": 11.86, - "y": -21.47 - }, - "10": { - "x": 21.65, - "y": 15.0 - }, - "11": { - "x": 10.42, - "y": -11.05 - } - }, - { - "index": 32, - "ball": { - "x": 21.9, - "y": 12.8 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 0.03, - "y": -2.01 - }, - "3": { - "x": 0.08, - "y": 11.13 - }, - "4": { - "x": 0.45, - "y": -13.08 - }, - "5": { - "x": 0.18, - "y": 23.54 - }, - "6": { - "x": 7.55, - "y": 6.2 - }, - "7": { - "x": 11.5, - "y": 1.71 - }, - "8": { - "x": 7.28, - "y": 16.26 - }, - "9": { - "x": 21.65, - "y": -15.0 - }, - "10": { - "x": 11.86, - "y": 21.47 - }, - "11": { - "x": 10.42, - "y": 11.05 - } - }, - { - "index": 33, - "ball": { - "x": 21.27, - "y": -21.99 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 0.18, - "y": -13.61 - }, - "3": { - "x": 0.27, - "y": -3.24 - }, - "4": { - "x": -0.18, - "y": -27.58 - }, - "5": { - "x": 0.54, - "y": 8.56 - }, - "6": { - "x": 9.55, - "y": -10.09 - }, - "7": { - "x": 7.75, - "y": -20.55 - }, - "8": { - "x": 12.71, - "y": -7.39 - }, - "9": { - "x": 9.91, - "y": -25.05 - }, - "10": { - "x": 20.64, - "y": -0.99 - }, - "11": { - "x": 9.64, - "y": -16.49 - } - }, - { - "index": 34, - "ball": { - "x": 21.27, - "y": 21.99 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 0.27, - "y": 3.24 - }, - "3": { - "x": 0.18, - "y": 13.61 - }, - "4": { - "x": 0.54, - "y": -8.56 - }, - "5": { - "x": -0.18, - "y": 27.58 - }, - "6": { - "x": 9.55, - "y": 10.09 - }, - "7": { - "x": 12.71, - "y": 7.39 - }, - "8": { - "x": 7.75, - "y": 20.55 - }, - "9": { - "x": 20.64, - "y": 0.99 - }, - "10": { - "x": 9.91, - "y": 25.05 - }, - "11": { - "x": 9.64, - "y": 16.49 - } - }, - { - "index": 35, - "ball": { - "x": 35.69, - "y": -8.56 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -0.45, - "y": -10.42 - }, - "3": { - "x": 0.63, - "y": 3.5 - }, - "4": { - "x": 3.45, - "y": -20.89 - }, - "5": { - "x": 5.09, - "y": 13.48 - }, - "6": { - "x": 9.25, - "y": -3.23 - }, - "7": { - "x": 22.01, - "y": -14.46 - }, - "8": { - "x": 23.09, - "y": -3.41 - }, - "9": { - "x": 25.79, - "y": -17.88 - }, - "10": { - "x": 26.32, - "y": 3.68 - }, - "11": { - "x": 24.51, - "y": -8.92 - } - }, - { - "index": 36, - "ball": { - "x": 35.69, - "y": 8.56 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 0.63, - "y": -3.5 - }, - "3": { - "x": -0.45, - "y": 10.42 - }, - "4": { - "x": 5.09, - "y": -13.48 - }, - "5": { - "x": 3.45, - "y": 20.89 - }, - "6": { - "x": 9.25, - "y": 3.23 - }, - "7": { - "x": 23.09, - "y": 3.41 - }, - "8": { - "x": 22.01, - "y": 14.46 - }, - "9": { - "x": 26.32, - "y": -3.68 - }, - "10": { - "x": 25.79, - "y": 17.88 - }, - "11": { - "x": 24.51, - "y": 8.92 - } - }, - { - "index": 37, - "ball": { - "x": 31.0, - "y": -28.39 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 0.18, - "y": -10.36 - }, - "3": { - "x": 2.88, - "y": 0.27 - }, - "4": { - "x": 0.36, - "y": -22.89 - }, - "5": { - "x": 9.88, - "y": 9.61 - }, - "6": { - "x": 10.42, - "y": -9.34 - }, - "7": { - "x": 17.66, - "y": -23.88 - }, - "8": { - "x": 22.64, - "y": -15.18 - }, - "9": { - "x": 18.39, - "y": -28.75 - }, - "10": { - "x": 25.34, - "y": -2.16 - }, - "11": { - "x": 19.56, - "y": -19.47 - } - }, - { - "index": 38, - "ball": { - "x": 31.0, - "y": 28.39 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 2.88, - "y": -0.27 - }, - "3": { - "x": 0.18, - "y": 10.36 - }, - "4": { - "x": 9.88, - "y": -9.61 - }, - "5": { - "x": 0.36, - "y": 22.89 - }, - "6": { - "x": 10.42, - "y": 9.34 - }, - "7": { - "x": 22.64, - "y": 15.18 - }, - "8": { - "x": 17.66, - "y": 23.88 - }, - "9": { - "x": 25.34, - "y": 2.16 - }, - "10": { - "x": 18.39, - "y": 28.75 - }, - "11": { - "x": 19.56, - "y": 19.47 - } - }, - { - "index": 39, - "ball": { - "x": -25.96, - "y": -36.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -38.99, - "y": -16.71 - }, - "3": { - "x": -37.91, - "y": -6.56 - }, - "4": { - "x": -39.53, - "y": -27.31 - }, - "5": { - "x": -36.57, - "y": 4.94 - }, - "6": { - "x": -32.43, - "y": -17.43 - }, - "7": { - "x": -34.23, - "y": -24.89 - }, - "8": { - "x": -19.65, - "y": -5.68 - }, - "9": { - "x": -25.25, - "y": -22.37 - }, - "10": { - "x": 0.05, - "y": 16.07 - }, - "11": { - "x": -2.05, - "y": -11.45 - } - }, - { - "index": 40, - "ball": { - "x": -25.96, - "y": 36.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -37.91, - "y": 6.56 - }, - "3": { - "x": -38.99, - "y": 16.71 - }, - "4": { - "x": -36.57, - "y": -4.94 - }, - "5": { - "x": -39.53, - "y": 27.31 - }, - "6": { - "x": -32.43, - "y": 17.43 - }, - "7": { - "x": -19.65, - "y": 5.68 - }, - "8": { - "x": -34.23, - "y": 24.89 - }, - "9": { - "x": 0.05, - "y": -16.07 - }, - "10": { - "x": -25.25, - "y": 22.37 - }, - "11": { - "x": -2.05, - "y": 11.45 - } - }, - { - "index": 41, - "ball": { - "x": -34.7, - "y": -36.0 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -45.42, - "y": -16.67 - }, - "3": { - "x": -41.17, - "y": -6.38 - }, - "4": { - "x": -43.38, - "y": -26.2 - }, - "5": { - "x": -42.27, - "y": 5.02 - }, - "6": { - "x": -40.74, - "y": -16.42 - }, - "7": { - "x": -38.7, - "y": -22.37 - }, - "8": { - "x": -26.68, - "y": -5.3 - }, - "9": { - "x": -30.37, - "y": -23.56 - }, - "10": { - "x": -6.21, - "y": 10.04 - }, - "11": { - "x": -15.91, - "y": -13.86 - } - }, - { - "index": 42, - "ball": { - "x": -34.7, - "y": 36.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -41.17, - "y": 6.38 - }, - "3": { - "x": -45.42, - "y": 16.67 - }, - "4": { - "x": -42.27, - "y": -5.02 - }, - "5": { - "x": -43.38, - "y": 26.2 - }, - "6": { - "x": -40.74, - "y": 16.42 - }, - "7": { - "x": -26.68, - "y": 5.3 - }, - "8": { - "x": -38.7, - "y": 22.37 - }, - "9": { - "x": -6.21, - "y": -10.04 - }, - "10": { - "x": -30.37, - "y": 23.56 - }, - "11": { - "x": -15.91, - "y": 13.86 - } - }, - { - "index": 43, - "ball": { - "x": -16.13, - "y": -36.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -30.37, - "y": -20.37 - }, - "3": { - "x": -29.74, - "y": -7.57 - }, - "4": { - "x": -30.19, - "y": -31.27 - }, - "5": { - "x": -25.42, - "y": 2.88 - }, - "6": { - "x": -24.53, - "y": -18.78 - }, - "7": { - "x": -26.86, - "y": -26.5 - }, - "8": { - "x": -14.15, - "y": -4.87 - }, - "9": { - "x": -17.07, - "y": -21.11 - }, - "10": { - "x": 3.1, - "y": 15.08 - }, - "11": { - "x": 0.51, - "y": -11.31 - } - }, - { - "index": 44, - "ball": { - "x": -16.13, - "y": 36.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -29.74, - "y": 7.57 - }, - "3": { - "x": -30.37, - "y": 20.37 - }, - "4": { - "x": -25.42, - "y": -2.88 - }, - "5": { - "x": -30.19, - "y": 31.27 - }, - "6": { - "x": -24.53, - "y": 18.78 - }, - "7": { - "x": -14.15, - "y": 4.87 - }, - "8": { - "x": -26.86, - "y": 26.5 - }, - "9": { - "x": 3.1, - "y": -15.08 - }, - "10": { - "x": -17.07, - "y": 21.11 - }, - "11": { - "x": 0.51, - "y": 11.31 - } - } - ] -} \ No newline at end of file diff --git a/src/formations-dt/setplay-our-formation.conf b/src/formations-dt/setplay-our-formation.conf deleted file mode 100644 index 86c67753..00000000 --- a/src/formations-dt/setplay-our-formation.conf +++ /dev/null @@ -1,2431 +0,0 @@ -{ - "version": "20220408-134548", - "method": "DelaunayTriangulation", - "role": [ - { - "number": 1, - "name": "Goalie", - "type": "G", - "side": "C", - "pair": 0 - }, - { - "number": 2, - "name": "CenterBack", - "type": "DF", - "side": "L", - "pair": 3 - }, - { - "number": 3, - "name": "CenterBack", - "type": "DF", - "side": "R", - "pair": 2 - }, - { - "number": 4, - "name": "SideBack", - "type": "DF", - "side": "L", - "pair": 5 - }, - { - "number": 5, - "name": "SideBack", - "type": "DF", - "side": "R", - "pair": 4 - }, - { - "number": 6, - "name": "DefensiveHalf", - "type": "FW", - "side": "C", - "pair": 0 - }, - { - "number": 7, - "name": "OffensiveHalf", - "type": "MF", - "side": "L", - "pair": 8 - }, - { - "number": 8, - "name": "OffensiveHalf", - "type": "MF", - "side": "R", - "pair": 7 - }, - { - "number": 9, - "name": "SideForward", - "type": "FW", - "side": "L", - "pair": 10 - }, - { - "number": 10, - "name": "SideForward", - "type": "FW", - "side": "R", - "pair": 9 - }, - { - "number": 11, - "name": "CenterForward", - "type": "FW", - "side": "C", - "pair": 0 - } - ], - "data": [ - { - "index": 0, - "ball": { - "x": 0.0, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -15.22, - "y": -4.84 - }, - "3": { - "x": -15.33, - "y": 3.66 - }, - "4": { - "x": -9.29, - "y": -15.12 - }, - "5": { - "x": -10.84, - "y": 13.69 - }, - "6": { - "x": -0.71, - "y": -0.36 - }, - "7": { - "x": 0.0, - "y": -6.97 - }, - "8": { - "x": 0.48, - "y": 6.73 - }, - "9": { - "x": 13.69, - "y": -20.13 - }, - "10": { - "x": 10.73, - "y": 24.0 - }, - "11": { - "x": 16.08, - "y": 0.0 - } - }, - { - "index": 1, - "ball": { - "x": -54.0, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -46.15, - "y": -1.92 - }, - "3": { - "x": -46.03, - "y": 2.88 - }, - "4": { - "x": -45.07, - "y": -7.57 - }, - "5": { - "x": -45.55, - "y": 7.93 - }, - "6": { - "x": -39.78, - "y": 0.0 - }, - "7": { - "x": -36.3, - "y": -15.98 - }, - "8": { - "x": -37.02, - "y": 11.78 - }, - "9": { - "x": -22.0, - "y": -28.0 - }, - "10": { - "x": -19.29, - "y": 26.44 - }, - "11": { - "x": -16.47, - "y": -0.84 - } - }, - { - "index": 2, - "ball": { - "x": 36.26, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 0.0, - "y": -7.38 - }, - "3": { - "x": 0.0, - "y": 7.38 - }, - "4": { - "x": 4.0, - "y": -17.7 - }, - "5": { - "x": 4.0, - "y": 17.7 - }, - "6": { - "x": 15.24, - "y": 0.48 - }, - "7": { - "x": 27.75, - "y": -8.1 - }, - "8": { - "x": 28.1, - "y": 9.76 - }, - "9": { - "x": 35.96, - "y": -16.2 - }, - "10": { - "x": 36.56, - "y": 16.91 - }, - "11": { - "x": 35.61, - "y": 0.0 - } - }, - { - "index": 3, - "ball": { - "x": -41.78, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -42.99, - "y": -0.71 - }, - "3": { - "x": -42.91, - "y": 4.21 - }, - "4": { - "x": -42.31, - "y": -7.69 - }, - "5": { - "x": -42.91, - "y": 9.01 - }, - "6": { - "x": -36.66, - "y": 0.36 - }, - "7": { - "x": -33.41, - "y": -10.82 - }, - "8": { - "x": -31.61, - "y": 10.94 - }, - "9": { - "x": -15.48, - "y": -29.41 - }, - "10": { - "x": -17.51, - "y": 27.15 - }, - "11": { - "x": -18.27, - "y": -0.36 - } - }, - { - "index": 4, - "ball": { - "x": -26.95, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -30.96, - "y": -1.91 - }, - "3": { - "x": -30.25, - "y": 7.74 - }, - "4": { - "x": -29.9, - "y": -11.32 - }, - "5": { - "x": -28.25, - "y": 16.41 - }, - "6": { - "x": -15.27, - "y": -7.63 - }, - "7": { - "x": -17.43, - "y": -23.41 - }, - "8": { - "x": -15.52, - "y": 9.16 - }, - "9": { - "x": -4.76, - "y": -27.75 - }, - "10": { - "x": -5.34, - "y": 26.47 - }, - "11": { - "x": -0.51, - "y": 0.51 - } - }, - { - "index": 5, - "ball": { - "x": -17.5, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -23.22, - "y": -1.67 - }, - "3": { - "x": -23.2, - "y": 3.73 - }, - "4": { - "x": -22.84, - "y": -8.89 - }, - "5": { - "x": -22.96, - "y": 12.26 - }, - "6": { - "x": -16.1, - "y": 1.2 - }, - "7": { - "x": -11.9, - "y": -4.69 - }, - "8": { - "x": -10.94, - "y": 6.37 - }, - "9": { - "x": 1.2, - "y": -15.38 - }, - "10": { - "x": 0.12, - "y": 18.51 - }, - "11": { - "x": 2.4, - "y": 0.0 - } - }, - { - "index": 6, - "ball": { - "x": 7.67, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -5.9, - "y": -5.31 - }, - "3": { - "x": -6.02, - "y": 5.19 - }, - "4": { - "x": -3.07, - "y": -16.04 - }, - "5": { - "x": -2.95, - "y": 16.39 - }, - "6": { - "x": 6.25, - "y": -0.36 - }, - "7": { - "x": 11.66, - "y": -5.77 - }, - "8": { - "x": 11.78, - "y": 6.13 - }, - "9": { - "x": 21.76, - "y": -22.52 - }, - "10": { - "x": 22.78, - "y": 23.54 - }, - "11": { - "x": 17.43, - "y": 0.0 - } - }, - { - "index": 7, - "ball": { - "x": 49.5, - "y": -20.51 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": 3.0, - "y": -8.85 - }, - "3": { - "x": 0.0, - "y": 5.0 - }, - "4": { - "x": 5.0, - "y": -20.0 - }, - "5": { - "x": 12.0, - "y": 15.5 - }, - "6": { - "x": 21.04, - "y": -6.95 - }, - "7": { - "x": 32.8, - "y": -18.96 - }, - "8": { - "x": 35.1, - "y": 0.46 - }, - "9": { - "x": 45.46, - "y": -24.17 - }, - "10": { - "x": 44.84, - "y": 10.61 - }, - "11": { - "x": 45.68, - "y": -10.85 - } - }, - { - "index": 8, - "ball": { - "x": 49.5, - "y": 20.51 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 0.0, - "y": -5.0 - }, - "3": { - "x": 3.0, - "y": 8.85 - }, - "4": { - "x": 12.0, - "y": -15.5 - }, - "5": { - "x": 5.0, - "y": 20.0 - }, - "6": { - "x": 21.04, - "y": 6.95 - }, - "7": { - "x": 35.1, - "y": -0.46 - }, - "8": { - "x": 32.8, - "y": 18.96 - }, - "9": { - "x": 44.84, - "y": -10.61 - }, - "10": { - "x": 45.46, - "y": 24.17 - }, - "11": { - "x": 45.68, - "y": 10.85 - } - }, - { - "index": 9, - "ball": { - "x": -54.0, - "y": -10.0 - }, - "1": { - "x": -50.57, - "y": -6.44 - }, - "2": { - "x": -48.18, - "y": -5.96 - }, - "3": { - "x": -48.06, - "y": -1.07 - }, - "4": { - "x": -49.5, - "y": -9.06 - }, - "5": { - "x": -47.94, - "y": 4.06 - }, - "6": { - "x": -44.37, - "y": -2.62 - }, - "7": { - "x": -43.73, - "y": -9.47 - }, - "8": { - "x": -31.39, - "y": 8.23 - }, - "9": { - "x": -24.81, - "y": -29.58 - }, - "10": { - "x": -18.82, - "y": 25.56 - }, - "11": { - "x": -20.87, - "y": -8.59 - } - }, - { - "index": 10, - "ball": { - "x": -54.0, - "y": 10.0 - }, - "1": { - "x": -50.57, - "y": 6.44 - }, - "2": { - "x": -48.06, - "y": 1.07 - }, - "3": { - "x": -48.18, - "y": 5.96 - }, - "4": { - "x": -47.94, - "y": -4.06 - }, - "5": { - "x": -49.5, - "y": 9.06 - }, - "6": { - "x": -44.37, - "y": 2.62 - }, - "7": { - "x": -31.39, - "y": -8.23 - }, - "8": { - "x": -43.73, - "y": 9.47 - }, - "9": { - "x": -18.82, - "y": -25.56 - }, - "10": { - "x": -24.81, - "y": 29.58 - }, - "11": { - "x": -20.87, - "y": 8.59 - } - }, - { - "index": 11, - "ball": { - "x": -6.0, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -9.67, - "y": -0.25 - }, - "3": { - "x": -14.0, - "y": 4.58 - }, - "4": { - "x": -13.23, - "y": -12.34 - }, - "5": { - "x": -8.91, - "y": 12.34 - }, - "6": { - "x": -5.09, - "y": -9.92 - }, - "7": { - "x": -0.51, - "y": -21.38 - }, - "8": { - "x": 1.65, - "y": 11.71 - }, - "9": { - "x": 10.26, - "y": -24.0 - }, - "10": { - "x": 10.73, - "y": 24.0 - }, - "11": { - "x": 4.84, - "y": 0.0 - } - }, - { - "index": 12, - "ball": { - "x": -12.0, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -19.35, - "y": -3.12 - }, - "3": { - "x": -19.11, - "y": 3.0 - }, - "4": { - "x": -17.91, - "y": -11.18 - }, - "5": { - "x": -17.55, - "y": 11.06 - }, - "6": { - "x": -13.22, - "y": 0.12 - }, - "7": { - "x": -6.97, - "y": -6.85 - }, - "8": { - "x": -7.57, - "y": 5.29 - }, - "9": { - "x": 1.92, - "y": -21.51 - }, - "10": { - "x": 0.84, - "y": 22.23 - }, - "11": { - "x": 5.65, - "y": 0.36 - } - }, - { - "index": 13, - "ball": { - "x": 35.78, - "y": -9.54 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 1.68, - "y": -7.93 - }, - "3": { - "x": 4.93, - "y": 6.85 - }, - "4": { - "x": 5.0, - "y": -20.0 - }, - "5": { - "x": 12.26, - "y": 16.47 - }, - "6": { - "x": 16.55, - "y": -2.26 - }, - "7": { - "x": 21.79, - "y": -15.36 - }, - "8": { - "x": 26.44, - "y": 1.07 - }, - "9": { - "x": 35.73, - "y": -17.03 - }, - "10": { - "x": 35.13, - "y": 8.57 - }, - "11": { - "x": 33.94, - "y": -8.57 - } - }, - { - "index": 14, - "ball": { - "x": 35.78, - "y": 9.54 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": 4.93, - "y": -7.33 - }, - "3": { - "x": 2.16, - "y": 8.65 - }, - "4": { - "x": 12.0, - "y": -15.5 - }, - "5": { - "x": 5.0, - "y": 20.0 - }, - "6": { - "x": 16.55, - "y": 2.26 - }, - "7": { - "x": 26.44, - "y": -1.07 - }, - "8": { - "x": 21.79, - "y": 15.36 - }, - "9": { - "x": 35.13, - "y": -8.57 - }, - "10": { - "x": 35.73, - "y": 17.03 - }, - "11": { - "x": 33.94, - "y": 8.57 - } - }, - { - "index": 15, - "ball": { - "x": 54.0, - "y": -35.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -0.89, - "y": -12.98 - }, - "3": { - "x": 6.36, - "y": 2.29 - }, - "4": { - "x": 8.3, - "y": -27.3 - }, - "5": { - "x": 18.32, - "y": 10.56 - }, - "6": { - "x": 20.16, - "y": -10.85 - }, - "7": { - "x": 38.11, - "y": -27.75 - }, - "8": { - "x": 38.3, - "y": -4.2 - }, - "9": { - "x": 47.63, - "y": -30.13 - }, - "10": { - "x": 47.28, - "y": -2.38 - }, - "11": { - "x": 48.47, - "y": -19.77 - } - }, - { - "index": 16, - "ball": { - "x": 54.0, - "y": 35.0 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": 6.36, - "y": -2.29 - }, - "3": { - "x": -0.89, - "y": 12.98 - }, - "4": { - "x": 18.32, - "y": -10.56 - }, - "5": { - "x": 8.3, - "y": 27.3 - }, - "6": { - "x": 20.16, - "y": 10.85 - }, - "7": { - "x": 38.3, - "y": 4.2 - }, - "8": { - "x": 38.11, - "y": 27.75 - }, - "9": { - "x": 47.28, - "y": 2.38 - }, - "10": { - "x": 47.63, - "y": 30.13 - }, - "11": { - "x": 48.47, - "y": 19.77 - } - }, - { - "index": 17, - "ball": { - "x": -12.0, - "y": -35.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -17.51, - "y": -22.27 - }, - "3": { - "x": -18.01, - "y": -8.59 - }, - "4": { - "x": -13.46, - "y": -32.39 - }, - "5": { - "x": -18.72, - "y": 4.06 - }, - "6": { - "x": -7.5, - "y": -15.36 - }, - "7": { - "x": -8.65, - "y": -28.96 - }, - "8": { - "x": -5.96, - "y": 0.12 - }, - "9": { - "x": 4.17, - "y": -31.84 - }, - "10": { - "x": 0.95, - "y": 18.25 - }, - "11": { - "x": 5.48, - "y": -7.15 - } - }, - { - "index": 18, - "ball": { - "x": -12.0, - "y": 35.0 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -18.01, - "y": 8.59 - }, - "3": { - "x": -17.51, - "y": 22.27 - }, - "4": { - "x": -18.72, - "y": -4.06 - }, - "5": { - "x": -13.46, - "y": 32.39 - }, - "6": { - "x": -7.5, - "y": 15.36 - }, - "7": { - "x": -5.96, - "y": -0.12 - }, - "8": { - "x": -7.57, - "y": 30.17 - }, - "9": { - "x": 0.95, - "y": -18.25 - }, - "10": { - "x": 4.17, - "y": 31.84 - }, - "11": { - "x": 5.48, - "y": 7.15 - } - }, - { - "index": 19, - "ball": { - "x": -36.02, - "y": -35.0 - }, - "1": { - "x": -50.0, - "y": -0.01 - }, - "2": { - "x": -37.79, - "y": -14.51 - }, - "3": { - "x": -38.05, - "y": -7.25 - }, - "4": { - "x": -36.32, - "y": -30.49 - }, - "5": { - "x": -37.92, - "y": 1.27 - }, - "6": { - "x": -30.54, - "y": -19.34 - }, - "7": { - "x": -26.08, - "y": -24.69 - }, - "8": { - "x": -20.16, - "y": 0.6 - }, - "9": { - "x": -12.72, - "y": -32.32 - }, - "10": { - "x": -7.44, - "y": 19.44 - }, - "11": { - "x": -7.62, - "y": -11.95 - } - }, - { - "index": 20, - "ball": { - "x": -36.02, - "y": 35.0 - }, - "1": { - "x": -50.0, - "y": 0.01 - }, - "2": { - "x": -38.05, - "y": 7.25 - }, - "3": { - "x": -37.79, - "y": 14.51 - }, - "4": { - "x": -37.92, - "y": -1.27 - }, - "5": { - "x": -36.32, - "y": 30.49 - }, - "6": { - "x": -30.54, - "y": 19.34 - }, - "7": { - "x": -20.16, - "y": -0.6 - }, - "8": { - "x": -26.08, - "y": 24.69 - }, - "9": { - "x": -7.44, - "y": -19.44 - }, - "10": { - "x": -12.72, - "y": 32.32 - }, - "11": { - "x": -7.62, - "y": 11.95 - } - }, - { - "index": 21, - "ball": { - "x": -54.0, - "y": -35.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -46.83, - "y": -11.96 - }, - "3": { - "x": -46.51, - "y": -4.65 - }, - "4": { - "x": -50.73, - "y": -32.15 - }, - "5": { - "x": -45.56, - "y": 4.77 - }, - "6": { - "x": -41.99, - "y": -15.01 - }, - "7": { - "x": -35.76, - "y": -22.52 - }, - "8": { - "x": -23.79, - "y": 0.76 - }, - "9": { - "x": -22.39, - "y": -31.81 - }, - "10": { - "x": -12.98, - "y": 19.47 - }, - "11": { - "x": -16.92, - "y": -13.11 - } - }, - { - "index": 22, - "ball": { - "x": -54.0, - "y": 35.0 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -46.51, - "y": 4.65 - }, - "3": { - "x": -46.83, - "y": 11.96 - }, - "4": { - "x": -45.56, - "y": -4.77 - }, - "5": { - "x": -50.73, - "y": 32.15 - }, - "6": { - "x": -41.99, - "y": 15.01 - }, - "7": { - "x": -23.79, - "y": -0.76 - }, - "8": { - "x": -35.76, - "y": 22.52 - }, - "9": { - "x": -12.98, - "y": -19.47 - }, - "10": { - "x": -22.39, - "y": 31.81 - }, - "11": { - "x": -16.92, - "y": 13.11 - } - }, - { - "index": 23, - "ball": { - "x": -17.5, - "y": -11.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -26.59, - "y": -10.18 - }, - "3": { - "x": -26.47, - "y": -3.94 - }, - "4": { - "x": -26.72, - "y": -14.63 - }, - "5": { - "x": -26.21, - "y": 2.54 - }, - "6": { - "x": -19.98, - "y": -11.07 - }, - "7": { - "x": -17.43, - "y": -18.96 - }, - "8": { - "x": -15.27, - "y": -1.4 - }, - "9": { - "x": -4.07, - "y": -30.92 - }, - "10": { - "x": -1.02, - "y": 17.69 - }, - "11": { - "x": -3.82, - "y": -10.69 - } - }, - { - "index": 24, - "ball": { - "x": -17.5, - "y": 11.0 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -26.47, - "y": 3.94 - }, - "3": { - "x": -26.59, - "y": 10.18 - }, - "4": { - "x": -26.21, - "y": -2.54 - }, - "5": { - "x": -26.72, - "y": 14.63 - }, - "6": { - "x": -19.98, - "y": 11.07 - }, - "7": { - "x": -15.27, - "y": 1.4 - }, - "8": { - "x": -17.43, - "y": 18.96 - }, - "9": { - "x": -1.02, - "y": -17.69 - }, - "10": { - "x": -4.07, - "y": 30.92 - }, - "11": { - "x": -3.82, - "y": 10.69 - } - }, - { - "index": 25, - "ball": { - "x": 36.08, - "y": -20.6 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 2.57, - "y": -11.68 - }, - "3": { - "x": 0.0, - "y": 2.08 - }, - "4": { - "x": 4.57, - "y": -22.24 - }, - "5": { - "x": 9.42, - "y": 13.34 - }, - "6": { - "x": 17.57, - "y": -12.21 - }, - "7": { - "x": 32.96, - "y": -16.03 - }, - "8": { - "x": 28.91, - "y": -1.62 - }, - "9": { - "x": 38.94, - "y": -20.74 - }, - "10": { - "x": 39.06, - "y": 2.16 - }, - "11": { - "x": 37.92, - "y": -10.18 - } - }, - { - "index": 26, - "ball": { - "x": 36.08, - "y": 20.6 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": 0.0, - "y": -2.08 - }, - "3": { - "x": 2.57, - "y": 11.68 - }, - "4": { - "x": 9.42, - "y": -13.34 - }, - "5": { - "x": 4.57, - "y": 22.24 - }, - "6": { - "x": 17.57, - "y": 12.21 - }, - "7": { - "x": 28.91, - "y": 1.62 - }, - "8": { - "x": 32.96, - "y": 16.03 - }, - "9": { - "x": 39.06, - "y": -2.16 - }, - "10": { - "x": 38.94, - "y": 20.74 - }, - "11": { - "x": 37.92, - "y": 10.18 - } - }, - { - "index": 27, - "ball": { - "x": -26.95, - "y": -11.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -30.25, - "y": -11.07 - }, - "3": { - "x": -29.69, - "y": -2.28 - }, - "4": { - "x": -29.81, - "y": -18.03 - }, - "5": { - "x": -26.92, - "y": 7.69 - }, - "6": { - "x": -21.75, - "y": -7.69 - }, - "7": { - "x": -18.87, - "y": -29.81 - }, - "8": { - "x": -12.5, - "y": 5.05 - }, - "9": { - "x": -4.64, - "y": -30.01 - }, - "10": { - "x": -3.73, - "y": 23.56 - }, - "11": { - "x": -6.61, - "y": -10.94 - } - }, - { - "index": 28, - "ball": { - "x": -26.95, - "y": 11.0 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -29.69, - "y": 2.28 - }, - "3": { - "x": -30.25, - "y": 11.07 - }, - "4": { - "x": -26.92, - "y": -7.69 - }, - "5": { - "x": -29.81, - "y": 18.03 - }, - "6": { - "x": -21.75, - "y": 7.69 - }, - "7": { - "x": -12.5, - "y": -5.05 - }, - "8": { - "x": -18.87, - "y": 29.81 - }, - "9": { - "x": -3.73, - "y": -23.56 - }, - "10": { - "x": -4.64, - "y": 30.01 - }, - "11": { - "x": -6.61, - "y": 10.94 - } - }, - { - "index": 29, - "ball": { - "x": -48.97, - "y": -17.73 - }, - "1": { - "x": -50.0, - "y": -7.0 - }, - "2": { - "x": -47.24, - "y": -6.8 - }, - "3": { - "x": -46.76, - "y": -0.19 - }, - "4": { - "x": -46.68, - "y": -16.79 - }, - "5": { - "x": -46.57, - "y": 4.31 - }, - "6": { - "x": -40.62, - "y": -8.41 - }, - "7": { - "x": -37.14, - "y": -28.12 - }, - "8": { - "x": -35.33, - "y": 4.21 - }, - "9": { - "x": -18.7, - "y": -31.91 - }, - "10": { - "x": -20.48, - "y": 23.1 - }, - "11": { - "x": -17.62, - "y": -9.17 - } - }, - { - "index": 30, - "ball": { - "x": -48.97, - "y": 17.73 - }, - "1": { - "x": -50.0, - "y": 7.0 - }, - "2": { - "x": -46.76, - "y": 0.19 - }, - "3": { - "x": -47.24, - "y": 6.8 - }, - "4": { - "x": -46.57, - "y": -4.31 - }, - "5": { - "x": -46.68, - "y": 16.79 - }, - "6": { - "x": -40.62, - "y": 8.41 - }, - "7": { - "x": -35.33, - "y": -4.21 - }, - "8": { - "x": -37.14, - "y": 28.12 - }, - "9": { - "x": -20.48, - "y": -23.1 - }, - "10": { - "x": -18.7, - "y": 31.91 - }, - "11": { - "x": -17.62, - "y": 9.17 - } - }, - { - "index": 31, - "ball": { - "x": -26.95, - "y": -31.61 - }, - "1": { - "x": -50.0, - "y": -0.02 - }, - "2": { - "x": -30.65, - "y": -16.82 - }, - "3": { - "x": -30.77, - "y": -6.44 - }, - "4": { - "x": -30.06, - "y": -29.1 - }, - "5": { - "x": -30.29, - "y": 3.7 - }, - "6": { - "x": -21.03, - "y": -15.74 - }, - "7": { - "x": -24.04, - "y": -26.08 - }, - "8": { - "x": -15.24, - "y": -1.07 - }, - "9": { - "x": -4.96, - "y": -32.07 - }, - "10": { - "x": -7.86, - "y": 21.08 - }, - "11": { - "x": -0.24, - "y": -11.31 - } - }, - { - "index": 32, - "ball": { - "x": -26.95, - "y": 31.61 - }, - "1": { - "x": -50.0, - "y": 0.02 - }, - "2": { - "x": -30.77, - "y": 6.44 - }, - "3": { - "x": -30.65, - "y": 16.82 - }, - "4": { - "x": -30.29, - "y": -3.7 - }, - "5": { - "x": -30.06, - "y": 29.1 - }, - "6": { - "x": -21.03, - "y": 15.74 - }, - "7": { - "x": -15.24, - "y": 1.07 - }, - "8": { - "x": -24.04, - "y": 26.08 - }, - "9": { - "x": -7.86, - "y": -21.08 - }, - "10": { - "x": -4.96, - "y": 32.07 - }, - "11": { - "x": -0.24, - "y": 11.31 - } - }, - { - "index": 33, - "ball": { - "x": 15.14, - "y": 0.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 0.13, - "y": -4.07 - }, - "3": { - "x": 0.25, - "y": 4.45 - }, - "4": { - "x": 0.0, - "y": -16.13 - }, - "5": { - "x": 0.0, - "y": 16.13 - }, - "6": { - "x": 13.34, - "y": 0.24 - }, - "7": { - "x": 17.07, - "y": -7.45 - }, - "8": { - "x": 18.15, - "y": 6.85 - }, - "9": { - "x": 22.63, - "y": -28.94 - }, - "10": { - "x": 24.41, - "y": 28.34 - }, - "11": { - "x": 22.59, - "y": 0.12 - } - }, - { - "index": 34, - "ball": { - "x": 23.26, - "y": -21.95 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": 2.0, - "y": -15.44 - }, - "3": { - "x": 4.45, - "y": -1.2 - }, - "4": { - "x": 4.0, - "y": -25.21 - }, - "5": { - "x": 7.81, - "y": 9.98 - }, - "6": { - "x": 13.81, - "y": -12.62 - }, - "7": { - "x": 20.31, - "y": -21.63 - }, - "8": { - "x": 20.24, - "y": 1.31 - }, - "9": { - "x": 28.58, - "y": -31.08 - }, - "10": { - "x": 27.63, - "y": 19.29 - }, - "11": { - "x": 28.22, - "y": -12.15 - } - }, - { - "index": 35, - "ball": { - "x": 23.26, - "y": 21.95 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": 4.45, - "y": 1.2 - }, - "3": { - "x": 2.0, - "y": 15.44 - }, - "4": { - "x": 7.81, - "y": -9.98 - }, - "5": { - "x": 4.0, - "y": 25.21 - }, - "6": { - "x": 13.81, - "y": 12.62 - }, - "7": { - "x": 20.24, - "y": -1.31 - }, - "8": { - "x": 20.31, - "y": 21.63 - }, - "9": { - "x": 27.63, - "y": -19.29 - }, - "10": { - "x": 28.58, - "y": 31.08 - }, - "11": { - "x": 28.22, - "y": 12.15 - } - }, - { - "index": 36, - "ball": { - "x": 0.0, - "y": -11.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -10.84, - "y": -11.19 - }, - "3": { - "x": -10.46, - "y": -3.85 - }, - "4": { - "x": -9.65, - "y": -21.67 - }, - "5": { - "x": -9.54, - "y": 9.16 - }, - "6": { - "x": -1.32, - "y": -11.18 - }, - "7": { - "x": 1.44, - "y": -16.35 - }, - "8": { - "x": 2.16, - "y": 0.96 - }, - "9": { - "x": 14.12, - "y": -27.99 - }, - "10": { - "x": 14.51, - "y": 16.92 - }, - "11": { - "x": 12.72, - "y": -8.91 - } - }, - { - "index": 37, - "ball": { - "x": 0.0, - "y": 11.0 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -10.46, - "y": 3.85 - }, - "3": { - "x": -10.84, - "y": 11.19 - }, - "4": { - "x": -9.54, - "y": -9.16 - }, - "5": { - "x": -9.65, - "y": 21.67 - }, - "6": { - "x": -1.32, - "y": 11.18 - }, - "7": { - "x": 2.16, - "y": -0.96 - }, - "8": { - "x": 1.44, - "y": 16.35 - }, - "9": { - "x": 14.51, - "y": -16.92 - }, - "10": { - "x": 14.12, - "y": 27.99 - }, - "11": { - "x": 12.72, - "y": 8.91 - } - }, - { - "index": 38, - "ball": { - "x": 0.0, - "y": -35.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -7.81, - "y": -20.31 - }, - "3": { - "x": -8.65, - "y": -10.46 - }, - "4": { - "x": -2.16, - "y": -33.05 - }, - "5": { - "x": -5.37, - "y": 4.29 - }, - "6": { - "x": -0.48, - "y": -16.47 - }, - "7": { - "x": 2.88, - "y": -28.72 - }, - "8": { - "x": 5.49, - "y": -0.12 - }, - "9": { - "x": 15.14, - "y": -32.93 - }, - "10": { - "x": 14.89, - "y": 18.34 - }, - "11": { - "x": 14.89, - "y": -12.5 - } - }, - { - "index": 39, - "ball": { - "x": 0.0, - "y": 35.0 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -8.65, - "y": 10.46 - }, - "3": { - "x": -7.81, - "y": 20.31 - }, - "4": { - "x": -5.37, - "y": -4.29 - }, - "5": { - "x": -2.16, - "y": 33.05 - }, - "6": { - "x": -0.48, - "y": 16.47 - }, - "7": { - "x": 5.49, - "y": 0.12 - }, - "8": { - "x": 2.88, - "y": 28.72 - }, - "9": { - "x": 14.89, - "y": -18.34 - }, - "10": { - "x": 15.14, - "y": 32.93 - }, - "11": { - "x": 14.89, - "y": 12.5 - } - }, - { - "index": 40, - "ball": { - "x": 22.74, - "y": -30.01 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -0.96, - "y": -16.59 - }, - "3": { - "x": 1.68, - "y": -2.28 - }, - "4": { - "x": 1.85, - "y": -27.71 - }, - "5": { - "x": 4.21, - "y": 8.37 - }, - "6": { - "x": 12.38, - "y": -17.15 - }, - "7": { - "x": 21.03, - "y": -29.57 - }, - "8": { - "x": 18.62, - "y": 0.38 - }, - "9": { - "x": 26.08, - "y": -24.88 - }, - "10": { - "x": 27.0, - "y": 16.09 - }, - "11": { - "x": 27.75, - "y": -9.17 - } - }, - { - "index": 41, - "ball": { - "x": 22.74, - "y": 30.01 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": 1.68, - "y": 2.28 - }, - "3": { - "x": -0.96, - "y": 16.59 - }, - "4": { - "x": 4.21, - "y": -8.37 - }, - "5": { - "x": 1.85, - "y": 27.71 - }, - "6": { - "x": 12.38, - "y": 17.15 - }, - "7": { - "x": 18.62, - "y": -0.38 - }, - "8": { - "x": 21.03, - "y": 29.57 - }, - "9": { - "x": 27.0, - "y": -16.09 - }, - "10": { - "x": 26.08, - "y": 24.88 - }, - "11": { - "x": 27.75, - "y": 9.17 - } - }, - { - "index": 42, - "ball": { - "x": -12.0, - "y": -19.0 - }, - "1": { - "x": -50.0, - "y": 0.0 - }, - "2": { - "x": -14.06, - "y": -18.51 - }, - "3": { - "x": -18.1, - "y": -7.15 - }, - "4": { - "x": -16.95, - "y": -24.28 - }, - "5": { - "x": -17.43, - "y": 3.61 - }, - "6": { - "x": -8.29, - "y": -12.74 - }, - "7": { - "x": -5.89, - "y": -20.67 - }, - "8": { - "x": -1.53, - "y": 3.94 - }, - "9": { - "x": 3.45, - "y": -30.49 - }, - "10": { - "x": 3.33, - "y": 25.13 - }, - "11": { - "x": 2.38, - "y": -8.1 - } - }, - { - "index": 43, - "ball": { - "x": -12.0, - "y": 19.0 - }, - "1": { - "x": -50.0, - "y": -0.0 - }, - "2": { - "x": -18.1, - "y": 7.15 - }, - "3": { - "x": -14.06, - "y": 18.51 - }, - "4": { - "x": -17.43, - "y": -3.61 - }, - "5": { - "x": -16.95, - "y": 24.28 - }, - "6": { - "x": -8.29, - "y": 12.74 - }, - "7": { - "x": -1.53, - "y": -3.94 - }, - "8": { - "x": -5.89, - "y": 20.67 - }, - "9": { - "x": 3.33, - "y": -25.13 - }, - "10": { - "x": 3.45, - "y": 30.49 - }, - "11": { - "x": 2.38, - "y": 8.1 - } - }, - { - "index": 44, - "ball": { - "x": -42.1, - "y": -28.03 - }, - "1": { - "x": -50.0, - "y": -0.04 - }, - "2": { - "x": -42.16, - "y": -14.65 - }, - "3": { - "x": -41.86, - "y": -6.87 - }, - "4": { - "x": -42.99, - "y": -26.08 - }, - "5": { - "x": -40.72, - "y": 1.53 - }, - "6": { - "x": -35.21, - "y": -15.5 - }, - "7": { - "x": -37.26, - "y": -22.84 - }, - "8": { - "x": -22.03, - "y": 1.19 - }, - "9": { - "x": -18.99, - "y": -32.33 - }, - "10": { - "x": -12.76, - "y": 21.71 - }, - "11": { - "x": -10.36, - "y": -13.93 - } - }, - { - "index": 45, - "ball": { - "x": -42.1, - "y": 28.03 - }, - "1": { - "x": -50.0, - "y": 0.04 - }, - "2": { - "x": -41.86, - "y": 6.87 - }, - "3": { - "x": -42.16, - "y": 14.65 - }, - "4": { - "x": -40.72, - "y": -1.53 - }, - "5": { - "x": -42.99, - "y": 26.08 - }, - "6": { - "x": -35.21, - "y": 15.5 - }, - "7": { - "x": -22.03, - "y": -1.19 - }, - "8": { - "x": -37.26, - "y": 22.84 - }, - "9": { - "x": -12.76, - "y": -21.71 - }, - "10": { - "x": -18.99, - "y": 32.33 - }, - "11": { - "x": -10.36, - "y": 13.93 - } - } - ] -} \ No newline at end of file diff --git a/src/formations-keeper/before-kick-off.conf b/src/formations-keeper/before-kick-off.conf deleted file mode 100644 index dad0ec22..00000000 --- a/src/formations-keeper/before-kick-off.conf +++ /dev/null @@ -1,99 +0,0 @@ -{ - "version" : "", - "method" : "Static", - "role" : [ - { - "number" : 1, - "name" : "Goalie", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 2, - "name" : "CenterBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 3, - "name" : "CenterBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 4, - "name" : "SideBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 5, - "name" : "SideBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 6, - "name" : "DefensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 7, - "name" : "OffensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 8, - "name" : "OffensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 9, - "name" : "SideForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 10, - "name" : "SideForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 11, - "name" : "CenterForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - } - ], - "data" : [ - { - "index" : 0, - "ball" : { "x" : 0.00, "y" : 0.00 }, - "1" : { "x" : -49.00, "y" : 0.00 }, - "2" : { "x" : -25.00, "y" : -5.00 }, - "3" : { "x" : -25.00, "y" : 5.00 }, - "4" : { "x" : -25.00, "y" : -10.00 }, - "5" : { "x" : -25.00, "y" : 10.00 }, - "6" : { "x" : -25.00, "y" : 0.00 }, - "7" : { "x" : -15.00, "y" : -5.00 }, - "8" : { "x" : -15.00, "y" : 5.00 }, - "9" : { "x" : -15.00, "y" : -10.00 }, - "10" : { "x" : -15.00, "y" : 10.00 }, - "11" : { "x" : -15.00, "y" : 0.00 } } - ] -} diff --git a/src/formations-keeper/defense-formation.conf b/src/formations-keeper/defense-formation.conf deleted file mode 120000 index 82d426ac..00000000 --- a/src/formations-keeper/defense-formation.conf +++ /dev/null @@ -1 +0,0 @@ -normal-formation.conf \ No newline at end of file diff --git a/src/formations-keeper/goal-kick-opp.conf b/src/formations-keeper/goal-kick-opp.conf deleted file mode 100644 index 77720797..00000000 --- a/src/formations-keeper/goal-kick-opp.conf +++ /dev/null @@ -1,99 +0,0 @@ -{ - "version" : "", - "method" : "Static", - "role" : [ - { - "number" : 1, - "name" : "Goalie", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 2, - "name" : "CenterBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 3, - "name" : "CenterBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 4, - "name" : "SideBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 5, - "name" : "SideBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 6, - "name" : "DefensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 7, - "name" : "OffensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 8, - "name" : "OffensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 9, - "name" : "SideForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 10, - "name" : "SideForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 11, - "name" : "CenterForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - } - ], - "data" : [ - { - "index" : 0, - "ball" : { "x" : 0.00, "y" : 0.00 }, - "1" : { "x" : -49.00, "y" : 0.00 }, - "2" : { "x" : 0.00, "y" : -5.00 }, - "3" : { "x" : 0.00, "y" : 5.00 }, - "4" : { "x" : 0.00, "y" : -12.00 }, - "5" : { "x" : 0.00, "y" : 12.00 }, - "6" : { "x" : 10.00, "y" : 0.00 }, - "7" : { "x" : 15.00, "y" : -12.00 }, - "8" : { "x" : 15.00, "y" : 12.00 }, - "9" : { "x" : 31.00, "y" : -17.50 }, - "10" : { "x" : 31.00, "y" : 17.50 }, - "11" : { "x" : 31.00, "y" : 0.00 } } - ] -} diff --git a/src/formations-keeper/goal-kick-our.conf b/src/formations-keeper/goal-kick-our.conf deleted file mode 100644 index 8adc8df1..00000000 --- a/src/formations-keeper/goal-kick-our.conf +++ /dev/null @@ -1,99 +0,0 @@ -{ - "version" : "", - "method" : "Static", - "role" : [ - { - "number" : 1, - "name" : "Goalie", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 2, - "name" : "CenterBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 3, - "name" : "CenterBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 4, - "name" : "SideBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 5, - "name" : "SideBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 6, - "name" : "DefensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 7, - "name" : "OffensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 8, - "name" : "OffensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 9, - "name" : "SideForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 10, - "name" : "SideForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 11, - "name" : "CenterForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - } - ], - "data" : [ - { - "index" : 0, - "ball" : { "x" : 0.00, "y" : 0.00 }, - "1" : { "x" : -49.00, "y" : 0.00 }, - "2" : { "x" : -44.50, "y" : -4.00 }, - "3" : { "x" : -44.50, "y" : 4.00 }, - "4" : { "x" : -42.00, "y" : -24.00 }, - "5" : { "x" : -42.00, "y" : 24.00 }, - "6" : { "x" : -32.00, "y" : 0.00 }, - "7" : { "x" : -32.50, "y" : -13.00 }, - "8" : { "x" : -32.50, "y" : 13.00 }, - "9" : { "x" : -13.00, "y" : -27.00 }, - "10" : { "x" : -13.00, "y" : 27.00 }, - "11" : { "x" : -13.00, "y" : 0.00 } } - ] -} diff --git a/src/formations-keeper/goalie-catch-opp.conf b/src/formations-keeper/goalie-catch-opp.conf deleted file mode 100644 index 51ee0c9e..00000000 --- a/src/formations-keeper/goalie-catch-opp.conf +++ /dev/null @@ -1,99 +0,0 @@ -{ - "version" : "", - "method" : "Static", - "role" : [ - { - "number" : 1, - "name" : "Goalie", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 2, - "name" : "CenterBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 3, - "name" : "CenterBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 4, - "name" : "SideBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 5, - "name" : "SideBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 6, - "name" : "DefensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 7, - "name" : "OffensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 8, - "name" : "OffensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 9, - "name" : "SideForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 10, - "name" : "SideForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 11, - "name" : "CenterForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - } - ], - "data" : [ - { - "index" : 0, - "ball" : { "x" : 0.00, "y" : 0.00 }, - "1" : { "x" : -49.00, "y" : 0.00 }, - "2" : { "x" : 0.00, "y" : -5.00 }, - "3" : { "x" : 0.00, "y" : 5.00 }, - "4" : { "x" : 0.00, "y" : -12.00 }, - "5" : { "x" : 0.00, "y" : 12.00 }, - "6" : { "x" : 10.00, "y" : 0.00 }, - "7" : { "x" : 10.00, "y" : -12.00 }, - "8" : { "x" : 10.00, "y" : 12.00 }, - "9" : { "x" : 20.00, "y" : -20.00 }, - "10" : { "x" : 20.00, "y" : 20.00 }, - "11" : { "x" : 20.00, "y" : 0.00 } } - ] -} diff --git a/src/formations-keeper/goalie-catch-our.conf b/src/formations-keeper/goalie-catch-our.conf deleted file mode 100644 index ce315463..00000000 --- a/src/formations-keeper/goalie-catch-our.conf +++ /dev/null @@ -1,99 +0,0 @@ -{ - "version" : "", - "method" : "Static", - "role" : [ - { - "number" : 1, - "name" : "Goalie", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 2, - "name" : "CenterBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 3, - "name" : "CenterBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 4, - "name" : "SideBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 5, - "name" : "SideBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 6, - "name" : "DefensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 7, - "name" : "OffensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 8, - "name" : "OffensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 9, - "name" : "SideForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 10, - "name" : "SideForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 11, - "name" : "CenterForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - } - ], - "data" : [ - { - "index" : 0, - "ball" : { "x" : 0.00, "y" : 0.00 }, - "1" : { "x" : -49.00, "y" : 0.00 }, - "2" : { "x" : -29.50, "y" : -7.70 }, - "3" : { "x" : -29.50, "y" : 7.70 }, - "4" : { "x" : -29.50, "y" : -25.50 }, - "5" : { "x" : -29.50, "y" : 25.50 }, - "6" : { "x" : -29.00, "y" : 0.00 }, - "7" : { "x" : -15.50, "y" : -12.00 }, - "8" : { "x" : -15.50, "y" : 12.00 }, - "9" : { "x" : -15.00, "y" : -27.00 }, - "10" : { "x" : -15.00, "y" : 27.00 }, - "11" : { "x" : -8.00, "y" : 0.00 } } - ] -} diff --git a/src/formations-keeper/goalie-formation.conf b/src/formations-keeper/goalie-formation.conf deleted file mode 100644 index 910deab4..00000000 --- a/src/formations-keeper/goalie-formation.conf +++ /dev/null @@ -1,715 +0,0 @@ -{ - "version" : "", - "method" : "DelaunayTriangulation", - "role" : [ - { - "number" : 1, - "name" : "Goalie", - "type" : "G", - "side" : "C", - "pair" : 0 - }, - { - "number" : 2, - "name" : "CenterBack", - "type" : "DF", - "side" : "L", - "pair" : 3 - }, - { - "number" : 3, - "name" : "CenterBack", - "type" : "DF", - "side" : "R", - "pair" : 2 - }, - { - "number" : 4, - "name" : "SideBack", - "type" : "DF", - "side" : "L", - "pair" : 5 - }, - { - "number" : 5, - "name" : "SideBack", - "type" : "DF", - "side" : "R", - "pair" : 4 - }, - { - "number" : 6, - "name" : "DefensiveHalf", - "type" : "MF", - "side" : "C", - "pair" : 0 - }, - { - "number" : 7, - "name" : "OffensiveHalf", - "type" : "MF", - "side" : "L", - "pair" : 8 - }, - { - "number" : 8, - "name" : "OffensiveHalf", - "type" : "MF", - "side" : "R", - "pair" : 7 - }, - { - "number" : 9, - "name" : "SideForward", - "type" : "FW", - "side" : "L", - "pair" : 10 - }, - { - "number" : 10, - "name" : "SideForward", - "type" : "FW", - "side" : "R", - "pair" : 9 - }, - { - "number" : 11, - "name" : "CenterForward", - "type" : "FW", - "side" : "C", - "pair" : 0 - } - ], - "data" : [ - { - "index" : 0, - "ball" : { "x" : -26.95, "y" : -31.61 }, - "1" : { "x" : -46.50, "y" : -3.00 }, - "2" : { "x" : -30.65, "y" : -16.82 }, - "3" : { "x" : -30.77, "y" : -6.44 }, - "4" : { "x" : -30.05, "y" : -29.10 }, - "5" : { "x" : -30.29, "y" : 3.70 }, - "6" : { "x" : -26.24, "y" : -14.19 }, - "7" : { "x" : -21.83, "y" : -26.72 }, - "8" : { "x" : -15.46, "y" : 2.33 }, - "9" : { "x" : -7.87, "y" : -31.01 }, - "10" : { "x" : -5.82, "y" : 19.94 }, - "11" : { "x" : -7.39, "y" : -15.15 } - }, - { - "index" : 1, - "ball" : { "x" : -26.95, "y" : 31.61 }, - "1" : { "x" : -46.50, "y" : 3.00 }, - "2" : { "x" : -30.77, "y" : 6.44 }, - "3" : { "x" : -30.65, "y" : 16.82 }, - "4" : { "x" : -30.29, "y" : -3.70 }, - "5" : { "x" : -30.05, "y" : 29.10 }, - "6" : { "x" : -26.24, "y" : 14.19 }, - "7" : { "x" : -15.46, "y" : -2.33 }, - "8" : { "x" : -21.83, "y" : 26.72 }, - "9" : { "x" : -5.82, "y" : -19.94 }, - "10" : { "x" : -7.87, "y" : 31.01 }, - "11" : { "x" : -7.39, "y" : 15.15 } - }, - { - "index" : 2, - "ball" : { "x" : -41.78, "y" : 0.00 }, - "1" : { "x" : -46.50, "y" : 0.00 }, - "2" : { "x" : -47.07, "y" : -2.61 }, - "3" : { "x" : -47.42, "y" : 2.25 }, - "4" : { "x" : -48.96, "y" : -5.34 }, - "5" : { "x" : -49.20, "y" : 5.10 }, - "6" : { "x" : -44.10, "y" : 0.12 }, - "7" : { "x" : -39.50, "y" : -6.00 }, - "8" : { "x" : -39.50, "y" : 6.00 }, - "9" : { "x" : -24.75, "y" : -22.00 }, - "10" : { "x" : -24.74, "y" : 22.00 }, - "11" : { "x" : -18.50, "y" : 0.00 } - }, - { - "index" : 3, - "ball" : { "x" : -36.02, "y" : -35.00 }, - "1" : { "x" : -46.50, "y" : -3.00 }, - "2" : { "x" : -36.61, "y" : -15.15 }, - "3" : { "x" : -36.26, "y" : -6.68 }, - "4" : { "x" : -36.14, "y" : -28.15 }, - "5" : { "x" : -34.60, "y" : 4.30 }, - "6" : { "x" : -31.61, "y" : -14.07 }, - "7" : { "x" : -26.72, "y" : -28.86 }, - "8" : { "x" : -20.16, "y" : 0.60 }, - "9" : { "x" : -10.23, "y" : -30.77 }, - "10" : { "x" : -7.44, "y" : 19.44 }, - "11" : { "x" : -7.62, "y" : -11.95 } - }, - { - "index" : 4, - "ball" : { "x" : -36.02, "y" : 35.00 }, - "1" : { "x" : -46.50, "y" : 3.00 }, - "2" : { "x" : -36.26, "y" : 6.68 }, - "3" : { "x" : -36.61, "y" : 15.15 }, - "4" : { "x" : -34.60, "y" : -4.30 }, - "5" : { "x" : -36.14, "y" : 28.15 }, - "6" : { "x" : -31.61, "y" : 14.07 }, - "7" : { "x" : -20.16, "y" : -0.60 }, - "8" : { "x" : -26.72, "y" : 28.86 }, - "9" : { "x" : -7.44, "y" : -19.44 }, - "10" : { "x" : -10.23, "y" : 30.77 }, - "11" : { "x" : -7.62, "y" : 11.95 } - }, - { - "index" : 5, - "ball" : { "x" : -36.04, "y" : -9.96 }, - "1" : { "x" : -46.50, "y" : -3.00 }, - "2" : { "x" : -42.92, "y" : -5.42 }, - "3" : { "x" : -39.70, "y" : -0.44 }, - "4" : { "x" : -41.75, "y" : -11.87 }, - "5" : { "x" : -41.27, "y" : 5.82 }, - "6" : { "x" : -35.75, "y" : -4.69 }, - "7" : { "x" : -32.28, "y" : -16.19 }, - "8" : { "x" : -27.62, "y" : 9.02 }, - "9" : { "x" : -18.00, "y" : -27.39 }, - "10" : { "x" : -18.00, "y" : 22.00 }, - "11" : { "x" : -14.78, "y" : -5.49 } - }, - { - "index" : 6, - "ball" : { "x" : -36.04, "y" : 9.96 }, - "1" : { "x" : -46.50, "y" : 3.00 }, - "2" : { "x" : -39.70, "y" : 0.44 }, - "3" : { "x" : -42.92, "y" : 5.42 }, - "4" : { "x" : -41.27, "y" : -5.91 }, - "5" : { "x" : -41.75, "y" : 11.87 }, - "6" : { "x" : -35.75, "y" : 4.69 }, - "7" : { "x" : -27.62, "y" : -9.02 }, - "8" : { "x" : -32.28, "y" : 16.19 }, - "9" : { "x" : -18.00, "y" : -22.00 }, - "10" : { "x" : -18.00, "y" : 27.39 }, - "11" : { "x" : -14.78, "y" : 5.49 } - }, - { - "index" : 7, - "ball" : { "x" : -43.39, "y" : -9.53 }, - "1" : { "x" : -47.85, "y" : -6.00 }, - "2" : { "x" : -46.77, "y" : -5.52 }, - "3" : { "x" : -43.97, "y" : -0.25 }, - "4" : { "x" : -45.77, "y" : -9.15 }, - "5" : { "x" : -47.40, "y" : 3.89 }, - "6" : { "x" : -40.77, "y" : -6.11 }, - "7" : { "x" : -38.79, "y" : -14.81 }, - "8" : { "x" : -38.46, "y" : 3.97 }, - "9" : { "x" : -23.30, "y" : -28.20 }, - "10" : { "x" : -23.20, "y" : 20.07 }, - "11" : { "x" : -23.56, "y" : -7.45 } - }, - { - "index" : 8, - "ball" : { "x" : -43.39, "y" : 9.53 }, - "1" : { "x" : -47.85, "y" : 6.00 }, - "2" : { "x" : -43.97, "y" : 0.25 }, - "3" : { "x" : -46.77, "y" : 5.52 }, - "4" : { "x" : -47.40, "y" : -3.89 }, - "5" : { "x" : -45.77, "y" : 9.15 }, - "6" : { "x" : -40.77, "y" : 6.11 }, - "7" : { "x" : -38.46, "y" : -3.97 }, - "8" : { "x" : -38.79, "y" : 14.81 }, - "9" : { "x" : -23.20, "y" : -20.07 }, - "10" : { "x" : -23.30, "y" : 28.20 }, - "11" : { "x" : -23.56, "y" : 7.45 } - }, - { - "index" : 9, - "ball" : { "x" : -54.50, "y" : -36.00 }, - "1" : { "x" : -51.00, "y" : -6.50 }, - "2" : { "x" : -47.04, "y" : -18.02 }, - "3" : { "x" : -45.42, "y" : -8.52 }, - "4" : { "x" : -49.09, "y" : -27.29 }, - "5" : { "x" : -43.37, "y" : 0.00 }, - "6" : { "x" : -42.18, "y" : -14.13 }, - "7" : { "x" : -42.72, "y" : -24.49 }, - "8" : { "x" : -27.43, "y" : 5.25 }, - "9" : { "x" : -19.32, "y" : -30.06 }, - "10" : { "x" : -12.88, "y" : 19.80 }, - "11" : { "x" : -14.91, "y" : -9.18 } - }, - { - "index" : 10, - "ball" : { "x" : -54.50, "y" : 36.00 }, - "1" : { "x" : -51.00, "y" : 6.50 }, - "2" : { "x" : -45.42, "y" : 8.52 }, - "3" : { "x" : -47.04, "y" : 18.02 }, - "4" : { "x" : -43.37, "y" : -0.00 }, - "5" : { "x" : -49.09, "y" : 27.29 }, - "6" : { "x" : -42.18, "y" : 14.13 }, - "7" : { "x" : -27.43, "y" : -5.25 }, - "8" : { "x" : -42.72, "y" : 24.49 }, - "9" : { "x" : -12.88, "y" : -19.80 }, - "10" : { "x" : -19.32, "y" : 30.06 }, - "11" : { "x" : -14.91, "y" : 9.18 } - }, - { - "index" : 11, - "ball" : { "x" : -54.50, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : -47.00, "y" : -2.50 }, - "3" : { "x" : -47.00, "y" : 2.50 }, - "4" : { "x" : -47.00, "y" : -7.00 }, - "5" : { "x" : -47.00, "y" : 7.00 }, - "6" : { "x" : -43.00, "y" : 0.00 }, - "7" : { "x" : -35.00, "y" : -13.00 }, - "8" : { "x" : -35.00, "y" : 13.00 }, - "9" : { "x" : -24.75, "y" : -22.00 }, - "10" : { "x" : -24.75, "y" : 22.00 }, - "11" : { "x" : -23.00, "y" : 0.00 } - }, - { - "index" : 12, - "ball" : { "x" : -54.50, "y" : -10.57 }, - "1" : { "x" : -51.00, "y" : -7.00 }, - "2" : { "x" : -48.41, "y" : -5.80 }, - "3" : { "x" : -48.76, "y" : -1.66 }, - "4" : { "x" : -51.01, "y" : -8.52 }, - "5" : { "x" : -48.65, "y" : 3.20 }, - "6" : { "x" : -44.37, "y" : -2.62 }, - "7" : { "x" : -43.73, "y" : -9.47 }, - "8" : { "x" : -39.90, "y" : 4.33 }, - "9" : { "x" : -24.81, "y" : -29.58 }, - "10" : { "x" : -18.82, "y" : 25.56 }, - "11" : { "x" : -23.00, "y" : -8.59 } - }, - { - "index" : 13, - "ball" : { "x" : -54.50, "y" : 10.57 }, - "1" : { "x" : -51.00, "y" : 7.00 }, - "2" : { "x" : -48.76, "y" : 1.66 }, - "3" : { "x" : -48.41, "y" : 5.80 }, - "4" : { "x" : -48.65, "y" : -3.20 }, - "5" : { "x" : -51.01, "y" : 8.52 }, - "6" : { "x" : -44.37, "y" : 2.62 }, - "7" : { "x" : -39.90, "y" : -4.33 }, - "8" : { "x" : -43.73, "y" : 9.47 }, - "9" : { "x" : -18.82, "y" : -25.56 }, - "10" : { "x" : -24.81, "y" : 29.58 }, - "11" : { "x" : -23.00, "y" : 8.59 } - }, - { - "index" : 14, - "ball" : { "x" : -42.10, "y" : -28.03 }, - "1" : { "x" : -49.00, "y" : -6.50 }, - "2" : { "x" : -42.94, "y" : -15.32 }, - "3" : { "x" : -41.86, "y" : -7.55 }, - "4" : { "x" : -43.37, "y" : -24.38 }, - "5" : { "x" : -39.49, "y" : 0.65 }, - "6" : { "x" : -38.73, "y" : -13.27 }, - "7" : { "x" : -32.56, "y" : -22.90 }, - "8" : { "x" : -25.09, "y" : 4.60 }, - "9" : { "x" : -15.62, "y" : -30.53 }, - "10" : { "x" : -12.76, "y" : 21.71 }, - "11" : { "x" : -13.95, "y" : -11.81 } - }, - { - "index" : 15, - "ball" : { "x" : -42.10, "y" : 28.03 }, - "1" : { "x" : -49.00, "y" : 6.50 }, - "2" : { "x" : -41.86, "y" : 7.55 }, - "3" : { "x" : -42.94, "y" : 15.32 }, - "4" : { "x" : -39.49, "y" : -0.65 }, - "5" : { "x" : -43.37, "y" : 24.38 }, - "6" : { "x" : -38.73, "y" : 13.27 }, - "7" : { "x" : -25.09, "y" : -4.60 }, - "8" : { "x" : -32.56, "y" : 22.90 }, - "9" : { "x" : -12.76, "y" : -21.71 }, - "10" : { "x" : -15.62, "y" : 30.53 }, - "11" : { "x" : -13.95, "y" : 11.81 } - }, - { - "index" : 16, - "ball" : { "x" : -48.97, "y" : -17.73 }, - "1" : { "x" : -50.00, "y" : -7.00 }, - "2" : { "x" : -47.08, "y" : -6.22 }, - "3" : { "x" : -44.08, "y" : -1.75 }, - "4" : { "x" : -47.77, "y" : -12.89 }, - "5" : { "x" : -47.07, "y" : 2.17 }, - "6" : { "x" : -44.09, "y" : -7.25 }, - "7" : { "x" : -43.12, "y" : -14.18 }, - "8" : { "x" : -37.99, "y" : 0.52 }, - "9" : { "x" : -30.17, "y" : -23.92 }, - "10" : { "x" : -20.89, "y" : 22.42 }, - "11" : { "x" : -21.75, "y" : -9.68 } - }, - { - "index" : 17, - "ball" : { "x" : -48.97, "y" : 17.73 }, - "1" : { "x" : -50.00, "y" : 7.00 }, - "2" : { "x" : -44.08, "y" : 1.75 }, - "3" : { "x" : -47.08, "y" : 6.22 }, - "4" : { "x" : -47.07, "y" : -2.17 }, - "5" : { "x" : -47.77, "y" : 12.89 }, - "6" : { "x" : -44.09, "y" : 7.25 }, - "7" : { "x" : -37.99, "y" : -0.52 }, - "8" : { "x" : -43.12, "y" : 14.18 }, - "9" : { "x" : -20.89, "y" : -22.42 }, - "10" : { "x" : -30.17, "y" : 23.92 }, - "11" : { "x" : -21.75, "y" : 9.68 } - }, - { - "index" : 18, - "ball" : { "x" : -22.08, "y" : 0.00 }, - "1" : { "x" : -46.50, "y" : -0.00 }, - "2" : { "x" : -25.43, "y" : -2.48 }, - "3" : { "x" : -25.34, "y" : 2.23 }, - "4" : { "x" : -26.20, "y" : -9.16 }, - "5" : { "x" : -25.77, "y" : 8.65 }, - "6" : { "x" : -20.42, "y" : 0.05 }, - "7" : { "x" : -15.86, "y" : -12.83 }, - "8" : { "x" : -15.25, "y" : 11.97 }, - "9" : { "x" : -6.18, "y" : -22.01 }, - "10" : { "x" : -5.43, "y" : 22.12 }, - "11" : { "x" : -3.02, "y" : -0.00 } - }, - { - "index" : 19, - "ball" : { "x" : -31.00, "y" : 0.00 }, - "1" : { "x" : -46.50, "y" : -0.00 }, - "2" : { "x" : -36.73, "y" : -2.99 }, - "3" : { "x" : -36.66, "y" : 2.67 }, - "4" : { "x" : -36.20, "y" : -8.93 }, - "5" : { "x" : -36.12, "y" : 8.13 }, - "6" : { "x" : -30.47, "y" : 0.22 }, - "7" : { "x" : -28.84, "y" : -12.26 }, - "8" : { "x" : -27.85, "y" : 9.82 }, - "9" : { "x" : -18.03, "y" : -21.00 }, - "10" : { "x" : -18.93, "y" : 22.26 }, - "11" : { "x" : -11.02, "y" : -0.00 } - }, - { - "index" : 20, - "ball" : { "x" : -48.35, "y" : -9.55 }, - "1" : { "x" : -50.00, "y" : -7.00 }, - "2" : { "x" : -48.12, "y" : -6.51 }, - "3" : { "x" : -46.32, "y" : -2.57 }, - "4" : { "x" : -48.12, "y" : -8.17 }, - "5" : { "x" : -48.20, "y" : 1.88 }, - "6" : { "x" : -44.09, "y" : -7.25 }, - "7" : { "x" : -43.12, "y" : -14.18 }, - "8" : { "x" : -41.22, "y" : 1.92 }, - "9" : { "x" : -27.41, "y" : -28.75 }, - "10" : { "x" : -25.72, "y" : 19.11 }, - "11" : { "x" : -23.00, "y" : -9.49 } - }, - { - "index" : 21, - "ball" : { "x" : -48.35, "y" : 9.55 }, - "1" : { "x" : -50.00, "y" : 7.00 }, - "2" : { "x" : -46.32, "y" : 2.57 }, - "3" : { "x" : -48.12, "y" : 6.51 }, - "4" : { "x" : -48.20, "y" : -1.88 }, - "5" : { "x" : -48.12, "y" : 8.17 }, - "6" : { "x" : -44.09, "y" : 7.25 }, - "7" : { "x" : -41.22, "y" : -1.92 }, - "8" : { "x" : -43.12, "y" : 14.18 }, - "9" : { "x" : -25.72, "y" : -19.11 }, - "10" : { "x" : -27.41, "y" : 28.75 }, - "11" : { "x" : -23.00, "y" : 9.49 } - }, - { - "index" : 22, - "ball" : { "x" : -22.08, "y" : -18.00 }, - "1" : { "x" : -46.50, "y" : -3.00 }, - "2" : { "x" : -26.23, "y" : -11.18 }, - "3" : { "x" : -26.32, "y" : -2.43 }, - "4" : { "x" : -25.96, "y" : -18.30 }, - "5" : { "x" : -26.32, "y" : 6.85 }, - "6" : { "x" : -21.58, "y" : -9.68 }, - "7" : { "x" : -17.81, "y" : -14.21 }, - "8" : { "x" : -14.69, "y" : 5.77 }, - "9" : { "x" : -4.33, "y" : -28.84 }, - "10" : { "x" : -4.51, "y" : 21.27 }, - "11" : { "x" : -4.87, "y" : -10.54 } - }, - { - "index" : 23, - "ball" : { "x" : -22.08, "y" : 18.00 }, - "1" : { "x" : -46.50, "y" : 3.00 }, - "2" : { "x" : -26.32, "y" : 2.43 }, - "3" : { "x" : -26.23, "y" : 11.18 }, - "4" : { "x" : -26.32, "y" : -6.85 }, - "5" : { "x" : -25.96, "y" : 18.30 }, - "6" : { "x" : -21.58, "y" : 9.68 }, - "7" : { "x" : -14.69, "y" : -5.77 }, - "8" : { "x" : -17.81, "y" : 14.21 }, - "9" : { "x" : -4.51, "y" : -21.27 }, - "10" : { "x" : -4.33, "y" : 28.84 }, - "11" : { "x" : -4.87, "y" : 10.54 } - }, - { - "index" : 24, - "ball" : { "x" : -22.08, "y" : -9.00 }, - "1" : { "x" : -46.50, "y" : -3.00 }, - "2" : { "x" : -25.24, "y" : -8.92 }, - "3" : { "x" : -25.42, "y" : -0.63 }, - "4" : { "x" : -24.96, "y" : -15.41 }, - "5" : { "x" : -25.33, "y" : 8.11 }, - "6" : { "x" : -22.62, "y" : -5.05 }, - "7" : { "x" : -17.81, "y" : -12.41 }, - "8" : { "x" : -15.25, "y" : 11.97 }, - "9" : { "x" : -6.18, "y" : -22.01 }, - "10" : { "x" : -5.43, "y" : 22.12 }, - "11" : { "x" : -3.02, "y" : -4.62 } - }, - { - "index" : 25, - "ball" : { "x" : -22.08, "y" : 9.00 }, - "1" : { "x" : -46.50, "y" : 3.00 }, - "2" : { "x" : -25.42, "y" : 0.63 }, - "3" : { "x" : -25.24, "y" : 8.92 }, - "4" : { "x" : -25.33, "y" : -8.11 }, - "5" : { "x" : -24.96, "y" : 15.41 }, - "6" : { "x" : -22.62, "y" : 5.05 }, - "7" : { "x" : -15.25, "y" : -11.97 }, - "8" : { "x" : -17.81, "y" : 12.41 }, - "9" : { "x" : -5.43, "y" : -22.12 }, - "10" : { "x" : -6.18, "y" : 22.01 }, - "11" : { "x" : -3.02, "y" : 4.62 } - }, - { - "index" : 26, - "ball" : { "x" : 54.50, "y" : -36.00 }, - "1" : { "x" : -43.00, "y" : 0.00 }, - "2" : { "x" : -0.72, "y" : -12.00 }, - "3" : { "x" : -0.84, "y" : 1.08 }, - "4" : { "x" : 7.19, "y" : -26.29 }, - "5" : { "x" : 10.00, "y" : 8.00 }, - "6" : { "x" : 21.83, "y" : -14.13 }, - "7" : { "x" : 35.28, "y" : -23.97 }, - "8" : { "x" : 40.92, "y" : -8.74 }, - "9" : { "x" : 44.22, "y" : -30.85 }, - "10" : { "x" : 43.53, "y" : 4.78 }, - "11" : { "x" : 48.38, "y" : -19.52 } - }, - { - "index" : 27, - "ball" : { "x" : 54.50, "y" : 36.00 }, - "1" : { "x" : -43.00, "y" : -0.00 }, - "2" : { "x" : -0.84, "y" : -1.08 }, - "3" : { "x" : -0.72, "y" : 12.00 }, - "4" : { "x" : 10.00, "y" : -8.00 }, - "5" : { "x" : 7.19, "y" : 26.29 }, - "6" : { "x" : 21.83, "y" : 14.13 }, - "7" : { "x" : 40.92, "y" : 8.74 }, - "8" : { "x" : 35.28, "y" : 23.97 }, - "9" : { "x" : 43.53, "y" : -4.78 }, - "10" : { "x" : 44.22, "y" : 30.85 }, - "11" : { "x" : 48.38, "y" : 19.52 } - }, - { - "index" : 28, - "ball" : { "x" : -11.99, "y" : -18.00 }, - "1" : { "x" : -43.00, "y" : -3.00 }, - "2" : { "x" : -16.27, "y" : -16.18 }, - "3" : { "x" : -15.84, "y" : -2.91 }, - "4" : { "x" : -15.07, "y" : -22.26 }, - "5" : { "x" : -16.18, "y" : 9.68 }, - "6" : { "x" : -14.56, "y" : -9.93 }, - "7" : { "x" : -4.78, "y" : -18.39 }, - "8" : { "x" : -4.15, "y" : 4.87 }, - "9" : { "x" : 2.88, "y" : -30.37 }, - "10" : { "x" : 3.70, "y" : 21.90 }, - "11" : { "x" : 3.70, "y" : -9.01 } - }, - { - "index" : 29, - "ball" : { "x" : -11.99, "y" : 18.00 }, - "1" : { "x" : -43.00, "y" : 3.00 }, - "2" : { "x" : -15.84, "y" : 2.91 }, - "3" : { "x" : -16.27, "y" : 16.18 }, - "4" : { "x" : -16.18, "y" : -9.68 }, - "5" : { "x" : -15.07, "y" : 22.26 }, - "6" : { "x" : -14.56, "y" : 9.93 }, - "7" : { "x" : -4.15, "y" : -4.87 }, - "8" : { "x" : -4.78, "y" : 18.39 }, - "9" : { "x" : 3.70, "y" : -21.90 }, - "10" : { "x" : 2.88, "y" : 30.37 }, - "11" : { "x" : 3.70, "y" : 9.01 } - }, - { - "index" : 30, - "ball" : { "x" : -11.99, "y" : -9.00 }, - "1" : { "x" : -43.00, "y" : -2.00 }, - "2" : { "x" : -15.58, "y" : -9.93 }, - "3" : { "x" : -15.93, "y" : 0.77 }, - "4" : { "x" : -15.50, "y" : -17.12 }, - "5" : { "x" : -15.75, "y" : 9.76 }, - "6" : { "x" : -13.96, "y" : -5.31 }, - "7" : { "x" : -7.75, "y" : -14.42 }, - "8" : { "x" : -5.59, "y" : 7.66 }, - "9" : { "x" : 2.25, "y" : -28.39 }, - "10" : { "x" : 2.16, "y" : 21.36 }, - "11" : { "x" : 2.61, "y" : -5.23 } - }, - { - "index" : 31, - "ball" : { "x" : -11.99, "y" : 9.00 }, - "1" : { "x" : -43.00, "y" : 2.00 }, - "2" : { "x" : -15.93, "y" : -0.77 }, - "3" : { "x" : -15.58, "y" : 9.93 }, - "4" : { "x" : -15.75, "y" : -9.76 }, - "5" : { "x" : -15.50, "y" : 17.12 }, - "6" : { "x" : -13.96, "y" : 5.31 }, - "7" : { "x" : -5.59, "y" : -7.66 }, - "8" : { "x" : -7.75, "y" : 14.42 }, - "9" : { "x" : 2.16, "y" : -21.36 }, - "10" : { "x" : 2.25, "y" : 28.39 }, - "11" : { "x" : 2.61, "y" : 5.23 } - }, - { - "index" : 32, - "ball" : { "x" : -11.99, "y" : 0.00 }, - "1" : { "x" : -43.00, "y" : -0.00 }, - "2" : { "x" : -15.75, "y" : -3.42 }, - "3" : { "x" : -15.75, "y" : 2.65 }, - "4" : { "x" : -15.75, "y" : -11.90 }, - "5" : { "x" : -16.70, "y" : 10.70 }, - "6" : { "x" : -13.96, "y" : 0.00 }, - "7" : { "x" : -8.05, "y" : -13.27 }, - "8" : { "x" : -7.11, "y" : 11.99 }, - "9" : { "x" : -2.20, "y" : -23.11 }, - "10" : { "x" : -0.94, "y" : 22.86 }, - "11" : { "x" : 1.91, "y" : -0.00 } - }, - { - "index" : 33, - "ball" : { "x" : -8.22, "y" : -36.00 }, - "1" : { "x" : -43.00, "y" : -4.00 }, - "2" : { "x" : -14.98, "y" : -24.57 }, - "3" : { "x" : -16.26, "y" : -7.31 }, - "4" : { "x" : -11.73, "y" : -33.05 }, - "5" : { "x" : -14.25, "y" : 7.67 }, - "6" : { "x" : -12.50, "y" : -16.95 }, - "7" : { "x" : -8.04, "y" : -26.49 }, - "8" : { "x" : -3.97, "y" : -5.41 }, - "9" : { "x" : 7.86, "y" : -31.17 }, - "10" : { "x" : 8.29, "y" : 2.34 }, - "11" : { "x" : 8.75, "y" : -16.72 } - }, - { - "index" : 34, - "ball" : { "x" : -8.22, "y" : 36.00 }, - "1" : { "x" : -43.00, "y" : 4.00 }, - "2" : { "x" : -16.26, "y" : 7.31 }, - "3" : { "x" : -14.98, "y" : 24.57 }, - "4" : { "x" : -14.25, "y" : -7.67 }, - "5" : { "x" : -11.73, "y" : 33.05 }, - "6" : { "x" : -12.50, "y" : 16.95 }, - "7" : { "x" : -3.97, "y" : 5.41 }, - "8" : { "x" : -8.04, "y" : 26.49 }, - "9" : { "x" : 8.29, "y" : -2.34 }, - "10" : { "x" : 7.86, "y" : 31.17 }, - "11" : { "x" : 8.75, "y" : 16.72 } - }, - { - "index" : 35, - "ball" : { "x" : -42.52, "y" : -6.04 }, - "1" : { "x" : -46.50, "y" : -4.75 }, - "2" : { "x" : -46.86, "y" : -4.31 }, - "3" : { "x" : -44.95, "y" : 0.79 }, - "4" : { "x" : -46.88, "y" : -7.76 }, - "5" : { "x" : -47.74, "y" : 4.50 }, - "6" : { "x" : -41.81, "y" : -3.85 }, - "7" : { "x" : -38.81, "y" : -11.62 }, - "8" : { "x" : -38.43, "y" : 4.91 }, - "9" : { "x" : -23.63, "y" : -25.89 }, - "10" : { "x" : -23.57, "y" : 20.85 }, - "11" : { "x" : -21.37, "y" : -4.64 } - }, - { - "index" : 36, - "ball" : { "x" : -42.52, "y" : 6.04 }, - "1" : { "x" : -46.50, "y" : 4.75 }, - "2" : { "x" : -44.95, "y" : -0.79 }, - "3" : { "x" : -46.86, "y" : 4.31 }, - "4" : { "x" : -47.74, "y" : -4.50 }, - "5" : { "x" : -46.88, "y" : 7.76 }, - "6" : { "x" : -41.81, "y" : 3.85 }, - "7" : { "x" : -38.43, "y" : -4.91 }, - "8" : { "x" : -38.81, "y" : 11.62 }, - "9" : { "x" : -23.57, "y" : -20.85 }, - "10" : { "x" : -23.63, "y" : 25.89 }, - "11" : { "x" : -21.37, "y" : 4.64 } - }, - { - "index" : 37, - "ball" : { "x" : 0.00, "y" : 0.00 }, - "1" : { "x" : -43.00, "y" : 0.00 }, - "2" : { "x" : -11.97, "y" : -8.07 }, - "3" : { "x" : -12.04, "y" : 6.87 }, - "4" : { "x" : -10.58, "y" : -16.23 }, - "5" : { "x" : -10.87, "y" : 15.70 }, - "6" : { "x" : -8.22, "y" : -0.19 }, - "7" : { "x" : -0.03, "y" : -8.56 }, - "8" : { "x" : -0.17, "y" : 8.44 }, - "9" : { "x" : 11.36, "y" : -18.82 }, - "10" : { "x" : 11.39, "y" : 18.52 }, - "11" : { "x" : 11.78, "y" : -0.06 } - }, - { - "index" : 38, - "ball" : { "x" : -41.21, "y" : -4.43 }, - "1" : { "x" : -46.50, "y" : -3.20 }, - "2" : { "x" : -46.31, "y" : -3.86 }, - "3" : { "x" : -45.02, "y" : 1.13 }, - "4" : { "x" : -46.83, "y" : -7.52 }, - "5" : { "x" : -47.24, "y" : 4.93 }, - "6" : { "x" : -41.69, "y" : -2.52 }, - "7" : { "x" : -38.02, "y" : -10.27 }, - "8" : { "x" : -37.09, "y" : 5.97 }, - "9" : { "x" : -23.14, "y" : -24.69 }, - "10" : { "x" : -23.11, "y" : 21.46 }, - "11" : { "x" : -19.25, "y" : -3.06 } - }, - { - "index" : 39, - "ball" : { "x" : -41.21, "y" : 4.43 }, - "1" : { "x" : -46.50, "y" : 3.20 }, - "2" : { "x" : -45.02, "y" : -1.13 }, - "3" : { "x" : -46.31, "y" : 3.86 }, - "4" : { "x" : -47.24, "y" : -4.93 }, - "5" : { "x" : -46.83, "y" : 7.52 }, - "6" : { "x" : -41.69, "y" : 2.52 }, - "7" : { "x" : -37.09, "y" : -5.97 }, - "8" : { "x" : -38.02, "y" : 10.27 }, - "9" : { "x" : -23.11, "y" : -21.46 }, - "10" : { "x" : -23.14, "y" : 24.69 }, - "11" : { "x" : -19.25, "y" : 3.06 } - }, - { - "index" : 40, - "ball" : { "x" : -42.38, "y" : -8.44 }, - "1" : { "x" : -46.50, "y" : -6.00 }, - "2" : { "x" : -46.42, "y" : -5.12 }, - "3" : { "x" : -43.87, "y" : 0.07 }, - "4" : { "x" : -45.73, "y" : -8.97 }, - "5" : { "x" : -46.90, "y" : 4.29 }, - "6" : { "x" : -40.61, "y" : -5.24 }, - "7" : { "x" : -38.15, "y" : -13.91 }, - "8" : { "x" : -37.38, "y" : 4.78 }, - "9" : { "x" : -22.88, "y" : -27.37 }, - "10" : { "x" : -22.81, "y" : 20.51 }, - "11" : { "x" : -21.98, "y" : -6.34 } - }, - { - "index" : 41, - "ball" : { "x" : -42.38, "y" : 8.44 }, - "1" : { "x" : -46.50, "y" : 6.00 }, - "2" : { "x" : -43.87, "y" : -0.07 }, - "3" : { "x" : -46.42, "y" : 5.12 }, - "4" : { "x" : -46.90, "y" : -4.29 }, - "5" : { "x" : -45.73, "y" : 8.97 }, - "6" : { "x" : -40.61, "y" : 5.24 }, - "7" : { "x" : -37.38, "y" : -4.78 }, - "8" : { "x" : -38.15, "y" : 13.91 }, - "9" : { "x" : -22.81, "y" : -20.51 }, - "10" : { "x" : -22.88, "y" : 27.37 }, - "11" : { "x" : -21.98, "y" : 6.34 } - } - ] -} diff --git a/src/formations-keeper/indirect-freekick-opp-formation.conf b/src/formations-keeper/indirect-freekick-opp-formation.conf deleted file mode 100644 index b0054c30..00000000 --- a/src/formations-keeper/indirect-freekick-opp-formation.conf +++ /dev/null @@ -1,400 +0,0 @@ -{ - "version" : "", - "method" : "DelaunayTriangulation", - "role" : [ - { - "number" : 1, - "name" : "Goalie", - "type" : "G", - "side" : "C", - "pair" : 0 - }, - { - "number" : 2, - "name" : "CenterBack", - "type" : "DF", - "side" : "L", - "pair" : 3 - }, - { - "number" : 3, - "name" : "CenterBack", - "type" : "DF", - "side" : "R", - "pair" : 2 - }, - { - "number" : 4, - "name" : "SideBack", - "type" : "DF", - "side" : "L", - "pair" : 5 - }, - { - "number" : 5, - "name" : "SideBack", - "type" : "DF", - "side" : "R", - "pair" : 4 - }, - { - "number" : 6, - "name" : "DefensiveHalf", - "type" : "MF", - "side" : "C", - "pair" : 0 - }, - { - "number" : 7, - "name" : "OffensiveHalf", - "type" : "MF", - "side" : "L", - "pair" : 8 - }, - { - "number" : 8, - "name" : "OffensiveHalf", - "type" : "MF", - "side" : "R", - "pair" : 7 - }, - { - "number" : 9, - "name" : "SideForward", - "type" : "FW", - "side" : "L", - "pair" : 10 - }, - { - "number" : 10, - "name" : "SideForward", - "type" : "FW", - "side" : "R", - "pair" : 9 - }, - { - "number" : 11, - "name" : "CenterForward", - "type" : "FW", - "side" : "C", - "pair" : 0 - } - ], - "data" : [ - { - "index" : 0, - "ball" : { "x" : 0.00, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -11.63, "y" : -4.60 }, - "3" : { "x" : -11.90, "y" : 4.06 }, - "4" : { "x" : -10.09, "y" : -16.13 }, - "5" : { "x" : -9.91, "y" : 14.51 }, - "6" : { "x" : -11.18, "y" : -0.36 }, - "7" : { "x" : -6.58, "y" : -8.20 }, - "8" : { "x" : -7.57, "y" : 8.29 }, - "9" : { "x" : -1.26, "y" : -11.99 }, - "10" : { "x" : -1.80, "y" : 12.17 }, - "11" : { "x" : 11.72, "y" : 0.00 } - }, - { - "index" : 1, - "ball" : { "x" : -54.50, "y" : -36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -45.60, "y" : -18.57 }, - "3" : { "x" : -45.24, "y" : -5.14 }, - "4" : { "x" : -49.75, "y" : -24.60 }, - "5" : { "x" : -45.60, "y" : 3.88 }, - "6" : { "x" : -39.84, "y" : -15.59 }, - "7" : { "x" : -41.91, "y" : -24.24 }, - "8" : { "x" : -34.88, "y" : -0.09 }, - "9" : { "x" : -29.11, "y" : -28.84 }, - "10" : { "x" : -14.69, "y" : 21.98 }, - "11" : { "x" : -14.90, "y" : -5.27 } - }, - { - "index" : 2, - "ball" : { "x" : -54.50, "y" : 36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -45.24, "y" : 5.14 }, - "3" : { "x" : -45.60, "y" : 18.57 }, - "4" : { "x" : -45.60, "y" : -3.88 }, - "5" : { "x" : -49.75, "y" : 24.60 }, - "6" : { "x" : -39.84, "y" : 15.59 }, - "7" : { "x" : -34.88, "y" : 0.09 }, - "8" : { "x" : -41.91, "y" : 24.24 }, - "9" : { "x" : -14.69, "y" : -21.98 }, - "10" : { "x" : -29.11, "y" : 28.84 }, - "11" : { "x" : -14.90, "y" : 5.27 } - }, - { - "index" : 3, - "ball" : { "x" : 54.50, "y" : -36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -5.68, "y" : -9.82 }, - "3" : { "x" : -4.51, "y" : 2.34 }, - "4" : { "x" : 5.86, "y" : -22.53 }, - "5" : { "x" : 10.00, "y" : 8.00 }, - "6" : { "x" : 20.82, "y" : -15.86 }, - "7" : { "x" : 31.99, "y" : -26.86 }, - "8" : { "x" : 35.24, "y" : -14.15 }, - "9" : { "x" : 39.02, "y" : -32.81 }, - "10" : { "x" : 43.71, "y" : -11.81 }, - "11" : { "x" : 40.11, "y" : -23.79 } - }, - { - "index" : 4, - "ball" : { "x" : 54.50, "y" : 36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -4.51, "y" : -2.34 }, - "3" : { "x" : -5.68, "y" : 9.82 }, - "4" : { "x" : 10.00, "y" : -8.00 }, - "5" : { "x" : 5.86, "y" : 22.53 }, - "6" : { "x" : 20.82, "y" : 15.86 }, - "7" : { "x" : 35.24, "y" : 14.15 }, - "8" : { "x" : 31.99, "y" : 26.86 }, - "9" : { "x" : 43.71, "y" : 11.81 }, - "10" : { "x" : 39.02, "y" : 32.81 }, - "11" : { "x" : 40.11, "y" : 23.79 } - }, - { - "index" : 5, - "ball" : { "x" : -35.00, "y" : -21.00 }, - "1" : { "x" : -50.00, "y" : -6.50 }, - "2" : { "x" : -44.28, "y" : -10.05 }, - "3" : { "x" : -44.22, "y" : -1.48 }, - "4" : { "x" : -44.19, "y" : -15.75 }, - "5" : { "x" : -43.66, "y" : 4.83 }, - "6" : { "x" : -40.28, "y" : -10.05 }, - "7" : { "x" : -35.08, "y" : -10.56 }, - "8" : { "x" : -37.64, "y" : -2.21 }, - "9" : { "x" : -25.89, "y" : -20.10 }, - "10" : { "x" : -12.49, "y" : 14.65 }, - "11" : { "x" : -21.91, "y" : -8.74 } - }, - { - "index" : 6, - "ball" : { "x" : -35.00, "y" : 21.00 }, - "1" : { "x" : -50.00, "y" : 6.50 }, - "2" : { "x" : -44.22, "y" : 1.48 }, - "3" : { "x" : -44.28, "y" : 10.05 }, - "4" : { "x" : -43.66, "y" : -4.83 }, - "5" : { "x" : -44.19, "y" : 15.75 }, - "6" : { "x" : -40.28, "y" : 10.05 }, - "7" : { "x" : -37.64, "y" : 2.21 }, - "8" : { "x" : -35.08, "y" : 10.56 }, - "9" : { "x" : -12.49, "y" : -14.65 }, - "10" : { "x" : -25.89, "y" : 20.10 }, - "11" : { "x" : -21.91, "y" : 8.74 } - }, - { - "index" : 7, - "ball" : { "x" : -35.00, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -45.21, "y" : -2.19 }, - "3" : { "x" : -45.21, "y" : 2.19 }, - "4" : { "x" : -46.27, "y" : -4.12 }, - "5" : { "x" : -46.27, "y" : 4.12 }, - "6" : { "x" : -45.10, "y" : 0.00 }, - "7" : { "x" : -44.68, "y" : -5.14 }, - "8" : { "x" : -44.68, "y" : 5.14 }, - "9" : { "x" : -25.12, "y" : -16.78 }, - "10" : { "x" : -25.12, "y" : 16.78 }, - "11" : { "x" : -23.50, "y" : -0.09 } - }, - { - "index" : 8, - "ball" : { "x" : -54.50, "y" : 0.00 }, - "1" : { "x" : -54.00, "y" : 0.00 }, - "2" : { "x" : -52.60, "y" : -2.00 }, - "3" : { "x" : -52.60, "y" : 2.00 }, - "4" : { "x" : -52.60, "y" : -6.50 }, - "5" : { "x" : -52.60, "y" : 6.50 }, - "6" : { "x" : -52.60, "y" : 0.00 }, - "7" : { "x" : -52.60, "y" : -4.00 }, - "8" : { "x" : -52.60, "y" : 4.00 }, - "9" : { "x" : -33.21, "y" : -19.76 }, - "10" : { "x" : -33.21, "y" : 19.76 }, - "11" : { "x" : -32.47, "y" : 0.11 } - }, - { - "index" : 9, - "ball" : { "x" : -47.00, "y" : 0.00 }, - "1" : { "x" : -52.70, "y" : -0.35 }, - "2" : { "x" : -52.62, "y" : -2.09 }, - "3" : { "x" : -52.62, "y" : 1.08 }, - "4" : { "x" : -52.62, "y" : -3.88 }, - "5" : { "x" : -52.55, "y" : 3.65 }, - "6" : { "x" : -52.67, "y" : 2.37 }, - "7" : { "x" : -52.67, "y" : -5.34 }, - "8" : { "x" : -52.47, "y" : 4.96 }, - "9" : { "x" : -27.39, "y" : -19.82 }, - "10" : { "x" : -27.39, "y" : 19.82 }, - "11" : { "x" : -28.40, "y" : 0.07 } - }, - { - "index" : 10, - "ball" : { "x" : -47.00, "y" : -9.00 }, - "1" : { "x" : -52.65, "y" : -3.93 }, - "2" : { "x" : -52.55, "y" : -2.72 }, - "3" : { "x" : -52.65, "y" : -1.11 }, - "4" : { "x" : -52.55, "y" : -5.09 }, - "5" : { "x" : -52.72, "y" : 3.91 }, - "6" : { "x" : -52.65, "y" : 0.66 }, - "7" : { "x" : -52.75, "y" : -6.25 }, - "8" : { "x" : -51.44, "y" : 2.87 }, - "9" : { "x" : -36.10, "y" : -15.24 }, - "10" : { "x" : -30.66, "y" : 15.55 }, - "11" : { "x" : -32.13, "y" : -3.29 } - }, - { - "index" : 11, - "ball" : { "x" : -47.00, "y" : 9.00 }, - "1" : { "x" : -52.65, "y" : 3.93 }, - "2" : { "x" : -52.65, "y" : 1.11 }, - "3" : { "x" : -52.55, "y" : 2.72 }, - "4" : { "x" : -52.72, "y" : -3.91 }, - "5" : { "x" : -52.55, "y" : 5.09 }, - "6" : { "x" : -52.65, "y" : -0.66 }, - "7" : { "x" : -51.44, "y" : -2.87 }, - "8" : { "x" : -52.75, "y" : 6.25 }, - "9" : { "x" : -30.66, "y" : -15.55 }, - "10" : { "x" : -36.10, "y" : 15.24 }, - "11" : { "x" : -32.13, "y" : 3.29 } - }, - { - "index" : 12, - "ball" : { "x" : -35.00, "y" : -9.00 }, - "1" : { "x" : -50.00, "y" : -3.02 }, - "2" : { "x" : -45.64, "y" : -4.17 }, - "3" : { "x" : -45.25, "y" : 0.23 }, - "4" : { "x" : -45.78, "y" : -7.75 }, - "5" : { "x" : -45.25, "y" : 5.29 }, - "6" : { "x" : -43.44, "y" : -2.95 }, - "7" : { "x" : -45.74, "y" : -6.20 }, - "8" : { "x" : -41.43, "y" : 1.89 }, - "9" : { "x" : -27.84, "y" : -17.20 }, - "10" : { "x" : -20.78, "y" : 14.99 }, - "11" : { "x" : -25.29, "y" : -3.66 } - }, - { - "index" : 13, - "ball" : { "x" : -35.00, "y" : 9.00 }, - "1" : { "x" : -50.00, "y" : 3.02 }, - "2" : { "x" : -45.25, "y" : -0.23 }, - "3" : { "x" : -45.64, "y" : 4.17 }, - "4" : { "x" : -45.25, "y" : -5.29 }, - "5" : { "x" : -45.78, "y" : 7.75 }, - "6" : { "x" : -43.44, "y" : 2.95 }, - "7" : { "x" : -41.43, "y" : -1.89 }, - "8" : { "x" : -45.74, "y" : 6.20 }, - "9" : { "x" : -20.78, "y" : -14.99 }, - "10" : { "x" : -27.84, "y" : 17.20 }, - "11" : { "x" : -25.29, "y" : 3.66 } - }, - { - "index" : 14, - "ball" : { "x" : -44.00, "y" : -21.00 }, - "1" : { "x" : -51.00, "y" : -6.00 }, - "2" : { "x" : -45.86, "y" : -4.39 }, - "3" : { "x" : -45.71, "y" : 1.02 }, - "4" : { "x" : -45.97, "y" : -7.15 }, - "5" : { "x" : -45.40, "y" : 5.78 }, - "6" : { "x" : -44.08, "y" : -6.92 }, - "7" : { "x" : -44.72, "y" : -8.96 }, - "8" : { "x" : -41.36, "y" : -0.49 }, - "9" : { "x" : -39.09, "y" : -10.43 }, - "10" : { "x" : -18.77, "y" : 16.91 }, - "11" : { "x" : -23.22, "y" : -6.10 } - }, - { - "index" : 15, - "ball" : { "x" : -44.00, "y" : 21.00 }, - "1" : { "x" : -51.00, "y" : 6.00 }, - "2" : { "x" : -45.71, "y" : -1.02 }, - "3" : { "x" : -45.86, "y" : 4.39 }, - "4" : { "x" : -45.40, "y" : -5.78 }, - "5" : { "x" : -45.97, "y" : 7.15 }, - "6" : { "x" : -44.08, "y" : 6.92 }, - "7" : { "x" : -41.36, "y" : 0.49 }, - "8" : { "x" : -44.72, "y" : 8.96 }, - "9" : { "x" : -18.77, "y" : -16.91 }, - "10" : { "x" : -39.09, "y" : 10.43 }, - "11" : { "x" : -23.22, "y" : 6.10 } - }, - { - "index" : 16, - "ball" : { "x" : -54.50, "y" : -21.00 }, - "1" : { "x" : -51.72, "y" : 0.00 }, - "2" : { "x" : -48.79, "y" : -7.15 }, - "3" : { "x" : -47.86, "y" : -0.17 }, - "4" : { "x" : -49.73, "y" : -13.20 }, - "5" : { "x" : -48.37, "y" : 6.05 }, - "6" : { "x" : -44.53, "y" : -8.00 }, - "7" : { "x" : -41.72, "y" : -14.39 }, - "8" : { "x" : -38.40, "y" : 0.34 }, - "9" : { "x" : -30.87, "y" : -24.94 }, - "10" : { "x" : -22.65, "y" : 21.03 }, - "11" : { "x" : -22.45, "y" : -2.96 } - }, - { - "index" : 17, - "ball" : { "x" : -54.50, "y" : 21.00 }, - "1" : { "x" : -51.72, "y" : 0.00 }, - "2" : { "x" : -47.86, "y" : 0.17 }, - "3" : { "x" : -48.79, "y" : 7.15 }, - "4" : { "x" : -48.37, "y" : -6.05 }, - "5" : { "x" : -49.73, "y" : 13.20 }, - "6" : { "x" : -44.53, "y" : 8.00 }, - "7" : { "x" : -38.40, "y" : -0.34 }, - "8" : { "x" : -41.72, "y" : 14.39 }, - "9" : { "x" : -22.65, "y" : -21.03 }, - "10" : { "x" : -30.87, "y" : 24.94 }, - "11" : { "x" : -22.45, "y" : 2.96 } - }, - { - "index" : 18, - "ball" : { "x" : -42.00, "y" : 0.00 }, - "1" : { "x" : -52.78, "y" : -1.21 }, - "2" : { "x" : -51.87, "y" : -1.06 }, - "3" : { "x" : -51.87, "y" : 1.06 }, - "4" : { "x" : -51.53, "y" : -3.25 }, - "5" : { "x" : -51.91, "y" : 3.48 }, - "6" : { "x" : -52.32, "y" : 1.44 }, - "7" : { "x" : -51.19, "y" : -5.22 }, - "8" : { "x" : -51.19, "y" : 5.22 }, - "9" : { "x" : -29.12, "y" : -16.35 }, - "10" : { "x" : -29.12, "y" : 16.35 }, - "11" : { "x" : -27.20, "y" : 0.06 } - }, - { - "index" : 19, - "ball" : { "x" : -42.50, "y" : -9.00 }, - "1" : { "x" : -52.51, "y" : -1.65 }, - "2" : { "x" : -52.62, "y" : -3.52 }, - "3" : { "x" : -52.11, "y" : 1.08 }, - "4" : { "x" : -52.79, "y" : -4.94 }, - "5" : { "x" : -52.06, "y" : 3.41 }, - "6" : { "x" : -51.32, "y" : 0.57 }, - "7" : { "x" : -52.85, "y" : -6.47 }, - "8" : { "x" : -50.07, "y" : 5.28 }, - "9" : { "x" : -33.14, "y" : -15.92 }, - "10" : { "x" : -26.91, "y" : 15.37 }, - "11" : { "x" : -29.52, "y" : -3.47 } - }, - { - "index" : 20, - "ball" : { "x" : -42.50, "y" : 9.00 }, - "1" : { "x" : -52.51, "y" : 1.65 }, - "2" : { "x" : -52.11, "y" : -1.08 }, - "3" : { "x" : -52.62, "y" : 3.52 }, - "4" : { "x" : -52.06, "y" : -3.41 }, - "5" : { "x" : -52.79, "y" : 4.94 }, - "6" : { "x" : -51.32, "y" : -0.57 }, - "7" : { "x" : -50.07, "y" : -5.28 }, - "8" : { "x" : -52.85, "y" : 6.47 }, - "9" : { "x" : -26.91, "y" : -15.37 }, - "10" : { "x" : -33.14, "y" : 15.92 }, - "11" : { "x" : -29.52, "y" : 3.47 } - } - ] -} diff --git a/src/formations-keeper/indirect-freekick-our-formation.conf b/src/formations-keeper/indirect-freekick-our-formation.conf deleted file mode 100644 index 40592d4e..00000000 --- a/src/formations-keeper/indirect-freekick-our-formation.conf +++ /dev/null @@ -1,460 +0,0 @@ -{ - "version" : "", - "method" : "DelaunayTriangulation", - "role" : [ - { - "number" : 1, - "name" : "Goalie", - "type" : "G", - "side" : "C", - "pair" : 0 - }, - { - "number" : 2, - "name" : "CenterBack", - "type" : "DF", - "side" : "L", - "pair" : 3 - }, - { - "number" : 3, - "name" : "CenterBack", - "type" : "DF", - "side" : "R", - "pair" : 2 - }, - { - "number" : 4, - "name" : "SideBack", - "type" : "DF", - "side" : "L", - "pair" : 5 - }, - { - "number" : 5, - "name" : "SideBack", - "type" : "DF", - "side" : "R", - "pair" : 4 - }, - { - "number" : 6, - "name" : "DefensiveHalf", - "type" : "MF", - "side" : "C", - "pair" : 0 - }, - { - "number" : 7, - "name" : "OffensiveHalf", - "type" : "MF", - "side" : "L", - "pair" : 8 - }, - { - "number" : 8, - "name" : "OffensiveHalf", - "type" : "MF", - "side" : "R", - "pair" : 7 - }, - { - "number" : 9, - "name" : "SideForward", - "type" : "FW", - "side" : "L", - "pair" : 10 - }, - { - "number" : 10, - "name" : "SideForward", - "type" : "FW", - "side" : "R", - "pair" : 9 - }, - { - "number" : 11, - "name" : "CenterForward", - "type" : "FW", - "side" : "C", - "pair" : 0 - } - ], - "data" : [ - { - "index" : 0, - "ball" : { "x" : 0.00, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -15.22, "y" : -4.84 }, - "3" : { "x" : -15.33, "y" : 3.66 }, - "4" : { "x" : -9.29, "y" : -15.12 }, - "5" : { "x" : -10.84, "y" : 13.69 }, - "6" : { "x" : -0.71, "y" : -0.36 }, - "7" : { "x" : 0.00, "y" : -6.97 }, - "8" : { "x" : 0.48, "y" : 6.73 }, - "9" : { "x" : 13.69, "y" : -20.13 }, - "10" : { "x" : 10.73, "y" : 24.00 }, - "11" : { "x" : 16.08, "y" : 0.00 } - }, - { - "index" : 1, - "ball" : { "x" : -54.50, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -46.15, "y" : -1.92 }, - "3" : { "x" : -46.03, "y" : 2.88 }, - "4" : { "x" : -45.07, "y" : -7.57 }, - "5" : { "x" : -45.55, "y" : 7.93 }, - "6" : { "x" : -39.78, "y" : 0.00 }, - "7" : { "x" : -36.30, "y" : -15.98 }, - "8" : { "x" : -37.02, "y" : 11.78 }, - "9" : { "x" : -22.00, "y" : -28.00 }, - "10" : { "x" : -19.29, "y" : 26.44 }, - "11" : { "x" : -16.47, "y" : -0.84 } - }, - { - "index" : 2, - "ball" : { "x" : 35.00, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.00, "y" : -7.38 }, - "3" : { "x" : 0.00, "y" : 7.38 }, - "4" : { "x" : 4.00, "y" : -17.70 }, - "5" : { "x" : 4.00, "y" : 17.70 }, - "6" : { "x" : 34.06, "y" : 0.17 }, - "7" : { "x" : 35.08, "y" : -7.07 }, - "8" : { "x" : 35.08, "y" : 7.07 }, - "9" : { "x" : 41.43, "y" : -5.14 }, - "10" : { "x" : 41.43, "y" : 5.14 }, - "11" : { "x" : 41.02, "y" : 0.04 } - }, - { - "index" : 3, - "ball" : { "x" : 35.00, "y" : -9.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 1.68, "y" : -7.93 }, - "3" : { "x" : 4.93, "y" : 6.85 }, - "4" : { "x" : 5.00, "y" : -20.00 }, - "5" : { "x" : 12.26, "y" : 16.47 }, - "6" : { "x" : 32.19, "y" : -2.72 }, - "7" : { "x" : 34.49, "y" : -9.03 }, - "8" : { "x" : 35.00, "y" : 5.71 }, - "9" : { "x" : 41.47, "y" : -6.31 }, - "10" : { "x" : 43.25, "y" : 3.86 }, - "11" : { "x" : 42.76, "y" : -1.78 } - }, - { - "index" : 4, - "ball" : { "x" : 35.00, "y" : 9.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : 4.93, "y" : -6.85 }, - "3" : { "x" : 1.68, "y" : 7.93 }, - "4" : { "x" : 12.26, "y" : -16.47 }, - "5" : { "x" : 5.00, "y" : 20.00 }, - "6" : { "x" : 32.19, "y" : 2.72 }, - "7" : { "x" : 35.00, "y" : -5.71 }, - "8" : { "x" : 34.49, "y" : 9.03 }, - "9" : { "x" : 43.25, "y" : -3.86 }, - "10" : { "x" : 41.47, "y" : 6.31 }, - "11" : { "x" : 42.76, "y" : 1.78 } - }, - { - "index" : 5, - "ball" : { "x" : 54.50, "y" : -36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -0.89, "y" : -12.98 }, - "3" : { "x" : 6.36, "y" : 2.29 }, - "4" : { "x" : 8.30, "y" : -27.30 }, - "5" : { "x" : 18.32, "y" : 10.56 }, - "6" : { "x" : 20.16, "y" : -10.85 }, - "7" : { "x" : 38.11, "y" : -27.75 }, - "8" : { "x" : 38.30, "y" : -4.20 }, - "9" : { "x" : 47.63, "y" : -30.13 }, - "10" : { "x" : 47.28, "y" : -2.38 }, - "11" : { "x" : 48.47, "y" : -19.77 } - }, - { - "index" : 6, - "ball" : { "x" : 54.50, "y" : 36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 6.36, "y" : -2.29 }, - "3" : { "x" : -0.89, "y" : 12.98 }, - "4" : { "x" : 18.32, "y" : -10.56 }, - "5" : { "x" : 8.30, "y" : 27.30 }, - "6" : { "x" : 20.16, "y" : 10.85 }, - "7" : { "x" : 38.30, "y" : 4.20 }, - "8" : { "x" : 38.11, "y" : 27.75 }, - "9" : { "x" : 47.28, "y" : 2.38 }, - "10" : { "x" : 47.63, "y" : 30.13 }, - "11" : { "x" : 48.47, "y" : 19.77 } - }, - { - "index" : 7, - "ball" : { "x" : -54.50, "y" : -36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -46.83, "y" : -11.96 }, - "3" : { "x" : -46.51, "y" : -4.65 }, - "4" : { "x" : -50.73, "y" : -32.15 }, - "5" : { "x" : -45.56, "y" : 4.77 }, - "6" : { "x" : -41.99, "y" : -15.01 }, - "7" : { "x" : -35.76, "y" : -22.52 }, - "8" : { "x" : -23.79, "y" : 0.76 }, - "9" : { "x" : -22.39, "y" : -31.81 }, - "10" : { "x" : -12.98, "y" : 19.47 }, - "11" : { "x" : -16.92, "y" : -13.11 } - }, - { - "index" : 8, - "ball" : { "x" : -54.50, "y" : 36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -46.51, "y" : 4.65 }, - "3" : { "x" : -46.83, "y" : 11.96 }, - "4" : { "x" : -45.56, "y" : -4.77 }, - "5" : { "x" : -50.73, "y" : 32.15 }, - "6" : { "x" : -41.99, "y" : 15.01 }, - "7" : { "x" : -23.79, "y" : -0.76 }, - "8" : { "x" : -35.76, "y" : 22.52 }, - "9" : { "x" : -12.98, "y" : -19.47 }, - "10" : { "x" : -22.39, "y" : 31.81 }, - "11" : { "x" : -16.92, "y" : 13.11 } - }, - { - "index" : 9, - "ball" : { "x" : 35.00, "y" : -21.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 2.57, "y" : -11.68 }, - "3" : { "x" : 0.00, "y" : 2.08 }, - "4" : { "x" : 4.57, "y" : -22.24 }, - "5" : { "x" : 9.42, "y" : 13.35 }, - "6" : { "x" : 28.78, "y" : -11.75 }, - "7" : { "x" : 34.23, "y" : -20.86 }, - "8" : { "x" : 35.08, "y" : -1.70 }, - "9" : { "x" : 39.00, "y" : -16.86 }, - "10" : { "x" : 40.36, "y" : 5.79 }, - "11" : { "x" : 39.85, "y" : -10.22 } - }, - { - "index" : 10, - "ball" : { "x" : 35.00, "y" : 21.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.00, "y" : -2.08 }, - "3" : { "x" : 2.57, "y" : 11.68 }, - "4" : { "x" : 9.42, "y" : -13.35 }, - "5" : { "x" : 4.57, "y" : 22.24 }, - "6" : { "x" : 28.78, "y" : 11.75 }, - "7" : { "x" : 35.08, "y" : 1.70 }, - "8" : { "x" : 34.23, "y" : 20.86 }, - "9" : { "x" : 40.36, "y" : -5.79 }, - "10" : { "x" : 39.00, "y" : 16.86 }, - "11" : { "x" : 39.85, "y" : 10.22 } - }, - { - "index" : 11, - "ball" : { "x" : 54.50, "y" : -21.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.65, "y" : -10.71 }, - "3" : { "x" : 4.82, "y" : 4.56 }, - "4" : { "x" : 10.43, "y" : -23.74 }, - "5" : { "x" : 16.19, "y" : 14.12 }, - "6" : { "x" : 35.85, "y" : -10.13 }, - "7" : { "x" : 53.65, "y" : -21.12 }, - "8" : { "x" : 38.57, "y" : -0.34 }, - "9" : { "x" : 48.28, "y" : -12.94 }, - "10" : { "x" : 46.41, "y" : 5.79 }, - "11" : { "x" : 46.83, "y" : -5.88 } - }, - { - "index" : 12, - "ball" : { "x" : 54.50, "y" : 21.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 4.82, "y" : -4.56 }, - "3" : { "x" : 0.65, "y" : 10.71 }, - "4" : { "x" : 16.19, "y" : -14.12 }, - "5" : { "x" : 10.43, "y" : 23.74 }, - "6" : { "x" : 35.85, "y" : 10.13 }, - "7" : { "x" : 38.57, "y" : 0.34 }, - "8" : { "x" : 53.65, "y" : 21.12 }, - "9" : { "x" : 46.41, "y" : -5.79 }, - "10" : { "x" : 48.28, "y" : 12.94 }, - "11" : { "x" : 46.83, "y" : 5.88 } - }, - { - "index" : 13, - "ball" : { "x" : 54.50, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 2.74, "y" : -7.64 }, - "3" : { "x" : 2.74, "y" : 7.64 }, - "4" : { "x" : 13.31, "y" : -18.93 }, - "5" : { "x" : 13.31, "y" : 18.93 }, - "6" : { "x" : 36.62, "y" : 0.00 }, - "7" : { "x" : 40.15, "y" : -8.47 }, - "8" : { "x" : 40.15, "y" : 8.47 }, - "9" : { "x" : 50.41, "y" : -6.13 }, - "10" : { "x" : 50.41, "y" : 6.13 }, - "11" : { "x" : 53.00, "y" : 0.09 } - }, - { - "index" : 14, - "ball" : { "x" : 47.00, "y" : -9.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 1.80, "y" : -8.51 }, - "3" : { "x" : 4.12, "y" : 6.57 }, - "4" : { "x" : 9.30, "y" : -20.53 }, - "5" : { "x" : 13.60, "y" : 16.77 }, - "6" : { "x" : 35.08, "y" : -1.19 }, - "7" : { "x" : 46.27, "y" : -8.92 }, - "8" : { "x" : 38.71, "y" : 5.18 }, - "9" : { "x" : 49.22, "y" : -6.09 }, - "10" : { "x" : 48.96, "y" : 2.61 }, - "11" : { "x" : 49.22, "y" : -2.42 } - }, - { - "index" : 15, - "ball" : { "x" : 47.00, "y" : 9.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : 4.12, "y" : -6.57 }, - "3" : { "x" : 1.80, "y" : 8.51 }, - "4" : { "x" : 13.60, "y" : -16.77 }, - "5" : { "x" : 9.30, "y" : 20.53 }, - "6" : { "x" : 35.08, "y" : 1.19 }, - "7" : { "x" : 38.71, "y" : -5.18 }, - "8" : { "x" : 46.27, "y" : 8.92 }, - "9" : { "x" : 48.96, "y" : -2.61 }, - "10" : { "x" : 49.22, "y" : 6.09 }, - "11" : { "x" : 49.22, "y" : 2.42 } - }, - { - "index" : 16, - "ball" : { "x" : 54.50, "y" : -9.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 1.82, "y" : -8.98 }, - "3" : { "x" : 3.65, "y" : 6.29 }, - "4" : { "x" : 12.05, "y" : -21.04 }, - "5" : { "x" : 14.57, "y" : 16.82 }, - "6" : { "x" : 36.28, "y" : -4.44 }, - "7" : { "x" : 53.90, "y" : -9.37 }, - "8" : { "x" : 39.46, "y" : 4.61 }, - "9" : { "x" : 50.58, "y" : -5.96 }, - "10" : { "x" : 47.13, "y" : 6.32 }, - "11" : { "x" : 46.66, "y" : -0.51 } - }, - { - "index" : 17, - "ball" : { "x" : 54.50, "y" : 9.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 3.65, "y" : -6.29 }, - "3" : { "x" : 1.82, "y" : 8.98 }, - "4" : { "x" : 14.57, "y" : -16.82 }, - "5" : { "x" : 12.05, "y" : 21.04 }, - "6" : { "x" : 36.28, "y" : 4.44 }, - "7" : { "x" : 39.46, "y" : -4.61 }, - "8" : { "x" : 53.90, "y" : 9.37 }, - "9" : { "x" : 47.13, "y" : -6.32 }, - "10" : { "x" : 50.58, "y" : 5.96 }, - "11" : { "x" : 46.66, "y" : 0.51 } - }, - { - "index" : 18, - "ball" : { "x" : 47.00, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 2.61, "y" : -7.53 }, - "3" : { "x" : 2.61, "y" : 7.53 }, - "4" : { "x" : 10.66, "y" : -18.55 }, - "5" : { "x" : 10.66, "y" : 18.55 }, - "6" : { "x" : 33.31, "y" : 0.00 }, - "7" : { "x" : 41.13, "y" : -6.10 }, - "8" : { "x" : 41.13, "y" : 6.10 }, - "9" : { "x" : 48.96, "y" : -4.35 }, - "10" : { "x" : 48.96, "y" : 4.35 }, - "11" : { "x" : 46.32, "y" : -0.09 } - }, - { - "index" : 19, - "ball" : { "x" : 45.00, "y" : -3.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 2.04, "y" : -7.87 }, - "3" : { "x" : 2.87, "y" : 7.17 }, - "4" : { "x" : 9.46, "y" : -19.17 }, - "5" : { "x" : 11.01, "y" : 17.82 }, - "6" : { "x" : 32.43, "y" : -0.37 }, - "7" : { "x" : 44.50, "y" : -3.33 }, - "8" : { "x" : 37.42, "y" : 7.26 }, - "9" : { "x" : 49.33, "y" : -5.44 }, - "10" : { "x" : 49.22, "y" : 3.70 }, - "11" : { "x" : 49.52, "y" : -1.55 } - }, - { - "index" : 20, - "ball" : { "x" : 45.00, "y" : 3.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : 2.87, "y" : -7.17 }, - "3" : { "x" : 2.04, "y" : 7.87 }, - "4" : { "x" : 11.01, "y" : -17.82 }, - "5" : { "x" : 9.46, "y" : 19.17 }, - "6" : { "x" : 32.43, "y" : 0.37 }, - "7" : { "x" : 37.42, "y" : -7.26 }, - "8" : { "x" : 44.50, "y" : 3.33 }, - "9" : { "x" : 49.22, "y" : -3.70 }, - "10" : { "x" : 49.33, "y" : 5.44 }, - "11" : { "x" : 49.52, "y" : 1.55 } - }, - { - "index" : 21, - "ball" : { "x" : 40.00, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 1.21, "y" : -7.45 }, - "3" : { "x" : 1.21, "y" : 7.45 }, - "4" : { "x" : 7.08, "y" : -18.09 }, - "5" : { "x" : 7.08, "y" : 18.09 }, - "6" : { "x" : 31.79, "y" : -2.34 }, - "7" : { "x" : 39.13, "y" : -0.08 }, - "8" : { "x" : 37.84, "y" : 3.63 }, - "9" : { "x" : 45.44, "y" : -3.33 }, - "10" : { "x" : 45.44, "y" : 3.36 }, - "11" : { "x" : 45.59, "y" : -0.08 } - }, - { - "index" : 22, - "ball" : { "x" : 44.53, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 2.34, "y" : -7.51 }, - "3" : { "x" : 2.34, "y" : 7.51 }, - "4" : { "x" : 9.94, "y" : -18.46 }, - "5" : { "x" : 9.94, "y" : 18.46 }, - "6" : { "x" : 32.41, "y" : -0.00 }, - "7" : { "x" : 38.60, "y" : -4.65 }, - "8" : { "x" : 38.60, "y" : 4.65 }, - "9" : { "x" : 47.48, "y" : -3.97 }, - "10" : { "x" : 47.48, "y" : 3.97 }, - "11" : { "x" : 44.62, "y" : -0.09 } - }, - { - "index" : 23, - "ball" : { "x" : 47.00, "y" : -4.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 2.24, "y" : -7.99 }, - "3" : { "x" : 3.31, "y" : 7.09 }, - "4" : { "x" : 10.12, "y" : -19.48 }, - "5" : { "x" : 12.11, "y" : 17.74 }, - "6" : { "x" : 34.25, "y" : -0.55 }, - "7" : { "x" : 43.66, "y" : -7.46 }, - "8" : { "x" : 39.00, "y" : 6.28 }, - "9" : { "x" : 48.96, "y" : -7.58 }, - "10" : { "x" : 48.77, "y" : 0.53 }, - "11" : { "x" : 46.92, "y" : -3.75 } - }, - { - "index" : 24, - "ball" : { "x" : 47.00, "y" : 4.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : 3.31, "y" : -7.09 }, - "3" : { "x" : 2.24, "y" : 7.99 }, - "4" : { "x" : 12.11, "y" : -17.74 }, - "5" : { "x" : 10.12, "y" : 19.48 }, - "6" : { "x" : 34.25, "y" : 0.55 }, - "7" : { "x" : 39.00, "y" : -6.28 }, - "8" : { "x" : 43.66, "y" : 7.46 }, - "9" : { "x" : 48.77, "y" : -0.53 }, - "10" : { "x" : 48.96, "y" : 7.58 }, - "11" : { "x" : 46.92, "y" : 3.75 } - } - ] -} diff --git a/src/formations-keeper/kickin-our-formation.conf b/src/formations-keeper/kickin-our-formation.conf deleted file mode 100644 index 956c8a9c..00000000 --- a/src/formations-keeper/kickin-our-formation.conf +++ /dev/null @@ -1,400 +0,0 @@ -{ - "version" : "", - "method" : "DelaunayTriangulation", - "role" : [ - { - "number" : 1, - "name" : "Goalie", - "type" : "G", - "side" : "C", - "pair" : 0 - }, - { - "number" : 2, - "name" : "CenterBack", - "type" : "DF", - "side" : "L", - "pair" : 3 - }, - { - "number" : 3, - "name" : "CenterBack", - "type" : "DF", - "side" : "R", - "pair" : 2 - }, - { - "number" : 4, - "name" : "SideBack", - "type" : "DF", - "side" : "L", - "pair" : 5 - }, - { - "number" : 5, - "name" : "SideBack", - "type" : "DF", - "side" : "R", - "pair" : 4 - }, - { - "number" : 6, - "name" : "DefensiveHalf", - "type" : "MF", - "side" : "C", - "pair" : 0 - }, - { - "number" : 7, - "name" : "OffensiveHalf", - "type" : "MF", - "side" : "L", - "pair" : 8 - }, - { - "number" : 8, - "name" : "OffensiveHalf", - "type" : "MF", - "side" : "R", - "pair" : 7 - }, - { - "number" : 9, - "name" : "SideForward", - "type" : "FW", - "side" : "L", - "pair" : 10 - }, - { - "number" : 10, - "name" : "SideForward", - "type" : "FW", - "side" : "R", - "pair" : 9 - }, - { - "number" : 11, - "name" : "CenterForward", - "type" : "FW", - "side" : "C", - "pair" : 0 - } - ], - "data" : [ - { - "index" : 0, - "ball" : { "x" : 54.00, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.00, "y" : -9.00 }, - "3" : { "x" : 0.00, "y" : 9.00 }, - "4" : { "x" : 7.00, "y" : -19.00 }, - "5" : { "x" : 7.00, "y" : 19.00 }, - "6" : { "x" : 21.00, "y" : 0.00 }, - "7" : { "x" : 35.00, "y" : -6.00 }, - "8" : { "x" : 35.00, "y" : 6.00 }, - "9" : { "x" : 46.00, "y" : -9.50 }, - "10" : { "x" : 46.00, "y" : 9.50 }, - "11" : { "x" : 46.00, "y" : 0.00 } - }, - { - "index" : 1, - "ball" : { "x" : -54.00, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : -47.00, "y" : -2.50 }, - "3" : { "x" : -47.00, "y" : 2.50 }, - "4" : { "x" : -47.00, "y" : -7.00 }, - "5" : { "x" : -47.00, "y" : 7.00 }, - "6" : { "x" : -43.00, "y" : 0.00 }, - "7" : { "x" : -35.00, "y" : -13.00 }, - "8" : { "x" : -35.00, "y" : 13.00 }, - "9" : { "x" : -22.00, "y" : -28.00 }, - "10" : { "x" : -22.00, "y" : 28.00 }, - "11" : { "x" : -18.49, "y" : 0.00 } - }, - { - "index" : 2, - "ball" : { "x" : 0.00, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -15.06, "y" : -4.84 }, - "3" : { "x" : -15.18, "y" : 3.68 }, - "4" : { "x" : -12.58, "y" : -14.88 }, - "5" : { "x" : -13.39, "y" : 14.07 }, - "6" : { "x" : -5.61, "y" : 0.00 }, - "7" : { "x" : 0.11, "y" : -11.99 }, - "8" : { "x" : 0.11, "y" : 11.99 }, - "9" : { "x" : 10.37, "y" : -23.99 }, - "10" : { "x" : 10.84, "y" : 23.99 }, - "11" : { "x" : 10.84, "y" : 0.00 } - }, - { - "index" : 3, - "ball" : { "x" : -54.00, "y" : -35.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -47.35, "y" : -11.81 }, - "3" : { "x" : -46.51, "y" : -4.65 }, - "4" : { "x" : -47.81, "y" : -26.33 }, - "5" : { "x" : -45.56, "y" : 4.77 }, - "6" : { "x" : -41.23, "y" : -11.92 }, - "7" : { "x" : -37.38, "y" : -21.36 }, - "8" : { "x" : -27.94, "y" : 1.74 }, - "9" : { "x" : -22.23, "y" : -31.17 }, - "10" : { "x" : -17.01, "y" : 19.99 }, - "11" : { "x" : -17.51, "y" : -11.55 } - }, - { - "index" : 4, - "ball" : { "x" : -54.00, "y" : 35.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : -46.51, "y" : 4.65 }, - "3" : { "x" : -47.35, "y" : 11.81 }, - "4" : { "x" : -45.56, "y" : -4.77 }, - "5" : { "x" : -47.81, "y" : 26.33 }, - "6" : { "x" : -41.23, "y" : 11.92 }, - "7" : { "x" : -27.94, "y" : -1.74 }, - "8" : { "x" : -37.38, "y" : 21.36 }, - "9" : { "x" : -17.01, "y" : -19.99 }, - "10" : { "x" : -22.23, "y" : 31.17 }, - "11" : { "x" : -17.51, "y" : 11.55 } - }, - { - "index" : 5, - "ball" : { "x" : -36.02, "y" : -35.00 }, - "1" : { "x" : -50.00, "y" : -0.01 }, - "2" : { "x" : -39.12, "y" : -16.02 }, - "3" : { "x" : -38.87, "y" : -6.58 }, - "4" : { "x" : -36.39, "y" : -27.94 }, - "5" : { "x" : -36.76, "y" : 3.85 }, - "6" : { "x" : -28.32, "y" : -15.28 }, - "7" : { "x" : -22.23, "y" : -24.59 }, - "8" : { "x" : -20.16, "y" : 0.60 }, - "9" : { "x" : -10.43, "y" : -32.54 }, - "10" : { "x" : -7.44, "y" : 19.44 }, - "11" : { "x" : -7.20, "y" : -14.16 } - }, - { - "index" : 6, - "ball" : { "x" : -36.02, "y" : 35.00 }, - "1" : { "x" : -50.00, "y" : 0.01 }, - "2" : { "x" : -38.87, "y" : 6.58 }, - "3" : { "x" : -39.12, "y" : 16.02 }, - "4" : { "x" : -36.76, "y" : -3.85 }, - "5" : { "x" : -36.39, "y" : 27.94 }, - "6" : { "x" : -28.32, "y" : 15.28 }, - "7" : { "x" : -20.16, "y" : -0.60 }, - "8" : { "x" : -22.23, "y" : 24.59 }, - "9" : { "x" : -7.44, "y" : -19.44 }, - "10" : { "x" : -10.43, "y" : 32.54 }, - "11" : { "x" : -7.20, "y" : 14.16 } - }, - { - "index" : 7, - "ball" : { "x" : -12.00, "y" : -35.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -18.50, "y" : -21.61 }, - "3" : { "x" : -18.50, "y" : -8.94 }, - "4" : { "x" : -12.42, "y" : -34.65 }, - "5" : { "x" : -18.38, "y" : 4.72 }, - "6" : { "x" : -9.07, "y" : -14.90 }, - "7" : { "x" : -0.50, "y" : -22.48 }, - "8" : { "x" : -5.96, "y" : 0.12 }, - "9" : { "x" : 11.67, "y" : -32.29 }, - "10" : { "x" : 10.80, "y" : 14.03 }, - "11" : { "x" : 8.20, "y" : -15.15 } - }, - { - "index" : 8, - "ball" : { "x" : -12.00, "y" : 35.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : -18.50, "y" : 8.94 }, - "3" : { "x" : -18.50, "y" : 21.61 }, - "4" : { "x" : -18.38, "y" : -4.72 }, - "5" : { "x" : -12.42, "y" : 34.65 }, - "6" : { "x" : -9.07, "y" : 14.90 }, - "7" : { "x" : -5.96, "y" : -0.12 }, - "8" : { "x" : -0.50, "y" : 22.48 }, - "9" : { "x" : 10.80, "y" : -14.03 }, - "10" : { "x" : 11.67, "y" : 32.29 }, - "11" : { "x" : 8.20, "y" : 15.15 } - }, - { - "index" : 9, - "ball" : { "x" : 38.13, "y" : -35.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -0.14, "y" : -16.53 }, - "3" : { "x" : 6.25, "y" : -1.80 }, - "4" : { "x" : 7.93, "y" : -28.00 }, - "5" : { "x" : 17.31, "y" : 8.77 }, - "6" : { "x" : 24.88, "y" : -17.67 }, - "7" : { "x" : 36.30, "y" : -31.49 }, - "8" : { "x" : 32.09, "y" : -0.36 }, - "9" : { "x" : 46.75, "y" : -24.64 }, - "10" : { "x" : 44.23, "y" : -0.72 }, - "11" : { "x" : 44.59, "y" : -13.82 } - }, - { - "index" : 10, - "ball" : { "x" : 38.13, "y" : 35.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : 6.25, "y" : 1.80 }, - "3" : { "x" : -0.14, "y" : 16.53 }, - "4" : { "x" : 17.31, "y" : -8.77 }, - "5" : { "x" : 7.93, "y" : 28.00 }, - "6" : { "x" : 24.88, "y" : 17.67 }, - "7" : { "x" : 32.09, "y" : 0.36 }, - "8" : { "x" : 36.30, "y" : 31.49 }, - "9" : { "x" : 44.23, "y" : 0.72 }, - "10" : { "x" : 46.75, "y" : 24.64 }, - "11" : { "x" : 44.59, "y" : 13.82 } - }, - { - "index" : 11, - "ball" : { "x" : 35.00, "y" : -35.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 1.68, "y" : -14.54 }, - "3" : { "x" : 6.49, "y" : -0.12 }, - "4" : { "x" : 6.37, "y" : -27.76 }, - "5" : { "x" : 15.86, "y" : 8.65 }, - "6" : { "x" : 22.73, "y" : -17.39 }, - "7" : { "x" : 33.41, "y" : -32.69 }, - "8" : { "x" : 29.81, "y" : 0.00 }, - "9" : { "x" : 43.03, "y" : -29.81 }, - "10" : { "x" : 41.70, "y" : -1.08 }, - "11" : { "x" : 42.31, "y" : -15.38 } - }, - { - "index" : 12, - "ball" : { "x" : 35.00, "y" : 35.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : 6.49, "y" : 0.12 }, - "3" : { "x" : 1.68, "y" : 14.54 }, - "4" : { "x" : 15.86, "y" : -8.65 }, - "5" : { "x" : 6.37, "y" : 27.76 }, - "6" : { "x" : 22.73, "y" : 17.39 }, - "7" : { "x" : 29.81, "y" : -0.00 }, - "8" : { "x" : 33.41, "y" : 32.69 }, - "9" : { "x" : 41.70, "y" : 1.08 }, - "10" : { "x" : 43.03, "y" : 29.81 }, - "11" : { "x" : 42.31, "y" : 15.38 } - }, - { - "index" : 13, - "ball" : { "x" : 24.88, "y" : -35.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -0.84, "y" : -21.03 }, - "3" : { "x" : 2.88, "y" : -5.53 }, - "4" : { "x" : 20.67, "y" : -32.93 }, - "5" : { "x" : 11.42, "y" : 7.69 }, - "6" : { "x" : 14.54, "y" : -13.46 }, - "7" : { "x" : 26.08, "y" : -19.11 }, - "8" : { "x" : 31.01, "y" : -6.01 }, - "9" : { "x" : 44.23, "y" : -29.93 }, - "10" : { "x" : 39.54, "y" : -1.08 }, - "11" : { "x" : 41.34, "y" : -17.43 } - }, - { - "index" : 14, - "ball" : { "x" : 24.88, "y" : 35.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : 2.88, "y" : 5.53 }, - "3" : { "x" : -0.84, "y" : 21.03 }, - "4" : { "x" : 11.42, "y" : -7.69 }, - "5" : { "x" : 20.67, "y" : 32.93 }, - "6" : { "x" : 14.54, "y" : 13.46 }, - "7" : { "x" : 31.01, "y" : 6.01 }, - "8" : { "x" : 26.08, "y" : 19.11 }, - "9" : { "x" : 39.54, "y" : 1.08 }, - "10" : { "x" : 44.23, "y" : 29.93 }, - "11" : { "x" : 41.34, "y" : 17.43 } - }, - { - "index" : 15, - "ball" : { "x" : 12.98, "y" : -35.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -3.61, "y" : -21.51 }, - "3" : { "x" : -0.12, "y" : -4.33 }, - "4" : { "x" : 9.86, "y" : -31.97 }, - "5" : { "x" : 8.29, "y" : 8.17 }, - "6" : { "x" : 8.51, "y" : -16.20 }, - "7" : { "x" : 20.91, "y" : -20.67 }, - "8" : { "x" : 18.15, "y" : -1.20 }, - "9" : { "x" : 37.02, "y" : -31.25 }, - "10" : { "x" : 31.49, "y" : -1.08 }, - "11" : { "x" : 34.97, "y" : -15.38 } - }, - { - "index" : 16, - "ball" : { "x" : 12.98, "y" : 35.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : -0.12, "y" : 4.33 }, - "3" : { "x" : -3.61, "y" : 21.51 }, - "4" : { "x" : 8.29, "y" : -8.17 }, - "5" : { "x" : 9.86, "y" : 31.97 }, - "6" : { "x" : 8.51, "y" : 16.20 }, - "7" : { "x" : 18.15, "y" : 1.20 }, - "8" : { "x" : 20.91, "y" : 20.67 }, - "9" : { "x" : 31.49, "y" : 1.08 }, - "10" : { "x" : 37.02, "y" : 31.25 }, - "11" : { "x" : 34.97, "y" : 15.38 } - }, - { - "index" : 17, - "ball" : { "x" : 0.00, "y" : -35.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -7.58, "y" : -23.22 }, - "3" : { "x" : -9.06, "y" : -10.97 }, - "4" : { "x" : -1.56, "y" : -32.69 }, - "5" : { "x" : -5.37, "y" : 4.29 }, - "6" : { "x" : 0.00, "y" : -16.95 }, - "7" : { "x" : 7.57, "y" : -22.71 }, - "8" : { "x" : 5.49, "y" : -0.12 }, - "9" : { "x" : 24.47, "y" : -30.18 }, - "10" : { "x" : 23.68, "y" : 3.97 }, - "11" : { "x" : 20.91, "y" : -14.66 } - }, - { - "index" : 18, - "ball" : { "x" : 0.00, "y" : 35.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : -9.06, "y" : 10.97 }, - "3" : { "x" : -7.58, "y" : 23.22 }, - "4" : { "x" : -5.37, "y" : -4.29 }, - "5" : { "x" : -1.56, "y" : 32.69 }, - "6" : { "x" : 0.00, "y" : 16.95 }, - "7" : { "x" : 5.49, "y" : 0.12 }, - "8" : { "x" : 7.57, "y" : 22.71 }, - "9" : { "x" : 23.68, "y" : -3.97 }, - "10" : { "x" : 24.47, "y" : 30.18 }, - "11" : { "x" : 20.91, "y" : 14.66 } - }, - { - "index" : 19, - "ball" : { "x" : 54.00, "y" : -35.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -0.24, "y" : -14.54 }, - "3" : { "x" : 7.21, "y" : -0.48 }, - "4" : { "x" : 8.30, "y" : -27.30 }, - "5" : { "x" : 17.19, "y" : 10.22 }, - "6" : { "x" : 24.76, "y" : -14.66 }, - "7" : { "x" : 39.78, "y" : -28.60 }, - "8" : { "x" : 38.65, "y" : -11.04 }, - "9" : { "x" : 51.54, "y" : -34.65 }, - "10" : { "x" : 46.27, "y" : -8.05 }, - "11" : { "x" : 48.07, "y" : -22.35 } - }, - { - "index" : 20, - "ball" : { "x" : 54.00, "y" : 35.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : 7.21, "y" : 0.48 }, - "3" : { "x" : -0.24, "y" : 14.54 }, - "4" : { "x" : 17.19, "y" : -10.22 }, - "5" : { "x" : 8.30, "y" : 27.30 }, - "6" : { "x" : 24.76, "y" : 14.66 }, - "7" : { "x" : 38.65, "y" : 11.04 }, - "8" : { "x" : 39.78, "y" : 28.60 }, - "9" : { "x" : 46.27, "y" : 8.05 }, - "10" : { "x" : 51.54, "y" : 34.65 }, - "11" : { "x" : 48.07, "y" : 22.35 } - } - ] -} diff --git a/src/formations-keeper/normal-formation.conf b/src/formations-keeper/normal-formation.conf deleted file mode 100644 index 278dfcfa..00000000 --- a/src/formations-keeper/normal-formation.conf +++ /dev/null @@ -1,145 +0,0 @@ -{ - "version" : "", - "method" : "DelaunayTriangulation", - "role" : [ - { - "number" : 1, - "name" : "KeepawayKeeper", - "type" : "MF", - "side" : "L", - "pair" : -1 - }, - { - "number" : 2, - "name" : "KeepawayKeeper", - "type" : "MF", - "side" : "L", - "pair" : -1 - }, - { - "number" : 3, - "name" : "KeepawayKeeper", - "type" : "MF", - "side" : "L", - "pair" : -1 - }, - { - "number" : 4, - "name" : "KeepawayKeeper", - "type" : "MF", - "side" : "L", - "pair" : -1 - }, - { - "number" : 5, - "name" : "KeepawayKeeper", - "type" : "MF", - "side" : "L", - "pair" : -1 - }, - { - "number" : 6, - "name" : "KeepawayKeeper", - "type" : "MF", - "side" : "L", - "pair" : -1 - }, - { - "number" : 7, - "name" : "KeepawayKeeper", - "type" : "MF", - "side" : "L", - "pair" : -1 - }, - { - "number" : 8, - "name" : "KeepawayKeeper", - "type" : "MF", - "side" : "L", - "pair" : -1 - }, - { - "number" : 9, - "name" : "KeepawayKeeper", - "type" : "MF", - "side" : "L", - "pair" : -1 - }, - { - "number" : 10, - "name" : "KeepawayKeeper", - "type" : "MF", - "side" : "L", - "pair" : -1 - }, - { - "number" : 11, - "name" : "KeepawayKeeper", - "type" : "MF", - "side" : "L", - "pair" : -1 - } - ], - "data" : [ - { - "index" : 0, - "ball" : { "x" : -11.00, "y" : -11.00 }, - "1" : { "x" : -8.50, "y" : -8.50 }, - "2" : { "x" : -8.50, "y" : 8.50 }, - "3" : { "x" : 8.50, "y" : -8.50 }, - "4" : { "x" : 8.50, "y" : 8.50 }, - "5" : { "x" : 0.00, "y" : 0.00 }, - "6" : { "x" : -21.00, "y" : -36.00 }, - "7" : { "x" : -24.00, "y" : -36.00 }, - "8" : { "x" : -27.00, "y" : -36.00 }, - "9" : { "x" : -30.00, "y" : -36.00 }, - "10" : { "x" : -33.00, "y" : -36.00 }, - "11" : { "x" : -36.00, "y" : -36.00 } - }, - { - "index" : 1, - "ball" : { "x" : -11.00, "y" : 11.00 }, - "1" : { "x" : -8.50, "y" : -8.50 }, - "2" : { "x" : -8.50, "y" : 8.50 }, - "3" : { "x" : 8.50, "y" : -8.50 }, - "4" : { "x" : 8.50, "y" : 8.50 }, - "5" : { "x" : 0.00, "y" : 0.00 }, - "6" : { "x" : -21.00, "y" : -36.00 }, - "7" : { "x" : -24.00, "y" : -36.00 }, - "8" : { "x" : -27.00, "y" : -36.00 }, - "9" : { "x" : -30.00, "y" : -36.00 }, - "10" : { "x" : -33.00, "y" : -36.00 }, - "11" : { "x" : -36.00, "y" : -36.00 } - }, - { - "index" : 2, - "ball" : { "x" : 11.00, "y" : -11.00 }, - "1" : { "x" : -8.50, "y" : -8.50 }, - "2" : { "x" : -8.50, "y" : 8.50 }, - "3" : { "x" : 8.50, "y" : -8.50 }, - "4" : { "x" : 8.50, "y" : 8.50 }, - "5" : { "x" : 0.00, "y" : 0.00 }, - "6" : { "x" : -21.00, "y" : -36.00 }, - "7" : { "x" : -24.00, "y" : -36.00 }, - "8" : { "x" : -27.00, "y" : -36.00 }, - "9" : { "x" : -30.00, "y" : -36.00 }, - "10" : { "x" : -33.00, "y" : -36.00 }, - "11" : { "x" : -36.00, "y" : -36.00 } - }, - { - "index" : 3, - "ball" : { "x" : 11.00, "y" : 11.00 }, - "1" : { "x" : -8.50, "y" : -8.50 }, - "2" : { "x" : -8.50, "y" : 8.50 }, - "3" : { "x" : 8.50, "y" : -8.50 }, - "4" : { "x" : 8.50, "y" : 8.50 }, - "5" : { "x" : 0.00, "y" : 0.00 }, - "6" : { "x" : -21.00, "y" : -36.00 }, - "7" : { "x" : -24.00, "y" : -36.00 }, - "8" : { "x" : -27.00, "y" : -36.00 }, - "9" : { "x" : -30.00, "y" : -36.00 }, - "10" : { "x" : -33.00, "y" : -36.00 }, - "11" : { "x" : -36.00, "y" : -36.00 } - } - ] -} diff --git a/src/formations-keeper/offense-formation.conf b/src/formations-keeper/offense-formation.conf deleted file mode 120000 index 82d426ac..00000000 --- a/src/formations-keeper/offense-formation.conf +++ /dev/null @@ -1 +0,0 @@ -normal-formation.conf \ No newline at end of file diff --git a/src/formations-keeper/setplay-opp-formation.conf b/src/formations-keeper/setplay-opp-formation.conf deleted file mode 100644 index 48600932..00000000 --- a/src/formations-keeper/setplay-opp-formation.conf +++ /dev/null @@ -1,760 +0,0 @@ -{ - "version" : "", - "method" : "DelaunayTriangulation", - "role" : [ - { - "number" : 1, - "name" : "Goalie", - "type" : "G", - "side" : "C", - "pair" : 0 - }, - { - "number" : 2, - "name" : "CenterBack", - "type" : "DF", - "side" : "L", - "pair" : 3 - }, - { - "number" : 3, - "name" : "CenterBack", - "type" : "DF", - "side" : "R", - "pair" : 2 - }, - { - "number" : 4, - "name" : "SideBack", - "type" : "DF", - "side" : "L", - "pair" : 5 - }, - { - "number" : 5, - "name" : "SideBack", - "type" : "DF", - "side" : "R", - "pair" : 4 - }, - { - "number" : 6, - "name" : "DefensiveHalf", - "type" : "MF", - "side" : "C", - "pair" : 0 - }, - { - "number" : 7, - "name" : "OffensiveHalf", - "type" : "MF", - "side" : "L", - "pair" : 8 - }, - { - "number" : 8, - "name" : "OffensiveHalf", - "type" : "MF", - "side" : "R", - "pair" : 7 - }, - { - "number" : 9, - "name" : "SideForward", - "type" : "FW", - "side" : "L", - "pair" : 10 - }, - { - "number" : 10, - "name" : "SideForward", - "type" : "FW", - "side" : "R", - "pair" : 9 - }, - { - "number" : 11, - "name" : "CenterForward", - "type" : "FW", - "side" : "C", - "pair" : 0 - } - ], - "data" : [ - { - "index" : 0, - "ball" : { "x" : 0.00, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -11.63, "y" : -4.60 }, - "3" : { "x" : -11.90, "y" : 4.06 }, - "4" : { "x" : -10.09, "y" : -16.13 }, - "5" : { "x" : -9.91, "y" : 14.51 }, - "6" : { "x" : -11.18, "y" : -0.36 }, - "7" : { "x" : -6.58, "y" : -8.20 }, - "8" : { "x" : -7.57, "y" : 8.29 }, - "9" : { "x" : -1.26, "y" : -11.99 }, - "10" : { "x" : -1.80, "y" : 12.17 }, - "11" : { "x" : 11.72, "y" : 0.00 } - }, - { - "index" : 1, - "ball" : { "x" : -54.44, "y" : -20.73 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -47.41, "y" : -10.72 }, - "3" : { "x" : -45.24, "y" : -5.14 }, - "4" : { "x" : -50.02, "y" : -17.21 }, - "5" : { "x" : -45.60, "y" : 3.88 }, - "6" : { "x" : -39.73, "y" : -9.80 }, - "7" : { "x" : -40.83, "y" : -15.77 }, - "8" : { "x" : -30.82, "y" : 6.85 }, - "9" : { "x" : -24.78, "y" : -29.47 }, - "10" : { "x" : -14.69, "y" : 21.98 }, - "11" : { "x" : -14.90, "y" : -5.27 } - }, - { - "index" : 2, - "ball" : { "x" : -54.44, "y" : 20.73 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -45.24, "y" : 5.14 }, - "3" : { "x" : -47.41, "y" : 10.72 }, - "4" : { "x" : -45.60, "y" : -3.88 }, - "5" : { "x" : -50.02, "y" : 17.21 }, - "6" : { "x" : -39.73, "y" : 9.80 }, - "7" : { "x" : -30.82, "y" : -6.85 }, - "8" : { "x" : -40.83, "y" : 15.77 }, - "9" : { "x" : -14.69, "y" : -21.98 }, - "10" : { "x" : -24.78, "y" : 29.47 }, - "11" : { "x" : -14.90, "y" : 5.27 } - }, - { - "index" : 3, - "ball" : { "x" : 45.24, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -0.18, "y" : -6.92 }, - "3" : { "x" : -0.18, "y" : 6.92 }, - "4" : { "x" : 6.47, "y" : -17.34 }, - "5" : { "x" : 6.47, "y" : 17.34 }, - "6" : { "x" : 15.50, "y" : -0.00 }, - "7" : { "x" : 31.36, "y" : -6.20 }, - "8" : { "x" : 31.36, "y" : 6.20 }, - "9" : { "x" : 36.39, "y" : -9.79 }, - "10" : { "x" : 36.39, "y" : 9.79 }, - "11" : { "x" : 35.58, "y" : 0.54 } - }, - { - "index" : 4, - "ball" : { "x" : -31.36, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -41.28, "y" : -3.97 }, - "3" : { "x" : -41.19, "y" : 3.97 }, - "4" : { "x" : -40.38, "y" : -8.74 }, - "5" : { "x" : -40.02, "y" : 8.47 }, - "6" : { "x" : -41.46, "y" : -0.27 }, - "7" : { "x" : -34.88, "y" : -9.10 }, - "8" : { "x" : -34.34, "y" : 9.19 }, - "9" : { "x" : -10.86, "y" : -21.61 }, - "10" : { "x" : -10.75, "y" : 21.75 }, - "11" : { "x" : -19.20, "y" : 0.27 } - }, - { - "index" : 5, - "ball" : { "x" : 22.08, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -0.09, "y" : -9.37 }, - "3" : { "x" : 0.18, "y" : 7.75 }, - "4" : { "x" : 0.09, "y" : -19.47 }, - "5" : { "x" : 0.27, "y" : 19.02 }, - "6" : { "x" : 1.35, "y" : 0.00 }, - "7" : { "x" : 10.63, "y" : -6.13 }, - "8" : { "x" : 10.45, "y" : 5.50 }, - "9" : { "x" : 13.16, "y" : -10.72 }, - "10" : { "x" : 13.43, "y" : 11.36 }, - "11" : { "x" : 10.63, "y" : -0.27 } - }, - { - "index" : 6, - "ball" : { "x" : 11.72, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -2.25, "y" : -6.67 }, - "3" : { "x" : -2.61, "y" : 4.60 }, - "4" : { "x" : -1.53, "y" : -14.15 }, - "5" : { "x" : -1.44, "y" : 14.78 }, - "6" : { "x" : -1.44, "y" : -0.18 }, - "7" : { "x" : 1.98, "y" : -8.92 }, - "8" : { "x" : 1.71, "y" : 8.56 }, - "9" : { "x" : 7.84, "y" : -13.16 }, - "10" : { "x" : 8.65, "y" : 12.89 }, - "11" : { "x" : 0.99, "y" : 0.00 } - }, - { - "index" : 7, - "ball" : { "x" : -15.95, "y" : -22.98 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -28.75, "y" : -17.21 }, - "3" : { "x" : -28.57, "y" : -6.02 }, - "4" : { "x" : -28.66, "y" : -24.78 }, - "5" : { "x" : -28.30, "y" : 4.67 }, - "6" : { "x" : -25.34, "y" : -11.68 }, - "7" : { "x" : -25.88, "y" : -20.30 }, - "8" : { "x" : -21.02, "y" : -7.10 }, - "9" : { "x" : 0.09, "y" : -24.26 }, - "10" : { "x" : 2.02, "y" : 15.41 }, - "11" : { "x" : -12.76, "y" : -6.65 } - }, - { - "index" : 8, - "ball" : { "x" : -15.95, "y" : 22.98 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -28.57, "y" : 6.02 }, - "3" : { "x" : -28.75, "y" : 17.21 }, - "4" : { "x" : -28.30, "y" : -4.67 }, - "5" : { "x" : -28.66, "y" : 24.78 }, - "6" : { "x" : -25.34, "y" : 11.68 }, - "7" : { "x" : -21.02, "y" : 7.10 }, - "8" : { "x" : -25.88, "y" : 20.30 }, - "9" : { "x" : 2.02, "y" : -15.41 }, - "10" : { "x" : 0.09, "y" : 24.26 }, - "11" : { "x" : -12.76, "y" : 6.65 } - }, - { - "index" : 9, - "ball" : { "x" : 30.73, "y" : -36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.18, "y" : -11.95 }, - "3" : { "x" : 0.09, "y" : 0.63 }, - "4" : { "x" : 0.45, "y" : -25.43 }, - "5" : { "x" : 3.05, "y" : 8.45 }, - "6" : { "x" : 8.27, "y" : -18.15 }, - "7" : { "x" : 18.60, "y" : -28.03 }, - "8" : { "x" : 22.55, "y" : -14.64 }, - "9" : { "x" : 20.84, "y" : -33.15 }, - "10" : { "x" : 29.56, "y" : -5.66 }, - "11" : { "x" : 23.09, "y" : -22.91 } - }, - { - "index" : 10, - "ball" : { "x" : 30.73, "y" : 36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.09, "y" : -0.63 }, - "3" : { "x" : 0.18, "y" : 11.95 }, - "4" : { "x" : 3.05, "y" : -8.45 }, - "5" : { "x" : 0.45, "y" : 25.43 }, - "6" : { "x" : 8.27, "y" : 18.15 }, - "7" : { "x" : 22.55, "y" : 14.64 }, - "8" : { "x" : 18.60, "y" : 28.03 }, - "9" : { "x" : 29.56, "y" : 5.66 }, - "10" : { "x" : 20.84, "y" : 33.15 }, - "11" : { "x" : 23.09, "y" : 22.91 } - }, - { - "index" : 11, - "ball" : { "x" : -54.50, "y" : -36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -45.64, "y" : -14.73 }, - "3" : { "x" : -45.24, "y" : -5.14 }, - "4" : { "x" : -49.75, "y" : -24.60 }, - "5" : { "x" : -45.60, "y" : 3.88 }, - "6" : { "x" : -39.84, "y" : -15.59 }, - "7" : { "x" : -41.33, "y" : -23.81 }, - "8" : { "x" : -34.88, "y" : -0.09 }, - "9" : { "x" : -34.41, "y" : -31.45 }, - "10" : { "x" : -13.66, "y" : 14.20 }, - "11" : { "x" : -15.54, "y" : -11.23 } - }, - { - "index" : 12, - "ball" : { "x" : -54.50, "y" : 36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -45.24, "y" : 5.14 }, - "3" : { "x" : -45.64, "y" : 14.73 }, - "4" : { "x" : -45.60, "y" : -3.88 }, - "5" : { "x" : -49.75, "y" : 24.60 }, - "6" : { "x" : -39.84, "y" : 15.59 }, - "7" : { "x" : -34.88, "y" : 0.09 }, - "8" : { "x" : -41.33, "y" : 23.81 }, - "9" : { "x" : -13.66, "y" : -14.20 }, - "10" : { "x" : -34.41, "y" : 31.45 }, - "11" : { "x" : -15.54, "y" : 11.23 } - }, - { - "index" : 13, - "ball" : { "x" : -35.51, "y" : -20.10 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -35.85, "y" : -6.47 }, - "3" : { "x" : -35.94, "y" : -0.54 }, - "4" : { "x" : -35.51, "y" : -10.18 }, - "5" : { "x" : -35.85, "y" : 6.83 }, - "6" : { "x" : -31.54, "y" : -9.91 }, - "7" : { "x" : -26.05, "y" : -14.96 }, - "8" : { "x" : -28.84, "y" : -0.72 }, - "9" : { "x" : -21.72, "y" : -27.22 }, - "10" : { "x" : -4.96, "y" : 16.58 }, - "11" : { "x" : -12.35, "y" : -9.19 } - }, - { - "index" : 14, - "ball" : { "x" : -35.51, "y" : 20.10 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -35.94, "y" : 0.54 }, - "3" : { "x" : -35.85, "y" : 6.47 }, - "4" : { "x" : -35.85, "y" : -6.83 }, - "5" : { "x" : -35.51, "y" : 10.18 }, - "6" : { "x" : -31.54, "y" : 9.91 }, - "7" : { "x" : -28.84, "y" : 0.72 }, - "8" : { "x" : -26.05, "y" : 14.96 }, - "9" : { "x" : -4.96, "y" : -16.58 }, - "10" : { "x" : -21.72, "y" : 27.22 }, - "11" : { "x" : -12.35, "y" : 9.19 } - }, - { - "index" : 15, - "ball" : { "x" : 40.11, "y" : -36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -0.63, "y" : -13.93 }, - "3" : { "x" : 0.45, "y" : -1.08 }, - "4" : { "x" : 9.70, "y" : -29.65 }, - "5" : { "x" : 4.94, "y" : 5.48 }, - "6" : { "x" : 11.18, "y" : -14.06 }, - "7" : { "x" : 26.50, "y" : -27.94 }, - "8" : { "x" : 29.92, "y" : -16.62 }, - "9" : { "x" : 31.09, "y" : -34.70 }, - "10" : { "x" : 32.43, "y" : -4.67 }, - "11" : { "x" : 31.98, "y" : -25.52 } - }, - { - "index" : 16, - "ball" : { "x" : 40.11, "y" : 36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.45, "y" : 1.08 }, - "3" : { "x" : -0.63, "y" : 13.93 }, - "4" : { "x" : 4.94, "y" : -5.48 }, - "5" : { "x" : 9.70, "y" : 29.65 }, - "6" : { "x" : 11.18, "y" : 14.06 }, - "7" : { "x" : 29.92, "y" : 16.62 }, - "8" : { "x" : 26.50, "y" : 27.94 }, - "9" : { "x" : 32.43, "y" : 4.67 }, - "10" : { "x" : 31.09, "y" : 34.70 }, - "11" : { "x" : 31.98, "y" : 25.52 } - }, - { - "index" : 17, - "ball" : { "x" : 54.50, "y" : -36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -0.54, "y" : -11.68 }, - "3" : { "x" : 0.09, "y" : 0.09 }, - "4" : { "x" : 12.58, "y" : -26.14 }, - "5" : { "x" : 4.94, "y" : 9.60 }, - "6" : { "x" : 20.39, "y" : -13.39 }, - "7" : { "x" : 35.49, "y" : -27.13 }, - "8" : { "x" : 35.49, "y" : -9.70 }, - "9" : { "x" : 39.53, "y" : -32.88 }, - "10" : { "x" : 46.00, "y" : -11.32 }, - "11" : { "x" : 37.20, "y" : -20.21 } - }, - { - "index" : 18, - "ball" : { "x" : 54.50, "y" : 36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.09, "y" : -0.09 }, - "3" : { "x" : -0.54, "y" : 11.68 }, - "4" : { "x" : 4.94, "y" : -9.60 }, - "5" : { "x" : 12.58, "y" : 26.14 }, - "6" : { "x" : 20.39, "y" : 13.39 }, - "7" : { "x" : 35.49, "y" : 9.70 }, - "8" : { "x" : 35.49, "y" : 27.13 }, - "9" : { "x" : 46.00, "y" : 11.32 }, - "10" : { "x" : 39.53, "y" : 32.88 }, - "11" : { "x" : 37.20, "y" : 20.21 } - }, - { - "index" : 19, - "ball" : { "x" : 19.65, "y" : -36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -1.44, "y" : -23.27 }, - "3" : { "x" : -0.36, "y" : -0.63 }, - "4" : { "x" : -0.45, "y" : -32.99 }, - "5" : { "x" : -0.09, "y" : 10.51 }, - "6" : { "x" : 1.17, "y" : -17.16 }, - "7" : { "x" : 2.34, "y" : -27.67 }, - "8" : { "x" : 8.36, "y" : -11.86 }, - "9" : { "x" : 10.27, "y" : -29.92 }, - "10" : { "x" : 15.18, "y" : -1.26 }, - "11" : { "x" : 12.85, "y" : -22.73 } - }, - { - "index" : 20, - "ball" : { "x" : 19.65, "y" : 36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -0.36, "y" : 0.63 }, - "3" : { "x" : -1.44, "y" : 23.27 }, - "4" : { "x" : -0.09, "y" : -10.51 }, - "5" : { "x" : -0.45, "y" : 32.99 }, - "6" : { "x" : 1.17, "y" : 17.16 }, - "7" : { "x" : 8.36, "y" : 11.86 }, - "8" : { "x" : 2.34, "y" : 27.67 }, - "9" : { "x" : 15.18, "y" : 1.26 }, - "10" : { "x" : 10.27, "y" : 29.92 }, - "11" : { "x" : 12.85, "y" : 22.73 } - }, - { - "index" : 21, - "ball" : { "x" : 0.27, "y" : -36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -18.57, "y" : -23.88 }, - "3" : { "x" : -18.93, "y" : -8.47 }, - "4" : { "x" : -15.68, "y" : -32.72 }, - "5" : { "x" : -15.77, "y" : 4.15 }, - "6" : { "x" : -12.98, "y" : -19.20 }, - "7" : { "x" : -12.08, "y" : -27.58 }, - "8" : { "x" : -6.67, "y" : -7.48 }, - "9" : { "x" : -6.58, "y" : -22.80 }, - "10" : { "x" : 8.56, "y" : 9.37 }, - "11" : { "x" : 0.09, "y" : -18.75 } - }, - { - "index" : 22, - "ball" : { "x" : 0.27, "y" : 36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -18.93, "y" : 8.47 }, - "3" : { "x" : -18.57, "y" : 23.88 }, - "4" : { "x" : -15.77, "y" : -4.15 }, - "5" : { "x" : -15.68, "y" : 32.72 }, - "6" : { "x" : -12.98, "y" : 19.20 }, - "7" : { "x" : -6.67, "y" : 7.48 }, - "8" : { "x" : -12.08, "y" : 27.58 }, - "9" : { "x" : 8.56, "y" : -9.37 }, - "10" : { "x" : -6.58, "y" : 22.80 }, - "11" : { "x" : 0.09, "y" : 18.75 } - }, - { - "index" : 23, - "ball" : { "x" : 5.59, "y" : -11.36 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -8.36, "y" : -12.85 }, - "3" : { "x" : -7.10, "y" : -4.40 }, - "4" : { "x" : -6.92, "y" : -21.11 }, - "5" : { "x" : -5.59, "y" : 6.22 }, - "6" : { "x" : -5.12, "y" : -10.24 }, - "7" : { "x" : -5.57, "y" : -17.61 }, - "8" : { "x" : -1.98, "y" : -1.26 }, - "9" : { "x" : -3.05, "y" : -19.68 }, - "10" : { "x" : 13.16, "y" : 16.76 }, - "11" : { "x" : 6.94, "y" : -1.17 } - }, - { - "index" : 24, - "ball" : { "x" : 5.59, "y" : 11.36 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -7.10, "y" : 4.40 }, - "3" : { "x" : -8.36, "y" : 12.85 }, - "4" : { "x" : -5.59, "y" : -6.22 }, - "5" : { "x" : -6.92, "y" : 21.11 }, - "6" : { "x" : -5.12, "y" : 10.24 }, - "7" : { "x" : -1.98, "y" : 1.26 }, - "8" : { "x" : -5.57, "y" : 17.61 }, - "9" : { "x" : 13.16, "y" : -16.76 }, - "10" : { "x" : -3.05, "y" : 19.68 }, - "11" : { "x" : 6.94, "y" : 1.17 } - }, - { - "index" : 25, - "ball" : { "x" : 5.32, "y" : -20.37 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -9.61, "y" : -19.50 }, - "3" : { "x" : -7.66, "y" : -7.93 }, - "4" : { "x" : -8.45, "y" : -27.04 }, - "5" : { "x" : -7.12, "y" : 5.05 }, - "6" : { "x" : -6.94, "y" : -13.52 }, - "7" : { "x" : -6.65, "y" : -23.36 }, - "8" : { "x" : -0.72, "y" : -4.15 }, - "9" : { "x" : -5.93, "y" : -18.42 }, - "10" : { "x" : 11.43, "y" : 14.05 }, - "11" : { "x" : 5.59, "y" : -8.29 } - }, - { - "index" : 26, - "ball" : { "x" : 5.32, "y" : 20.37 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -7.66, "y" : 7.93 }, - "3" : { "x" : -9.61, "y" : 19.50 }, - "4" : { "x" : -7.12, "y" : -5.05 }, - "5" : { "x" : -8.45, "y" : 27.04 }, - "6" : { "x" : -6.94, "y" : 13.52 }, - "7" : { "x" : -0.72, "y" : 4.15 }, - "8" : { "x" : -6.65, "y" : 23.36 }, - "9" : { "x" : 11.43, "y" : -14.05 }, - "10" : { "x" : -5.93, "y" : 18.42 }, - "11" : { "x" : 5.59, "y" : 8.29 } - }, - { - "index" : 27, - "ball" : { "x" : 6.04, "y" : -27.85 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -6.02, "y" : -21.65 }, - "3" : { "x" : -5.77, "y" : -10.36 }, - "4" : { "x" : -6.65, "y" : -29.47 }, - "5" : { "x" : -4.69, "y" : 1.98 }, - "6" : { "x" : -2.34, "y" : -16.53 }, - "7" : { "x" : -4.04, "y" : -25.43 }, - "8" : { "x" : 0.81, "y" : -3.70 }, - "9" : { "x" : -1.35, "y" : -21.02 }, - "10" : { "x" : 11.65, "y" : 12.19 }, - "11" : { "x" : 8.47, "y" : -14.06 } - }, - { - "index" : 28, - "ball" : { "x" : 6.04, "y" : 27.85 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -5.77, "y" : 10.36 }, - "3" : { "x" : -6.02, "y" : 21.65 }, - "4" : { "x" : -4.69, "y" : -1.98 }, - "5" : { "x" : -6.65, "y" : 29.47 }, - "6" : { "x" : -2.34, "y" : 16.53 }, - "7" : { "x" : 0.81, "y" : 3.70 }, - "8" : { "x" : -4.04, "y" : 25.43 }, - "9" : { "x" : 11.65, "y" : -12.19 }, - "10" : { "x" : -1.35, "y" : 21.02 }, - "11" : { "x" : 8.47, "y" : 14.06 } - }, - { - "index" : 29, - "ball" : { "x" : 43.71, "y" : -26.77 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -0.54, "y" : -11.68 }, - "3" : { "x" : 0.09, "y" : 0.09 }, - "4" : { "x" : 3.15, "y" : -22.59 }, - "5" : { "x" : 4.94, "y" : 9.60 }, - "6" : { "x" : 18.69, "y" : -12.31 }, - "7" : { "x" : 27.58, "y" : -23.72 }, - "8" : { "x" : 32.70, "y" : -10.78 }, - "9" : { "x" : 31.36, "y" : -28.03 }, - "10" : { "x" : 40.79, "y" : -5.75 }, - "11" : { "x" : 31.98, "y" : -19.50 } - }, - { - "index" : 30, - "ball" : { "x" : 43.71, "y" : 26.77 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.09, "y" : -0.09 }, - "3" : { "x" : -0.54, "y" : 11.68 }, - "4" : { "x" : 4.94, "y" : -9.60 }, - "5" : { "x" : 3.15, "y" : 22.59 }, - "6" : { "x" : 18.69, "y" : 12.31 }, - "7" : { "x" : 32.70, "y" : 10.78 }, - "8" : { "x" : 27.58, "y" : 23.72 }, - "9" : { "x" : 40.79, "y" : 5.75 }, - "10" : { "x" : 31.36, "y" : 28.03 }, - "11" : { "x" : 31.98, "y" : 19.50 } - }, - { - "index" : 31, - "ball" : { "x" : 21.90, "y" : -12.80 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.08, "y" : -11.13 }, - "3" : { "x" : 0.03, "y" : 2.01 }, - "4" : { "x" : 0.18, "y" : -23.54 }, - "5" : { "x" : 0.45, "y" : 13.08 }, - "6" : { "x" : 7.55, "y" : -6.20 }, - "7" : { "x" : 7.28, "y" : -16.26 }, - "8" : { "x" : 11.50, "y" : -1.71 }, - "9" : { "x" : 11.86, "y" : -21.47 }, - "10" : { "x" : 21.65, "y" : 15.00 }, - "11" : { "x" : 10.42, "y" : -11.05 } - }, - { - "index" : 32, - "ball" : { "x" : 21.90, "y" : 12.80 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.03, "y" : -2.01 }, - "3" : { "x" : 0.08, "y" : 11.13 }, - "4" : { "x" : 0.45, "y" : -13.08 }, - "5" : { "x" : 0.18, "y" : 23.54 }, - "6" : { "x" : 7.55, "y" : 6.20 }, - "7" : { "x" : 11.50, "y" : 1.71 }, - "8" : { "x" : 7.28, "y" : 16.26 }, - "9" : { "x" : 21.65, "y" : -15.00 }, - "10" : { "x" : 11.86, "y" : 21.47 }, - "11" : { "x" : 10.42, "y" : 11.05 } - }, - { - "index" : 33, - "ball" : { "x" : 21.27, "y" : -21.99 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.18, "y" : -13.61 }, - "3" : { "x" : 0.27, "y" : -3.24 }, - "4" : { "x" : -0.18, "y" : -27.58 }, - "5" : { "x" : 0.54, "y" : 8.56 }, - "6" : { "x" : 9.55, "y" : -10.09 }, - "7" : { "x" : 7.75, "y" : -20.55 }, - "8" : { "x" : 12.71, "y" : -7.39 }, - "9" : { "x" : 9.91, "y" : -25.05 }, - "10" : { "x" : 20.64, "y" : -0.99 }, - "11" : { "x" : 9.64, "y" : -16.49 } - }, - { - "index" : 34, - "ball" : { "x" : 21.27, "y" : 21.99 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.27, "y" : 3.24 }, - "3" : { "x" : 0.18, "y" : 13.61 }, - "4" : { "x" : 0.54, "y" : -8.56 }, - "5" : { "x" : -0.18, "y" : 27.58 }, - "6" : { "x" : 9.55, "y" : 10.09 }, - "7" : { "x" : 12.71, "y" : 7.39 }, - "8" : { "x" : 7.75, "y" : 20.55 }, - "9" : { "x" : 20.64, "y" : 0.99 }, - "10" : { "x" : 9.91, "y" : 25.05 }, - "11" : { "x" : 9.64, "y" : 16.49 } - }, - { - "index" : 35, - "ball" : { "x" : 35.69, "y" : -8.56 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -0.45, "y" : -10.42 }, - "3" : { "x" : 0.63, "y" : 3.50 }, - "4" : { "x" : 3.45, "y" : -20.89 }, - "5" : { "x" : 5.09, "y" : 13.48 }, - "6" : { "x" : 9.25, "y" : -3.23 }, - "7" : { "x" : 22.01, "y" : -14.46 }, - "8" : { "x" : 23.09, "y" : -3.41 }, - "9" : { "x" : 25.79, "y" : -17.88 }, - "10" : { "x" : 26.32, "y" : 3.68 }, - "11" : { "x" : 24.51, "y" : -8.92 } - }, - { - "index" : 36, - "ball" : { "x" : 35.69, "y" : 8.56 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.63, "y" : -3.50 }, - "3" : { "x" : -0.45, "y" : 10.42 }, - "4" : { "x" : 5.09, "y" : -13.48 }, - "5" : { "x" : 3.45, "y" : 20.89 }, - "6" : { "x" : 9.25, "y" : 3.23 }, - "7" : { "x" : 23.09, "y" : 3.41 }, - "8" : { "x" : 22.01, "y" : 14.46 }, - "9" : { "x" : 26.32, "y" : -3.68 }, - "10" : { "x" : 25.79, "y" : 17.88 }, - "11" : { "x" : 24.51, "y" : 8.92 } - }, - { - "index" : 37, - "ball" : { "x" : 31.00, "y" : -28.39 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.18, "y" : -10.36 }, - "3" : { "x" : 2.88, "y" : 0.27 }, - "4" : { "x" : 0.36, "y" : -22.89 }, - "5" : { "x" : 9.88, "y" : 9.61 }, - "6" : { "x" : 10.42, "y" : -9.34 }, - "7" : { "x" : 17.66, "y" : -23.88 }, - "8" : { "x" : 22.64, "y" : -15.18 }, - "9" : { "x" : 18.39, "y" : -28.75 }, - "10" : { "x" : 25.34, "y" : -2.16 }, - "11" : { "x" : 19.56, "y" : -19.47 } - }, - { - "index" : 38, - "ball" : { "x" : 31.00, "y" : 28.39 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 2.88, "y" : -0.27 }, - "3" : { "x" : 0.18, "y" : 10.36 }, - "4" : { "x" : 9.88, "y" : -9.61 }, - "5" : { "x" : 0.36, "y" : 22.89 }, - "6" : { "x" : 10.42, "y" : 9.34 }, - "7" : { "x" : 22.64, "y" : 15.18 }, - "8" : { "x" : 17.66, "y" : 23.88 }, - "9" : { "x" : 25.34, "y" : 2.16 }, - "10" : { "x" : 18.39, "y" : 28.75 }, - "11" : { "x" : 19.56, "y" : 19.47 } - }, - { - "index" : 39, - "ball" : { "x" : -25.96, "y" : -36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -38.99, "y" : -16.71 }, - "3" : { "x" : -37.91, "y" : -6.56 }, - "4" : { "x" : -39.53, "y" : -27.31 }, - "5" : { "x" : -36.57, "y" : 4.94 }, - "6" : { "x" : -32.43, "y" : -17.43 }, - "7" : { "x" : -34.23, "y" : -24.89 }, - "8" : { "x" : -19.65, "y" : -5.68 }, - "9" : { "x" : -25.25, "y" : -22.37 }, - "10" : { "x" : 0.05, "y" : 16.07 }, - "11" : { "x" : -2.05, "y" : -11.45 } - }, - { - "index" : 40, - "ball" : { "x" : -25.96, "y" : 36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -37.91, "y" : 6.56 }, - "3" : { "x" : -38.99, "y" : 16.71 }, - "4" : { "x" : -36.57, "y" : -4.94 }, - "5" : { "x" : -39.53, "y" : 27.31 }, - "6" : { "x" : -32.43, "y" : 17.43 }, - "7" : { "x" : -19.65, "y" : 5.68 }, - "8" : { "x" : -34.23, "y" : 24.89 }, - "9" : { "x" : 0.05, "y" : -16.07 }, - "10" : { "x" : -25.25, "y" : 22.37 }, - "11" : { "x" : -2.05, "y" : 11.45 } - }, - { - "index" : 41, - "ball" : { "x" : -34.70, "y" : -36.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : -45.42, "y" : -16.67 }, - "3" : { "x" : -41.17, "y" : -6.38 }, - "4" : { "x" : -43.38, "y" : -26.20 }, - "5" : { "x" : -42.27, "y" : 5.02 }, - "6" : { "x" : -40.74, "y" : -16.42 }, - "7" : { "x" : -38.70, "y" : -22.37 }, - "8" : { "x" : -26.68, "y" : -5.30 }, - "9" : { "x" : -30.37, "y" : -23.56 }, - "10" : { "x" : -6.21, "y" : 10.04 }, - "11" : { "x" : -15.91, "y" : -13.86 } - }, - { - "index" : 42, - "ball" : { "x" : -34.70, "y" : 36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -41.17, "y" : 6.38 }, - "3" : { "x" : -45.42, "y" : 16.67 }, - "4" : { "x" : -42.27, "y" : -5.02 }, - "5" : { "x" : -43.38, "y" : 26.20 }, - "6" : { "x" : -40.74, "y" : 16.42 }, - "7" : { "x" : -26.68, "y" : 5.30 }, - "8" : { "x" : -38.70, "y" : 22.37 }, - "9" : { "x" : -6.21, "y" : -10.04 }, - "10" : { "x" : -30.37, "y" : 23.56 }, - "11" : { "x" : -15.91, "y" : 13.86 } - }, - { - "index" : 43, - "ball" : { "x" : -16.13, "y" : -36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -30.37, "y" : -20.37 }, - "3" : { "x" : -29.74, "y" : -7.57 }, - "4" : { "x" : -30.19, "y" : -31.27 }, - "5" : { "x" : -25.42, "y" : 2.88 }, - "6" : { "x" : -24.53, "y" : -18.78 }, - "7" : { "x" : -26.86, "y" : -26.50 }, - "8" : { "x" : -14.15, "y" : -4.87 }, - "9" : { "x" : -17.07, "y" : -21.11 }, - "10" : { "x" : 3.10, "y" : 15.08 }, - "11" : { "x" : 0.51, "y" : -11.31 } - }, - { - "index" : 44, - "ball" : { "x" : -16.13, "y" : 36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -29.74, "y" : 7.57 }, - "3" : { "x" : -30.37, "y" : 20.37 }, - "4" : { "x" : -25.42, "y" : -2.88 }, - "5" : { "x" : -30.19, "y" : 31.27 }, - "6" : { "x" : -24.53, "y" : 18.78 }, - "7" : { "x" : -14.15, "y" : 4.87 }, - "8" : { "x" : -26.86, "y" : 26.50 }, - "9" : { "x" : 3.10, "y" : -15.08 }, - "10" : { "x" : -17.07, "y" : 21.11 }, - "11" : { "x" : 0.51, "y" : 11.31 } - } - ] -} diff --git a/src/formations-keeper/setplay-our-formation.conf b/src/formations-keeper/setplay-our-formation.conf deleted file mode 100644 index 8ea60e59..00000000 --- a/src/formations-keeper/setplay-our-formation.conf +++ /dev/null @@ -1,775 +0,0 @@ -{ - "version" : "", - "method" : "DelaunayTriangulation", - "role" : [ - { - "number" : 1, - "name" : "Goalie", - "type" : "G", - "side" : "C", - "pair" : 0 - }, - { - "number" : 2, - "name" : "CenterBack", - "type" : "DF", - "side" : "L", - "pair" : 3 - }, - { - "number" : 3, - "name" : "CenterBack", - "type" : "DF", - "side" : "R", - "pair" : 2 - }, - { - "number" : 4, - "name" : "SideBack", - "type" : "DF", - "side" : "L", - "pair" : 5 - }, - { - "number" : 5, - "name" : "SideBack", - "type" : "DF", - "side" : "R", - "pair" : 4 - }, - { - "number" : 6, - "name" : "DefensiveHalf", - "type" : "MF", - "side" : "C", - "pair" : 0 - }, - { - "number" : 7, - "name" : "OffensiveHalf", - "type" : "MF", - "side" : "L", - "pair" : 8 - }, - { - "number" : 8, - "name" : "OffensiveHalf", - "type" : "MF", - "side" : "R", - "pair" : 7 - }, - { - "number" : 9, - "name" : "SideForward", - "type" : "FW", - "side" : "L", - "pair" : 10 - }, - { - "number" : 10, - "name" : "SideForward", - "type" : "FW", - "side" : "R", - "pair" : 9 - }, - { - "number" : 11, - "name" : "CenterForward", - "type" : "FW", - "side" : "C", - "pair" : 0 - } - ], - "data" : [ - { - "index" : 0, - "ball" : { "x" : 0.00, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -15.22, "y" : -4.84 }, - "3" : { "x" : -15.33, "y" : 3.66 }, - "4" : { "x" : -9.29, "y" : -15.12 }, - "5" : { "x" : -10.84, "y" : 13.69 }, - "6" : { "x" : -0.71, "y" : -0.36 }, - "7" : { "x" : 0.00, "y" : -6.97 }, - "8" : { "x" : 0.48, "y" : 6.73 }, - "9" : { "x" : 13.69, "y" : -20.13 }, - "10" : { "x" : 10.73, "y" : 24.00 }, - "11" : { "x" : 16.08, "y" : 0.00 } - }, - { - "index" : 1, - "ball" : { "x" : -54.00, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : -46.15, "y" : -1.92 }, - "3" : { "x" : -46.03, "y" : 2.88 }, - "4" : { "x" : -45.07, "y" : -7.57 }, - "5" : { "x" : -45.55, "y" : 7.93 }, - "6" : { "x" : -39.78, "y" : 0.00 }, - "7" : { "x" : -36.30, "y" : -15.98 }, - "8" : { "x" : -37.02, "y" : 11.78 }, - "9" : { "x" : -22.00, "y" : -28.00 }, - "10" : { "x" : -19.29, "y" : 26.44 }, - "11" : { "x" : -16.47, "y" : -0.84 } - }, - { - "index" : 2, - "ball" : { "x" : 36.26, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.00, "y" : -7.38 }, - "3" : { "x" : 0.00, "y" : 7.38 }, - "4" : { "x" : 4.00, "y" : -17.70 }, - "5" : { "x" : 4.00, "y" : 17.70 }, - "6" : { "x" : 15.24, "y" : 0.48 }, - "7" : { "x" : 27.75, "y" : -8.10 }, - "8" : { "x" : 28.10, "y" : 9.76 }, - "9" : { "x" : 35.96, "y" : -16.20 }, - "10" : { "x" : 36.56, "y" : 16.91 }, - "11" : { "x" : 35.61, "y" : 0.00 } - }, - { - "index" : 3, - "ball" : { "x" : -41.78, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -42.99, "y" : -0.71 }, - "3" : { "x" : -42.91, "y" : 4.21 }, - "4" : { "x" : -42.31, "y" : -7.69 }, - "5" : { "x" : -42.91, "y" : 9.01 }, - "6" : { "x" : -36.66, "y" : 0.36 }, - "7" : { "x" : -33.41, "y" : -10.82 }, - "8" : { "x" : -31.61, "y" : 10.94 }, - "9" : { "x" : -15.48, "y" : -29.41 }, - "10" : { "x" : -17.51, "y" : 27.15 }, - "11" : { "x" : -18.27, "y" : -0.36 } - }, - { - "index" : 4, - "ball" : { "x" : -26.95, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -30.96, "y" : -1.91 }, - "3" : { "x" : -30.25, "y" : 7.74 }, - "4" : { "x" : -29.90, "y" : -11.32 }, - "5" : { "x" : -28.25, "y" : 16.41 }, - "6" : { "x" : -15.27, "y" : -7.63 }, - "7" : { "x" : -17.43, "y" : -23.41 }, - "8" : { "x" : -15.52, "y" : 9.16 }, - "9" : { "x" : -4.76, "y" : -27.75 }, - "10" : { "x" : -5.34, "y" : 26.47 }, - "11" : { "x" : -0.51, "y" : 0.51 } - }, - { - "index" : 5, - "ball" : { "x" : -17.50, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -23.22, "y" : -1.67 }, - "3" : { "x" : -23.20, "y" : 3.73 }, - "4" : { "x" : -22.84, "y" : -8.89 }, - "5" : { "x" : -22.96, "y" : 12.26 }, - "6" : { "x" : -16.10, "y" : 1.20 }, - "7" : { "x" : -11.90, "y" : -4.69 }, - "8" : { "x" : -10.94, "y" : 6.37 }, - "9" : { "x" : 1.20, "y" : -15.38 }, - "10" : { "x" : 0.12, "y" : 18.51 }, - "11" : { "x" : 2.40, "y" : 0.00 } - }, - { - "index" : 6, - "ball" : { "x" : 7.67, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -5.90, "y" : -5.31 }, - "3" : { "x" : -6.02, "y" : 5.19 }, - "4" : { "x" : -3.07, "y" : -16.04 }, - "5" : { "x" : -2.95, "y" : 16.39 }, - "6" : { "x" : 6.25, "y" : -0.36 }, - "7" : { "x" : 11.66, "y" : -5.77 }, - "8" : { "x" : 11.78, "y" : 6.13 }, - "9" : { "x" : 21.76, "y" : -22.52 }, - "10" : { "x" : 22.78, "y" : 23.54 }, - "11" : { "x" : 17.43, "y" : 0.00 } - }, - { - "index" : 7, - "ball" : { "x" : 49.50, "y" : -20.51 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : 3.00, "y" : -8.85 }, - "3" : { "x" : 0.00, "y" : 5.00 }, - "4" : { "x" : 5.00, "y" : -20.00 }, - "5" : { "x" : 12.00, "y" : 15.50 }, - "6" : { "x" : 21.04, "y" : -6.95 }, - "7" : { "x" : 32.80, "y" : -18.96 }, - "8" : { "x" : 35.10, "y" : 0.46 }, - "9" : { "x" : 45.46, "y" : -24.17 }, - "10" : { "x" : 44.84, "y" : 10.61 }, - "11" : { "x" : 45.68, "y" : -10.85 } - }, - { - "index" : 8, - "ball" : { "x" : 49.50, "y" : 20.51 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.00, "y" : -5.00 }, - "3" : { "x" : 3.00, "y" : 8.85 }, - "4" : { "x" : 12.00, "y" : -15.50 }, - "5" : { "x" : 5.00, "y" : 20.00 }, - "6" : { "x" : 21.04, "y" : 6.95 }, - "7" : { "x" : 35.10, "y" : -0.46 }, - "8" : { "x" : 32.80, "y" : 18.96 }, - "9" : { "x" : 44.84, "y" : -10.61 }, - "10" : { "x" : 45.46, "y" : 24.17 }, - "11" : { "x" : 45.68, "y" : 10.85 } - }, - { - "index" : 9, - "ball" : { "x" : -54.00, "y" : -10.00 }, - "1" : { "x" : -50.57, "y" : -6.44 }, - "2" : { "x" : -48.18, "y" : -5.96 }, - "3" : { "x" : -48.06, "y" : -1.07 }, - "4" : { "x" : -49.50, "y" : -9.06 }, - "5" : { "x" : -47.94, "y" : 4.06 }, - "6" : { "x" : -44.37, "y" : -2.62 }, - "7" : { "x" : -43.73, "y" : -9.47 }, - "8" : { "x" : -31.39, "y" : 8.23 }, - "9" : { "x" : -24.81, "y" : -29.58 }, - "10" : { "x" : -18.82, "y" : 25.56 }, - "11" : { "x" : -20.87, "y" : -8.59 } - }, - { - "index" : 10, - "ball" : { "x" : -54.00, "y" : 10.00 }, - "1" : { "x" : -50.57, "y" : 6.44 }, - "2" : { "x" : -48.06, "y" : 1.07 }, - "3" : { "x" : -48.18, "y" : 5.96 }, - "4" : { "x" : -47.94, "y" : -4.06 }, - "5" : { "x" : -49.50, "y" : 9.06 }, - "6" : { "x" : -44.37, "y" : 2.62 }, - "7" : { "x" : -31.39, "y" : -8.23 }, - "8" : { "x" : -43.73, "y" : 9.47 }, - "9" : { "x" : -18.82, "y" : -25.56 }, - "10" : { "x" : -24.81, "y" : 29.58 }, - "11" : { "x" : -20.87, "y" : 8.59 } - }, - { - "index" : 11, - "ball" : { "x" : -6.00, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -9.67, "y" : -0.25 }, - "3" : { "x" : -14.00, "y" : 4.58 }, - "4" : { "x" : -13.23, "y" : -12.34 }, - "5" : { "x" : -8.91, "y" : 12.34 }, - "6" : { "x" : -5.09, "y" : -9.92 }, - "7" : { "x" : -0.51, "y" : -21.38 }, - "8" : { "x" : 1.65, "y" : 11.71 }, - "9" : { "x" : 10.26, "y" : -24.00 }, - "10" : { "x" : 10.73, "y" : 24.00 }, - "11" : { "x" : 4.84, "y" : 0.00 } - }, - { - "index" : 12, - "ball" : { "x" : -12.00, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -19.35, "y" : -3.12 }, - "3" : { "x" : -19.11, "y" : 3.00 }, - "4" : { "x" : -17.91, "y" : -11.18 }, - "5" : { "x" : -17.55, "y" : 11.06 }, - "6" : { "x" : -13.22, "y" : 0.12 }, - "7" : { "x" : -6.97, "y" : -6.85 }, - "8" : { "x" : -7.57, "y" : 5.29 }, - "9" : { "x" : 1.92, "y" : -21.51 }, - "10" : { "x" : 0.84, "y" : 22.23 }, - "11" : { "x" : 5.65, "y" : 0.36 } - }, - { - "index" : 13, - "ball" : { "x" : 35.78, "y" : -9.54 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 1.68, "y" : -7.93 }, - "3" : { "x" : 4.93, "y" : 6.85 }, - "4" : { "x" : 5.00, "y" : -20.00 }, - "5" : { "x" : 12.26, "y" : 16.47 }, - "6" : { "x" : 16.55, "y" : -2.26 }, - "7" : { "x" : 21.79, "y" : -15.36 }, - "8" : { "x" : 26.44, "y" : 1.07 }, - "9" : { "x" : 35.73, "y" : -17.03 }, - "10" : { "x" : 35.13, "y" : 8.57 }, - "11" : { "x" : 33.94, "y" : -8.57 } - }, - { - "index" : 14, - "ball" : { "x" : 35.78, "y" : 9.54 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : 4.93, "y" : -7.33 }, - "3" : { "x" : 2.16, "y" : 8.65 }, - "4" : { "x" : 12.00, "y" : -15.50 }, - "5" : { "x" : 5.00, "y" : 20.00 }, - "6" : { "x" : 16.55, "y" : 2.26 }, - "7" : { "x" : 26.44, "y" : -1.07 }, - "8" : { "x" : 21.79, "y" : 15.36 }, - "9" : { "x" : 35.13, "y" : -8.57 }, - "10" : { "x" : 35.73, "y" : 17.03 }, - "11" : { "x" : 33.94, "y" : 8.57 } - }, - { - "index" : 15, - "ball" : { "x" : 54.00, "y" : -35.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -0.89, "y" : -12.98 }, - "3" : { "x" : 6.36, "y" : 2.29 }, - "4" : { "x" : 8.30, "y" : -27.30 }, - "5" : { "x" : 18.32, "y" : 10.56 }, - "6" : { "x" : 20.16, "y" : -10.85 }, - "7" : { "x" : 38.11, "y" : -27.75 }, - "8" : { "x" : 38.30, "y" : -4.20 }, - "9" : { "x" : 47.63, "y" : -30.13 }, - "10" : { "x" : 47.28, "y" : -2.38 }, - "11" : { "x" : 48.47, "y" : -19.77 } - }, - { - "index" : 16, - "ball" : { "x" : 54.00, "y" : 35.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : 6.36, "y" : -2.29 }, - "3" : { "x" : -0.89, "y" : 12.98 }, - "4" : { "x" : 18.32, "y" : -10.56 }, - "5" : { "x" : 8.30, "y" : 27.30 }, - "6" : { "x" : 20.16, "y" : 10.85 }, - "7" : { "x" : 38.30, "y" : 4.20 }, - "8" : { "x" : 38.11, "y" : 27.75 }, - "9" : { "x" : 47.28, "y" : 2.38 }, - "10" : { "x" : 47.63, "y" : 30.13 }, - "11" : { "x" : 48.47, "y" : 19.77 } - }, - { - "index" : 17, - "ball" : { "x" : -12.00, "y" : -35.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -17.51, "y" : -22.27 }, - "3" : { "x" : -18.01, "y" : -8.59 }, - "4" : { "x" : -13.46, "y" : -32.39 }, - "5" : { "x" : -18.72, "y" : 4.06 }, - "6" : { "x" : -7.50, "y" : -15.36 }, - "7" : { "x" : -8.65, "y" : -28.96 }, - "8" : { "x" : -5.96, "y" : 0.12 }, - "9" : { "x" : 4.17, "y" : -31.84 }, - "10" : { "x" : 0.95, "y" : 18.25 }, - "11" : { "x" : 5.48, "y" : -7.15 } - }, - { - "index" : 18, - "ball" : { "x" : -12.00, "y" : 35.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : -18.01, "y" : 8.59 }, - "3" : { "x" : -17.51, "y" : 22.27 }, - "4" : { "x" : -18.72, "y" : -4.06 }, - "5" : { "x" : -13.46, "y" : 32.39 }, - "6" : { "x" : -7.50, "y" : 15.36 }, - "7" : { "x" : -5.96, "y" : -0.12 }, - "8" : { "x" : -7.57, "y" : 30.17 }, - "9" : { "x" : 0.95, "y" : -18.25 }, - "10" : { "x" : 4.17, "y" : 31.84 }, - "11" : { "x" : 5.48, "y" : 7.15 } - }, - { - "index" : 19, - "ball" : { "x" : -36.02, "y" : -35.00 }, - "1" : { "x" : -50.00, "y" : -0.01 }, - "2" : { "x" : -37.79, "y" : -14.51 }, - "3" : { "x" : -38.05, "y" : -7.25 }, - "4" : { "x" : -36.32, "y" : -30.49 }, - "5" : { "x" : -37.92, "y" : 1.27 }, - "6" : { "x" : -30.54, "y" : -19.34 }, - "7" : { "x" : -26.08, "y" : -24.69 }, - "8" : { "x" : -20.16, "y" : 0.60 }, - "9" : { "x" : -12.72, "y" : -32.32 }, - "10" : { "x" : -7.44, "y" : 19.44 }, - "11" : { "x" : -7.62, "y" : -11.95 } - }, - { - "index" : 20, - "ball" : { "x" : -36.02, "y" : 35.00 }, - "1" : { "x" : -50.00, "y" : 0.01 }, - "2" : { "x" : -38.05, "y" : 7.25 }, - "3" : { "x" : -37.79, "y" : 14.51 }, - "4" : { "x" : -37.92, "y" : -1.27 }, - "5" : { "x" : -36.32, "y" : 30.49 }, - "6" : { "x" : -30.54, "y" : 19.34 }, - "7" : { "x" : -20.16, "y" : -0.60 }, - "8" : { "x" : -26.08, "y" : 24.69 }, - "9" : { "x" : -7.44, "y" : -19.44 }, - "10" : { "x" : -12.72, "y" : 32.32 }, - "11" : { "x" : -7.62, "y" : 11.95 } - }, - { - "index" : 21, - "ball" : { "x" : -54.00, "y" : -35.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -46.83, "y" : -11.96 }, - "3" : { "x" : -46.51, "y" : -4.65 }, - "4" : { "x" : -50.73, "y" : -32.15 }, - "5" : { "x" : -45.56, "y" : 4.77 }, - "6" : { "x" : -41.99, "y" : -15.01 }, - "7" : { "x" : -35.76, "y" : -22.52 }, - "8" : { "x" : -23.79, "y" : 0.76 }, - "9" : { "x" : -22.39, "y" : -31.81 }, - "10" : { "x" : -12.98, "y" : 19.47 }, - "11" : { "x" : -16.92, "y" : -13.11 } - }, - { - "index" : 22, - "ball" : { "x" : -54.00, "y" : 35.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : -46.51, "y" : 4.65 }, - "3" : { "x" : -46.83, "y" : 11.96 }, - "4" : { "x" : -45.56, "y" : -4.77 }, - "5" : { "x" : -50.73, "y" : 32.15 }, - "6" : { "x" : -41.99, "y" : 15.01 }, - "7" : { "x" : -23.79, "y" : -0.76 }, - "8" : { "x" : -35.76, "y" : 22.52 }, - "9" : { "x" : -12.98, "y" : -19.47 }, - "10" : { "x" : -22.39, "y" : 31.81 }, - "11" : { "x" : -16.92, "y" : 13.11 } - }, - { - "index" : 23, - "ball" : { "x" : -17.50, "y" : -11.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -26.59, "y" : -10.18 }, - "3" : { "x" : -26.47, "y" : -3.94 }, - "4" : { "x" : -26.72, "y" : -14.63 }, - "5" : { "x" : -26.21, "y" : 2.54 }, - "6" : { "x" : -19.98, "y" : -11.07 }, - "7" : { "x" : -17.43, "y" : -18.96 }, - "8" : { "x" : -15.27, "y" : -1.40 }, - "9" : { "x" : -4.07, "y" : -30.92 }, - "10" : { "x" : -1.02, "y" : 17.69 }, - "11" : { "x" : -3.82, "y" : -10.69 } - }, - { - "index" : 24, - "ball" : { "x" : -17.50, "y" : 11.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : -26.47, "y" : 3.94 }, - "3" : { "x" : -26.59, "y" : 10.18 }, - "4" : { "x" : -26.21, "y" : -2.54 }, - "5" : { "x" : -26.72, "y" : 14.63 }, - "6" : { "x" : -19.98, "y" : 11.07 }, - "7" : { "x" : -15.27, "y" : 1.40 }, - "8" : { "x" : -17.43, "y" : 18.96 }, - "9" : { "x" : -1.02, "y" : -17.69 }, - "10" : { "x" : -4.07, "y" : 30.92 }, - "11" : { "x" : -3.82, "y" : 10.69 } - }, - { - "index" : 25, - "ball" : { "x" : 36.08, "y" : -20.60 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 2.57, "y" : -11.68 }, - "3" : { "x" : 0.00, "y" : 2.08 }, - "4" : { "x" : 4.57, "y" : -22.24 }, - "5" : { "x" : 9.42, "y" : 13.34 }, - "6" : { "x" : 17.57, "y" : -12.21 }, - "7" : { "x" : 32.96, "y" : -16.03 }, - "8" : { "x" : 28.91, "y" : -1.62 }, - "9" : { "x" : 38.94, "y" : -20.74 }, - "10" : { "x" : 39.06, "y" : 2.16 }, - "11" : { "x" : 37.92, "y" : -10.18 } - }, - { - "index" : 26, - "ball" : { "x" : 36.08, "y" : 20.60 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : 0.00, "y" : -2.08 }, - "3" : { "x" : 2.57, "y" : 11.68 }, - "4" : { "x" : 9.42, "y" : -13.34 }, - "5" : { "x" : 4.57, "y" : 22.24 }, - "6" : { "x" : 17.57, "y" : 12.21 }, - "7" : { "x" : 28.91, "y" : 1.62 }, - "8" : { "x" : 32.96, "y" : 16.03 }, - "9" : { "x" : 39.06, "y" : -2.16 }, - "10" : { "x" : 38.94, "y" : 20.74 }, - "11" : { "x" : 37.92, "y" : 10.18 } - }, - { - "index" : 27, - "ball" : { "x" : -26.95, "y" : -11.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -30.25, "y" : -11.07 }, - "3" : { "x" : -29.69, "y" : -2.28 }, - "4" : { "x" : -29.81, "y" : -18.03 }, - "5" : { "x" : -26.92, "y" : 7.69 }, - "6" : { "x" : -21.75, "y" : -7.69 }, - "7" : { "x" : -18.87, "y" : -29.81 }, - "8" : { "x" : -12.50, "y" : 5.05 }, - "9" : { "x" : -4.64, "y" : -30.01 }, - "10" : { "x" : -3.73, "y" : 23.56 }, - "11" : { "x" : -6.61, "y" : -10.94 } - }, - { - "index" : 28, - "ball" : { "x" : -26.95, "y" : 11.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : -29.69, "y" : 2.28 }, - "3" : { "x" : -30.25, "y" : 11.07 }, - "4" : { "x" : -26.92, "y" : -7.69 }, - "5" : { "x" : -29.81, "y" : 18.03 }, - "6" : { "x" : -21.75, "y" : 7.69 }, - "7" : { "x" : -12.50, "y" : -5.05 }, - "8" : { "x" : -18.87, "y" : 29.81 }, - "9" : { "x" : -3.73, "y" : -23.56 }, - "10" : { "x" : -4.64, "y" : 30.01 }, - "11" : { "x" : -6.61, "y" : 10.94 } - }, - { - "index" : 29, - "ball" : { "x" : -48.97, "y" : -17.73 }, - "1" : { "x" : -50.00, "y" : -7.00 }, - "2" : { "x" : -47.24, "y" : -6.80 }, - "3" : { "x" : -46.76, "y" : -0.19 }, - "4" : { "x" : -46.68, "y" : -16.79 }, - "5" : { "x" : -46.57, "y" : 4.31 }, - "6" : { "x" : -40.62, "y" : -8.41 }, - "7" : { "x" : -37.14, "y" : -28.12 }, - "8" : { "x" : -35.33, "y" : 4.21 }, - "9" : { "x" : -18.70, "y" : -31.91 }, - "10" : { "x" : -20.48, "y" : 23.10 }, - "11" : { "x" : -17.62, "y" : -9.17 } - }, - { - "index" : 30, - "ball" : { "x" : -48.97, "y" : 17.73 }, - "1" : { "x" : -50.00, "y" : 7.00 }, - "2" : { "x" : -46.76, "y" : 0.19 }, - "3" : { "x" : -47.24, "y" : 6.80 }, - "4" : { "x" : -46.57, "y" : -4.31 }, - "5" : { "x" : -46.68, "y" : 16.79 }, - "6" : { "x" : -40.62, "y" : 8.41 }, - "7" : { "x" : -35.33, "y" : -4.21 }, - "8" : { "x" : -37.14, "y" : 28.12 }, - "9" : { "x" : -20.48, "y" : -23.10 }, - "10" : { "x" : -18.70, "y" : 31.91 }, - "11" : { "x" : -17.62, "y" : 9.17 } - }, - { - "index" : 31, - "ball" : { "x" : -26.95, "y" : -31.61 }, - "1" : { "x" : -50.00, "y" : -0.02 }, - "2" : { "x" : -30.65, "y" : -16.82 }, - "3" : { "x" : -30.77, "y" : -6.44 }, - "4" : { "x" : -30.06, "y" : -29.10 }, - "5" : { "x" : -30.29, "y" : 3.70 }, - "6" : { "x" : -21.03, "y" : -15.74 }, - "7" : { "x" : -24.04, "y" : -26.08 }, - "8" : { "x" : -15.24, "y" : -1.07 }, - "9" : { "x" : -4.96, "y" : -32.07 }, - "10" : { "x" : -7.86, "y" : 21.08 }, - "11" : { "x" : -0.24, "y" : -11.31 } - }, - { - "index" : 32, - "ball" : { "x" : -26.95, "y" : 31.61 }, - "1" : { "x" : -50.00, "y" : 0.02 }, - "2" : { "x" : -30.77, "y" : 6.44 }, - "3" : { "x" : -30.65, "y" : 16.82 }, - "4" : { "x" : -30.29, "y" : -3.70 }, - "5" : { "x" : -30.06, "y" : 29.10 }, - "6" : { "x" : -21.03, "y" : 15.74 }, - "7" : { "x" : -15.24, "y" : 1.07 }, - "8" : { "x" : -24.04, "y" : 26.08 }, - "9" : { "x" : -7.86, "y" : -21.08 }, - "10" : { "x" : -4.96, "y" : 32.07 }, - "11" : { "x" : -0.24, "y" : 11.31 } - }, - { - "index" : 33, - "ball" : { "x" : 15.14, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.13, "y" : -4.07 }, - "3" : { "x" : 0.25, "y" : 4.45 }, - "4" : { "x" : 0.00, "y" : -16.13 }, - "5" : { "x" : 0.00, "y" : 16.13 }, - "6" : { "x" : 13.34, "y" : 0.24 }, - "7" : { "x" : 17.07, "y" : -7.45 }, - "8" : { "x" : 18.15, "y" : 6.85 }, - "9" : { "x" : 22.63, "y" : -28.94 }, - "10" : { "x" : 24.41, "y" : 28.34 }, - "11" : { "x" : 22.59, "y" : 0.12 } - }, - { - "index" : 34, - "ball" : { "x" : 23.26, "y" : -21.95 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 2.00, "y" : -15.44 }, - "3" : { "x" : 4.45, "y" : -1.20 }, - "4" : { "x" : 4.00, "y" : -25.21 }, - "5" : { "x" : 7.81, "y" : 9.98 }, - "6" : { "x" : 13.81, "y" : -12.62 }, - "7" : { "x" : 20.31, "y" : -21.63 }, - "8" : { "x" : 20.24, "y" : 1.31 }, - "9" : { "x" : 28.58, "y" : -31.08 }, - "10" : { "x" : 27.63, "y" : 19.29 }, - "11" : { "x" : 28.22, "y" : -12.15 } - }, - { - "index" : 35, - "ball" : { "x" : 23.26, "y" : 21.95 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : 4.45, "y" : 1.20 }, - "3" : { "x" : 2.00, "y" : 15.44 }, - "4" : { "x" : 7.81, "y" : -9.98 }, - "5" : { "x" : 4.00, "y" : 25.21 }, - "6" : { "x" : 13.81, "y" : 12.62 }, - "7" : { "x" : 20.24, "y" : -1.31 }, - "8" : { "x" : 20.31, "y" : 21.63 }, - "9" : { "x" : 27.63, "y" : -19.29 }, - "10" : { "x" : 28.58, "y" : 31.08 }, - "11" : { "x" : 28.22, "y" : 12.15 } - }, - { - "index" : 36, - "ball" : { "x" : 0.00, "y" : -11.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -10.84, "y" : -11.19 }, - "3" : { "x" : -10.46, "y" : -3.85 }, - "4" : { "x" : -9.65, "y" : -21.67 }, - "5" : { "x" : -9.54, "y" : 9.16 }, - "6" : { "x" : -1.32, "y" : -11.18 }, - "7" : { "x" : 1.44, "y" : -16.35 }, - "8" : { "x" : 2.16, "y" : 0.96 }, - "9" : { "x" : 14.12, "y" : -27.99 }, - "10" : { "x" : 14.51, "y" : 16.92 }, - "11" : { "x" : 12.72, "y" : -8.91 } - }, - { - "index" : 37, - "ball" : { "x" : 0.00, "y" : 11.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : -10.46, "y" : 3.85 }, - "3" : { "x" : -10.84, "y" : 11.19 }, - "4" : { "x" : -9.54, "y" : -9.16 }, - "5" : { "x" : -9.65, "y" : 21.67 }, - "6" : { "x" : -1.32, "y" : 11.18 }, - "7" : { "x" : 2.16, "y" : -0.96 }, - "8" : { "x" : 1.44, "y" : 16.35 }, - "9" : { "x" : 14.51, "y" : -16.92 }, - "10" : { "x" : 14.12, "y" : 27.99 }, - "11" : { "x" : 12.72, "y" : 8.91 } - }, - { - "index" : 38, - "ball" : { "x" : 0.00, "y" : -35.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -7.81, "y" : -20.31 }, - "3" : { "x" : -8.65, "y" : -10.46 }, - "4" : { "x" : -2.16, "y" : -33.05 }, - "5" : { "x" : -5.37, "y" : 4.29 }, - "6" : { "x" : -0.48, "y" : -16.47 }, - "7" : { "x" : 2.88, "y" : -28.72 }, - "8" : { "x" : 5.49, "y" : -0.12 }, - "9" : { "x" : 15.14, "y" : -32.93 }, - "10" : { "x" : 14.89, "y" : 18.34 }, - "11" : { "x" : 14.89, "y" : -12.50 } - }, - { - "index" : 39, - "ball" : { "x" : 0.00, "y" : 35.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : -8.65, "y" : 10.46 }, - "3" : { "x" : -7.81, "y" : 20.31 }, - "4" : { "x" : -5.37, "y" : -4.29 }, - "5" : { "x" : -2.16, "y" : 33.05 }, - "6" : { "x" : -0.48, "y" : 16.47 }, - "7" : { "x" : 5.49, "y" : 0.12 }, - "8" : { "x" : 2.88, "y" : 28.72 }, - "9" : { "x" : 14.89, "y" : -18.34 }, - "10" : { "x" : 15.14, "y" : 32.93 }, - "11" : { "x" : 14.89, "y" : 12.50 } - }, - { - "index" : 40, - "ball" : { "x" : 22.74, "y" : -30.01 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -0.96, "y" : -16.59 }, - "3" : { "x" : 1.68, "y" : -2.28 }, - "4" : { "x" : 1.85, "y" : -27.71 }, - "5" : { "x" : 4.21, "y" : 8.37 }, - "6" : { "x" : 12.38, "y" : -17.15 }, - "7" : { "x" : 21.03, "y" : -29.57 }, - "8" : { "x" : 18.62, "y" : 0.38 }, - "9" : { "x" : 26.08, "y" : -24.88 }, - "10" : { "x" : 27.00, "y" : 16.09 }, - "11" : { "x" : 27.75, "y" : -9.17 } - }, - { - "index" : 41, - "ball" : { "x" : 22.74, "y" : 30.01 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : 1.68, "y" : 2.28 }, - "3" : { "x" : -0.96, "y" : 16.59 }, - "4" : { "x" : 4.21, "y" : -8.37 }, - "5" : { "x" : 1.85, "y" : 27.71 }, - "6" : { "x" : 12.38, "y" : 17.15 }, - "7" : { "x" : 18.62, "y" : -0.38 }, - "8" : { "x" : 21.03, "y" : 29.57 }, - "9" : { "x" : 27.00, "y" : -16.09 }, - "10" : { "x" : 26.08, "y" : 24.88 }, - "11" : { "x" : 27.75, "y" : 9.17 } - }, - { - "index" : 42, - "ball" : { "x" : -12.00, "y" : -19.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -14.06, "y" : -18.51 }, - "3" : { "x" : -18.10, "y" : -7.15 }, - "4" : { "x" : -16.95, "y" : -24.28 }, - "5" : { "x" : -17.43, "y" : 3.61 }, - "6" : { "x" : -8.29, "y" : -12.74 }, - "7" : { "x" : -5.89, "y" : -20.67 }, - "8" : { "x" : -1.53, "y" : 3.94 }, - "9" : { "x" : 3.45, "y" : -30.49 }, - "10" : { "x" : 3.33, "y" : 25.13 }, - "11" : { "x" : 2.38, "y" : -8.10 } - }, - { - "index" : 43, - "ball" : { "x" : -12.00, "y" : 19.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : -18.10, "y" : 7.15 }, - "3" : { "x" : -14.06, "y" : 18.51 }, - "4" : { "x" : -17.43, "y" : -3.61 }, - "5" : { "x" : -16.95, "y" : 24.28 }, - "6" : { "x" : -8.29, "y" : 12.74 }, - "7" : { "x" : -1.53, "y" : -3.94 }, - "8" : { "x" : -5.89, "y" : 20.67 }, - "9" : { "x" : 3.33, "y" : -25.13 }, - "10" : { "x" : 3.45, "y" : 30.49 }, - "11" : { "x" : 2.38, "y" : 8.10 } - }, - { - "index" : 44, - "ball" : { "x" : -42.10, "y" : -28.03 }, - "1" : { "x" : -50.00, "y" : -0.04 }, - "2" : { "x" : -42.16, "y" : -14.65 }, - "3" : { "x" : -41.86, "y" : -6.87 }, - "4" : { "x" : -42.99, "y" : -26.08 }, - "5" : { "x" : -40.72, "y" : 1.53 }, - "6" : { "x" : -35.21, "y" : -15.50 }, - "7" : { "x" : -37.26, "y" : -22.84 }, - "8" : { "x" : -22.03, "y" : 1.19 }, - "9" : { "x" : -18.99, "y" : -32.33 }, - "10" : { "x" : -12.76, "y" : 21.71 }, - "11" : { "x" : -10.36, "y" : -13.93 } - }, - { - "index" : 45, - "ball" : { "x" : -42.10, "y" : 28.03 }, - "1" : { "x" : -50.00, "y" : 0.04 }, - "2" : { "x" : -41.86, "y" : 6.87 }, - "3" : { "x" : -42.16, "y" : 14.65 }, - "4" : { "x" : -40.72, "y" : -1.53 }, - "5" : { "x" : -42.99, "y" : 26.08 }, - "6" : { "x" : -35.21, "y" : 15.50 }, - "7" : { "x" : -22.03, "y" : -1.19 }, - "8" : { "x" : -37.26, "y" : 22.84 }, - "9" : { "x" : -12.76, "y" : -21.71 }, - "10" : { "x" : -18.99, "y" : 32.33 }, - "11" : { "x" : -10.36, "y" : 13.93 } - } - ] -} diff --git a/src/formations-taker/before-kick-off.conf b/src/formations-taker/before-kick-off.conf deleted file mode 100644 index dad0ec22..00000000 --- a/src/formations-taker/before-kick-off.conf +++ /dev/null @@ -1,99 +0,0 @@ -{ - "version" : "", - "method" : "Static", - "role" : [ - { - "number" : 1, - "name" : "Goalie", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 2, - "name" : "CenterBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 3, - "name" : "CenterBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 4, - "name" : "SideBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 5, - "name" : "SideBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 6, - "name" : "DefensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 7, - "name" : "OffensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 8, - "name" : "OffensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 9, - "name" : "SideForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 10, - "name" : "SideForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 11, - "name" : "CenterForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - } - ], - "data" : [ - { - "index" : 0, - "ball" : { "x" : 0.00, "y" : 0.00 }, - "1" : { "x" : -49.00, "y" : 0.00 }, - "2" : { "x" : -25.00, "y" : -5.00 }, - "3" : { "x" : -25.00, "y" : 5.00 }, - "4" : { "x" : -25.00, "y" : -10.00 }, - "5" : { "x" : -25.00, "y" : 10.00 }, - "6" : { "x" : -25.00, "y" : 0.00 }, - "7" : { "x" : -15.00, "y" : -5.00 }, - "8" : { "x" : -15.00, "y" : 5.00 }, - "9" : { "x" : -15.00, "y" : -10.00 }, - "10" : { "x" : -15.00, "y" : 10.00 }, - "11" : { "x" : -15.00, "y" : 0.00 } } - ] -} diff --git a/src/formations-taker/defense-formation.conf b/src/formations-taker/defense-formation.conf deleted file mode 120000 index 82d426ac..00000000 --- a/src/formations-taker/defense-formation.conf +++ /dev/null @@ -1 +0,0 @@ -normal-formation.conf \ No newline at end of file diff --git a/src/formations-taker/goal-kick-opp.conf b/src/formations-taker/goal-kick-opp.conf deleted file mode 100644 index 77720797..00000000 --- a/src/formations-taker/goal-kick-opp.conf +++ /dev/null @@ -1,99 +0,0 @@ -{ - "version" : "", - "method" : "Static", - "role" : [ - { - "number" : 1, - "name" : "Goalie", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 2, - "name" : "CenterBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 3, - "name" : "CenterBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 4, - "name" : "SideBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 5, - "name" : "SideBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 6, - "name" : "DefensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 7, - "name" : "OffensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 8, - "name" : "OffensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 9, - "name" : "SideForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 10, - "name" : "SideForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 11, - "name" : "CenterForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - } - ], - "data" : [ - { - "index" : 0, - "ball" : { "x" : 0.00, "y" : 0.00 }, - "1" : { "x" : -49.00, "y" : 0.00 }, - "2" : { "x" : 0.00, "y" : -5.00 }, - "3" : { "x" : 0.00, "y" : 5.00 }, - "4" : { "x" : 0.00, "y" : -12.00 }, - "5" : { "x" : 0.00, "y" : 12.00 }, - "6" : { "x" : 10.00, "y" : 0.00 }, - "7" : { "x" : 15.00, "y" : -12.00 }, - "8" : { "x" : 15.00, "y" : 12.00 }, - "9" : { "x" : 31.00, "y" : -17.50 }, - "10" : { "x" : 31.00, "y" : 17.50 }, - "11" : { "x" : 31.00, "y" : 0.00 } } - ] -} diff --git a/src/formations-taker/goal-kick-our.conf b/src/formations-taker/goal-kick-our.conf deleted file mode 100644 index 8adc8df1..00000000 --- a/src/formations-taker/goal-kick-our.conf +++ /dev/null @@ -1,99 +0,0 @@ -{ - "version" : "", - "method" : "Static", - "role" : [ - { - "number" : 1, - "name" : "Goalie", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 2, - "name" : "CenterBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 3, - "name" : "CenterBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 4, - "name" : "SideBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 5, - "name" : "SideBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 6, - "name" : "DefensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 7, - "name" : "OffensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 8, - "name" : "OffensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 9, - "name" : "SideForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 10, - "name" : "SideForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 11, - "name" : "CenterForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - } - ], - "data" : [ - { - "index" : 0, - "ball" : { "x" : 0.00, "y" : 0.00 }, - "1" : { "x" : -49.00, "y" : 0.00 }, - "2" : { "x" : -44.50, "y" : -4.00 }, - "3" : { "x" : -44.50, "y" : 4.00 }, - "4" : { "x" : -42.00, "y" : -24.00 }, - "5" : { "x" : -42.00, "y" : 24.00 }, - "6" : { "x" : -32.00, "y" : 0.00 }, - "7" : { "x" : -32.50, "y" : -13.00 }, - "8" : { "x" : -32.50, "y" : 13.00 }, - "9" : { "x" : -13.00, "y" : -27.00 }, - "10" : { "x" : -13.00, "y" : 27.00 }, - "11" : { "x" : -13.00, "y" : 0.00 } } - ] -} diff --git a/src/formations-taker/goalie-catch-opp.conf b/src/formations-taker/goalie-catch-opp.conf deleted file mode 100644 index 51ee0c9e..00000000 --- a/src/formations-taker/goalie-catch-opp.conf +++ /dev/null @@ -1,99 +0,0 @@ -{ - "version" : "", - "method" : "Static", - "role" : [ - { - "number" : 1, - "name" : "Goalie", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 2, - "name" : "CenterBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 3, - "name" : "CenterBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 4, - "name" : "SideBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 5, - "name" : "SideBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 6, - "name" : "DefensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 7, - "name" : "OffensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 8, - "name" : "OffensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 9, - "name" : "SideForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 10, - "name" : "SideForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 11, - "name" : "CenterForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - } - ], - "data" : [ - { - "index" : 0, - "ball" : { "x" : 0.00, "y" : 0.00 }, - "1" : { "x" : -49.00, "y" : 0.00 }, - "2" : { "x" : 0.00, "y" : -5.00 }, - "3" : { "x" : 0.00, "y" : 5.00 }, - "4" : { "x" : 0.00, "y" : -12.00 }, - "5" : { "x" : 0.00, "y" : 12.00 }, - "6" : { "x" : 10.00, "y" : 0.00 }, - "7" : { "x" : 10.00, "y" : -12.00 }, - "8" : { "x" : 10.00, "y" : 12.00 }, - "9" : { "x" : 20.00, "y" : -20.00 }, - "10" : { "x" : 20.00, "y" : 20.00 }, - "11" : { "x" : 20.00, "y" : 0.00 } } - ] -} diff --git a/src/formations-taker/goalie-catch-our.conf b/src/formations-taker/goalie-catch-our.conf deleted file mode 100644 index ce315463..00000000 --- a/src/formations-taker/goalie-catch-our.conf +++ /dev/null @@ -1,99 +0,0 @@ -{ - "version" : "", - "method" : "Static", - "role" : [ - { - "number" : 1, - "name" : "Goalie", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 2, - "name" : "CenterBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 3, - "name" : "CenterBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 4, - "name" : "SideBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 5, - "name" : "SideBack", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 6, - "name" : "DefensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 7, - "name" : "OffensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 8, - "name" : "OffensiveHalf", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 9, - "name" : "SideForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 10, - "name" : "SideForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - }, - { - "number" : 11, - "name" : "CenterForward", - "type" : "Unknown", - "side" : "C", - "pair" : 0 - } - ], - "data" : [ - { - "index" : 0, - "ball" : { "x" : 0.00, "y" : 0.00 }, - "1" : { "x" : -49.00, "y" : 0.00 }, - "2" : { "x" : -29.50, "y" : -7.70 }, - "3" : { "x" : -29.50, "y" : 7.70 }, - "4" : { "x" : -29.50, "y" : -25.50 }, - "5" : { "x" : -29.50, "y" : 25.50 }, - "6" : { "x" : -29.00, "y" : 0.00 }, - "7" : { "x" : -15.50, "y" : -12.00 }, - "8" : { "x" : -15.50, "y" : 12.00 }, - "9" : { "x" : -15.00, "y" : -27.00 }, - "10" : { "x" : -15.00, "y" : 27.00 }, - "11" : { "x" : -8.00, "y" : 0.00 } } - ] -} diff --git a/src/formations-taker/goalie-formation.conf b/src/formations-taker/goalie-formation.conf deleted file mode 100644 index 910deab4..00000000 --- a/src/formations-taker/goalie-formation.conf +++ /dev/null @@ -1,715 +0,0 @@ -{ - "version" : "", - "method" : "DelaunayTriangulation", - "role" : [ - { - "number" : 1, - "name" : "Goalie", - "type" : "G", - "side" : "C", - "pair" : 0 - }, - { - "number" : 2, - "name" : "CenterBack", - "type" : "DF", - "side" : "L", - "pair" : 3 - }, - { - "number" : 3, - "name" : "CenterBack", - "type" : "DF", - "side" : "R", - "pair" : 2 - }, - { - "number" : 4, - "name" : "SideBack", - "type" : "DF", - "side" : "L", - "pair" : 5 - }, - { - "number" : 5, - "name" : "SideBack", - "type" : "DF", - "side" : "R", - "pair" : 4 - }, - { - "number" : 6, - "name" : "DefensiveHalf", - "type" : "MF", - "side" : "C", - "pair" : 0 - }, - { - "number" : 7, - "name" : "OffensiveHalf", - "type" : "MF", - "side" : "L", - "pair" : 8 - }, - { - "number" : 8, - "name" : "OffensiveHalf", - "type" : "MF", - "side" : "R", - "pair" : 7 - }, - { - "number" : 9, - "name" : "SideForward", - "type" : "FW", - "side" : "L", - "pair" : 10 - }, - { - "number" : 10, - "name" : "SideForward", - "type" : "FW", - "side" : "R", - "pair" : 9 - }, - { - "number" : 11, - "name" : "CenterForward", - "type" : "FW", - "side" : "C", - "pair" : 0 - } - ], - "data" : [ - { - "index" : 0, - "ball" : { "x" : -26.95, "y" : -31.61 }, - "1" : { "x" : -46.50, "y" : -3.00 }, - "2" : { "x" : -30.65, "y" : -16.82 }, - "3" : { "x" : -30.77, "y" : -6.44 }, - "4" : { "x" : -30.05, "y" : -29.10 }, - "5" : { "x" : -30.29, "y" : 3.70 }, - "6" : { "x" : -26.24, "y" : -14.19 }, - "7" : { "x" : -21.83, "y" : -26.72 }, - "8" : { "x" : -15.46, "y" : 2.33 }, - "9" : { "x" : -7.87, "y" : -31.01 }, - "10" : { "x" : -5.82, "y" : 19.94 }, - "11" : { "x" : -7.39, "y" : -15.15 } - }, - { - "index" : 1, - "ball" : { "x" : -26.95, "y" : 31.61 }, - "1" : { "x" : -46.50, "y" : 3.00 }, - "2" : { "x" : -30.77, "y" : 6.44 }, - "3" : { "x" : -30.65, "y" : 16.82 }, - "4" : { "x" : -30.29, "y" : -3.70 }, - "5" : { "x" : -30.05, "y" : 29.10 }, - "6" : { "x" : -26.24, "y" : 14.19 }, - "7" : { "x" : -15.46, "y" : -2.33 }, - "8" : { "x" : -21.83, "y" : 26.72 }, - "9" : { "x" : -5.82, "y" : -19.94 }, - "10" : { "x" : -7.87, "y" : 31.01 }, - "11" : { "x" : -7.39, "y" : 15.15 } - }, - { - "index" : 2, - "ball" : { "x" : -41.78, "y" : 0.00 }, - "1" : { "x" : -46.50, "y" : 0.00 }, - "2" : { "x" : -47.07, "y" : -2.61 }, - "3" : { "x" : -47.42, "y" : 2.25 }, - "4" : { "x" : -48.96, "y" : -5.34 }, - "5" : { "x" : -49.20, "y" : 5.10 }, - "6" : { "x" : -44.10, "y" : 0.12 }, - "7" : { "x" : -39.50, "y" : -6.00 }, - "8" : { "x" : -39.50, "y" : 6.00 }, - "9" : { "x" : -24.75, "y" : -22.00 }, - "10" : { "x" : -24.74, "y" : 22.00 }, - "11" : { "x" : -18.50, "y" : 0.00 } - }, - { - "index" : 3, - "ball" : { "x" : -36.02, "y" : -35.00 }, - "1" : { "x" : -46.50, "y" : -3.00 }, - "2" : { "x" : -36.61, "y" : -15.15 }, - "3" : { "x" : -36.26, "y" : -6.68 }, - "4" : { "x" : -36.14, "y" : -28.15 }, - "5" : { "x" : -34.60, "y" : 4.30 }, - "6" : { "x" : -31.61, "y" : -14.07 }, - "7" : { "x" : -26.72, "y" : -28.86 }, - "8" : { "x" : -20.16, "y" : 0.60 }, - "9" : { "x" : -10.23, "y" : -30.77 }, - "10" : { "x" : -7.44, "y" : 19.44 }, - "11" : { "x" : -7.62, "y" : -11.95 } - }, - { - "index" : 4, - "ball" : { "x" : -36.02, "y" : 35.00 }, - "1" : { "x" : -46.50, "y" : 3.00 }, - "2" : { "x" : -36.26, "y" : 6.68 }, - "3" : { "x" : -36.61, "y" : 15.15 }, - "4" : { "x" : -34.60, "y" : -4.30 }, - "5" : { "x" : -36.14, "y" : 28.15 }, - "6" : { "x" : -31.61, "y" : 14.07 }, - "7" : { "x" : -20.16, "y" : -0.60 }, - "8" : { "x" : -26.72, "y" : 28.86 }, - "9" : { "x" : -7.44, "y" : -19.44 }, - "10" : { "x" : -10.23, "y" : 30.77 }, - "11" : { "x" : -7.62, "y" : 11.95 } - }, - { - "index" : 5, - "ball" : { "x" : -36.04, "y" : -9.96 }, - "1" : { "x" : -46.50, "y" : -3.00 }, - "2" : { "x" : -42.92, "y" : -5.42 }, - "3" : { "x" : -39.70, "y" : -0.44 }, - "4" : { "x" : -41.75, "y" : -11.87 }, - "5" : { "x" : -41.27, "y" : 5.82 }, - "6" : { "x" : -35.75, "y" : -4.69 }, - "7" : { "x" : -32.28, "y" : -16.19 }, - "8" : { "x" : -27.62, "y" : 9.02 }, - "9" : { "x" : -18.00, "y" : -27.39 }, - "10" : { "x" : -18.00, "y" : 22.00 }, - "11" : { "x" : -14.78, "y" : -5.49 } - }, - { - "index" : 6, - "ball" : { "x" : -36.04, "y" : 9.96 }, - "1" : { "x" : -46.50, "y" : 3.00 }, - "2" : { "x" : -39.70, "y" : 0.44 }, - "3" : { "x" : -42.92, "y" : 5.42 }, - "4" : { "x" : -41.27, "y" : -5.91 }, - "5" : { "x" : -41.75, "y" : 11.87 }, - "6" : { "x" : -35.75, "y" : 4.69 }, - "7" : { "x" : -27.62, "y" : -9.02 }, - "8" : { "x" : -32.28, "y" : 16.19 }, - "9" : { "x" : -18.00, "y" : -22.00 }, - "10" : { "x" : -18.00, "y" : 27.39 }, - "11" : { "x" : -14.78, "y" : 5.49 } - }, - { - "index" : 7, - "ball" : { "x" : -43.39, "y" : -9.53 }, - "1" : { "x" : -47.85, "y" : -6.00 }, - "2" : { "x" : -46.77, "y" : -5.52 }, - "3" : { "x" : -43.97, "y" : -0.25 }, - "4" : { "x" : -45.77, "y" : -9.15 }, - "5" : { "x" : -47.40, "y" : 3.89 }, - "6" : { "x" : -40.77, "y" : -6.11 }, - "7" : { "x" : -38.79, "y" : -14.81 }, - "8" : { "x" : -38.46, "y" : 3.97 }, - "9" : { "x" : -23.30, "y" : -28.20 }, - "10" : { "x" : -23.20, "y" : 20.07 }, - "11" : { "x" : -23.56, "y" : -7.45 } - }, - { - "index" : 8, - "ball" : { "x" : -43.39, "y" : 9.53 }, - "1" : { "x" : -47.85, "y" : 6.00 }, - "2" : { "x" : -43.97, "y" : 0.25 }, - "3" : { "x" : -46.77, "y" : 5.52 }, - "4" : { "x" : -47.40, "y" : -3.89 }, - "5" : { "x" : -45.77, "y" : 9.15 }, - "6" : { "x" : -40.77, "y" : 6.11 }, - "7" : { "x" : -38.46, "y" : -3.97 }, - "8" : { "x" : -38.79, "y" : 14.81 }, - "9" : { "x" : -23.20, "y" : -20.07 }, - "10" : { "x" : -23.30, "y" : 28.20 }, - "11" : { "x" : -23.56, "y" : 7.45 } - }, - { - "index" : 9, - "ball" : { "x" : -54.50, "y" : -36.00 }, - "1" : { "x" : -51.00, "y" : -6.50 }, - "2" : { "x" : -47.04, "y" : -18.02 }, - "3" : { "x" : -45.42, "y" : -8.52 }, - "4" : { "x" : -49.09, "y" : -27.29 }, - "5" : { "x" : -43.37, "y" : 0.00 }, - "6" : { "x" : -42.18, "y" : -14.13 }, - "7" : { "x" : -42.72, "y" : -24.49 }, - "8" : { "x" : -27.43, "y" : 5.25 }, - "9" : { "x" : -19.32, "y" : -30.06 }, - "10" : { "x" : -12.88, "y" : 19.80 }, - "11" : { "x" : -14.91, "y" : -9.18 } - }, - { - "index" : 10, - "ball" : { "x" : -54.50, "y" : 36.00 }, - "1" : { "x" : -51.00, "y" : 6.50 }, - "2" : { "x" : -45.42, "y" : 8.52 }, - "3" : { "x" : -47.04, "y" : 18.02 }, - "4" : { "x" : -43.37, "y" : -0.00 }, - "5" : { "x" : -49.09, "y" : 27.29 }, - "6" : { "x" : -42.18, "y" : 14.13 }, - "7" : { "x" : -27.43, "y" : -5.25 }, - "8" : { "x" : -42.72, "y" : 24.49 }, - "9" : { "x" : -12.88, "y" : -19.80 }, - "10" : { "x" : -19.32, "y" : 30.06 }, - "11" : { "x" : -14.91, "y" : 9.18 } - }, - { - "index" : 11, - "ball" : { "x" : -54.50, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : -47.00, "y" : -2.50 }, - "3" : { "x" : -47.00, "y" : 2.50 }, - "4" : { "x" : -47.00, "y" : -7.00 }, - "5" : { "x" : -47.00, "y" : 7.00 }, - "6" : { "x" : -43.00, "y" : 0.00 }, - "7" : { "x" : -35.00, "y" : -13.00 }, - "8" : { "x" : -35.00, "y" : 13.00 }, - "9" : { "x" : -24.75, "y" : -22.00 }, - "10" : { "x" : -24.75, "y" : 22.00 }, - "11" : { "x" : -23.00, "y" : 0.00 } - }, - { - "index" : 12, - "ball" : { "x" : -54.50, "y" : -10.57 }, - "1" : { "x" : -51.00, "y" : -7.00 }, - "2" : { "x" : -48.41, "y" : -5.80 }, - "3" : { "x" : -48.76, "y" : -1.66 }, - "4" : { "x" : -51.01, "y" : -8.52 }, - "5" : { "x" : -48.65, "y" : 3.20 }, - "6" : { "x" : -44.37, "y" : -2.62 }, - "7" : { "x" : -43.73, "y" : -9.47 }, - "8" : { "x" : -39.90, "y" : 4.33 }, - "9" : { "x" : -24.81, "y" : -29.58 }, - "10" : { "x" : -18.82, "y" : 25.56 }, - "11" : { "x" : -23.00, "y" : -8.59 } - }, - { - "index" : 13, - "ball" : { "x" : -54.50, "y" : 10.57 }, - "1" : { "x" : -51.00, "y" : 7.00 }, - "2" : { "x" : -48.76, "y" : 1.66 }, - "3" : { "x" : -48.41, "y" : 5.80 }, - "4" : { "x" : -48.65, "y" : -3.20 }, - "5" : { "x" : -51.01, "y" : 8.52 }, - "6" : { "x" : -44.37, "y" : 2.62 }, - "7" : { "x" : -39.90, "y" : -4.33 }, - "8" : { "x" : -43.73, "y" : 9.47 }, - "9" : { "x" : -18.82, "y" : -25.56 }, - "10" : { "x" : -24.81, "y" : 29.58 }, - "11" : { "x" : -23.00, "y" : 8.59 } - }, - { - "index" : 14, - "ball" : { "x" : -42.10, "y" : -28.03 }, - "1" : { "x" : -49.00, "y" : -6.50 }, - "2" : { "x" : -42.94, "y" : -15.32 }, - "3" : { "x" : -41.86, "y" : -7.55 }, - "4" : { "x" : -43.37, "y" : -24.38 }, - "5" : { "x" : -39.49, "y" : 0.65 }, - "6" : { "x" : -38.73, "y" : -13.27 }, - "7" : { "x" : -32.56, "y" : -22.90 }, - "8" : { "x" : -25.09, "y" : 4.60 }, - "9" : { "x" : -15.62, "y" : -30.53 }, - "10" : { "x" : -12.76, "y" : 21.71 }, - "11" : { "x" : -13.95, "y" : -11.81 } - }, - { - "index" : 15, - "ball" : { "x" : -42.10, "y" : 28.03 }, - "1" : { "x" : -49.00, "y" : 6.50 }, - "2" : { "x" : -41.86, "y" : 7.55 }, - "3" : { "x" : -42.94, "y" : 15.32 }, - "4" : { "x" : -39.49, "y" : -0.65 }, - "5" : { "x" : -43.37, "y" : 24.38 }, - "6" : { "x" : -38.73, "y" : 13.27 }, - "7" : { "x" : -25.09, "y" : -4.60 }, - "8" : { "x" : -32.56, "y" : 22.90 }, - "9" : { "x" : -12.76, "y" : -21.71 }, - "10" : { "x" : -15.62, "y" : 30.53 }, - "11" : { "x" : -13.95, "y" : 11.81 } - }, - { - "index" : 16, - "ball" : { "x" : -48.97, "y" : -17.73 }, - "1" : { "x" : -50.00, "y" : -7.00 }, - "2" : { "x" : -47.08, "y" : -6.22 }, - "3" : { "x" : -44.08, "y" : -1.75 }, - "4" : { "x" : -47.77, "y" : -12.89 }, - "5" : { "x" : -47.07, "y" : 2.17 }, - "6" : { "x" : -44.09, "y" : -7.25 }, - "7" : { "x" : -43.12, "y" : -14.18 }, - "8" : { "x" : -37.99, "y" : 0.52 }, - "9" : { "x" : -30.17, "y" : -23.92 }, - "10" : { "x" : -20.89, "y" : 22.42 }, - "11" : { "x" : -21.75, "y" : -9.68 } - }, - { - "index" : 17, - "ball" : { "x" : -48.97, "y" : 17.73 }, - "1" : { "x" : -50.00, "y" : 7.00 }, - "2" : { "x" : -44.08, "y" : 1.75 }, - "3" : { "x" : -47.08, "y" : 6.22 }, - "4" : { "x" : -47.07, "y" : -2.17 }, - "5" : { "x" : -47.77, "y" : 12.89 }, - "6" : { "x" : -44.09, "y" : 7.25 }, - "7" : { "x" : -37.99, "y" : -0.52 }, - "8" : { "x" : -43.12, "y" : 14.18 }, - "9" : { "x" : -20.89, "y" : -22.42 }, - "10" : { "x" : -30.17, "y" : 23.92 }, - "11" : { "x" : -21.75, "y" : 9.68 } - }, - { - "index" : 18, - "ball" : { "x" : -22.08, "y" : 0.00 }, - "1" : { "x" : -46.50, "y" : -0.00 }, - "2" : { "x" : -25.43, "y" : -2.48 }, - "3" : { "x" : -25.34, "y" : 2.23 }, - "4" : { "x" : -26.20, "y" : -9.16 }, - "5" : { "x" : -25.77, "y" : 8.65 }, - "6" : { "x" : -20.42, "y" : 0.05 }, - "7" : { "x" : -15.86, "y" : -12.83 }, - "8" : { "x" : -15.25, "y" : 11.97 }, - "9" : { "x" : -6.18, "y" : -22.01 }, - "10" : { "x" : -5.43, "y" : 22.12 }, - "11" : { "x" : -3.02, "y" : -0.00 } - }, - { - "index" : 19, - "ball" : { "x" : -31.00, "y" : 0.00 }, - "1" : { "x" : -46.50, "y" : -0.00 }, - "2" : { "x" : -36.73, "y" : -2.99 }, - "3" : { "x" : -36.66, "y" : 2.67 }, - "4" : { "x" : -36.20, "y" : -8.93 }, - "5" : { "x" : -36.12, "y" : 8.13 }, - "6" : { "x" : -30.47, "y" : 0.22 }, - "7" : { "x" : -28.84, "y" : -12.26 }, - "8" : { "x" : -27.85, "y" : 9.82 }, - "9" : { "x" : -18.03, "y" : -21.00 }, - "10" : { "x" : -18.93, "y" : 22.26 }, - "11" : { "x" : -11.02, "y" : -0.00 } - }, - { - "index" : 20, - "ball" : { "x" : -48.35, "y" : -9.55 }, - "1" : { "x" : -50.00, "y" : -7.00 }, - "2" : { "x" : -48.12, "y" : -6.51 }, - "3" : { "x" : -46.32, "y" : -2.57 }, - "4" : { "x" : -48.12, "y" : -8.17 }, - "5" : { "x" : -48.20, "y" : 1.88 }, - "6" : { "x" : -44.09, "y" : -7.25 }, - "7" : { "x" : -43.12, "y" : -14.18 }, - "8" : { "x" : -41.22, "y" : 1.92 }, - "9" : { "x" : -27.41, "y" : -28.75 }, - "10" : { "x" : -25.72, "y" : 19.11 }, - "11" : { "x" : -23.00, "y" : -9.49 } - }, - { - "index" : 21, - "ball" : { "x" : -48.35, "y" : 9.55 }, - "1" : { "x" : -50.00, "y" : 7.00 }, - "2" : { "x" : -46.32, "y" : 2.57 }, - "3" : { "x" : -48.12, "y" : 6.51 }, - "4" : { "x" : -48.20, "y" : -1.88 }, - "5" : { "x" : -48.12, "y" : 8.17 }, - "6" : { "x" : -44.09, "y" : 7.25 }, - "7" : { "x" : -41.22, "y" : -1.92 }, - "8" : { "x" : -43.12, "y" : 14.18 }, - "9" : { "x" : -25.72, "y" : -19.11 }, - "10" : { "x" : -27.41, "y" : 28.75 }, - "11" : { "x" : -23.00, "y" : 9.49 } - }, - { - "index" : 22, - "ball" : { "x" : -22.08, "y" : -18.00 }, - "1" : { "x" : -46.50, "y" : -3.00 }, - "2" : { "x" : -26.23, "y" : -11.18 }, - "3" : { "x" : -26.32, "y" : -2.43 }, - "4" : { "x" : -25.96, "y" : -18.30 }, - "5" : { "x" : -26.32, "y" : 6.85 }, - "6" : { "x" : -21.58, "y" : -9.68 }, - "7" : { "x" : -17.81, "y" : -14.21 }, - "8" : { "x" : -14.69, "y" : 5.77 }, - "9" : { "x" : -4.33, "y" : -28.84 }, - "10" : { "x" : -4.51, "y" : 21.27 }, - "11" : { "x" : -4.87, "y" : -10.54 } - }, - { - "index" : 23, - "ball" : { "x" : -22.08, "y" : 18.00 }, - "1" : { "x" : -46.50, "y" : 3.00 }, - "2" : { "x" : -26.32, "y" : 2.43 }, - "3" : { "x" : -26.23, "y" : 11.18 }, - "4" : { "x" : -26.32, "y" : -6.85 }, - "5" : { "x" : -25.96, "y" : 18.30 }, - "6" : { "x" : -21.58, "y" : 9.68 }, - "7" : { "x" : -14.69, "y" : -5.77 }, - "8" : { "x" : -17.81, "y" : 14.21 }, - "9" : { "x" : -4.51, "y" : -21.27 }, - "10" : { "x" : -4.33, "y" : 28.84 }, - "11" : { "x" : -4.87, "y" : 10.54 } - }, - { - "index" : 24, - "ball" : { "x" : -22.08, "y" : -9.00 }, - "1" : { "x" : -46.50, "y" : -3.00 }, - "2" : { "x" : -25.24, "y" : -8.92 }, - "3" : { "x" : -25.42, "y" : -0.63 }, - "4" : { "x" : -24.96, "y" : -15.41 }, - "5" : { "x" : -25.33, "y" : 8.11 }, - "6" : { "x" : -22.62, "y" : -5.05 }, - "7" : { "x" : -17.81, "y" : -12.41 }, - "8" : { "x" : -15.25, "y" : 11.97 }, - "9" : { "x" : -6.18, "y" : -22.01 }, - "10" : { "x" : -5.43, "y" : 22.12 }, - "11" : { "x" : -3.02, "y" : -4.62 } - }, - { - "index" : 25, - "ball" : { "x" : -22.08, "y" : 9.00 }, - "1" : { "x" : -46.50, "y" : 3.00 }, - "2" : { "x" : -25.42, "y" : 0.63 }, - "3" : { "x" : -25.24, "y" : 8.92 }, - "4" : { "x" : -25.33, "y" : -8.11 }, - "5" : { "x" : -24.96, "y" : 15.41 }, - "6" : { "x" : -22.62, "y" : 5.05 }, - "7" : { "x" : -15.25, "y" : -11.97 }, - "8" : { "x" : -17.81, "y" : 12.41 }, - "9" : { "x" : -5.43, "y" : -22.12 }, - "10" : { "x" : -6.18, "y" : 22.01 }, - "11" : { "x" : -3.02, "y" : 4.62 } - }, - { - "index" : 26, - "ball" : { "x" : 54.50, "y" : -36.00 }, - "1" : { "x" : -43.00, "y" : 0.00 }, - "2" : { "x" : -0.72, "y" : -12.00 }, - "3" : { "x" : -0.84, "y" : 1.08 }, - "4" : { "x" : 7.19, "y" : -26.29 }, - "5" : { "x" : 10.00, "y" : 8.00 }, - "6" : { "x" : 21.83, "y" : -14.13 }, - "7" : { "x" : 35.28, "y" : -23.97 }, - "8" : { "x" : 40.92, "y" : -8.74 }, - "9" : { "x" : 44.22, "y" : -30.85 }, - "10" : { "x" : 43.53, "y" : 4.78 }, - "11" : { "x" : 48.38, "y" : -19.52 } - }, - { - "index" : 27, - "ball" : { "x" : 54.50, "y" : 36.00 }, - "1" : { "x" : -43.00, "y" : -0.00 }, - "2" : { "x" : -0.84, "y" : -1.08 }, - "3" : { "x" : -0.72, "y" : 12.00 }, - "4" : { "x" : 10.00, "y" : -8.00 }, - "5" : { "x" : 7.19, "y" : 26.29 }, - "6" : { "x" : 21.83, "y" : 14.13 }, - "7" : { "x" : 40.92, "y" : 8.74 }, - "8" : { "x" : 35.28, "y" : 23.97 }, - "9" : { "x" : 43.53, "y" : -4.78 }, - "10" : { "x" : 44.22, "y" : 30.85 }, - "11" : { "x" : 48.38, "y" : 19.52 } - }, - { - "index" : 28, - "ball" : { "x" : -11.99, "y" : -18.00 }, - "1" : { "x" : -43.00, "y" : -3.00 }, - "2" : { "x" : -16.27, "y" : -16.18 }, - "3" : { "x" : -15.84, "y" : -2.91 }, - "4" : { "x" : -15.07, "y" : -22.26 }, - "5" : { "x" : -16.18, "y" : 9.68 }, - "6" : { "x" : -14.56, "y" : -9.93 }, - "7" : { "x" : -4.78, "y" : -18.39 }, - "8" : { "x" : -4.15, "y" : 4.87 }, - "9" : { "x" : 2.88, "y" : -30.37 }, - "10" : { "x" : 3.70, "y" : 21.90 }, - "11" : { "x" : 3.70, "y" : -9.01 } - }, - { - "index" : 29, - "ball" : { "x" : -11.99, "y" : 18.00 }, - "1" : { "x" : -43.00, "y" : 3.00 }, - "2" : { "x" : -15.84, "y" : 2.91 }, - "3" : { "x" : -16.27, "y" : 16.18 }, - "4" : { "x" : -16.18, "y" : -9.68 }, - "5" : { "x" : -15.07, "y" : 22.26 }, - "6" : { "x" : -14.56, "y" : 9.93 }, - "7" : { "x" : -4.15, "y" : -4.87 }, - "8" : { "x" : -4.78, "y" : 18.39 }, - "9" : { "x" : 3.70, "y" : -21.90 }, - "10" : { "x" : 2.88, "y" : 30.37 }, - "11" : { "x" : 3.70, "y" : 9.01 } - }, - { - "index" : 30, - "ball" : { "x" : -11.99, "y" : -9.00 }, - "1" : { "x" : -43.00, "y" : -2.00 }, - "2" : { "x" : -15.58, "y" : -9.93 }, - "3" : { "x" : -15.93, "y" : 0.77 }, - "4" : { "x" : -15.50, "y" : -17.12 }, - "5" : { "x" : -15.75, "y" : 9.76 }, - "6" : { "x" : -13.96, "y" : -5.31 }, - "7" : { "x" : -7.75, "y" : -14.42 }, - "8" : { "x" : -5.59, "y" : 7.66 }, - "9" : { "x" : 2.25, "y" : -28.39 }, - "10" : { "x" : 2.16, "y" : 21.36 }, - "11" : { "x" : 2.61, "y" : -5.23 } - }, - { - "index" : 31, - "ball" : { "x" : -11.99, "y" : 9.00 }, - "1" : { "x" : -43.00, "y" : 2.00 }, - "2" : { "x" : -15.93, "y" : -0.77 }, - "3" : { "x" : -15.58, "y" : 9.93 }, - "4" : { "x" : -15.75, "y" : -9.76 }, - "5" : { "x" : -15.50, "y" : 17.12 }, - "6" : { "x" : -13.96, "y" : 5.31 }, - "7" : { "x" : -5.59, "y" : -7.66 }, - "8" : { "x" : -7.75, "y" : 14.42 }, - "9" : { "x" : 2.16, "y" : -21.36 }, - "10" : { "x" : 2.25, "y" : 28.39 }, - "11" : { "x" : 2.61, "y" : 5.23 } - }, - { - "index" : 32, - "ball" : { "x" : -11.99, "y" : 0.00 }, - "1" : { "x" : -43.00, "y" : -0.00 }, - "2" : { "x" : -15.75, "y" : -3.42 }, - "3" : { "x" : -15.75, "y" : 2.65 }, - "4" : { "x" : -15.75, "y" : -11.90 }, - "5" : { "x" : -16.70, "y" : 10.70 }, - "6" : { "x" : -13.96, "y" : 0.00 }, - "7" : { "x" : -8.05, "y" : -13.27 }, - "8" : { "x" : -7.11, "y" : 11.99 }, - "9" : { "x" : -2.20, "y" : -23.11 }, - "10" : { "x" : -0.94, "y" : 22.86 }, - "11" : { "x" : 1.91, "y" : -0.00 } - }, - { - "index" : 33, - "ball" : { "x" : -8.22, "y" : -36.00 }, - "1" : { "x" : -43.00, "y" : -4.00 }, - "2" : { "x" : -14.98, "y" : -24.57 }, - "3" : { "x" : -16.26, "y" : -7.31 }, - "4" : { "x" : -11.73, "y" : -33.05 }, - "5" : { "x" : -14.25, "y" : 7.67 }, - "6" : { "x" : -12.50, "y" : -16.95 }, - "7" : { "x" : -8.04, "y" : -26.49 }, - "8" : { "x" : -3.97, "y" : -5.41 }, - "9" : { "x" : 7.86, "y" : -31.17 }, - "10" : { "x" : 8.29, "y" : 2.34 }, - "11" : { "x" : 8.75, "y" : -16.72 } - }, - { - "index" : 34, - "ball" : { "x" : -8.22, "y" : 36.00 }, - "1" : { "x" : -43.00, "y" : 4.00 }, - "2" : { "x" : -16.26, "y" : 7.31 }, - "3" : { "x" : -14.98, "y" : 24.57 }, - "4" : { "x" : -14.25, "y" : -7.67 }, - "5" : { "x" : -11.73, "y" : 33.05 }, - "6" : { "x" : -12.50, "y" : 16.95 }, - "7" : { "x" : -3.97, "y" : 5.41 }, - "8" : { "x" : -8.04, "y" : 26.49 }, - "9" : { "x" : 8.29, "y" : -2.34 }, - "10" : { "x" : 7.86, "y" : 31.17 }, - "11" : { "x" : 8.75, "y" : 16.72 } - }, - { - "index" : 35, - "ball" : { "x" : -42.52, "y" : -6.04 }, - "1" : { "x" : -46.50, "y" : -4.75 }, - "2" : { "x" : -46.86, "y" : -4.31 }, - "3" : { "x" : -44.95, "y" : 0.79 }, - "4" : { "x" : -46.88, "y" : -7.76 }, - "5" : { "x" : -47.74, "y" : 4.50 }, - "6" : { "x" : -41.81, "y" : -3.85 }, - "7" : { "x" : -38.81, "y" : -11.62 }, - "8" : { "x" : -38.43, "y" : 4.91 }, - "9" : { "x" : -23.63, "y" : -25.89 }, - "10" : { "x" : -23.57, "y" : 20.85 }, - "11" : { "x" : -21.37, "y" : -4.64 } - }, - { - "index" : 36, - "ball" : { "x" : -42.52, "y" : 6.04 }, - "1" : { "x" : -46.50, "y" : 4.75 }, - "2" : { "x" : -44.95, "y" : -0.79 }, - "3" : { "x" : -46.86, "y" : 4.31 }, - "4" : { "x" : -47.74, "y" : -4.50 }, - "5" : { "x" : -46.88, "y" : 7.76 }, - "6" : { "x" : -41.81, "y" : 3.85 }, - "7" : { "x" : -38.43, "y" : -4.91 }, - "8" : { "x" : -38.81, "y" : 11.62 }, - "9" : { "x" : -23.57, "y" : -20.85 }, - "10" : { "x" : -23.63, "y" : 25.89 }, - "11" : { "x" : -21.37, "y" : 4.64 } - }, - { - "index" : 37, - "ball" : { "x" : 0.00, "y" : 0.00 }, - "1" : { "x" : -43.00, "y" : 0.00 }, - "2" : { "x" : -11.97, "y" : -8.07 }, - "3" : { "x" : -12.04, "y" : 6.87 }, - "4" : { "x" : -10.58, "y" : -16.23 }, - "5" : { "x" : -10.87, "y" : 15.70 }, - "6" : { "x" : -8.22, "y" : -0.19 }, - "7" : { "x" : -0.03, "y" : -8.56 }, - "8" : { "x" : -0.17, "y" : 8.44 }, - "9" : { "x" : 11.36, "y" : -18.82 }, - "10" : { "x" : 11.39, "y" : 18.52 }, - "11" : { "x" : 11.78, "y" : -0.06 } - }, - { - "index" : 38, - "ball" : { "x" : -41.21, "y" : -4.43 }, - "1" : { "x" : -46.50, "y" : -3.20 }, - "2" : { "x" : -46.31, "y" : -3.86 }, - "3" : { "x" : -45.02, "y" : 1.13 }, - "4" : { "x" : -46.83, "y" : -7.52 }, - "5" : { "x" : -47.24, "y" : 4.93 }, - "6" : { "x" : -41.69, "y" : -2.52 }, - "7" : { "x" : -38.02, "y" : -10.27 }, - "8" : { "x" : -37.09, "y" : 5.97 }, - "9" : { "x" : -23.14, "y" : -24.69 }, - "10" : { "x" : -23.11, "y" : 21.46 }, - "11" : { "x" : -19.25, "y" : -3.06 } - }, - { - "index" : 39, - "ball" : { "x" : -41.21, "y" : 4.43 }, - "1" : { "x" : -46.50, "y" : 3.20 }, - "2" : { "x" : -45.02, "y" : -1.13 }, - "3" : { "x" : -46.31, "y" : 3.86 }, - "4" : { "x" : -47.24, "y" : -4.93 }, - "5" : { "x" : -46.83, "y" : 7.52 }, - "6" : { "x" : -41.69, "y" : 2.52 }, - "7" : { "x" : -37.09, "y" : -5.97 }, - "8" : { "x" : -38.02, "y" : 10.27 }, - "9" : { "x" : -23.11, "y" : -21.46 }, - "10" : { "x" : -23.14, "y" : 24.69 }, - "11" : { "x" : -19.25, "y" : 3.06 } - }, - { - "index" : 40, - "ball" : { "x" : -42.38, "y" : -8.44 }, - "1" : { "x" : -46.50, "y" : -6.00 }, - "2" : { "x" : -46.42, "y" : -5.12 }, - "3" : { "x" : -43.87, "y" : 0.07 }, - "4" : { "x" : -45.73, "y" : -8.97 }, - "5" : { "x" : -46.90, "y" : 4.29 }, - "6" : { "x" : -40.61, "y" : -5.24 }, - "7" : { "x" : -38.15, "y" : -13.91 }, - "8" : { "x" : -37.38, "y" : 4.78 }, - "9" : { "x" : -22.88, "y" : -27.37 }, - "10" : { "x" : -22.81, "y" : 20.51 }, - "11" : { "x" : -21.98, "y" : -6.34 } - }, - { - "index" : 41, - "ball" : { "x" : -42.38, "y" : 8.44 }, - "1" : { "x" : -46.50, "y" : 6.00 }, - "2" : { "x" : -43.87, "y" : -0.07 }, - "3" : { "x" : -46.42, "y" : 5.12 }, - "4" : { "x" : -46.90, "y" : -4.29 }, - "5" : { "x" : -45.73, "y" : 8.97 }, - "6" : { "x" : -40.61, "y" : 5.24 }, - "7" : { "x" : -37.38, "y" : -4.78 }, - "8" : { "x" : -38.15, "y" : 13.91 }, - "9" : { "x" : -22.81, "y" : -20.51 }, - "10" : { "x" : -22.88, "y" : 27.37 }, - "11" : { "x" : -21.98, "y" : 6.34 } - } - ] -} diff --git a/src/formations-taker/indirect-freekick-opp-formation.conf b/src/formations-taker/indirect-freekick-opp-formation.conf deleted file mode 100644 index b0054c30..00000000 --- a/src/formations-taker/indirect-freekick-opp-formation.conf +++ /dev/null @@ -1,400 +0,0 @@ -{ - "version" : "", - "method" : "DelaunayTriangulation", - "role" : [ - { - "number" : 1, - "name" : "Goalie", - "type" : "G", - "side" : "C", - "pair" : 0 - }, - { - "number" : 2, - "name" : "CenterBack", - "type" : "DF", - "side" : "L", - "pair" : 3 - }, - { - "number" : 3, - "name" : "CenterBack", - "type" : "DF", - "side" : "R", - "pair" : 2 - }, - { - "number" : 4, - "name" : "SideBack", - "type" : "DF", - "side" : "L", - "pair" : 5 - }, - { - "number" : 5, - "name" : "SideBack", - "type" : "DF", - "side" : "R", - "pair" : 4 - }, - { - "number" : 6, - "name" : "DefensiveHalf", - "type" : "MF", - "side" : "C", - "pair" : 0 - }, - { - "number" : 7, - "name" : "OffensiveHalf", - "type" : "MF", - "side" : "L", - "pair" : 8 - }, - { - "number" : 8, - "name" : "OffensiveHalf", - "type" : "MF", - "side" : "R", - "pair" : 7 - }, - { - "number" : 9, - "name" : "SideForward", - "type" : "FW", - "side" : "L", - "pair" : 10 - }, - { - "number" : 10, - "name" : "SideForward", - "type" : "FW", - "side" : "R", - "pair" : 9 - }, - { - "number" : 11, - "name" : "CenterForward", - "type" : "FW", - "side" : "C", - "pair" : 0 - } - ], - "data" : [ - { - "index" : 0, - "ball" : { "x" : 0.00, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -11.63, "y" : -4.60 }, - "3" : { "x" : -11.90, "y" : 4.06 }, - "4" : { "x" : -10.09, "y" : -16.13 }, - "5" : { "x" : -9.91, "y" : 14.51 }, - "6" : { "x" : -11.18, "y" : -0.36 }, - "7" : { "x" : -6.58, "y" : -8.20 }, - "8" : { "x" : -7.57, "y" : 8.29 }, - "9" : { "x" : -1.26, "y" : -11.99 }, - "10" : { "x" : -1.80, "y" : 12.17 }, - "11" : { "x" : 11.72, "y" : 0.00 } - }, - { - "index" : 1, - "ball" : { "x" : -54.50, "y" : -36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -45.60, "y" : -18.57 }, - "3" : { "x" : -45.24, "y" : -5.14 }, - "4" : { "x" : -49.75, "y" : -24.60 }, - "5" : { "x" : -45.60, "y" : 3.88 }, - "6" : { "x" : -39.84, "y" : -15.59 }, - "7" : { "x" : -41.91, "y" : -24.24 }, - "8" : { "x" : -34.88, "y" : -0.09 }, - "9" : { "x" : -29.11, "y" : -28.84 }, - "10" : { "x" : -14.69, "y" : 21.98 }, - "11" : { "x" : -14.90, "y" : -5.27 } - }, - { - "index" : 2, - "ball" : { "x" : -54.50, "y" : 36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -45.24, "y" : 5.14 }, - "3" : { "x" : -45.60, "y" : 18.57 }, - "4" : { "x" : -45.60, "y" : -3.88 }, - "5" : { "x" : -49.75, "y" : 24.60 }, - "6" : { "x" : -39.84, "y" : 15.59 }, - "7" : { "x" : -34.88, "y" : 0.09 }, - "8" : { "x" : -41.91, "y" : 24.24 }, - "9" : { "x" : -14.69, "y" : -21.98 }, - "10" : { "x" : -29.11, "y" : 28.84 }, - "11" : { "x" : -14.90, "y" : 5.27 } - }, - { - "index" : 3, - "ball" : { "x" : 54.50, "y" : -36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -5.68, "y" : -9.82 }, - "3" : { "x" : -4.51, "y" : 2.34 }, - "4" : { "x" : 5.86, "y" : -22.53 }, - "5" : { "x" : 10.00, "y" : 8.00 }, - "6" : { "x" : 20.82, "y" : -15.86 }, - "7" : { "x" : 31.99, "y" : -26.86 }, - "8" : { "x" : 35.24, "y" : -14.15 }, - "9" : { "x" : 39.02, "y" : -32.81 }, - "10" : { "x" : 43.71, "y" : -11.81 }, - "11" : { "x" : 40.11, "y" : -23.79 } - }, - { - "index" : 4, - "ball" : { "x" : 54.50, "y" : 36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -4.51, "y" : -2.34 }, - "3" : { "x" : -5.68, "y" : 9.82 }, - "4" : { "x" : 10.00, "y" : -8.00 }, - "5" : { "x" : 5.86, "y" : 22.53 }, - "6" : { "x" : 20.82, "y" : 15.86 }, - "7" : { "x" : 35.24, "y" : 14.15 }, - "8" : { "x" : 31.99, "y" : 26.86 }, - "9" : { "x" : 43.71, "y" : 11.81 }, - "10" : { "x" : 39.02, "y" : 32.81 }, - "11" : { "x" : 40.11, "y" : 23.79 } - }, - { - "index" : 5, - "ball" : { "x" : -35.00, "y" : -21.00 }, - "1" : { "x" : -50.00, "y" : -6.50 }, - "2" : { "x" : -44.28, "y" : -10.05 }, - "3" : { "x" : -44.22, "y" : -1.48 }, - "4" : { "x" : -44.19, "y" : -15.75 }, - "5" : { "x" : -43.66, "y" : 4.83 }, - "6" : { "x" : -40.28, "y" : -10.05 }, - "7" : { "x" : -35.08, "y" : -10.56 }, - "8" : { "x" : -37.64, "y" : -2.21 }, - "9" : { "x" : -25.89, "y" : -20.10 }, - "10" : { "x" : -12.49, "y" : 14.65 }, - "11" : { "x" : -21.91, "y" : -8.74 } - }, - { - "index" : 6, - "ball" : { "x" : -35.00, "y" : 21.00 }, - "1" : { "x" : -50.00, "y" : 6.50 }, - "2" : { "x" : -44.22, "y" : 1.48 }, - "3" : { "x" : -44.28, "y" : 10.05 }, - "4" : { "x" : -43.66, "y" : -4.83 }, - "5" : { "x" : -44.19, "y" : 15.75 }, - "6" : { "x" : -40.28, "y" : 10.05 }, - "7" : { "x" : -37.64, "y" : 2.21 }, - "8" : { "x" : -35.08, "y" : 10.56 }, - "9" : { "x" : -12.49, "y" : -14.65 }, - "10" : { "x" : -25.89, "y" : 20.10 }, - "11" : { "x" : -21.91, "y" : 8.74 } - }, - { - "index" : 7, - "ball" : { "x" : -35.00, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -45.21, "y" : -2.19 }, - "3" : { "x" : -45.21, "y" : 2.19 }, - "4" : { "x" : -46.27, "y" : -4.12 }, - "5" : { "x" : -46.27, "y" : 4.12 }, - "6" : { "x" : -45.10, "y" : 0.00 }, - "7" : { "x" : -44.68, "y" : -5.14 }, - "8" : { "x" : -44.68, "y" : 5.14 }, - "9" : { "x" : -25.12, "y" : -16.78 }, - "10" : { "x" : -25.12, "y" : 16.78 }, - "11" : { "x" : -23.50, "y" : -0.09 } - }, - { - "index" : 8, - "ball" : { "x" : -54.50, "y" : 0.00 }, - "1" : { "x" : -54.00, "y" : 0.00 }, - "2" : { "x" : -52.60, "y" : -2.00 }, - "3" : { "x" : -52.60, "y" : 2.00 }, - "4" : { "x" : -52.60, "y" : -6.50 }, - "5" : { "x" : -52.60, "y" : 6.50 }, - "6" : { "x" : -52.60, "y" : 0.00 }, - "7" : { "x" : -52.60, "y" : -4.00 }, - "8" : { "x" : -52.60, "y" : 4.00 }, - "9" : { "x" : -33.21, "y" : -19.76 }, - "10" : { "x" : -33.21, "y" : 19.76 }, - "11" : { "x" : -32.47, "y" : 0.11 } - }, - { - "index" : 9, - "ball" : { "x" : -47.00, "y" : 0.00 }, - "1" : { "x" : -52.70, "y" : -0.35 }, - "2" : { "x" : -52.62, "y" : -2.09 }, - "3" : { "x" : -52.62, "y" : 1.08 }, - "4" : { "x" : -52.62, "y" : -3.88 }, - "5" : { "x" : -52.55, "y" : 3.65 }, - "6" : { "x" : -52.67, "y" : 2.37 }, - "7" : { "x" : -52.67, "y" : -5.34 }, - "8" : { "x" : -52.47, "y" : 4.96 }, - "9" : { "x" : -27.39, "y" : -19.82 }, - "10" : { "x" : -27.39, "y" : 19.82 }, - "11" : { "x" : -28.40, "y" : 0.07 } - }, - { - "index" : 10, - "ball" : { "x" : -47.00, "y" : -9.00 }, - "1" : { "x" : -52.65, "y" : -3.93 }, - "2" : { "x" : -52.55, "y" : -2.72 }, - "3" : { "x" : -52.65, "y" : -1.11 }, - "4" : { "x" : -52.55, "y" : -5.09 }, - "5" : { "x" : -52.72, "y" : 3.91 }, - "6" : { "x" : -52.65, "y" : 0.66 }, - "7" : { "x" : -52.75, "y" : -6.25 }, - "8" : { "x" : -51.44, "y" : 2.87 }, - "9" : { "x" : -36.10, "y" : -15.24 }, - "10" : { "x" : -30.66, "y" : 15.55 }, - "11" : { "x" : -32.13, "y" : -3.29 } - }, - { - "index" : 11, - "ball" : { "x" : -47.00, "y" : 9.00 }, - "1" : { "x" : -52.65, "y" : 3.93 }, - "2" : { "x" : -52.65, "y" : 1.11 }, - "3" : { "x" : -52.55, "y" : 2.72 }, - "4" : { "x" : -52.72, "y" : -3.91 }, - "5" : { "x" : -52.55, "y" : 5.09 }, - "6" : { "x" : -52.65, "y" : -0.66 }, - "7" : { "x" : -51.44, "y" : -2.87 }, - "8" : { "x" : -52.75, "y" : 6.25 }, - "9" : { "x" : -30.66, "y" : -15.55 }, - "10" : { "x" : -36.10, "y" : 15.24 }, - "11" : { "x" : -32.13, "y" : 3.29 } - }, - { - "index" : 12, - "ball" : { "x" : -35.00, "y" : -9.00 }, - "1" : { "x" : -50.00, "y" : -3.02 }, - "2" : { "x" : -45.64, "y" : -4.17 }, - "3" : { "x" : -45.25, "y" : 0.23 }, - "4" : { "x" : -45.78, "y" : -7.75 }, - "5" : { "x" : -45.25, "y" : 5.29 }, - "6" : { "x" : -43.44, "y" : -2.95 }, - "7" : { "x" : -45.74, "y" : -6.20 }, - "8" : { "x" : -41.43, "y" : 1.89 }, - "9" : { "x" : -27.84, "y" : -17.20 }, - "10" : { "x" : -20.78, "y" : 14.99 }, - "11" : { "x" : -25.29, "y" : -3.66 } - }, - { - "index" : 13, - "ball" : { "x" : -35.00, "y" : 9.00 }, - "1" : { "x" : -50.00, "y" : 3.02 }, - "2" : { "x" : -45.25, "y" : -0.23 }, - "3" : { "x" : -45.64, "y" : 4.17 }, - "4" : { "x" : -45.25, "y" : -5.29 }, - "5" : { "x" : -45.78, "y" : 7.75 }, - "6" : { "x" : -43.44, "y" : 2.95 }, - "7" : { "x" : -41.43, "y" : -1.89 }, - "8" : { "x" : -45.74, "y" : 6.20 }, - "9" : { "x" : -20.78, "y" : -14.99 }, - "10" : { "x" : -27.84, "y" : 17.20 }, - "11" : { "x" : -25.29, "y" : 3.66 } - }, - { - "index" : 14, - "ball" : { "x" : -44.00, "y" : -21.00 }, - "1" : { "x" : -51.00, "y" : -6.00 }, - "2" : { "x" : -45.86, "y" : -4.39 }, - "3" : { "x" : -45.71, "y" : 1.02 }, - "4" : { "x" : -45.97, "y" : -7.15 }, - "5" : { "x" : -45.40, "y" : 5.78 }, - "6" : { "x" : -44.08, "y" : -6.92 }, - "7" : { "x" : -44.72, "y" : -8.96 }, - "8" : { "x" : -41.36, "y" : -0.49 }, - "9" : { "x" : -39.09, "y" : -10.43 }, - "10" : { "x" : -18.77, "y" : 16.91 }, - "11" : { "x" : -23.22, "y" : -6.10 } - }, - { - "index" : 15, - "ball" : { "x" : -44.00, "y" : 21.00 }, - "1" : { "x" : -51.00, "y" : 6.00 }, - "2" : { "x" : -45.71, "y" : -1.02 }, - "3" : { "x" : -45.86, "y" : 4.39 }, - "4" : { "x" : -45.40, "y" : -5.78 }, - "5" : { "x" : -45.97, "y" : 7.15 }, - "6" : { "x" : -44.08, "y" : 6.92 }, - "7" : { "x" : -41.36, "y" : 0.49 }, - "8" : { "x" : -44.72, "y" : 8.96 }, - "9" : { "x" : -18.77, "y" : -16.91 }, - "10" : { "x" : -39.09, "y" : 10.43 }, - "11" : { "x" : -23.22, "y" : 6.10 } - }, - { - "index" : 16, - "ball" : { "x" : -54.50, "y" : -21.00 }, - "1" : { "x" : -51.72, "y" : 0.00 }, - "2" : { "x" : -48.79, "y" : -7.15 }, - "3" : { "x" : -47.86, "y" : -0.17 }, - "4" : { "x" : -49.73, "y" : -13.20 }, - "5" : { "x" : -48.37, "y" : 6.05 }, - "6" : { "x" : -44.53, "y" : -8.00 }, - "7" : { "x" : -41.72, "y" : -14.39 }, - "8" : { "x" : -38.40, "y" : 0.34 }, - "9" : { "x" : -30.87, "y" : -24.94 }, - "10" : { "x" : -22.65, "y" : 21.03 }, - "11" : { "x" : -22.45, "y" : -2.96 } - }, - { - "index" : 17, - "ball" : { "x" : -54.50, "y" : 21.00 }, - "1" : { "x" : -51.72, "y" : 0.00 }, - "2" : { "x" : -47.86, "y" : 0.17 }, - "3" : { "x" : -48.79, "y" : 7.15 }, - "4" : { "x" : -48.37, "y" : -6.05 }, - "5" : { "x" : -49.73, "y" : 13.20 }, - "6" : { "x" : -44.53, "y" : 8.00 }, - "7" : { "x" : -38.40, "y" : -0.34 }, - "8" : { "x" : -41.72, "y" : 14.39 }, - "9" : { "x" : -22.65, "y" : -21.03 }, - "10" : { "x" : -30.87, "y" : 24.94 }, - "11" : { "x" : -22.45, "y" : 2.96 } - }, - { - "index" : 18, - "ball" : { "x" : -42.00, "y" : 0.00 }, - "1" : { "x" : -52.78, "y" : -1.21 }, - "2" : { "x" : -51.87, "y" : -1.06 }, - "3" : { "x" : -51.87, "y" : 1.06 }, - "4" : { "x" : -51.53, "y" : -3.25 }, - "5" : { "x" : -51.91, "y" : 3.48 }, - "6" : { "x" : -52.32, "y" : 1.44 }, - "7" : { "x" : -51.19, "y" : -5.22 }, - "8" : { "x" : -51.19, "y" : 5.22 }, - "9" : { "x" : -29.12, "y" : -16.35 }, - "10" : { "x" : -29.12, "y" : 16.35 }, - "11" : { "x" : -27.20, "y" : 0.06 } - }, - { - "index" : 19, - "ball" : { "x" : -42.50, "y" : -9.00 }, - "1" : { "x" : -52.51, "y" : -1.65 }, - "2" : { "x" : -52.62, "y" : -3.52 }, - "3" : { "x" : -52.11, "y" : 1.08 }, - "4" : { "x" : -52.79, "y" : -4.94 }, - "5" : { "x" : -52.06, "y" : 3.41 }, - "6" : { "x" : -51.32, "y" : 0.57 }, - "7" : { "x" : -52.85, "y" : -6.47 }, - "8" : { "x" : -50.07, "y" : 5.28 }, - "9" : { "x" : -33.14, "y" : -15.92 }, - "10" : { "x" : -26.91, "y" : 15.37 }, - "11" : { "x" : -29.52, "y" : -3.47 } - }, - { - "index" : 20, - "ball" : { "x" : -42.50, "y" : 9.00 }, - "1" : { "x" : -52.51, "y" : 1.65 }, - "2" : { "x" : -52.11, "y" : -1.08 }, - "3" : { "x" : -52.62, "y" : 3.52 }, - "4" : { "x" : -52.06, "y" : -3.41 }, - "5" : { "x" : -52.79, "y" : 4.94 }, - "6" : { "x" : -51.32, "y" : -0.57 }, - "7" : { "x" : -50.07, "y" : -5.28 }, - "8" : { "x" : -52.85, "y" : 6.47 }, - "9" : { "x" : -26.91, "y" : -15.37 }, - "10" : { "x" : -33.14, "y" : 15.92 }, - "11" : { "x" : -29.52, "y" : 3.47 } - } - ] -} diff --git a/src/formations-taker/indirect-freekick-our-formation.conf b/src/formations-taker/indirect-freekick-our-formation.conf deleted file mode 100644 index 40592d4e..00000000 --- a/src/formations-taker/indirect-freekick-our-formation.conf +++ /dev/null @@ -1,460 +0,0 @@ -{ - "version" : "", - "method" : "DelaunayTriangulation", - "role" : [ - { - "number" : 1, - "name" : "Goalie", - "type" : "G", - "side" : "C", - "pair" : 0 - }, - { - "number" : 2, - "name" : "CenterBack", - "type" : "DF", - "side" : "L", - "pair" : 3 - }, - { - "number" : 3, - "name" : "CenterBack", - "type" : "DF", - "side" : "R", - "pair" : 2 - }, - { - "number" : 4, - "name" : "SideBack", - "type" : "DF", - "side" : "L", - "pair" : 5 - }, - { - "number" : 5, - "name" : "SideBack", - "type" : "DF", - "side" : "R", - "pair" : 4 - }, - { - "number" : 6, - "name" : "DefensiveHalf", - "type" : "MF", - "side" : "C", - "pair" : 0 - }, - { - "number" : 7, - "name" : "OffensiveHalf", - "type" : "MF", - "side" : "L", - "pair" : 8 - }, - { - "number" : 8, - "name" : "OffensiveHalf", - "type" : "MF", - "side" : "R", - "pair" : 7 - }, - { - "number" : 9, - "name" : "SideForward", - "type" : "FW", - "side" : "L", - "pair" : 10 - }, - { - "number" : 10, - "name" : "SideForward", - "type" : "FW", - "side" : "R", - "pair" : 9 - }, - { - "number" : 11, - "name" : "CenterForward", - "type" : "FW", - "side" : "C", - "pair" : 0 - } - ], - "data" : [ - { - "index" : 0, - "ball" : { "x" : 0.00, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -15.22, "y" : -4.84 }, - "3" : { "x" : -15.33, "y" : 3.66 }, - "4" : { "x" : -9.29, "y" : -15.12 }, - "5" : { "x" : -10.84, "y" : 13.69 }, - "6" : { "x" : -0.71, "y" : -0.36 }, - "7" : { "x" : 0.00, "y" : -6.97 }, - "8" : { "x" : 0.48, "y" : 6.73 }, - "9" : { "x" : 13.69, "y" : -20.13 }, - "10" : { "x" : 10.73, "y" : 24.00 }, - "11" : { "x" : 16.08, "y" : 0.00 } - }, - { - "index" : 1, - "ball" : { "x" : -54.50, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -46.15, "y" : -1.92 }, - "3" : { "x" : -46.03, "y" : 2.88 }, - "4" : { "x" : -45.07, "y" : -7.57 }, - "5" : { "x" : -45.55, "y" : 7.93 }, - "6" : { "x" : -39.78, "y" : 0.00 }, - "7" : { "x" : -36.30, "y" : -15.98 }, - "8" : { "x" : -37.02, "y" : 11.78 }, - "9" : { "x" : -22.00, "y" : -28.00 }, - "10" : { "x" : -19.29, "y" : 26.44 }, - "11" : { "x" : -16.47, "y" : -0.84 } - }, - { - "index" : 2, - "ball" : { "x" : 35.00, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.00, "y" : -7.38 }, - "3" : { "x" : 0.00, "y" : 7.38 }, - "4" : { "x" : 4.00, "y" : -17.70 }, - "5" : { "x" : 4.00, "y" : 17.70 }, - "6" : { "x" : 34.06, "y" : 0.17 }, - "7" : { "x" : 35.08, "y" : -7.07 }, - "8" : { "x" : 35.08, "y" : 7.07 }, - "9" : { "x" : 41.43, "y" : -5.14 }, - "10" : { "x" : 41.43, "y" : 5.14 }, - "11" : { "x" : 41.02, "y" : 0.04 } - }, - { - "index" : 3, - "ball" : { "x" : 35.00, "y" : -9.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 1.68, "y" : -7.93 }, - "3" : { "x" : 4.93, "y" : 6.85 }, - "4" : { "x" : 5.00, "y" : -20.00 }, - "5" : { "x" : 12.26, "y" : 16.47 }, - "6" : { "x" : 32.19, "y" : -2.72 }, - "7" : { "x" : 34.49, "y" : -9.03 }, - "8" : { "x" : 35.00, "y" : 5.71 }, - "9" : { "x" : 41.47, "y" : -6.31 }, - "10" : { "x" : 43.25, "y" : 3.86 }, - "11" : { "x" : 42.76, "y" : -1.78 } - }, - { - "index" : 4, - "ball" : { "x" : 35.00, "y" : 9.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : 4.93, "y" : -6.85 }, - "3" : { "x" : 1.68, "y" : 7.93 }, - "4" : { "x" : 12.26, "y" : -16.47 }, - "5" : { "x" : 5.00, "y" : 20.00 }, - "6" : { "x" : 32.19, "y" : 2.72 }, - "7" : { "x" : 35.00, "y" : -5.71 }, - "8" : { "x" : 34.49, "y" : 9.03 }, - "9" : { "x" : 43.25, "y" : -3.86 }, - "10" : { "x" : 41.47, "y" : 6.31 }, - "11" : { "x" : 42.76, "y" : 1.78 } - }, - { - "index" : 5, - "ball" : { "x" : 54.50, "y" : -36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -0.89, "y" : -12.98 }, - "3" : { "x" : 6.36, "y" : 2.29 }, - "4" : { "x" : 8.30, "y" : -27.30 }, - "5" : { "x" : 18.32, "y" : 10.56 }, - "6" : { "x" : 20.16, "y" : -10.85 }, - "7" : { "x" : 38.11, "y" : -27.75 }, - "8" : { "x" : 38.30, "y" : -4.20 }, - "9" : { "x" : 47.63, "y" : -30.13 }, - "10" : { "x" : 47.28, "y" : -2.38 }, - "11" : { "x" : 48.47, "y" : -19.77 } - }, - { - "index" : 6, - "ball" : { "x" : 54.50, "y" : 36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 6.36, "y" : -2.29 }, - "3" : { "x" : -0.89, "y" : 12.98 }, - "4" : { "x" : 18.32, "y" : -10.56 }, - "5" : { "x" : 8.30, "y" : 27.30 }, - "6" : { "x" : 20.16, "y" : 10.85 }, - "7" : { "x" : 38.30, "y" : 4.20 }, - "8" : { "x" : 38.11, "y" : 27.75 }, - "9" : { "x" : 47.28, "y" : 2.38 }, - "10" : { "x" : 47.63, "y" : 30.13 }, - "11" : { "x" : 48.47, "y" : 19.77 } - }, - { - "index" : 7, - "ball" : { "x" : -54.50, "y" : -36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -46.83, "y" : -11.96 }, - "3" : { "x" : -46.51, "y" : -4.65 }, - "4" : { "x" : -50.73, "y" : -32.15 }, - "5" : { "x" : -45.56, "y" : 4.77 }, - "6" : { "x" : -41.99, "y" : -15.01 }, - "7" : { "x" : -35.76, "y" : -22.52 }, - "8" : { "x" : -23.79, "y" : 0.76 }, - "9" : { "x" : -22.39, "y" : -31.81 }, - "10" : { "x" : -12.98, "y" : 19.47 }, - "11" : { "x" : -16.92, "y" : -13.11 } - }, - { - "index" : 8, - "ball" : { "x" : -54.50, "y" : 36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -46.51, "y" : 4.65 }, - "3" : { "x" : -46.83, "y" : 11.96 }, - "4" : { "x" : -45.56, "y" : -4.77 }, - "5" : { "x" : -50.73, "y" : 32.15 }, - "6" : { "x" : -41.99, "y" : 15.01 }, - "7" : { "x" : -23.79, "y" : -0.76 }, - "8" : { "x" : -35.76, "y" : 22.52 }, - "9" : { "x" : -12.98, "y" : -19.47 }, - "10" : { "x" : -22.39, "y" : 31.81 }, - "11" : { "x" : -16.92, "y" : 13.11 } - }, - { - "index" : 9, - "ball" : { "x" : 35.00, "y" : -21.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 2.57, "y" : -11.68 }, - "3" : { "x" : 0.00, "y" : 2.08 }, - "4" : { "x" : 4.57, "y" : -22.24 }, - "5" : { "x" : 9.42, "y" : 13.35 }, - "6" : { "x" : 28.78, "y" : -11.75 }, - "7" : { "x" : 34.23, "y" : -20.86 }, - "8" : { "x" : 35.08, "y" : -1.70 }, - "9" : { "x" : 39.00, "y" : -16.86 }, - "10" : { "x" : 40.36, "y" : 5.79 }, - "11" : { "x" : 39.85, "y" : -10.22 } - }, - { - "index" : 10, - "ball" : { "x" : 35.00, "y" : 21.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.00, "y" : -2.08 }, - "3" : { "x" : 2.57, "y" : 11.68 }, - "4" : { "x" : 9.42, "y" : -13.35 }, - "5" : { "x" : 4.57, "y" : 22.24 }, - "6" : { "x" : 28.78, "y" : 11.75 }, - "7" : { "x" : 35.08, "y" : 1.70 }, - "8" : { "x" : 34.23, "y" : 20.86 }, - "9" : { "x" : 40.36, "y" : -5.79 }, - "10" : { "x" : 39.00, "y" : 16.86 }, - "11" : { "x" : 39.85, "y" : 10.22 } - }, - { - "index" : 11, - "ball" : { "x" : 54.50, "y" : -21.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.65, "y" : -10.71 }, - "3" : { "x" : 4.82, "y" : 4.56 }, - "4" : { "x" : 10.43, "y" : -23.74 }, - "5" : { "x" : 16.19, "y" : 14.12 }, - "6" : { "x" : 35.85, "y" : -10.13 }, - "7" : { "x" : 53.65, "y" : -21.12 }, - "8" : { "x" : 38.57, "y" : -0.34 }, - "9" : { "x" : 48.28, "y" : -12.94 }, - "10" : { "x" : 46.41, "y" : 5.79 }, - "11" : { "x" : 46.83, "y" : -5.88 } - }, - { - "index" : 12, - "ball" : { "x" : 54.50, "y" : 21.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 4.82, "y" : -4.56 }, - "3" : { "x" : 0.65, "y" : 10.71 }, - "4" : { "x" : 16.19, "y" : -14.12 }, - "5" : { "x" : 10.43, "y" : 23.74 }, - "6" : { "x" : 35.85, "y" : 10.13 }, - "7" : { "x" : 38.57, "y" : 0.34 }, - "8" : { "x" : 53.65, "y" : 21.12 }, - "9" : { "x" : 46.41, "y" : -5.79 }, - "10" : { "x" : 48.28, "y" : 12.94 }, - "11" : { "x" : 46.83, "y" : 5.88 } - }, - { - "index" : 13, - "ball" : { "x" : 54.50, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 2.74, "y" : -7.64 }, - "3" : { "x" : 2.74, "y" : 7.64 }, - "4" : { "x" : 13.31, "y" : -18.93 }, - "5" : { "x" : 13.31, "y" : 18.93 }, - "6" : { "x" : 36.62, "y" : 0.00 }, - "7" : { "x" : 40.15, "y" : -8.47 }, - "8" : { "x" : 40.15, "y" : 8.47 }, - "9" : { "x" : 50.41, "y" : -6.13 }, - "10" : { "x" : 50.41, "y" : 6.13 }, - "11" : { "x" : 53.00, "y" : 0.09 } - }, - { - "index" : 14, - "ball" : { "x" : 47.00, "y" : -9.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 1.80, "y" : -8.51 }, - "3" : { "x" : 4.12, "y" : 6.57 }, - "4" : { "x" : 9.30, "y" : -20.53 }, - "5" : { "x" : 13.60, "y" : 16.77 }, - "6" : { "x" : 35.08, "y" : -1.19 }, - "7" : { "x" : 46.27, "y" : -8.92 }, - "8" : { "x" : 38.71, "y" : 5.18 }, - "9" : { "x" : 49.22, "y" : -6.09 }, - "10" : { "x" : 48.96, "y" : 2.61 }, - "11" : { "x" : 49.22, "y" : -2.42 } - }, - { - "index" : 15, - "ball" : { "x" : 47.00, "y" : 9.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : 4.12, "y" : -6.57 }, - "3" : { "x" : 1.80, "y" : 8.51 }, - "4" : { "x" : 13.60, "y" : -16.77 }, - "5" : { "x" : 9.30, "y" : 20.53 }, - "6" : { "x" : 35.08, "y" : 1.19 }, - "7" : { "x" : 38.71, "y" : -5.18 }, - "8" : { "x" : 46.27, "y" : 8.92 }, - "9" : { "x" : 48.96, "y" : -2.61 }, - "10" : { "x" : 49.22, "y" : 6.09 }, - "11" : { "x" : 49.22, "y" : 2.42 } - }, - { - "index" : 16, - "ball" : { "x" : 54.50, "y" : -9.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 1.82, "y" : -8.98 }, - "3" : { "x" : 3.65, "y" : 6.29 }, - "4" : { "x" : 12.05, "y" : -21.04 }, - "5" : { "x" : 14.57, "y" : 16.82 }, - "6" : { "x" : 36.28, "y" : -4.44 }, - "7" : { "x" : 53.90, "y" : -9.37 }, - "8" : { "x" : 39.46, "y" : 4.61 }, - "9" : { "x" : 50.58, "y" : -5.96 }, - "10" : { "x" : 47.13, "y" : 6.32 }, - "11" : { "x" : 46.66, "y" : -0.51 } - }, - { - "index" : 17, - "ball" : { "x" : 54.50, "y" : 9.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 3.65, "y" : -6.29 }, - "3" : { "x" : 1.82, "y" : 8.98 }, - "4" : { "x" : 14.57, "y" : -16.82 }, - "5" : { "x" : 12.05, "y" : 21.04 }, - "6" : { "x" : 36.28, "y" : 4.44 }, - "7" : { "x" : 39.46, "y" : -4.61 }, - "8" : { "x" : 53.90, "y" : 9.37 }, - "9" : { "x" : 47.13, "y" : -6.32 }, - "10" : { "x" : 50.58, "y" : 5.96 }, - "11" : { "x" : 46.66, "y" : 0.51 } - }, - { - "index" : 18, - "ball" : { "x" : 47.00, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 2.61, "y" : -7.53 }, - "3" : { "x" : 2.61, "y" : 7.53 }, - "4" : { "x" : 10.66, "y" : -18.55 }, - "5" : { "x" : 10.66, "y" : 18.55 }, - "6" : { "x" : 33.31, "y" : 0.00 }, - "7" : { "x" : 41.13, "y" : -6.10 }, - "8" : { "x" : 41.13, "y" : 6.10 }, - "9" : { "x" : 48.96, "y" : -4.35 }, - "10" : { "x" : 48.96, "y" : 4.35 }, - "11" : { "x" : 46.32, "y" : -0.09 } - }, - { - "index" : 19, - "ball" : { "x" : 45.00, "y" : -3.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 2.04, "y" : -7.87 }, - "3" : { "x" : 2.87, "y" : 7.17 }, - "4" : { "x" : 9.46, "y" : -19.17 }, - "5" : { "x" : 11.01, "y" : 17.82 }, - "6" : { "x" : 32.43, "y" : -0.37 }, - "7" : { "x" : 44.50, "y" : -3.33 }, - "8" : { "x" : 37.42, "y" : 7.26 }, - "9" : { "x" : 49.33, "y" : -5.44 }, - "10" : { "x" : 49.22, "y" : 3.70 }, - "11" : { "x" : 49.52, "y" : -1.55 } - }, - { - "index" : 20, - "ball" : { "x" : 45.00, "y" : 3.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : 2.87, "y" : -7.17 }, - "3" : { "x" : 2.04, "y" : 7.87 }, - "4" : { "x" : 11.01, "y" : -17.82 }, - "5" : { "x" : 9.46, "y" : 19.17 }, - "6" : { "x" : 32.43, "y" : 0.37 }, - "7" : { "x" : 37.42, "y" : -7.26 }, - "8" : { "x" : 44.50, "y" : 3.33 }, - "9" : { "x" : 49.22, "y" : -3.70 }, - "10" : { "x" : 49.33, "y" : 5.44 }, - "11" : { "x" : 49.52, "y" : 1.55 } - }, - { - "index" : 21, - "ball" : { "x" : 40.00, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 1.21, "y" : -7.45 }, - "3" : { "x" : 1.21, "y" : 7.45 }, - "4" : { "x" : 7.08, "y" : -18.09 }, - "5" : { "x" : 7.08, "y" : 18.09 }, - "6" : { "x" : 31.79, "y" : -2.34 }, - "7" : { "x" : 39.13, "y" : -0.08 }, - "8" : { "x" : 37.84, "y" : 3.63 }, - "9" : { "x" : 45.44, "y" : -3.33 }, - "10" : { "x" : 45.44, "y" : 3.36 }, - "11" : { "x" : 45.59, "y" : -0.08 } - }, - { - "index" : 22, - "ball" : { "x" : 44.53, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 2.34, "y" : -7.51 }, - "3" : { "x" : 2.34, "y" : 7.51 }, - "4" : { "x" : 9.94, "y" : -18.46 }, - "5" : { "x" : 9.94, "y" : 18.46 }, - "6" : { "x" : 32.41, "y" : -0.00 }, - "7" : { "x" : 38.60, "y" : -4.65 }, - "8" : { "x" : 38.60, "y" : 4.65 }, - "9" : { "x" : 47.48, "y" : -3.97 }, - "10" : { "x" : 47.48, "y" : 3.97 }, - "11" : { "x" : 44.62, "y" : -0.09 } - }, - { - "index" : 23, - "ball" : { "x" : 47.00, "y" : -4.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 2.24, "y" : -7.99 }, - "3" : { "x" : 3.31, "y" : 7.09 }, - "4" : { "x" : 10.12, "y" : -19.48 }, - "5" : { "x" : 12.11, "y" : 17.74 }, - "6" : { "x" : 34.25, "y" : -0.55 }, - "7" : { "x" : 43.66, "y" : -7.46 }, - "8" : { "x" : 39.00, "y" : 6.28 }, - "9" : { "x" : 48.96, "y" : -7.58 }, - "10" : { "x" : 48.77, "y" : 0.53 }, - "11" : { "x" : 46.92, "y" : -3.75 } - }, - { - "index" : 24, - "ball" : { "x" : 47.00, "y" : 4.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : 3.31, "y" : -7.09 }, - "3" : { "x" : 2.24, "y" : 7.99 }, - "4" : { "x" : 12.11, "y" : -17.74 }, - "5" : { "x" : 10.12, "y" : 19.48 }, - "6" : { "x" : 34.25, "y" : 0.55 }, - "7" : { "x" : 39.00, "y" : -6.28 }, - "8" : { "x" : 43.66, "y" : 7.46 }, - "9" : { "x" : 48.77, "y" : -0.53 }, - "10" : { "x" : 48.96, "y" : 7.58 }, - "11" : { "x" : 46.92, "y" : 3.75 } - } - ] -} diff --git a/src/formations-taker/kickin-our-formation.conf b/src/formations-taker/kickin-our-formation.conf deleted file mode 100644 index 956c8a9c..00000000 --- a/src/formations-taker/kickin-our-formation.conf +++ /dev/null @@ -1,400 +0,0 @@ -{ - "version" : "", - "method" : "DelaunayTriangulation", - "role" : [ - { - "number" : 1, - "name" : "Goalie", - "type" : "G", - "side" : "C", - "pair" : 0 - }, - { - "number" : 2, - "name" : "CenterBack", - "type" : "DF", - "side" : "L", - "pair" : 3 - }, - { - "number" : 3, - "name" : "CenterBack", - "type" : "DF", - "side" : "R", - "pair" : 2 - }, - { - "number" : 4, - "name" : "SideBack", - "type" : "DF", - "side" : "L", - "pair" : 5 - }, - { - "number" : 5, - "name" : "SideBack", - "type" : "DF", - "side" : "R", - "pair" : 4 - }, - { - "number" : 6, - "name" : "DefensiveHalf", - "type" : "MF", - "side" : "C", - "pair" : 0 - }, - { - "number" : 7, - "name" : "OffensiveHalf", - "type" : "MF", - "side" : "L", - "pair" : 8 - }, - { - "number" : 8, - "name" : "OffensiveHalf", - "type" : "MF", - "side" : "R", - "pair" : 7 - }, - { - "number" : 9, - "name" : "SideForward", - "type" : "FW", - "side" : "L", - "pair" : 10 - }, - { - "number" : 10, - "name" : "SideForward", - "type" : "FW", - "side" : "R", - "pair" : 9 - }, - { - "number" : 11, - "name" : "CenterForward", - "type" : "FW", - "side" : "C", - "pair" : 0 - } - ], - "data" : [ - { - "index" : 0, - "ball" : { "x" : 54.00, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.00, "y" : -9.00 }, - "3" : { "x" : 0.00, "y" : 9.00 }, - "4" : { "x" : 7.00, "y" : -19.00 }, - "5" : { "x" : 7.00, "y" : 19.00 }, - "6" : { "x" : 21.00, "y" : 0.00 }, - "7" : { "x" : 35.00, "y" : -6.00 }, - "8" : { "x" : 35.00, "y" : 6.00 }, - "9" : { "x" : 46.00, "y" : -9.50 }, - "10" : { "x" : 46.00, "y" : 9.50 }, - "11" : { "x" : 46.00, "y" : 0.00 } - }, - { - "index" : 1, - "ball" : { "x" : -54.00, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : -47.00, "y" : -2.50 }, - "3" : { "x" : -47.00, "y" : 2.50 }, - "4" : { "x" : -47.00, "y" : -7.00 }, - "5" : { "x" : -47.00, "y" : 7.00 }, - "6" : { "x" : -43.00, "y" : 0.00 }, - "7" : { "x" : -35.00, "y" : -13.00 }, - "8" : { "x" : -35.00, "y" : 13.00 }, - "9" : { "x" : -22.00, "y" : -28.00 }, - "10" : { "x" : -22.00, "y" : 28.00 }, - "11" : { "x" : -18.49, "y" : 0.00 } - }, - { - "index" : 2, - "ball" : { "x" : 0.00, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -15.06, "y" : -4.84 }, - "3" : { "x" : -15.18, "y" : 3.68 }, - "4" : { "x" : -12.58, "y" : -14.88 }, - "5" : { "x" : -13.39, "y" : 14.07 }, - "6" : { "x" : -5.61, "y" : 0.00 }, - "7" : { "x" : 0.11, "y" : -11.99 }, - "8" : { "x" : 0.11, "y" : 11.99 }, - "9" : { "x" : 10.37, "y" : -23.99 }, - "10" : { "x" : 10.84, "y" : 23.99 }, - "11" : { "x" : 10.84, "y" : 0.00 } - }, - { - "index" : 3, - "ball" : { "x" : -54.00, "y" : -35.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -47.35, "y" : -11.81 }, - "3" : { "x" : -46.51, "y" : -4.65 }, - "4" : { "x" : -47.81, "y" : -26.33 }, - "5" : { "x" : -45.56, "y" : 4.77 }, - "6" : { "x" : -41.23, "y" : -11.92 }, - "7" : { "x" : -37.38, "y" : -21.36 }, - "8" : { "x" : -27.94, "y" : 1.74 }, - "9" : { "x" : -22.23, "y" : -31.17 }, - "10" : { "x" : -17.01, "y" : 19.99 }, - "11" : { "x" : -17.51, "y" : -11.55 } - }, - { - "index" : 4, - "ball" : { "x" : -54.00, "y" : 35.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : -46.51, "y" : 4.65 }, - "3" : { "x" : -47.35, "y" : 11.81 }, - "4" : { "x" : -45.56, "y" : -4.77 }, - "5" : { "x" : -47.81, "y" : 26.33 }, - "6" : { "x" : -41.23, "y" : 11.92 }, - "7" : { "x" : -27.94, "y" : -1.74 }, - "8" : { "x" : -37.38, "y" : 21.36 }, - "9" : { "x" : -17.01, "y" : -19.99 }, - "10" : { "x" : -22.23, "y" : 31.17 }, - "11" : { "x" : -17.51, "y" : 11.55 } - }, - { - "index" : 5, - "ball" : { "x" : -36.02, "y" : -35.00 }, - "1" : { "x" : -50.00, "y" : -0.01 }, - "2" : { "x" : -39.12, "y" : -16.02 }, - "3" : { "x" : -38.87, "y" : -6.58 }, - "4" : { "x" : -36.39, "y" : -27.94 }, - "5" : { "x" : -36.76, "y" : 3.85 }, - "6" : { "x" : -28.32, "y" : -15.28 }, - "7" : { "x" : -22.23, "y" : -24.59 }, - "8" : { "x" : -20.16, "y" : 0.60 }, - "9" : { "x" : -10.43, "y" : -32.54 }, - "10" : { "x" : -7.44, "y" : 19.44 }, - "11" : { "x" : -7.20, "y" : -14.16 } - }, - { - "index" : 6, - "ball" : { "x" : -36.02, "y" : 35.00 }, - "1" : { "x" : -50.00, "y" : 0.01 }, - "2" : { "x" : -38.87, "y" : 6.58 }, - "3" : { "x" : -39.12, "y" : 16.02 }, - "4" : { "x" : -36.76, "y" : -3.85 }, - "5" : { "x" : -36.39, "y" : 27.94 }, - "6" : { "x" : -28.32, "y" : 15.28 }, - "7" : { "x" : -20.16, "y" : -0.60 }, - "8" : { "x" : -22.23, "y" : 24.59 }, - "9" : { "x" : -7.44, "y" : -19.44 }, - "10" : { "x" : -10.43, "y" : 32.54 }, - "11" : { "x" : -7.20, "y" : 14.16 } - }, - { - "index" : 7, - "ball" : { "x" : -12.00, "y" : -35.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -18.50, "y" : -21.61 }, - "3" : { "x" : -18.50, "y" : -8.94 }, - "4" : { "x" : -12.42, "y" : -34.65 }, - "5" : { "x" : -18.38, "y" : 4.72 }, - "6" : { "x" : -9.07, "y" : -14.90 }, - "7" : { "x" : -0.50, "y" : -22.48 }, - "8" : { "x" : -5.96, "y" : 0.12 }, - "9" : { "x" : 11.67, "y" : -32.29 }, - "10" : { "x" : 10.80, "y" : 14.03 }, - "11" : { "x" : 8.20, "y" : -15.15 } - }, - { - "index" : 8, - "ball" : { "x" : -12.00, "y" : 35.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : -18.50, "y" : 8.94 }, - "3" : { "x" : -18.50, "y" : 21.61 }, - "4" : { "x" : -18.38, "y" : -4.72 }, - "5" : { "x" : -12.42, "y" : 34.65 }, - "6" : { "x" : -9.07, "y" : 14.90 }, - "7" : { "x" : -5.96, "y" : -0.12 }, - "8" : { "x" : -0.50, "y" : 22.48 }, - "9" : { "x" : 10.80, "y" : -14.03 }, - "10" : { "x" : 11.67, "y" : 32.29 }, - "11" : { "x" : 8.20, "y" : 15.15 } - }, - { - "index" : 9, - "ball" : { "x" : 38.13, "y" : -35.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -0.14, "y" : -16.53 }, - "3" : { "x" : 6.25, "y" : -1.80 }, - "4" : { "x" : 7.93, "y" : -28.00 }, - "5" : { "x" : 17.31, "y" : 8.77 }, - "6" : { "x" : 24.88, "y" : -17.67 }, - "7" : { "x" : 36.30, "y" : -31.49 }, - "8" : { "x" : 32.09, "y" : -0.36 }, - "9" : { "x" : 46.75, "y" : -24.64 }, - "10" : { "x" : 44.23, "y" : -0.72 }, - "11" : { "x" : 44.59, "y" : -13.82 } - }, - { - "index" : 10, - "ball" : { "x" : 38.13, "y" : 35.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : 6.25, "y" : 1.80 }, - "3" : { "x" : -0.14, "y" : 16.53 }, - "4" : { "x" : 17.31, "y" : -8.77 }, - "5" : { "x" : 7.93, "y" : 28.00 }, - "6" : { "x" : 24.88, "y" : 17.67 }, - "7" : { "x" : 32.09, "y" : 0.36 }, - "8" : { "x" : 36.30, "y" : 31.49 }, - "9" : { "x" : 44.23, "y" : 0.72 }, - "10" : { "x" : 46.75, "y" : 24.64 }, - "11" : { "x" : 44.59, "y" : 13.82 } - }, - { - "index" : 11, - "ball" : { "x" : 35.00, "y" : -35.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 1.68, "y" : -14.54 }, - "3" : { "x" : 6.49, "y" : -0.12 }, - "4" : { "x" : 6.37, "y" : -27.76 }, - "5" : { "x" : 15.86, "y" : 8.65 }, - "6" : { "x" : 22.73, "y" : -17.39 }, - "7" : { "x" : 33.41, "y" : -32.69 }, - "8" : { "x" : 29.81, "y" : 0.00 }, - "9" : { "x" : 43.03, "y" : -29.81 }, - "10" : { "x" : 41.70, "y" : -1.08 }, - "11" : { "x" : 42.31, "y" : -15.38 } - }, - { - "index" : 12, - "ball" : { "x" : 35.00, "y" : 35.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : 6.49, "y" : 0.12 }, - "3" : { "x" : 1.68, "y" : 14.54 }, - "4" : { "x" : 15.86, "y" : -8.65 }, - "5" : { "x" : 6.37, "y" : 27.76 }, - "6" : { "x" : 22.73, "y" : 17.39 }, - "7" : { "x" : 29.81, "y" : -0.00 }, - "8" : { "x" : 33.41, "y" : 32.69 }, - "9" : { "x" : 41.70, "y" : 1.08 }, - "10" : { "x" : 43.03, "y" : 29.81 }, - "11" : { "x" : 42.31, "y" : 15.38 } - }, - { - "index" : 13, - "ball" : { "x" : 24.88, "y" : -35.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -0.84, "y" : -21.03 }, - "3" : { "x" : 2.88, "y" : -5.53 }, - "4" : { "x" : 20.67, "y" : -32.93 }, - "5" : { "x" : 11.42, "y" : 7.69 }, - "6" : { "x" : 14.54, "y" : -13.46 }, - "7" : { "x" : 26.08, "y" : -19.11 }, - "8" : { "x" : 31.01, "y" : -6.01 }, - "9" : { "x" : 44.23, "y" : -29.93 }, - "10" : { "x" : 39.54, "y" : -1.08 }, - "11" : { "x" : 41.34, "y" : -17.43 } - }, - { - "index" : 14, - "ball" : { "x" : 24.88, "y" : 35.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : 2.88, "y" : 5.53 }, - "3" : { "x" : -0.84, "y" : 21.03 }, - "4" : { "x" : 11.42, "y" : -7.69 }, - "5" : { "x" : 20.67, "y" : 32.93 }, - "6" : { "x" : 14.54, "y" : 13.46 }, - "7" : { "x" : 31.01, "y" : 6.01 }, - "8" : { "x" : 26.08, "y" : 19.11 }, - "9" : { "x" : 39.54, "y" : 1.08 }, - "10" : { "x" : 44.23, "y" : 29.93 }, - "11" : { "x" : 41.34, "y" : 17.43 } - }, - { - "index" : 15, - "ball" : { "x" : 12.98, "y" : -35.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -3.61, "y" : -21.51 }, - "3" : { "x" : -0.12, "y" : -4.33 }, - "4" : { "x" : 9.86, "y" : -31.97 }, - "5" : { "x" : 8.29, "y" : 8.17 }, - "6" : { "x" : 8.51, "y" : -16.20 }, - "7" : { "x" : 20.91, "y" : -20.67 }, - "8" : { "x" : 18.15, "y" : -1.20 }, - "9" : { "x" : 37.02, "y" : -31.25 }, - "10" : { "x" : 31.49, "y" : -1.08 }, - "11" : { "x" : 34.97, "y" : -15.38 } - }, - { - "index" : 16, - "ball" : { "x" : 12.98, "y" : 35.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : -0.12, "y" : 4.33 }, - "3" : { "x" : -3.61, "y" : 21.51 }, - "4" : { "x" : 8.29, "y" : -8.17 }, - "5" : { "x" : 9.86, "y" : 31.97 }, - "6" : { "x" : 8.51, "y" : 16.20 }, - "7" : { "x" : 18.15, "y" : 1.20 }, - "8" : { "x" : 20.91, "y" : 20.67 }, - "9" : { "x" : 31.49, "y" : 1.08 }, - "10" : { "x" : 37.02, "y" : 31.25 }, - "11" : { "x" : 34.97, "y" : 15.38 } - }, - { - "index" : 17, - "ball" : { "x" : 0.00, "y" : -35.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -7.58, "y" : -23.22 }, - "3" : { "x" : -9.06, "y" : -10.97 }, - "4" : { "x" : -1.56, "y" : -32.69 }, - "5" : { "x" : -5.37, "y" : 4.29 }, - "6" : { "x" : 0.00, "y" : -16.95 }, - "7" : { "x" : 7.57, "y" : -22.71 }, - "8" : { "x" : 5.49, "y" : -0.12 }, - "9" : { "x" : 24.47, "y" : -30.18 }, - "10" : { "x" : 23.68, "y" : 3.97 }, - "11" : { "x" : 20.91, "y" : -14.66 } - }, - { - "index" : 18, - "ball" : { "x" : 0.00, "y" : 35.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : -9.06, "y" : 10.97 }, - "3" : { "x" : -7.58, "y" : 23.22 }, - "4" : { "x" : -5.37, "y" : -4.29 }, - "5" : { "x" : -1.56, "y" : 32.69 }, - "6" : { "x" : 0.00, "y" : 16.95 }, - "7" : { "x" : 5.49, "y" : 0.12 }, - "8" : { "x" : 7.57, "y" : 22.71 }, - "9" : { "x" : 23.68, "y" : -3.97 }, - "10" : { "x" : 24.47, "y" : 30.18 }, - "11" : { "x" : 20.91, "y" : 14.66 } - }, - { - "index" : 19, - "ball" : { "x" : 54.00, "y" : -35.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -0.24, "y" : -14.54 }, - "3" : { "x" : 7.21, "y" : -0.48 }, - "4" : { "x" : 8.30, "y" : -27.30 }, - "5" : { "x" : 17.19, "y" : 10.22 }, - "6" : { "x" : 24.76, "y" : -14.66 }, - "7" : { "x" : 39.78, "y" : -28.60 }, - "8" : { "x" : 38.65, "y" : -11.04 }, - "9" : { "x" : 51.54, "y" : -34.65 }, - "10" : { "x" : 46.27, "y" : -8.05 }, - "11" : { "x" : 48.07, "y" : -22.35 } - }, - { - "index" : 20, - "ball" : { "x" : 54.00, "y" : 35.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : 7.21, "y" : 0.48 }, - "3" : { "x" : -0.24, "y" : 14.54 }, - "4" : { "x" : 17.19, "y" : -10.22 }, - "5" : { "x" : 8.30, "y" : 27.30 }, - "6" : { "x" : 24.76, "y" : 14.66 }, - "7" : { "x" : 38.65, "y" : 11.04 }, - "8" : { "x" : 39.78, "y" : 28.60 }, - "9" : { "x" : 46.27, "y" : 8.05 }, - "10" : { "x" : 51.54, "y" : 34.65 }, - "11" : { "x" : 48.07, "y" : 22.35 } - } - ] -} diff --git a/src/formations-taker/normal-formation.conf b/src/formations-taker/normal-formation.conf deleted file mode 100644 index d6096b7a..00000000 --- a/src/formations-taker/normal-formation.conf +++ /dev/null @@ -1,145 +0,0 @@ -{ - "version" : "", - "method" : "DelaunayTriangulation", - "role" : [ - { - "number" : 1, - "name" : "KeepawayTaker", - "type" : "MF", - "side" : "L", - "pair" : -1 - }, - { - "number" : 2, - "name" : "KeepawayTaker", - "type" : "MF", - "side" : "L", - "pair" : -1 - }, - { - "number" : 3, - "name" : "KeepawayTaker", - "type" : "MF", - "side" : "L", - "pair" : -1 - }, - { - "number" : 4, - "name" : "KeepawayTaker", - "type" : "MF", - "side" : "L", - "pair" : -1 - }, - { - "number" : 5, - "name" : "KeepawayTaker", - "type" : "MF", - "side" : "L", - "pair" : -1 - }, - { - "number" : 6, - "name" : "KeepawayTaker", - "type" : "MF", - "side" : "L", - "pair" : -1 - }, - { - "number" : 7, - "name" : "KeepawayTaker", - "type" : "MF", - "side" : "L", - "pair" : -1 - }, - { - "number" : 8, - "name" : "KeepawayTaker", - "type" : "MF", - "side" : "L", - "pair" : -1 - }, - { - "number" : 9, - "name" : "KeepawayTaker", - "type" : "MF", - "side" : "L", - "pair" : -1 - }, - { - "number" : 10, - "name" : "KeepawayTaker", - "type" : "MF", - "side" : "L", - "pair" : -1 - }, - { - "number" : 11, - "name" : "KeepawayTaker", - "type" : "MF", - "side" : "L", - "pair" : -1 - } - ], - "data" : [ - { - "index" : 0, - "ball" : { "x" : -11.00, "y" : -11.00 }, - "1" : { "x" : 0.00, "y" : 4.00 }, - "2" : { "x" : 0.00, "y" : -4.00 }, - "3" : { "x" : -12.00, "y" : 36.00 }, - "4" : { "x" : -15.00, "y" : 36.00 }, - "5" : { "x" : -18.00, "y" : 36.00 }, - "6" : { "x" : -21.00, "y" : 36.00 }, - "7" : { "x" : -24.00, "y" : 36.00 }, - "8" : { "x" : -27.00, "y" : 36.00 }, - "9" : { "x" : -30.00, "y" : 36.00 }, - "10" : { "x" : -33.00, "y" : 36.00 }, - "11" : { "x" : -36.00, "y" : 36.00 } - }, - { - "index" : 1, - "ball" : { "x" : -11.00, "y" : 11.00 }, - "1" : { "x" : 0.00, "y" : 4.00 }, - "2" : { "x" : 0.00, "y" : -4.00 }, - "3" : { "x" : -12.00, "y" : 36.00 }, - "4" : { "x" : -15.00, "y" : 36.00 }, - "5" : { "x" : -18.00, "y" : 36.00 }, - "6" : { "x" : -21.00, "y" : 36.00 }, - "7" : { "x" : -24.00, "y" : 36.00 }, - "8" : { "x" : -27.00, "y" : 36.00 }, - "9" : { "x" : -30.00, "y" : 36.00 }, - "10" : { "x" : -33.00, "y" : 36.00 }, - "11" : { "x" : -36.00, "y" : 36.00 } - }, - { - "index" : 2, - "ball" : { "x" : 11.00, "y" : -11.00 }, - "1" : { "x" : 0.00, "y" : 4.00 }, - "2" : { "x" : 0.00, "y" : -4.00 }, - "3" : { "x" : -12.00, "y" : 36.00 }, - "4" : { "x" : -15.00, "y" : 36.00 }, - "5" : { "x" : -18.00, "y" : 36.00 }, - "6" : { "x" : -21.00, "y" : 36.00 }, - "7" : { "x" : -24.00, "y" : 36.00 }, - "8" : { "x" : -27.00, "y" : 36.00 }, - "9" : { "x" : -30.00, "y" : 36.00 }, - "10" : { "x" : -33.00, "y" : 36.00 }, - "11" : { "x" : -36.00, "y" : 36.00 } - }, - { - "index" : 3, - "ball" : { "x" : 11.00, "y" : 11.00 }, - "1" : { "x" : 0.00, "y" : 4.00 }, - "2" : { "x" : 0.00, "y" : -4.00 }, - "3" : { "x" : -12.00, "y" : 36.00 }, - "4" : { "x" : -15.00, "y" : 36.00 }, - "5" : { "x" : -18.00, "y" : 36.00 }, - "6" : { "x" : -21.00, "y" : 36.00 }, - "7" : { "x" : -24.00, "y" : 36.00 }, - "8" : { "x" : -27.00, "y" : 36.00 }, - "9" : { "x" : -30.00, "y" : 36.00 }, - "10" : { "x" : -33.00, "y" : 36.00 }, - "11" : { "x" : -36.00, "y" : 36.00 } - } - ] -} diff --git a/src/formations-taker/offense-formation.conf b/src/formations-taker/offense-formation.conf deleted file mode 120000 index 82d426ac..00000000 --- a/src/formations-taker/offense-formation.conf +++ /dev/null @@ -1 +0,0 @@ -normal-formation.conf \ No newline at end of file diff --git a/src/formations-taker/setplay-opp-formation.conf b/src/formations-taker/setplay-opp-formation.conf deleted file mode 100644 index 48600932..00000000 --- a/src/formations-taker/setplay-opp-formation.conf +++ /dev/null @@ -1,760 +0,0 @@ -{ - "version" : "", - "method" : "DelaunayTriangulation", - "role" : [ - { - "number" : 1, - "name" : "Goalie", - "type" : "G", - "side" : "C", - "pair" : 0 - }, - { - "number" : 2, - "name" : "CenterBack", - "type" : "DF", - "side" : "L", - "pair" : 3 - }, - { - "number" : 3, - "name" : "CenterBack", - "type" : "DF", - "side" : "R", - "pair" : 2 - }, - { - "number" : 4, - "name" : "SideBack", - "type" : "DF", - "side" : "L", - "pair" : 5 - }, - { - "number" : 5, - "name" : "SideBack", - "type" : "DF", - "side" : "R", - "pair" : 4 - }, - { - "number" : 6, - "name" : "DefensiveHalf", - "type" : "MF", - "side" : "C", - "pair" : 0 - }, - { - "number" : 7, - "name" : "OffensiveHalf", - "type" : "MF", - "side" : "L", - "pair" : 8 - }, - { - "number" : 8, - "name" : "OffensiveHalf", - "type" : "MF", - "side" : "R", - "pair" : 7 - }, - { - "number" : 9, - "name" : "SideForward", - "type" : "FW", - "side" : "L", - "pair" : 10 - }, - { - "number" : 10, - "name" : "SideForward", - "type" : "FW", - "side" : "R", - "pair" : 9 - }, - { - "number" : 11, - "name" : "CenterForward", - "type" : "FW", - "side" : "C", - "pair" : 0 - } - ], - "data" : [ - { - "index" : 0, - "ball" : { "x" : 0.00, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -11.63, "y" : -4.60 }, - "3" : { "x" : -11.90, "y" : 4.06 }, - "4" : { "x" : -10.09, "y" : -16.13 }, - "5" : { "x" : -9.91, "y" : 14.51 }, - "6" : { "x" : -11.18, "y" : -0.36 }, - "7" : { "x" : -6.58, "y" : -8.20 }, - "8" : { "x" : -7.57, "y" : 8.29 }, - "9" : { "x" : -1.26, "y" : -11.99 }, - "10" : { "x" : -1.80, "y" : 12.17 }, - "11" : { "x" : 11.72, "y" : 0.00 } - }, - { - "index" : 1, - "ball" : { "x" : -54.44, "y" : -20.73 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -47.41, "y" : -10.72 }, - "3" : { "x" : -45.24, "y" : -5.14 }, - "4" : { "x" : -50.02, "y" : -17.21 }, - "5" : { "x" : -45.60, "y" : 3.88 }, - "6" : { "x" : -39.73, "y" : -9.80 }, - "7" : { "x" : -40.83, "y" : -15.77 }, - "8" : { "x" : -30.82, "y" : 6.85 }, - "9" : { "x" : -24.78, "y" : -29.47 }, - "10" : { "x" : -14.69, "y" : 21.98 }, - "11" : { "x" : -14.90, "y" : -5.27 } - }, - { - "index" : 2, - "ball" : { "x" : -54.44, "y" : 20.73 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -45.24, "y" : 5.14 }, - "3" : { "x" : -47.41, "y" : 10.72 }, - "4" : { "x" : -45.60, "y" : -3.88 }, - "5" : { "x" : -50.02, "y" : 17.21 }, - "6" : { "x" : -39.73, "y" : 9.80 }, - "7" : { "x" : -30.82, "y" : -6.85 }, - "8" : { "x" : -40.83, "y" : 15.77 }, - "9" : { "x" : -14.69, "y" : -21.98 }, - "10" : { "x" : -24.78, "y" : 29.47 }, - "11" : { "x" : -14.90, "y" : 5.27 } - }, - { - "index" : 3, - "ball" : { "x" : 45.24, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -0.18, "y" : -6.92 }, - "3" : { "x" : -0.18, "y" : 6.92 }, - "4" : { "x" : 6.47, "y" : -17.34 }, - "5" : { "x" : 6.47, "y" : 17.34 }, - "6" : { "x" : 15.50, "y" : -0.00 }, - "7" : { "x" : 31.36, "y" : -6.20 }, - "8" : { "x" : 31.36, "y" : 6.20 }, - "9" : { "x" : 36.39, "y" : -9.79 }, - "10" : { "x" : 36.39, "y" : 9.79 }, - "11" : { "x" : 35.58, "y" : 0.54 } - }, - { - "index" : 4, - "ball" : { "x" : -31.36, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -41.28, "y" : -3.97 }, - "3" : { "x" : -41.19, "y" : 3.97 }, - "4" : { "x" : -40.38, "y" : -8.74 }, - "5" : { "x" : -40.02, "y" : 8.47 }, - "6" : { "x" : -41.46, "y" : -0.27 }, - "7" : { "x" : -34.88, "y" : -9.10 }, - "8" : { "x" : -34.34, "y" : 9.19 }, - "9" : { "x" : -10.86, "y" : -21.61 }, - "10" : { "x" : -10.75, "y" : 21.75 }, - "11" : { "x" : -19.20, "y" : 0.27 } - }, - { - "index" : 5, - "ball" : { "x" : 22.08, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -0.09, "y" : -9.37 }, - "3" : { "x" : 0.18, "y" : 7.75 }, - "4" : { "x" : 0.09, "y" : -19.47 }, - "5" : { "x" : 0.27, "y" : 19.02 }, - "6" : { "x" : 1.35, "y" : 0.00 }, - "7" : { "x" : 10.63, "y" : -6.13 }, - "8" : { "x" : 10.45, "y" : 5.50 }, - "9" : { "x" : 13.16, "y" : -10.72 }, - "10" : { "x" : 13.43, "y" : 11.36 }, - "11" : { "x" : 10.63, "y" : -0.27 } - }, - { - "index" : 6, - "ball" : { "x" : 11.72, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -2.25, "y" : -6.67 }, - "3" : { "x" : -2.61, "y" : 4.60 }, - "4" : { "x" : -1.53, "y" : -14.15 }, - "5" : { "x" : -1.44, "y" : 14.78 }, - "6" : { "x" : -1.44, "y" : -0.18 }, - "7" : { "x" : 1.98, "y" : -8.92 }, - "8" : { "x" : 1.71, "y" : 8.56 }, - "9" : { "x" : 7.84, "y" : -13.16 }, - "10" : { "x" : 8.65, "y" : 12.89 }, - "11" : { "x" : 0.99, "y" : 0.00 } - }, - { - "index" : 7, - "ball" : { "x" : -15.95, "y" : -22.98 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -28.75, "y" : -17.21 }, - "3" : { "x" : -28.57, "y" : -6.02 }, - "4" : { "x" : -28.66, "y" : -24.78 }, - "5" : { "x" : -28.30, "y" : 4.67 }, - "6" : { "x" : -25.34, "y" : -11.68 }, - "7" : { "x" : -25.88, "y" : -20.30 }, - "8" : { "x" : -21.02, "y" : -7.10 }, - "9" : { "x" : 0.09, "y" : -24.26 }, - "10" : { "x" : 2.02, "y" : 15.41 }, - "11" : { "x" : -12.76, "y" : -6.65 } - }, - { - "index" : 8, - "ball" : { "x" : -15.95, "y" : 22.98 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -28.57, "y" : 6.02 }, - "3" : { "x" : -28.75, "y" : 17.21 }, - "4" : { "x" : -28.30, "y" : -4.67 }, - "5" : { "x" : -28.66, "y" : 24.78 }, - "6" : { "x" : -25.34, "y" : 11.68 }, - "7" : { "x" : -21.02, "y" : 7.10 }, - "8" : { "x" : -25.88, "y" : 20.30 }, - "9" : { "x" : 2.02, "y" : -15.41 }, - "10" : { "x" : 0.09, "y" : 24.26 }, - "11" : { "x" : -12.76, "y" : 6.65 } - }, - { - "index" : 9, - "ball" : { "x" : 30.73, "y" : -36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.18, "y" : -11.95 }, - "3" : { "x" : 0.09, "y" : 0.63 }, - "4" : { "x" : 0.45, "y" : -25.43 }, - "5" : { "x" : 3.05, "y" : 8.45 }, - "6" : { "x" : 8.27, "y" : -18.15 }, - "7" : { "x" : 18.60, "y" : -28.03 }, - "8" : { "x" : 22.55, "y" : -14.64 }, - "9" : { "x" : 20.84, "y" : -33.15 }, - "10" : { "x" : 29.56, "y" : -5.66 }, - "11" : { "x" : 23.09, "y" : -22.91 } - }, - { - "index" : 10, - "ball" : { "x" : 30.73, "y" : 36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.09, "y" : -0.63 }, - "3" : { "x" : 0.18, "y" : 11.95 }, - "4" : { "x" : 3.05, "y" : -8.45 }, - "5" : { "x" : 0.45, "y" : 25.43 }, - "6" : { "x" : 8.27, "y" : 18.15 }, - "7" : { "x" : 22.55, "y" : 14.64 }, - "8" : { "x" : 18.60, "y" : 28.03 }, - "9" : { "x" : 29.56, "y" : 5.66 }, - "10" : { "x" : 20.84, "y" : 33.15 }, - "11" : { "x" : 23.09, "y" : 22.91 } - }, - { - "index" : 11, - "ball" : { "x" : -54.50, "y" : -36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -45.64, "y" : -14.73 }, - "3" : { "x" : -45.24, "y" : -5.14 }, - "4" : { "x" : -49.75, "y" : -24.60 }, - "5" : { "x" : -45.60, "y" : 3.88 }, - "6" : { "x" : -39.84, "y" : -15.59 }, - "7" : { "x" : -41.33, "y" : -23.81 }, - "8" : { "x" : -34.88, "y" : -0.09 }, - "9" : { "x" : -34.41, "y" : -31.45 }, - "10" : { "x" : -13.66, "y" : 14.20 }, - "11" : { "x" : -15.54, "y" : -11.23 } - }, - { - "index" : 12, - "ball" : { "x" : -54.50, "y" : 36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -45.24, "y" : 5.14 }, - "3" : { "x" : -45.64, "y" : 14.73 }, - "4" : { "x" : -45.60, "y" : -3.88 }, - "5" : { "x" : -49.75, "y" : 24.60 }, - "6" : { "x" : -39.84, "y" : 15.59 }, - "7" : { "x" : -34.88, "y" : 0.09 }, - "8" : { "x" : -41.33, "y" : 23.81 }, - "9" : { "x" : -13.66, "y" : -14.20 }, - "10" : { "x" : -34.41, "y" : 31.45 }, - "11" : { "x" : -15.54, "y" : 11.23 } - }, - { - "index" : 13, - "ball" : { "x" : -35.51, "y" : -20.10 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -35.85, "y" : -6.47 }, - "3" : { "x" : -35.94, "y" : -0.54 }, - "4" : { "x" : -35.51, "y" : -10.18 }, - "5" : { "x" : -35.85, "y" : 6.83 }, - "6" : { "x" : -31.54, "y" : -9.91 }, - "7" : { "x" : -26.05, "y" : -14.96 }, - "8" : { "x" : -28.84, "y" : -0.72 }, - "9" : { "x" : -21.72, "y" : -27.22 }, - "10" : { "x" : -4.96, "y" : 16.58 }, - "11" : { "x" : -12.35, "y" : -9.19 } - }, - { - "index" : 14, - "ball" : { "x" : -35.51, "y" : 20.10 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -35.94, "y" : 0.54 }, - "3" : { "x" : -35.85, "y" : 6.47 }, - "4" : { "x" : -35.85, "y" : -6.83 }, - "5" : { "x" : -35.51, "y" : 10.18 }, - "6" : { "x" : -31.54, "y" : 9.91 }, - "7" : { "x" : -28.84, "y" : 0.72 }, - "8" : { "x" : -26.05, "y" : 14.96 }, - "9" : { "x" : -4.96, "y" : -16.58 }, - "10" : { "x" : -21.72, "y" : 27.22 }, - "11" : { "x" : -12.35, "y" : 9.19 } - }, - { - "index" : 15, - "ball" : { "x" : 40.11, "y" : -36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -0.63, "y" : -13.93 }, - "3" : { "x" : 0.45, "y" : -1.08 }, - "4" : { "x" : 9.70, "y" : -29.65 }, - "5" : { "x" : 4.94, "y" : 5.48 }, - "6" : { "x" : 11.18, "y" : -14.06 }, - "7" : { "x" : 26.50, "y" : -27.94 }, - "8" : { "x" : 29.92, "y" : -16.62 }, - "9" : { "x" : 31.09, "y" : -34.70 }, - "10" : { "x" : 32.43, "y" : -4.67 }, - "11" : { "x" : 31.98, "y" : -25.52 } - }, - { - "index" : 16, - "ball" : { "x" : 40.11, "y" : 36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.45, "y" : 1.08 }, - "3" : { "x" : -0.63, "y" : 13.93 }, - "4" : { "x" : 4.94, "y" : -5.48 }, - "5" : { "x" : 9.70, "y" : 29.65 }, - "6" : { "x" : 11.18, "y" : 14.06 }, - "7" : { "x" : 29.92, "y" : 16.62 }, - "8" : { "x" : 26.50, "y" : 27.94 }, - "9" : { "x" : 32.43, "y" : 4.67 }, - "10" : { "x" : 31.09, "y" : 34.70 }, - "11" : { "x" : 31.98, "y" : 25.52 } - }, - { - "index" : 17, - "ball" : { "x" : 54.50, "y" : -36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -0.54, "y" : -11.68 }, - "3" : { "x" : 0.09, "y" : 0.09 }, - "4" : { "x" : 12.58, "y" : -26.14 }, - "5" : { "x" : 4.94, "y" : 9.60 }, - "6" : { "x" : 20.39, "y" : -13.39 }, - "7" : { "x" : 35.49, "y" : -27.13 }, - "8" : { "x" : 35.49, "y" : -9.70 }, - "9" : { "x" : 39.53, "y" : -32.88 }, - "10" : { "x" : 46.00, "y" : -11.32 }, - "11" : { "x" : 37.20, "y" : -20.21 } - }, - { - "index" : 18, - "ball" : { "x" : 54.50, "y" : 36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.09, "y" : -0.09 }, - "3" : { "x" : -0.54, "y" : 11.68 }, - "4" : { "x" : 4.94, "y" : -9.60 }, - "5" : { "x" : 12.58, "y" : 26.14 }, - "6" : { "x" : 20.39, "y" : 13.39 }, - "7" : { "x" : 35.49, "y" : 9.70 }, - "8" : { "x" : 35.49, "y" : 27.13 }, - "9" : { "x" : 46.00, "y" : 11.32 }, - "10" : { "x" : 39.53, "y" : 32.88 }, - "11" : { "x" : 37.20, "y" : 20.21 } - }, - { - "index" : 19, - "ball" : { "x" : 19.65, "y" : -36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -1.44, "y" : -23.27 }, - "3" : { "x" : -0.36, "y" : -0.63 }, - "4" : { "x" : -0.45, "y" : -32.99 }, - "5" : { "x" : -0.09, "y" : 10.51 }, - "6" : { "x" : 1.17, "y" : -17.16 }, - "7" : { "x" : 2.34, "y" : -27.67 }, - "8" : { "x" : 8.36, "y" : -11.86 }, - "9" : { "x" : 10.27, "y" : -29.92 }, - "10" : { "x" : 15.18, "y" : -1.26 }, - "11" : { "x" : 12.85, "y" : -22.73 } - }, - { - "index" : 20, - "ball" : { "x" : 19.65, "y" : 36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -0.36, "y" : 0.63 }, - "3" : { "x" : -1.44, "y" : 23.27 }, - "4" : { "x" : -0.09, "y" : -10.51 }, - "5" : { "x" : -0.45, "y" : 32.99 }, - "6" : { "x" : 1.17, "y" : 17.16 }, - "7" : { "x" : 8.36, "y" : 11.86 }, - "8" : { "x" : 2.34, "y" : 27.67 }, - "9" : { "x" : 15.18, "y" : 1.26 }, - "10" : { "x" : 10.27, "y" : 29.92 }, - "11" : { "x" : 12.85, "y" : 22.73 } - }, - { - "index" : 21, - "ball" : { "x" : 0.27, "y" : -36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -18.57, "y" : -23.88 }, - "3" : { "x" : -18.93, "y" : -8.47 }, - "4" : { "x" : -15.68, "y" : -32.72 }, - "5" : { "x" : -15.77, "y" : 4.15 }, - "6" : { "x" : -12.98, "y" : -19.20 }, - "7" : { "x" : -12.08, "y" : -27.58 }, - "8" : { "x" : -6.67, "y" : -7.48 }, - "9" : { "x" : -6.58, "y" : -22.80 }, - "10" : { "x" : 8.56, "y" : 9.37 }, - "11" : { "x" : 0.09, "y" : -18.75 } - }, - { - "index" : 22, - "ball" : { "x" : 0.27, "y" : 36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -18.93, "y" : 8.47 }, - "3" : { "x" : -18.57, "y" : 23.88 }, - "4" : { "x" : -15.77, "y" : -4.15 }, - "5" : { "x" : -15.68, "y" : 32.72 }, - "6" : { "x" : -12.98, "y" : 19.20 }, - "7" : { "x" : -6.67, "y" : 7.48 }, - "8" : { "x" : -12.08, "y" : 27.58 }, - "9" : { "x" : 8.56, "y" : -9.37 }, - "10" : { "x" : -6.58, "y" : 22.80 }, - "11" : { "x" : 0.09, "y" : 18.75 } - }, - { - "index" : 23, - "ball" : { "x" : 5.59, "y" : -11.36 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -8.36, "y" : -12.85 }, - "3" : { "x" : -7.10, "y" : -4.40 }, - "4" : { "x" : -6.92, "y" : -21.11 }, - "5" : { "x" : -5.59, "y" : 6.22 }, - "6" : { "x" : -5.12, "y" : -10.24 }, - "7" : { "x" : -5.57, "y" : -17.61 }, - "8" : { "x" : -1.98, "y" : -1.26 }, - "9" : { "x" : -3.05, "y" : -19.68 }, - "10" : { "x" : 13.16, "y" : 16.76 }, - "11" : { "x" : 6.94, "y" : -1.17 } - }, - { - "index" : 24, - "ball" : { "x" : 5.59, "y" : 11.36 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -7.10, "y" : 4.40 }, - "3" : { "x" : -8.36, "y" : 12.85 }, - "4" : { "x" : -5.59, "y" : -6.22 }, - "5" : { "x" : -6.92, "y" : 21.11 }, - "6" : { "x" : -5.12, "y" : 10.24 }, - "7" : { "x" : -1.98, "y" : 1.26 }, - "8" : { "x" : -5.57, "y" : 17.61 }, - "9" : { "x" : 13.16, "y" : -16.76 }, - "10" : { "x" : -3.05, "y" : 19.68 }, - "11" : { "x" : 6.94, "y" : 1.17 } - }, - { - "index" : 25, - "ball" : { "x" : 5.32, "y" : -20.37 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -9.61, "y" : -19.50 }, - "3" : { "x" : -7.66, "y" : -7.93 }, - "4" : { "x" : -8.45, "y" : -27.04 }, - "5" : { "x" : -7.12, "y" : 5.05 }, - "6" : { "x" : -6.94, "y" : -13.52 }, - "7" : { "x" : -6.65, "y" : -23.36 }, - "8" : { "x" : -0.72, "y" : -4.15 }, - "9" : { "x" : -5.93, "y" : -18.42 }, - "10" : { "x" : 11.43, "y" : 14.05 }, - "11" : { "x" : 5.59, "y" : -8.29 } - }, - { - "index" : 26, - "ball" : { "x" : 5.32, "y" : 20.37 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -7.66, "y" : 7.93 }, - "3" : { "x" : -9.61, "y" : 19.50 }, - "4" : { "x" : -7.12, "y" : -5.05 }, - "5" : { "x" : -8.45, "y" : 27.04 }, - "6" : { "x" : -6.94, "y" : 13.52 }, - "7" : { "x" : -0.72, "y" : 4.15 }, - "8" : { "x" : -6.65, "y" : 23.36 }, - "9" : { "x" : 11.43, "y" : -14.05 }, - "10" : { "x" : -5.93, "y" : 18.42 }, - "11" : { "x" : 5.59, "y" : 8.29 } - }, - { - "index" : 27, - "ball" : { "x" : 6.04, "y" : -27.85 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -6.02, "y" : -21.65 }, - "3" : { "x" : -5.77, "y" : -10.36 }, - "4" : { "x" : -6.65, "y" : -29.47 }, - "5" : { "x" : -4.69, "y" : 1.98 }, - "6" : { "x" : -2.34, "y" : -16.53 }, - "7" : { "x" : -4.04, "y" : -25.43 }, - "8" : { "x" : 0.81, "y" : -3.70 }, - "9" : { "x" : -1.35, "y" : -21.02 }, - "10" : { "x" : 11.65, "y" : 12.19 }, - "11" : { "x" : 8.47, "y" : -14.06 } - }, - { - "index" : 28, - "ball" : { "x" : 6.04, "y" : 27.85 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -5.77, "y" : 10.36 }, - "3" : { "x" : -6.02, "y" : 21.65 }, - "4" : { "x" : -4.69, "y" : -1.98 }, - "5" : { "x" : -6.65, "y" : 29.47 }, - "6" : { "x" : -2.34, "y" : 16.53 }, - "7" : { "x" : 0.81, "y" : 3.70 }, - "8" : { "x" : -4.04, "y" : 25.43 }, - "9" : { "x" : 11.65, "y" : -12.19 }, - "10" : { "x" : -1.35, "y" : 21.02 }, - "11" : { "x" : 8.47, "y" : 14.06 } - }, - { - "index" : 29, - "ball" : { "x" : 43.71, "y" : -26.77 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -0.54, "y" : -11.68 }, - "3" : { "x" : 0.09, "y" : 0.09 }, - "4" : { "x" : 3.15, "y" : -22.59 }, - "5" : { "x" : 4.94, "y" : 9.60 }, - "6" : { "x" : 18.69, "y" : -12.31 }, - "7" : { "x" : 27.58, "y" : -23.72 }, - "8" : { "x" : 32.70, "y" : -10.78 }, - "9" : { "x" : 31.36, "y" : -28.03 }, - "10" : { "x" : 40.79, "y" : -5.75 }, - "11" : { "x" : 31.98, "y" : -19.50 } - }, - { - "index" : 30, - "ball" : { "x" : 43.71, "y" : 26.77 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.09, "y" : -0.09 }, - "3" : { "x" : -0.54, "y" : 11.68 }, - "4" : { "x" : 4.94, "y" : -9.60 }, - "5" : { "x" : 3.15, "y" : 22.59 }, - "6" : { "x" : 18.69, "y" : 12.31 }, - "7" : { "x" : 32.70, "y" : 10.78 }, - "8" : { "x" : 27.58, "y" : 23.72 }, - "9" : { "x" : 40.79, "y" : 5.75 }, - "10" : { "x" : 31.36, "y" : 28.03 }, - "11" : { "x" : 31.98, "y" : 19.50 } - }, - { - "index" : 31, - "ball" : { "x" : 21.90, "y" : -12.80 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.08, "y" : -11.13 }, - "3" : { "x" : 0.03, "y" : 2.01 }, - "4" : { "x" : 0.18, "y" : -23.54 }, - "5" : { "x" : 0.45, "y" : 13.08 }, - "6" : { "x" : 7.55, "y" : -6.20 }, - "7" : { "x" : 7.28, "y" : -16.26 }, - "8" : { "x" : 11.50, "y" : -1.71 }, - "9" : { "x" : 11.86, "y" : -21.47 }, - "10" : { "x" : 21.65, "y" : 15.00 }, - "11" : { "x" : 10.42, "y" : -11.05 } - }, - { - "index" : 32, - "ball" : { "x" : 21.90, "y" : 12.80 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.03, "y" : -2.01 }, - "3" : { "x" : 0.08, "y" : 11.13 }, - "4" : { "x" : 0.45, "y" : -13.08 }, - "5" : { "x" : 0.18, "y" : 23.54 }, - "6" : { "x" : 7.55, "y" : 6.20 }, - "7" : { "x" : 11.50, "y" : 1.71 }, - "8" : { "x" : 7.28, "y" : 16.26 }, - "9" : { "x" : 21.65, "y" : -15.00 }, - "10" : { "x" : 11.86, "y" : 21.47 }, - "11" : { "x" : 10.42, "y" : 11.05 } - }, - { - "index" : 33, - "ball" : { "x" : 21.27, "y" : -21.99 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.18, "y" : -13.61 }, - "3" : { "x" : 0.27, "y" : -3.24 }, - "4" : { "x" : -0.18, "y" : -27.58 }, - "5" : { "x" : 0.54, "y" : 8.56 }, - "6" : { "x" : 9.55, "y" : -10.09 }, - "7" : { "x" : 7.75, "y" : -20.55 }, - "8" : { "x" : 12.71, "y" : -7.39 }, - "9" : { "x" : 9.91, "y" : -25.05 }, - "10" : { "x" : 20.64, "y" : -0.99 }, - "11" : { "x" : 9.64, "y" : -16.49 } - }, - { - "index" : 34, - "ball" : { "x" : 21.27, "y" : 21.99 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.27, "y" : 3.24 }, - "3" : { "x" : 0.18, "y" : 13.61 }, - "4" : { "x" : 0.54, "y" : -8.56 }, - "5" : { "x" : -0.18, "y" : 27.58 }, - "6" : { "x" : 9.55, "y" : 10.09 }, - "7" : { "x" : 12.71, "y" : 7.39 }, - "8" : { "x" : 7.75, "y" : 20.55 }, - "9" : { "x" : 20.64, "y" : 0.99 }, - "10" : { "x" : 9.91, "y" : 25.05 }, - "11" : { "x" : 9.64, "y" : 16.49 } - }, - { - "index" : 35, - "ball" : { "x" : 35.69, "y" : -8.56 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -0.45, "y" : -10.42 }, - "3" : { "x" : 0.63, "y" : 3.50 }, - "4" : { "x" : 3.45, "y" : -20.89 }, - "5" : { "x" : 5.09, "y" : 13.48 }, - "6" : { "x" : 9.25, "y" : -3.23 }, - "7" : { "x" : 22.01, "y" : -14.46 }, - "8" : { "x" : 23.09, "y" : -3.41 }, - "9" : { "x" : 25.79, "y" : -17.88 }, - "10" : { "x" : 26.32, "y" : 3.68 }, - "11" : { "x" : 24.51, "y" : -8.92 } - }, - { - "index" : 36, - "ball" : { "x" : 35.69, "y" : 8.56 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.63, "y" : -3.50 }, - "3" : { "x" : -0.45, "y" : 10.42 }, - "4" : { "x" : 5.09, "y" : -13.48 }, - "5" : { "x" : 3.45, "y" : 20.89 }, - "6" : { "x" : 9.25, "y" : 3.23 }, - "7" : { "x" : 23.09, "y" : 3.41 }, - "8" : { "x" : 22.01, "y" : 14.46 }, - "9" : { "x" : 26.32, "y" : -3.68 }, - "10" : { "x" : 25.79, "y" : 17.88 }, - "11" : { "x" : 24.51, "y" : 8.92 } - }, - { - "index" : 37, - "ball" : { "x" : 31.00, "y" : -28.39 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.18, "y" : -10.36 }, - "3" : { "x" : 2.88, "y" : 0.27 }, - "4" : { "x" : 0.36, "y" : -22.89 }, - "5" : { "x" : 9.88, "y" : 9.61 }, - "6" : { "x" : 10.42, "y" : -9.34 }, - "7" : { "x" : 17.66, "y" : -23.88 }, - "8" : { "x" : 22.64, "y" : -15.18 }, - "9" : { "x" : 18.39, "y" : -28.75 }, - "10" : { "x" : 25.34, "y" : -2.16 }, - "11" : { "x" : 19.56, "y" : -19.47 } - }, - { - "index" : 38, - "ball" : { "x" : 31.00, "y" : 28.39 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 2.88, "y" : -0.27 }, - "3" : { "x" : 0.18, "y" : 10.36 }, - "4" : { "x" : 9.88, "y" : -9.61 }, - "5" : { "x" : 0.36, "y" : 22.89 }, - "6" : { "x" : 10.42, "y" : 9.34 }, - "7" : { "x" : 22.64, "y" : 15.18 }, - "8" : { "x" : 17.66, "y" : 23.88 }, - "9" : { "x" : 25.34, "y" : 2.16 }, - "10" : { "x" : 18.39, "y" : 28.75 }, - "11" : { "x" : 19.56, "y" : 19.47 } - }, - { - "index" : 39, - "ball" : { "x" : -25.96, "y" : -36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -38.99, "y" : -16.71 }, - "3" : { "x" : -37.91, "y" : -6.56 }, - "4" : { "x" : -39.53, "y" : -27.31 }, - "5" : { "x" : -36.57, "y" : 4.94 }, - "6" : { "x" : -32.43, "y" : -17.43 }, - "7" : { "x" : -34.23, "y" : -24.89 }, - "8" : { "x" : -19.65, "y" : -5.68 }, - "9" : { "x" : -25.25, "y" : -22.37 }, - "10" : { "x" : 0.05, "y" : 16.07 }, - "11" : { "x" : -2.05, "y" : -11.45 } - }, - { - "index" : 40, - "ball" : { "x" : -25.96, "y" : 36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -37.91, "y" : 6.56 }, - "3" : { "x" : -38.99, "y" : 16.71 }, - "4" : { "x" : -36.57, "y" : -4.94 }, - "5" : { "x" : -39.53, "y" : 27.31 }, - "6" : { "x" : -32.43, "y" : 17.43 }, - "7" : { "x" : -19.65, "y" : 5.68 }, - "8" : { "x" : -34.23, "y" : 24.89 }, - "9" : { "x" : 0.05, "y" : -16.07 }, - "10" : { "x" : -25.25, "y" : 22.37 }, - "11" : { "x" : -2.05, "y" : 11.45 } - }, - { - "index" : 41, - "ball" : { "x" : -34.70, "y" : -36.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : -45.42, "y" : -16.67 }, - "3" : { "x" : -41.17, "y" : -6.38 }, - "4" : { "x" : -43.38, "y" : -26.20 }, - "5" : { "x" : -42.27, "y" : 5.02 }, - "6" : { "x" : -40.74, "y" : -16.42 }, - "7" : { "x" : -38.70, "y" : -22.37 }, - "8" : { "x" : -26.68, "y" : -5.30 }, - "9" : { "x" : -30.37, "y" : -23.56 }, - "10" : { "x" : -6.21, "y" : 10.04 }, - "11" : { "x" : -15.91, "y" : -13.86 } - }, - { - "index" : 42, - "ball" : { "x" : -34.70, "y" : 36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -41.17, "y" : 6.38 }, - "3" : { "x" : -45.42, "y" : 16.67 }, - "4" : { "x" : -42.27, "y" : -5.02 }, - "5" : { "x" : -43.38, "y" : 26.20 }, - "6" : { "x" : -40.74, "y" : 16.42 }, - "7" : { "x" : -26.68, "y" : 5.30 }, - "8" : { "x" : -38.70, "y" : 22.37 }, - "9" : { "x" : -6.21, "y" : -10.04 }, - "10" : { "x" : -30.37, "y" : 23.56 }, - "11" : { "x" : -15.91, "y" : 13.86 } - }, - { - "index" : 43, - "ball" : { "x" : -16.13, "y" : -36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -30.37, "y" : -20.37 }, - "3" : { "x" : -29.74, "y" : -7.57 }, - "4" : { "x" : -30.19, "y" : -31.27 }, - "5" : { "x" : -25.42, "y" : 2.88 }, - "6" : { "x" : -24.53, "y" : -18.78 }, - "7" : { "x" : -26.86, "y" : -26.50 }, - "8" : { "x" : -14.15, "y" : -4.87 }, - "9" : { "x" : -17.07, "y" : -21.11 }, - "10" : { "x" : 3.10, "y" : 15.08 }, - "11" : { "x" : 0.51, "y" : -11.31 } - }, - { - "index" : 44, - "ball" : { "x" : -16.13, "y" : 36.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -29.74, "y" : 7.57 }, - "3" : { "x" : -30.37, "y" : 20.37 }, - "4" : { "x" : -25.42, "y" : -2.88 }, - "5" : { "x" : -30.19, "y" : 31.27 }, - "6" : { "x" : -24.53, "y" : 18.78 }, - "7" : { "x" : -14.15, "y" : 4.87 }, - "8" : { "x" : -26.86, "y" : 26.50 }, - "9" : { "x" : 3.10, "y" : -15.08 }, - "10" : { "x" : -17.07, "y" : 21.11 }, - "11" : { "x" : 0.51, "y" : 11.31 } - } - ] -} diff --git a/src/formations-taker/setplay-our-formation.conf b/src/formations-taker/setplay-our-formation.conf deleted file mode 100644 index 8ea60e59..00000000 --- a/src/formations-taker/setplay-our-formation.conf +++ /dev/null @@ -1,775 +0,0 @@ -{ - "version" : "", - "method" : "DelaunayTriangulation", - "role" : [ - { - "number" : 1, - "name" : "Goalie", - "type" : "G", - "side" : "C", - "pair" : 0 - }, - { - "number" : 2, - "name" : "CenterBack", - "type" : "DF", - "side" : "L", - "pair" : 3 - }, - { - "number" : 3, - "name" : "CenterBack", - "type" : "DF", - "side" : "R", - "pair" : 2 - }, - { - "number" : 4, - "name" : "SideBack", - "type" : "DF", - "side" : "L", - "pair" : 5 - }, - { - "number" : 5, - "name" : "SideBack", - "type" : "DF", - "side" : "R", - "pair" : 4 - }, - { - "number" : 6, - "name" : "DefensiveHalf", - "type" : "MF", - "side" : "C", - "pair" : 0 - }, - { - "number" : 7, - "name" : "OffensiveHalf", - "type" : "MF", - "side" : "L", - "pair" : 8 - }, - { - "number" : 8, - "name" : "OffensiveHalf", - "type" : "MF", - "side" : "R", - "pair" : 7 - }, - { - "number" : 9, - "name" : "SideForward", - "type" : "FW", - "side" : "L", - "pair" : 10 - }, - { - "number" : 10, - "name" : "SideForward", - "type" : "FW", - "side" : "R", - "pair" : 9 - }, - { - "number" : 11, - "name" : "CenterForward", - "type" : "FW", - "side" : "C", - "pair" : 0 - } - ], - "data" : [ - { - "index" : 0, - "ball" : { "x" : 0.00, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -15.22, "y" : -4.84 }, - "3" : { "x" : -15.33, "y" : 3.66 }, - "4" : { "x" : -9.29, "y" : -15.12 }, - "5" : { "x" : -10.84, "y" : 13.69 }, - "6" : { "x" : -0.71, "y" : -0.36 }, - "7" : { "x" : 0.00, "y" : -6.97 }, - "8" : { "x" : 0.48, "y" : 6.73 }, - "9" : { "x" : 13.69, "y" : -20.13 }, - "10" : { "x" : 10.73, "y" : 24.00 }, - "11" : { "x" : 16.08, "y" : 0.00 } - }, - { - "index" : 1, - "ball" : { "x" : -54.00, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : -46.15, "y" : -1.92 }, - "3" : { "x" : -46.03, "y" : 2.88 }, - "4" : { "x" : -45.07, "y" : -7.57 }, - "5" : { "x" : -45.55, "y" : 7.93 }, - "6" : { "x" : -39.78, "y" : 0.00 }, - "7" : { "x" : -36.30, "y" : -15.98 }, - "8" : { "x" : -37.02, "y" : 11.78 }, - "9" : { "x" : -22.00, "y" : -28.00 }, - "10" : { "x" : -19.29, "y" : 26.44 }, - "11" : { "x" : -16.47, "y" : -0.84 } - }, - { - "index" : 2, - "ball" : { "x" : 36.26, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.00, "y" : -7.38 }, - "3" : { "x" : 0.00, "y" : 7.38 }, - "4" : { "x" : 4.00, "y" : -17.70 }, - "5" : { "x" : 4.00, "y" : 17.70 }, - "6" : { "x" : 15.24, "y" : 0.48 }, - "7" : { "x" : 27.75, "y" : -8.10 }, - "8" : { "x" : 28.10, "y" : 9.76 }, - "9" : { "x" : 35.96, "y" : -16.20 }, - "10" : { "x" : 36.56, "y" : 16.91 }, - "11" : { "x" : 35.61, "y" : 0.00 } - }, - { - "index" : 3, - "ball" : { "x" : -41.78, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -42.99, "y" : -0.71 }, - "3" : { "x" : -42.91, "y" : 4.21 }, - "4" : { "x" : -42.31, "y" : -7.69 }, - "5" : { "x" : -42.91, "y" : 9.01 }, - "6" : { "x" : -36.66, "y" : 0.36 }, - "7" : { "x" : -33.41, "y" : -10.82 }, - "8" : { "x" : -31.61, "y" : 10.94 }, - "9" : { "x" : -15.48, "y" : -29.41 }, - "10" : { "x" : -17.51, "y" : 27.15 }, - "11" : { "x" : -18.27, "y" : -0.36 } - }, - { - "index" : 4, - "ball" : { "x" : -26.95, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -30.96, "y" : -1.91 }, - "3" : { "x" : -30.25, "y" : 7.74 }, - "4" : { "x" : -29.90, "y" : -11.32 }, - "5" : { "x" : -28.25, "y" : 16.41 }, - "6" : { "x" : -15.27, "y" : -7.63 }, - "7" : { "x" : -17.43, "y" : -23.41 }, - "8" : { "x" : -15.52, "y" : 9.16 }, - "9" : { "x" : -4.76, "y" : -27.75 }, - "10" : { "x" : -5.34, "y" : 26.47 }, - "11" : { "x" : -0.51, "y" : 0.51 } - }, - { - "index" : 5, - "ball" : { "x" : -17.50, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -23.22, "y" : -1.67 }, - "3" : { "x" : -23.20, "y" : 3.73 }, - "4" : { "x" : -22.84, "y" : -8.89 }, - "5" : { "x" : -22.96, "y" : 12.26 }, - "6" : { "x" : -16.10, "y" : 1.20 }, - "7" : { "x" : -11.90, "y" : -4.69 }, - "8" : { "x" : -10.94, "y" : 6.37 }, - "9" : { "x" : 1.20, "y" : -15.38 }, - "10" : { "x" : 0.12, "y" : 18.51 }, - "11" : { "x" : 2.40, "y" : 0.00 } - }, - { - "index" : 6, - "ball" : { "x" : 7.67, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -5.90, "y" : -5.31 }, - "3" : { "x" : -6.02, "y" : 5.19 }, - "4" : { "x" : -3.07, "y" : -16.04 }, - "5" : { "x" : -2.95, "y" : 16.39 }, - "6" : { "x" : 6.25, "y" : -0.36 }, - "7" : { "x" : 11.66, "y" : -5.77 }, - "8" : { "x" : 11.78, "y" : 6.13 }, - "9" : { "x" : 21.76, "y" : -22.52 }, - "10" : { "x" : 22.78, "y" : 23.54 }, - "11" : { "x" : 17.43, "y" : 0.00 } - }, - { - "index" : 7, - "ball" : { "x" : 49.50, "y" : -20.51 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : 3.00, "y" : -8.85 }, - "3" : { "x" : 0.00, "y" : 5.00 }, - "4" : { "x" : 5.00, "y" : -20.00 }, - "5" : { "x" : 12.00, "y" : 15.50 }, - "6" : { "x" : 21.04, "y" : -6.95 }, - "7" : { "x" : 32.80, "y" : -18.96 }, - "8" : { "x" : 35.10, "y" : 0.46 }, - "9" : { "x" : 45.46, "y" : -24.17 }, - "10" : { "x" : 44.84, "y" : 10.61 }, - "11" : { "x" : 45.68, "y" : -10.85 } - }, - { - "index" : 8, - "ball" : { "x" : 49.50, "y" : 20.51 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.00, "y" : -5.00 }, - "3" : { "x" : 3.00, "y" : 8.85 }, - "4" : { "x" : 12.00, "y" : -15.50 }, - "5" : { "x" : 5.00, "y" : 20.00 }, - "6" : { "x" : 21.04, "y" : 6.95 }, - "7" : { "x" : 35.10, "y" : -0.46 }, - "8" : { "x" : 32.80, "y" : 18.96 }, - "9" : { "x" : 44.84, "y" : -10.61 }, - "10" : { "x" : 45.46, "y" : 24.17 }, - "11" : { "x" : 45.68, "y" : 10.85 } - }, - { - "index" : 9, - "ball" : { "x" : -54.00, "y" : -10.00 }, - "1" : { "x" : -50.57, "y" : -6.44 }, - "2" : { "x" : -48.18, "y" : -5.96 }, - "3" : { "x" : -48.06, "y" : -1.07 }, - "4" : { "x" : -49.50, "y" : -9.06 }, - "5" : { "x" : -47.94, "y" : 4.06 }, - "6" : { "x" : -44.37, "y" : -2.62 }, - "7" : { "x" : -43.73, "y" : -9.47 }, - "8" : { "x" : -31.39, "y" : 8.23 }, - "9" : { "x" : -24.81, "y" : -29.58 }, - "10" : { "x" : -18.82, "y" : 25.56 }, - "11" : { "x" : -20.87, "y" : -8.59 } - }, - { - "index" : 10, - "ball" : { "x" : -54.00, "y" : 10.00 }, - "1" : { "x" : -50.57, "y" : 6.44 }, - "2" : { "x" : -48.06, "y" : 1.07 }, - "3" : { "x" : -48.18, "y" : 5.96 }, - "4" : { "x" : -47.94, "y" : -4.06 }, - "5" : { "x" : -49.50, "y" : 9.06 }, - "6" : { "x" : -44.37, "y" : 2.62 }, - "7" : { "x" : -31.39, "y" : -8.23 }, - "8" : { "x" : -43.73, "y" : 9.47 }, - "9" : { "x" : -18.82, "y" : -25.56 }, - "10" : { "x" : -24.81, "y" : 29.58 }, - "11" : { "x" : -20.87, "y" : 8.59 } - }, - { - "index" : 11, - "ball" : { "x" : -6.00, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -9.67, "y" : -0.25 }, - "3" : { "x" : -14.00, "y" : 4.58 }, - "4" : { "x" : -13.23, "y" : -12.34 }, - "5" : { "x" : -8.91, "y" : 12.34 }, - "6" : { "x" : -5.09, "y" : -9.92 }, - "7" : { "x" : -0.51, "y" : -21.38 }, - "8" : { "x" : 1.65, "y" : 11.71 }, - "9" : { "x" : 10.26, "y" : -24.00 }, - "10" : { "x" : 10.73, "y" : 24.00 }, - "11" : { "x" : 4.84, "y" : 0.00 } - }, - { - "index" : 12, - "ball" : { "x" : -12.00, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -19.35, "y" : -3.12 }, - "3" : { "x" : -19.11, "y" : 3.00 }, - "4" : { "x" : -17.91, "y" : -11.18 }, - "5" : { "x" : -17.55, "y" : 11.06 }, - "6" : { "x" : -13.22, "y" : 0.12 }, - "7" : { "x" : -6.97, "y" : -6.85 }, - "8" : { "x" : -7.57, "y" : 5.29 }, - "9" : { "x" : 1.92, "y" : -21.51 }, - "10" : { "x" : 0.84, "y" : 22.23 }, - "11" : { "x" : 5.65, "y" : 0.36 } - }, - { - "index" : 13, - "ball" : { "x" : 35.78, "y" : -9.54 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 1.68, "y" : -7.93 }, - "3" : { "x" : 4.93, "y" : 6.85 }, - "4" : { "x" : 5.00, "y" : -20.00 }, - "5" : { "x" : 12.26, "y" : 16.47 }, - "6" : { "x" : 16.55, "y" : -2.26 }, - "7" : { "x" : 21.79, "y" : -15.36 }, - "8" : { "x" : 26.44, "y" : 1.07 }, - "9" : { "x" : 35.73, "y" : -17.03 }, - "10" : { "x" : 35.13, "y" : 8.57 }, - "11" : { "x" : 33.94, "y" : -8.57 } - }, - { - "index" : 14, - "ball" : { "x" : 35.78, "y" : 9.54 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : 4.93, "y" : -7.33 }, - "3" : { "x" : 2.16, "y" : 8.65 }, - "4" : { "x" : 12.00, "y" : -15.50 }, - "5" : { "x" : 5.00, "y" : 20.00 }, - "6" : { "x" : 16.55, "y" : 2.26 }, - "7" : { "x" : 26.44, "y" : -1.07 }, - "8" : { "x" : 21.79, "y" : 15.36 }, - "9" : { "x" : 35.13, "y" : -8.57 }, - "10" : { "x" : 35.73, "y" : 17.03 }, - "11" : { "x" : 33.94, "y" : 8.57 } - }, - { - "index" : 15, - "ball" : { "x" : 54.00, "y" : -35.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -0.89, "y" : -12.98 }, - "3" : { "x" : 6.36, "y" : 2.29 }, - "4" : { "x" : 8.30, "y" : -27.30 }, - "5" : { "x" : 18.32, "y" : 10.56 }, - "6" : { "x" : 20.16, "y" : -10.85 }, - "7" : { "x" : 38.11, "y" : -27.75 }, - "8" : { "x" : 38.30, "y" : -4.20 }, - "9" : { "x" : 47.63, "y" : -30.13 }, - "10" : { "x" : 47.28, "y" : -2.38 }, - "11" : { "x" : 48.47, "y" : -19.77 } - }, - { - "index" : 16, - "ball" : { "x" : 54.00, "y" : 35.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : 6.36, "y" : -2.29 }, - "3" : { "x" : -0.89, "y" : 12.98 }, - "4" : { "x" : 18.32, "y" : -10.56 }, - "5" : { "x" : 8.30, "y" : 27.30 }, - "6" : { "x" : 20.16, "y" : 10.85 }, - "7" : { "x" : 38.30, "y" : 4.20 }, - "8" : { "x" : 38.11, "y" : 27.75 }, - "9" : { "x" : 47.28, "y" : 2.38 }, - "10" : { "x" : 47.63, "y" : 30.13 }, - "11" : { "x" : 48.47, "y" : 19.77 } - }, - { - "index" : 17, - "ball" : { "x" : -12.00, "y" : -35.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -17.51, "y" : -22.27 }, - "3" : { "x" : -18.01, "y" : -8.59 }, - "4" : { "x" : -13.46, "y" : -32.39 }, - "5" : { "x" : -18.72, "y" : 4.06 }, - "6" : { "x" : -7.50, "y" : -15.36 }, - "7" : { "x" : -8.65, "y" : -28.96 }, - "8" : { "x" : -5.96, "y" : 0.12 }, - "9" : { "x" : 4.17, "y" : -31.84 }, - "10" : { "x" : 0.95, "y" : 18.25 }, - "11" : { "x" : 5.48, "y" : -7.15 } - }, - { - "index" : 18, - "ball" : { "x" : -12.00, "y" : 35.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : -18.01, "y" : 8.59 }, - "3" : { "x" : -17.51, "y" : 22.27 }, - "4" : { "x" : -18.72, "y" : -4.06 }, - "5" : { "x" : -13.46, "y" : 32.39 }, - "6" : { "x" : -7.50, "y" : 15.36 }, - "7" : { "x" : -5.96, "y" : -0.12 }, - "8" : { "x" : -7.57, "y" : 30.17 }, - "9" : { "x" : 0.95, "y" : -18.25 }, - "10" : { "x" : 4.17, "y" : 31.84 }, - "11" : { "x" : 5.48, "y" : 7.15 } - }, - { - "index" : 19, - "ball" : { "x" : -36.02, "y" : -35.00 }, - "1" : { "x" : -50.00, "y" : -0.01 }, - "2" : { "x" : -37.79, "y" : -14.51 }, - "3" : { "x" : -38.05, "y" : -7.25 }, - "4" : { "x" : -36.32, "y" : -30.49 }, - "5" : { "x" : -37.92, "y" : 1.27 }, - "6" : { "x" : -30.54, "y" : -19.34 }, - "7" : { "x" : -26.08, "y" : -24.69 }, - "8" : { "x" : -20.16, "y" : 0.60 }, - "9" : { "x" : -12.72, "y" : -32.32 }, - "10" : { "x" : -7.44, "y" : 19.44 }, - "11" : { "x" : -7.62, "y" : -11.95 } - }, - { - "index" : 20, - "ball" : { "x" : -36.02, "y" : 35.00 }, - "1" : { "x" : -50.00, "y" : 0.01 }, - "2" : { "x" : -38.05, "y" : 7.25 }, - "3" : { "x" : -37.79, "y" : 14.51 }, - "4" : { "x" : -37.92, "y" : -1.27 }, - "5" : { "x" : -36.32, "y" : 30.49 }, - "6" : { "x" : -30.54, "y" : 19.34 }, - "7" : { "x" : -20.16, "y" : -0.60 }, - "8" : { "x" : -26.08, "y" : 24.69 }, - "9" : { "x" : -7.44, "y" : -19.44 }, - "10" : { "x" : -12.72, "y" : 32.32 }, - "11" : { "x" : -7.62, "y" : 11.95 } - }, - { - "index" : 21, - "ball" : { "x" : -54.00, "y" : -35.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -46.83, "y" : -11.96 }, - "3" : { "x" : -46.51, "y" : -4.65 }, - "4" : { "x" : -50.73, "y" : -32.15 }, - "5" : { "x" : -45.56, "y" : 4.77 }, - "6" : { "x" : -41.99, "y" : -15.01 }, - "7" : { "x" : -35.76, "y" : -22.52 }, - "8" : { "x" : -23.79, "y" : 0.76 }, - "9" : { "x" : -22.39, "y" : -31.81 }, - "10" : { "x" : -12.98, "y" : 19.47 }, - "11" : { "x" : -16.92, "y" : -13.11 } - }, - { - "index" : 22, - "ball" : { "x" : -54.00, "y" : 35.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : -46.51, "y" : 4.65 }, - "3" : { "x" : -46.83, "y" : 11.96 }, - "4" : { "x" : -45.56, "y" : -4.77 }, - "5" : { "x" : -50.73, "y" : 32.15 }, - "6" : { "x" : -41.99, "y" : 15.01 }, - "7" : { "x" : -23.79, "y" : -0.76 }, - "8" : { "x" : -35.76, "y" : 22.52 }, - "9" : { "x" : -12.98, "y" : -19.47 }, - "10" : { "x" : -22.39, "y" : 31.81 }, - "11" : { "x" : -16.92, "y" : 13.11 } - }, - { - "index" : 23, - "ball" : { "x" : -17.50, "y" : -11.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -26.59, "y" : -10.18 }, - "3" : { "x" : -26.47, "y" : -3.94 }, - "4" : { "x" : -26.72, "y" : -14.63 }, - "5" : { "x" : -26.21, "y" : 2.54 }, - "6" : { "x" : -19.98, "y" : -11.07 }, - "7" : { "x" : -17.43, "y" : -18.96 }, - "8" : { "x" : -15.27, "y" : -1.40 }, - "9" : { "x" : -4.07, "y" : -30.92 }, - "10" : { "x" : -1.02, "y" : 17.69 }, - "11" : { "x" : -3.82, "y" : -10.69 } - }, - { - "index" : 24, - "ball" : { "x" : -17.50, "y" : 11.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : -26.47, "y" : 3.94 }, - "3" : { "x" : -26.59, "y" : 10.18 }, - "4" : { "x" : -26.21, "y" : -2.54 }, - "5" : { "x" : -26.72, "y" : 14.63 }, - "6" : { "x" : -19.98, "y" : 11.07 }, - "7" : { "x" : -15.27, "y" : 1.40 }, - "8" : { "x" : -17.43, "y" : 18.96 }, - "9" : { "x" : -1.02, "y" : -17.69 }, - "10" : { "x" : -4.07, "y" : 30.92 }, - "11" : { "x" : -3.82, "y" : 10.69 } - }, - { - "index" : 25, - "ball" : { "x" : 36.08, "y" : -20.60 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 2.57, "y" : -11.68 }, - "3" : { "x" : 0.00, "y" : 2.08 }, - "4" : { "x" : 4.57, "y" : -22.24 }, - "5" : { "x" : 9.42, "y" : 13.34 }, - "6" : { "x" : 17.57, "y" : -12.21 }, - "7" : { "x" : 32.96, "y" : -16.03 }, - "8" : { "x" : 28.91, "y" : -1.62 }, - "9" : { "x" : 38.94, "y" : -20.74 }, - "10" : { "x" : 39.06, "y" : 2.16 }, - "11" : { "x" : 37.92, "y" : -10.18 } - }, - { - "index" : 26, - "ball" : { "x" : 36.08, "y" : 20.60 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : 0.00, "y" : -2.08 }, - "3" : { "x" : 2.57, "y" : 11.68 }, - "4" : { "x" : 9.42, "y" : -13.34 }, - "5" : { "x" : 4.57, "y" : 22.24 }, - "6" : { "x" : 17.57, "y" : 12.21 }, - "7" : { "x" : 28.91, "y" : 1.62 }, - "8" : { "x" : 32.96, "y" : 16.03 }, - "9" : { "x" : 39.06, "y" : -2.16 }, - "10" : { "x" : 38.94, "y" : 20.74 }, - "11" : { "x" : 37.92, "y" : 10.18 } - }, - { - "index" : 27, - "ball" : { "x" : -26.95, "y" : -11.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -30.25, "y" : -11.07 }, - "3" : { "x" : -29.69, "y" : -2.28 }, - "4" : { "x" : -29.81, "y" : -18.03 }, - "5" : { "x" : -26.92, "y" : 7.69 }, - "6" : { "x" : -21.75, "y" : -7.69 }, - "7" : { "x" : -18.87, "y" : -29.81 }, - "8" : { "x" : -12.50, "y" : 5.05 }, - "9" : { "x" : -4.64, "y" : -30.01 }, - "10" : { "x" : -3.73, "y" : 23.56 }, - "11" : { "x" : -6.61, "y" : -10.94 } - }, - { - "index" : 28, - "ball" : { "x" : -26.95, "y" : 11.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : -29.69, "y" : 2.28 }, - "3" : { "x" : -30.25, "y" : 11.07 }, - "4" : { "x" : -26.92, "y" : -7.69 }, - "5" : { "x" : -29.81, "y" : 18.03 }, - "6" : { "x" : -21.75, "y" : 7.69 }, - "7" : { "x" : -12.50, "y" : -5.05 }, - "8" : { "x" : -18.87, "y" : 29.81 }, - "9" : { "x" : -3.73, "y" : -23.56 }, - "10" : { "x" : -4.64, "y" : 30.01 }, - "11" : { "x" : -6.61, "y" : 10.94 } - }, - { - "index" : 29, - "ball" : { "x" : -48.97, "y" : -17.73 }, - "1" : { "x" : -50.00, "y" : -7.00 }, - "2" : { "x" : -47.24, "y" : -6.80 }, - "3" : { "x" : -46.76, "y" : -0.19 }, - "4" : { "x" : -46.68, "y" : -16.79 }, - "5" : { "x" : -46.57, "y" : 4.31 }, - "6" : { "x" : -40.62, "y" : -8.41 }, - "7" : { "x" : -37.14, "y" : -28.12 }, - "8" : { "x" : -35.33, "y" : 4.21 }, - "9" : { "x" : -18.70, "y" : -31.91 }, - "10" : { "x" : -20.48, "y" : 23.10 }, - "11" : { "x" : -17.62, "y" : -9.17 } - }, - { - "index" : 30, - "ball" : { "x" : -48.97, "y" : 17.73 }, - "1" : { "x" : -50.00, "y" : 7.00 }, - "2" : { "x" : -46.76, "y" : 0.19 }, - "3" : { "x" : -47.24, "y" : 6.80 }, - "4" : { "x" : -46.57, "y" : -4.31 }, - "5" : { "x" : -46.68, "y" : 16.79 }, - "6" : { "x" : -40.62, "y" : 8.41 }, - "7" : { "x" : -35.33, "y" : -4.21 }, - "8" : { "x" : -37.14, "y" : 28.12 }, - "9" : { "x" : -20.48, "y" : -23.10 }, - "10" : { "x" : -18.70, "y" : 31.91 }, - "11" : { "x" : -17.62, "y" : 9.17 } - }, - { - "index" : 31, - "ball" : { "x" : -26.95, "y" : -31.61 }, - "1" : { "x" : -50.00, "y" : -0.02 }, - "2" : { "x" : -30.65, "y" : -16.82 }, - "3" : { "x" : -30.77, "y" : -6.44 }, - "4" : { "x" : -30.06, "y" : -29.10 }, - "5" : { "x" : -30.29, "y" : 3.70 }, - "6" : { "x" : -21.03, "y" : -15.74 }, - "7" : { "x" : -24.04, "y" : -26.08 }, - "8" : { "x" : -15.24, "y" : -1.07 }, - "9" : { "x" : -4.96, "y" : -32.07 }, - "10" : { "x" : -7.86, "y" : 21.08 }, - "11" : { "x" : -0.24, "y" : -11.31 } - }, - { - "index" : 32, - "ball" : { "x" : -26.95, "y" : 31.61 }, - "1" : { "x" : -50.00, "y" : 0.02 }, - "2" : { "x" : -30.77, "y" : 6.44 }, - "3" : { "x" : -30.65, "y" : 16.82 }, - "4" : { "x" : -30.29, "y" : -3.70 }, - "5" : { "x" : -30.06, "y" : 29.10 }, - "6" : { "x" : -21.03, "y" : 15.74 }, - "7" : { "x" : -15.24, "y" : 1.07 }, - "8" : { "x" : -24.04, "y" : 26.08 }, - "9" : { "x" : -7.86, "y" : -21.08 }, - "10" : { "x" : -4.96, "y" : 32.07 }, - "11" : { "x" : -0.24, "y" : 11.31 } - }, - { - "index" : 33, - "ball" : { "x" : 15.14, "y" : 0.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 0.13, "y" : -4.07 }, - "3" : { "x" : 0.25, "y" : 4.45 }, - "4" : { "x" : 0.00, "y" : -16.13 }, - "5" : { "x" : 0.00, "y" : 16.13 }, - "6" : { "x" : 13.34, "y" : 0.24 }, - "7" : { "x" : 17.07, "y" : -7.45 }, - "8" : { "x" : 18.15, "y" : 6.85 }, - "9" : { "x" : 22.63, "y" : -28.94 }, - "10" : { "x" : 24.41, "y" : 28.34 }, - "11" : { "x" : 22.59, "y" : 0.12 } - }, - { - "index" : 34, - "ball" : { "x" : 23.26, "y" : -21.95 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : 2.00, "y" : -15.44 }, - "3" : { "x" : 4.45, "y" : -1.20 }, - "4" : { "x" : 4.00, "y" : -25.21 }, - "5" : { "x" : 7.81, "y" : 9.98 }, - "6" : { "x" : 13.81, "y" : -12.62 }, - "7" : { "x" : 20.31, "y" : -21.63 }, - "8" : { "x" : 20.24, "y" : 1.31 }, - "9" : { "x" : 28.58, "y" : -31.08 }, - "10" : { "x" : 27.63, "y" : 19.29 }, - "11" : { "x" : 28.22, "y" : -12.15 } - }, - { - "index" : 35, - "ball" : { "x" : 23.26, "y" : 21.95 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : 4.45, "y" : 1.20 }, - "3" : { "x" : 2.00, "y" : 15.44 }, - "4" : { "x" : 7.81, "y" : -9.98 }, - "5" : { "x" : 4.00, "y" : 25.21 }, - "6" : { "x" : 13.81, "y" : 12.62 }, - "7" : { "x" : 20.24, "y" : -1.31 }, - "8" : { "x" : 20.31, "y" : 21.63 }, - "9" : { "x" : 27.63, "y" : -19.29 }, - "10" : { "x" : 28.58, "y" : 31.08 }, - "11" : { "x" : 28.22, "y" : 12.15 } - }, - { - "index" : 36, - "ball" : { "x" : 0.00, "y" : -11.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -10.84, "y" : -11.19 }, - "3" : { "x" : -10.46, "y" : -3.85 }, - "4" : { "x" : -9.65, "y" : -21.67 }, - "5" : { "x" : -9.54, "y" : 9.16 }, - "6" : { "x" : -1.32, "y" : -11.18 }, - "7" : { "x" : 1.44, "y" : -16.35 }, - "8" : { "x" : 2.16, "y" : 0.96 }, - "9" : { "x" : 14.12, "y" : -27.99 }, - "10" : { "x" : 14.51, "y" : 16.92 }, - "11" : { "x" : 12.72, "y" : -8.91 } - }, - { - "index" : 37, - "ball" : { "x" : 0.00, "y" : 11.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : -10.46, "y" : 3.85 }, - "3" : { "x" : -10.84, "y" : 11.19 }, - "4" : { "x" : -9.54, "y" : -9.16 }, - "5" : { "x" : -9.65, "y" : 21.67 }, - "6" : { "x" : -1.32, "y" : 11.18 }, - "7" : { "x" : 2.16, "y" : -0.96 }, - "8" : { "x" : 1.44, "y" : 16.35 }, - "9" : { "x" : 14.51, "y" : -16.92 }, - "10" : { "x" : 14.12, "y" : 27.99 }, - "11" : { "x" : 12.72, "y" : 8.91 } - }, - { - "index" : 38, - "ball" : { "x" : 0.00, "y" : -35.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -7.81, "y" : -20.31 }, - "3" : { "x" : -8.65, "y" : -10.46 }, - "4" : { "x" : -2.16, "y" : -33.05 }, - "5" : { "x" : -5.37, "y" : 4.29 }, - "6" : { "x" : -0.48, "y" : -16.47 }, - "7" : { "x" : 2.88, "y" : -28.72 }, - "8" : { "x" : 5.49, "y" : -0.12 }, - "9" : { "x" : 15.14, "y" : -32.93 }, - "10" : { "x" : 14.89, "y" : 18.34 }, - "11" : { "x" : 14.89, "y" : -12.50 } - }, - { - "index" : 39, - "ball" : { "x" : 0.00, "y" : 35.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : -8.65, "y" : 10.46 }, - "3" : { "x" : -7.81, "y" : 20.31 }, - "4" : { "x" : -5.37, "y" : -4.29 }, - "5" : { "x" : -2.16, "y" : 33.05 }, - "6" : { "x" : -0.48, "y" : 16.47 }, - "7" : { "x" : 5.49, "y" : 0.12 }, - "8" : { "x" : 2.88, "y" : 28.72 }, - "9" : { "x" : 14.89, "y" : -18.34 }, - "10" : { "x" : 15.14, "y" : 32.93 }, - "11" : { "x" : 14.89, "y" : 12.50 } - }, - { - "index" : 40, - "ball" : { "x" : 22.74, "y" : -30.01 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -0.96, "y" : -16.59 }, - "3" : { "x" : 1.68, "y" : -2.28 }, - "4" : { "x" : 1.85, "y" : -27.71 }, - "5" : { "x" : 4.21, "y" : 8.37 }, - "6" : { "x" : 12.38, "y" : -17.15 }, - "7" : { "x" : 21.03, "y" : -29.57 }, - "8" : { "x" : 18.62, "y" : 0.38 }, - "9" : { "x" : 26.08, "y" : -24.88 }, - "10" : { "x" : 27.00, "y" : 16.09 }, - "11" : { "x" : 27.75, "y" : -9.17 } - }, - { - "index" : 41, - "ball" : { "x" : 22.74, "y" : 30.01 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : 1.68, "y" : 2.28 }, - "3" : { "x" : -0.96, "y" : 16.59 }, - "4" : { "x" : 4.21, "y" : -8.37 }, - "5" : { "x" : 1.85, "y" : 27.71 }, - "6" : { "x" : 12.38, "y" : 17.15 }, - "7" : { "x" : 18.62, "y" : -0.38 }, - "8" : { "x" : 21.03, "y" : 29.57 }, - "9" : { "x" : 27.00, "y" : -16.09 }, - "10" : { "x" : 26.08, "y" : 24.88 }, - "11" : { "x" : 27.75, "y" : 9.17 } - }, - { - "index" : 42, - "ball" : { "x" : -12.00, "y" : -19.00 }, - "1" : { "x" : -50.00, "y" : 0.00 }, - "2" : { "x" : -14.06, "y" : -18.51 }, - "3" : { "x" : -18.10, "y" : -7.15 }, - "4" : { "x" : -16.95, "y" : -24.28 }, - "5" : { "x" : -17.43, "y" : 3.61 }, - "6" : { "x" : -8.29, "y" : -12.74 }, - "7" : { "x" : -5.89, "y" : -20.67 }, - "8" : { "x" : -1.53, "y" : 3.94 }, - "9" : { "x" : 3.45, "y" : -30.49 }, - "10" : { "x" : 3.33, "y" : 25.13 }, - "11" : { "x" : 2.38, "y" : -8.10 } - }, - { - "index" : 43, - "ball" : { "x" : -12.00, "y" : 19.00 }, - "1" : { "x" : -50.00, "y" : -0.00 }, - "2" : { "x" : -18.10, "y" : 7.15 }, - "3" : { "x" : -14.06, "y" : 18.51 }, - "4" : { "x" : -17.43, "y" : -3.61 }, - "5" : { "x" : -16.95, "y" : 24.28 }, - "6" : { "x" : -8.29, "y" : 12.74 }, - "7" : { "x" : -1.53, "y" : -3.94 }, - "8" : { "x" : -5.89, "y" : 20.67 }, - "9" : { "x" : 3.33, "y" : -25.13 }, - "10" : { "x" : 3.45, "y" : 30.49 }, - "11" : { "x" : 2.38, "y" : 8.10 } - }, - { - "index" : 44, - "ball" : { "x" : -42.10, "y" : -28.03 }, - "1" : { "x" : -50.00, "y" : -0.04 }, - "2" : { "x" : -42.16, "y" : -14.65 }, - "3" : { "x" : -41.86, "y" : -6.87 }, - "4" : { "x" : -42.99, "y" : -26.08 }, - "5" : { "x" : -40.72, "y" : 1.53 }, - "6" : { "x" : -35.21, "y" : -15.50 }, - "7" : { "x" : -37.26, "y" : -22.84 }, - "8" : { "x" : -22.03, "y" : 1.19 }, - "9" : { "x" : -18.99, "y" : -32.33 }, - "10" : { "x" : -12.76, "y" : 21.71 }, - "11" : { "x" : -10.36, "y" : -13.93 } - }, - { - "index" : 45, - "ball" : { "x" : -42.10, "y" : 28.03 }, - "1" : { "x" : -50.00, "y" : 0.04 }, - "2" : { "x" : -41.86, "y" : 6.87 }, - "3" : { "x" : -42.16, "y" : 14.65 }, - "4" : { "x" : -40.72, "y" : -1.53 }, - "5" : { "x" : -42.99, "y" : 26.08 }, - "6" : { "x" : -35.21, "y" : 15.50 }, - "7" : { "x" : -22.03, "y" : -1.19 }, - "8" : { "x" : -37.26, "y" : 22.84 }, - "9" : { "x" : -12.76, "y" : -21.71 }, - "10" : { "x" : -18.99, "y" : 32.33 }, - "11" : { "x" : -10.36, "y" : 13.93 } - } - ] -} diff --git a/src/formations-dt/defense-formation.conf b/src/formations/433/defense-formation.conf similarity index 100% rename from src/formations-dt/defense-formation.conf rename to src/formations/433/defense-formation.conf diff --git a/src/formations-dt/offense-formation.conf b/src/formations/433/offense-formation.conf similarity index 100% rename from src/formations-dt/offense-formation.conf rename to src/formations/433/offense-formation.conf diff --git a/src/formations/442/defense-formation.conf b/src/formations/442/defense-formation.conf new file mode 100644 index 00000000..a1a55134 --- /dev/null +++ b/src/formations/442/defense-formation.conf @@ -0,0 +1,1360 @@ +{ + "version" : "20230604-164435", + "method" : "DelaunayTriangulation", + "role" : [ + { + "number" : 1, + "name" : "Goalie", + "type" : "G", + "side" : "C", + "pair" : 0 + }, + { + "number" : 2, + "name" : "Sweeper", + "type" : "DF", + "side" : "C", + "pair" : 0 + }, + { + "number" : 3, + "name" : "CenterBack", + "type" : "DF", + "side" : "C", + "pair" : 0 + }, + { + "number" : 4, + "name" : "SideBack", + "type" : "DF", + "side" : "L", + "pair" : 5 + }, + { + "number" : 5, + "name" : "SideBack", + "type" : "DF", + "side" : "R", + "pair" : 4 + }, + { + "number" : 6, + "name" : "CenterForward", + "type" : "FW", + "side" : "L", + "pair" : 11 + }, + { + "number" : 7, + "name" : "DefensiveHalf", + "type" : "MF", + "side" : "L", + "pair" : 8 + }, + { + "number" : 8, + "name" : "DefensiveHalf", + "type" : "MF", + "side" : "R", + "pair" : 7 + }, + { + "number" : 9, + "name" : "SideHalf", + "type" : "FW", + "side" : "L", + "pair" : 10 + }, + { + "number" : 10, + "name" : "SideHalf", + "type" : "FW", + "side" : "R", + "pair" : 9 + }, + { + "number" : 11, + "name" : "CenterForward", + "type" : "FW", + "side" : "R", + "pair" : 6 + } + ], + "data" : [ + { + "index" : 0, + "ball" : { "x" : 0.00, "y" : 0.00 }, + "1" : { "x" : -36.09, "y" : 0.16 }, + "2" : { "x" : -9.73, "y" : -0.16 }, + "3" : { "x" : -13.39, "y" : -0.04 }, + "4" : { "x" : -12.74, "y" : -14.86 }, + "5" : { "x" : -13.56, "y" : 14.04 }, + "6" : { "x" : 2.34, "y" : -5.59 }, + "7" : { "x" : -3.55, "y" : -12.71 }, + "8" : { "x" : -3.55, "y" : 12.71 }, + "9" : { "x" : 0.08, "y" : -23.12 }, + "10" : { "x" : 0.08, "y" : 23.12 }, + "11" : { "x" : 2.34, "y" : 5.59 } + }, + { + "index" : 1, + "ball" : { "x" : -26.95, "y" : -31.61 }, + "1" : { "x" : -45.28, "y" : -7.05 }, + "2" : { "x" : -32.49, "y" : -6.63 }, + "3" : { "x" : -29.28, "y" : -15.69 }, + "4" : { "x" : -28.21, "y" : -30.37 }, + "5" : { "x" : -30.39, "y" : 2.86 }, + "6" : { "x" : -4.45, "y" : -10.35 }, + "7" : { "x" : -19.92, "y" : -17.59 }, + "8" : { "x" : -21.69, "y" : 14.53 }, + "9" : { "x" : -14.13, "y" : -29.86 }, + "10" : { "x" : -15.71, "y" : 19.93 }, + "11" : { "x" : -3.83, "y" : 6.45 } + }, + { + "index" : 2, + "ball" : { "x" : -26.95, "y" : 31.61 }, + "1" : { "x" : -45.28, "y" : 7.05 }, + "2" : { "x" : -32.49, "y" : 6.63 }, + "3" : { "x" : -29.28, "y" : 15.69 }, + "4" : { "x" : -30.39, "y" : -2.86 }, + "5" : { "x" : -28.21, "y" : 30.37 }, + "6" : { "x" : -3.83, "y" : -6.45 }, + "7" : { "x" : -21.69, "y" : -14.53 }, + "8" : { "x" : -19.92, "y" : 17.59 }, + "9" : { "x" : -15.71, "y" : -19.93 }, + "10" : { "x" : -14.13, "y" : 29.86 }, + "11" : { "x" : -4.45, "y" : 10.35 } + }, + { + "index" : 3, + "ball" : { "x" : -41.78, "y" : 0.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -47.17, "y" : -0.11 }, + "3" : { "x" : -45.02, "y" : -0.04 }, + "4" : { "x" : -45.16, "y" : -9.63 }, + "5" : { "x" : -45.16, "y" : 9.63 }, + "6" : { "x" : -14.30, "y" : -7.93 }, + "7" : { "x" : -36.78, "y" : -9.99 }, + "8" : { "x" : -36.78, "y" : 9.99 }, + "9" : { "x" : -29.76, "y" : -19.88 }, + "10" : { "x" : -29.76, "y" : 19.88 }, + "11" : { "x" : -14.30, "y" : 7.93 } + }, + { + "index" : 4, + "ball" : { "x" : -36.02, "y" : -35.00 }, + "1" : { "x" : -48.20, "y" : -9.03 }, + "2" : { "x" : -38.64, "y" : -7.63 }, + "3" : { "x" : -36.49, "y" : -15.08 }, + "4" : { "x" : -35.74, "y" : -28.63 }, + "5" : { "x" : -36.34, "y" : 1.89 }, + "6" : { "x" : -13.36, "y" : -14.18 }, + "7" : { "x" : -26.36, "y" : -19.36 }, + "8" : { "x" : -26.20, "y" : 11.87 }, + "9" : { "x" : -23.27, "y" : -29.69 }, + "10" : { "x" : -17.42, "y" : 18.00 }, + "11" : { "x" : -10.06, "y" : -1.33 } + }, + { + "index" : 5, + "ball" : { "x" : -36.02, "y" : 35.00 }, + "1" : { "x" : -48.20, "y" : 9.03 }, + "2" : { "x" : -38.64, "y" : 7.63 }, + "3" : { "x" : -36.49, "y" : 15.08 }, + "4" : { "x" : -36.34, "y" : -1.89 }, + "5" : { "x" : -35.74, "y" : 28.63 }, + "6" : { "x" : -10.06, "y" : 1.33 }, + "7" : { "x" : -26.20, "y" : -11.87 }, + "8" : { "x" : -26.36, "y" : 19.36 }, + "9" : { "x" : -17.42, "y" : -18.00 }, + "10" : { "x" : -23.27, "y" : 29.69 }, + "11" : { "x" : -13.36, "y" : 14.18 } + }, + { + "index" : 6, + "ball" : { "x" : -36.04, "y" : -9.96 }, + "1" : { "x" : -48.39, "y" : -5.45 }, + "2" : { "x" : -43.12, "y" : -0.66 }, + "3" : { "x" : -41.39, "y" : -4.53 }, + "4" : { "x" : -40.79, "y" : -10.06 }, + "5" : { "x" : -41.56, "y" : 5.52 }, + "6" : { "x" : -14.92, "y" : -10.82 }, + "7" : { "x" : -35.20, "y" : -13.07 }, + "8" : { "x" : -34.77, "y" : 6.48 }, + "9" : { "x" : -30.77, "y" : -21.32 }, + "10" : { "x" : -28.07, "y" : 19.36 }, + "11" : { "x" : -14.69, "y" : 8.09 } + }, + { + "index" : 7, + "ball" : { "x" : -36.04, "y" : 9.96 }, + "1" : { "x" : -48.39, "y" : 5.45 }, + "2" : { "x" : -43.12, "y" : 0.66 }, + "3" : { "x" : -41.39, "y" : 4.53 }, + "4" : { "x" : -41.56, "y" : -5.52 }, + "5" : { "x" : -40.79, "y" : 10.06 }, + "6" : { "x" : -14.69, "y" : -8.09 }, + "7" : { "x" : -34.77, "y" : -6.48 }, + "8" : { "x" : -35.20, "y" : 13.07 }, + "9" : { "x" : -28.07, "y" : -19.36 }, + "10" : { "x" : -30.77, "y" : 21.32 }, + "11" : { "x" : -14.92, "y" : 10.82 } + }, + { + "index" : 8, + "ball" : { "x" : -43.39, "y" : -9.53 }, + "1" : { "x" : -50.04, "y" : -5.66 }, + "2" : { "x" : -48.63, "y" : -2.74 }, + "3" : { "x" : -43.58, "y" : -2.76 }, + "4" : { "x" : -44.37, "y" : -11.50 }, + "5" : { "x" : -44.09, "y" : 6.41 }, + "6" : { "x" : -16.72, "y" : -8.32 }, + "7" : { "x" : -37.07, "y" : -10.08 }, + "8" : { "x" : -36.72, "y" : 6.39 }, + "9" : { "x" : -28.83, "y" : -22.45 }, + "10" : { "x" : -27.83, "y" : 18.01 }, + "11" : { "x" : -15.86, "y" : 7.77 } + }, + { + "index" : 9, + "ball" : { "x" : -43.39, "y" : 9.53 }, + "1" : { "x" : -50.04, "y" : 5.66 }, + "2" : { "x" : -48.63, "y" : 2.74 }, + "3" : { "x" : -43.58, "y" : 2.76 }, + "4" : { "x" : -44.09, "y" : -6.41 }, + "5" : { "x" : -44.37, "y" : 11.50 }, + "6" : { "x" : -15.86, "y" : -7.77 }, + "7" : { "x" : -36.72, "y" : -6.39 }, + "8" : { "x" : -37.07, "y" : 10.08 }, + "9" : { "x" : -27.83, "y" : -18.01 }, + "10" : { "x" : -28.83, "y" : 22.45 }, + "11" : { "x" : -16.72, "y" : 8.32 } + }, + { + "index" : 10, + "ball" : { "x" : -54.50, "y" : -36.00 }, + "1" : { "x" : -50.69, "y" : -6.54 }, + "2" : { "x" : -45.68, "y" : -2.97 }, + "3" : { "x" : -46.26, "y" : -11.21 }, + "4" : { "x" : -49.12, "y" : -28.79 }, + "5" : { "x" : -44.28, "y" : 2.81 }, + "6" : { "x" : -24.69, "y" : -13.48 }, + "7" : { "x" : -36.26, "y" : -16.22 }, + "8" : { "x" : -36.44, "y" : 7.89 }, + "9" : { "x" : -35.65, "y" : -28.37 }, + "10" : { "x" : -25.18, "y" : 18.52 }, + "11" : { "x" : -21.41, "y" : 0.51 } + }, + { + "index" : 11, + "ball" : { "x" : -54.50, "y" : 36.00 }, + "1" : { "x" : -50.69, "y" : 6.54 }, + "2" : { "x" : -45.68, "y" : 2.97 }, + "3" : { "x" : -46.26, "y" : 11.21 }, + "4" : { "x" : -44.28, "y" : -2.81 }, + "5" : { "x" : -49.12, "y" : 28.79 }, + "6" : { "x" : -21.41, "y" : -0.51 }, + "7" : { "x" : -36.44, "y" : -7.89 }, + "8" : { "x" : -36.26, "y" : 16.22 }, + "9" : { "x" : -25.18, "y" : -18.52 }, + "10" : { "x" : -35.65, "y" : 28.37 }, + "11" : { "x" : -24.69, "y" : 13.48 } + }, + { + "index" : 12, + "ball" : { "x" : -54.50, "y" : 0.00 }, + "1" : { "x" : -52.02, "y" : 0.06 }, + "2" : { "x" : -48.78, "y" : -0.18 }, + "3" : { "x" : -45.28, "y" : -0.40 }, + "4" : { "x" : -47.00, "y" : -7.00 }, + "5" : { "x" : -47.00, "y" : 7.00 }, + "6" : { "x" : -21.64, "y" : -7.38 }, + "7" : { "x" : -37.57, "y" : -8.38 }, + "8" : { "x" : -37.57, "y" : 8.38 }, + "9" : { "x" : -31.90, "y" : -22.12 }, + "10" : { "x" : -31.90, "y" : 22.12 }, + "11" : { "x" : -21.64, "y" : 7.38 } + }, + { + "index" : 13, + "ball" : { "x" : -54.50, "y" : -10.57 }, + "1" : { "x" : -51.38, "y" : -6.57 }, + "2" : { "x" : -48.85, "y" : -3.47 }, + "3" : { "x" : -47.48, "y" : -1.28 }, + "4" : { "x" : -48.80, "y" : -11.00 }, + "5" : { "x" : -46.50, "y" : 6.55 }, + "6" : { "x" : -22.58, "y" : -7.93 }, + "7" : { "x" : -38.43, "y" : -12.71 }, + "8" : { "x" : -37.60, "y" : 7.95 }, + "9" : { "x" : -33.06, "y" : -25.39 }, + "10" : { "x" : -27.04, "y" : 23.24 }, + "11" : { "x" : -22.11, "y" : 6.52 } + }, + { + "index" : 14, + "ball" : { "x" : -54.50, "y" : 10.57 }, + "1" : { "x" : -51.38, "y" : 6.57 }, + "2" : { "x" : -48.85, "y" : 3.47 }, + "3" : { "x" : -47.48, "y" : 1.28 }, + "4" : { "x" : -46.50, "y" : -6.55 }, + "5" : { "x" : -48.80, "y" : 11.00 }, + "6" : { "x" : -22.11, "y" : -6.52 }, + "7" : { "x" : -37.60, "y" : -7.95 }, + "8" : { "x" : -38.43, "y" : 12.71 }, + "9" : { "x" : -27.04, "y" : -23.24 }, + "10" : { "x" : -33.06, "y" : 25.39 }, + "11" : { "x" : -22.58, "y" : 7.93 } + }, + { + "index" : 15, + "ball" : { "x" : -42.10, "y" : -28.03 }, + "1" : { "x" : -48.65, "y" : -6.51 }, + "2" : { "x" : -44.87, "y" : -4.69 }, + "3" : { "x" : -41.65, "y" : -11.50 }, + "4" : { "x" : -43.11, "y" : -25.07 }, + "5" : { "x" : -41.91, "y" : -0.12 }, + "6" : { "x" : -20.08, "y" : -13.16 }, + "7" : { "x" : -34.19, "y" : -16.88 }, + "8" : { "x" : -32.86, "y" : 7.32 }, + "9" : { "x" : -32.06, "y" : -25.39 }, + "10" : { "x" : -23.67, "y" : 15.94 }, + "11" : { "x" : -15.00, "y" : 0.00 } + }, + { + "index" : 16, + "ball" : { "x" : -42.10, "y" : 28.03 }, + "1" : { "x" : -48.65, "y" : 6.51 }, + "2" : { "x" : -44.87, "y" : 4.69 }, + "3" : { "x" : -41.65, "y" : 11.50 }, + "4" : { "x" : -41.91, "y" : 0.12 }, + "5" : { "x" : -43.11, "y" : 25.07 }, + "6" : { "x" : -15.00, "y" : -0.00 }, + "7" : { "x" : -32.86, "y" : -7.32 }, + "8" : { "x" : -34.19, "y" : 16.88 }, + "9" : { "x" : -23.67, "y" : -15.94 }, + "10" : { "x" : -32.06, "y" : 25.39 }, + "11" : { "x" : -20.08, "y" : 13.16 } + }, + { + "index" : 17, + "ball" : { "x" : -48.97, "y" : -17.73 }, + "1" : { "x" : -50.59, "y" : -6.55 }, + "2" : { "x" : -48.22, "y" : -3.01 }, + "3" : { "x" : -45.42, "y" : -6.16 }, + "4" : { "x" : -47.80, "y" : -13.86 }, + "5" : { "x" : -44.90, "y" : 2.88 }, + "6" : { "x" : -25.70, "y" : -7.46 }, + "7" : { "x" : -37.07, "y" : -9.30 }, + "8" : { "x" : -38.11, "y" : 6.86 }, + "9" : { "x" : -34.85, "y" : -20.45 }, + "10" : { "x" : -26.32, "y" : 20.22 }, + "11" : { "x" : -21.72, "y" : 5.82 } + }, + { + "index" : 18, + "ball" : { "x" : -48.97, "y" : 17.73 }, + "1" : { "x" : -50.59, "y" : 6.55 }, + "2" : { "x" : -48.22, "y" : 3.01 }, + "3" : { "x" : -45.42, "y" : 6.16 }, + "4" : { "x" : -44.90, "y" : -2.88 }, + "5" : { "x" : -47.80, "y" : 13.86 }, + "6" : { "x" : -21.72, "y" : -5.82 }, + "7" : { "x" : -38.11, "y" : -6.86 }, + "8" : { "x" : -37.07, "y" : 9.30 }, + "9" : { "x" : -26.32, "y" : -20.22 }, + "10" : { "x" : -34.85, "y" : 20.45 }, + "11" : { "x" : -25.70, "y" : 7.46 } + }, + { + "index" : 19, + "ball" : { "x" : -22.08, "y" : 0.00 }, + "1" : { "x" : -43.92, "y" : 0.05 }, + "2" : { "x" : -26.00, "y" : 0.00 }, + "3" : { "x" : -30.00, "y" : 0.00 }, + "4" : { "x" : -30.00, "y" : -15.53 }, + "5" : { "x" : -30.00, "y" : 15.53 }, + "6" : { "x" : -11.09, "y" : -8.40 }, + "7" : { "x" : -20.13, "y" : -11.12 }, + "8" : { "x" : -20.13, "y" : 11.12 }, + "9" : { "x" : -9.41, "y" : -25.41 }, + "10" : { "x" : -9.41, "y" : 25.41 }, + "11" : { "x" : -11.09, "y" : 8.40 } + }, + { + "index" : 20, + "ball" : { "x" : -31.00, "y" : 0.00 }, + "1" : { "x" : -46.95, "y" : 0.05 }, + "2" : { "x" : -36.81, "y" : 0.04 }, + "3" : { "x" : -35.50, "y" : -0.04 }, + "4" : { "x" : -35.99, "y" : -12.79 }, + "5" : { "x" : -35.99, "y" : 12.79 }, + "6" : { "x" : -12.50, "y" : -7.70 }, + "7" : { "x" : -26.39, "y" : -10.85 }, + "8" : { "x" : -26.39, "y" : 10.85 }, + "9" : { "x" : -20.02, "y" : -20.38 }, + "10" : { "x" : -20.02, "y" : 20.38 }, + "11" : { "x" : -12.50, "y" : 7.70 } + }, + { + "index" : 21, + "ball" : { "x" : -48.35, "y" : -9.55 }, + "1" : { "x" : -51.23, "y" : -6.53 }, + "2" : { "x" : -50.08, "y" : -4.42 }, + "3" : { "x" : -46.67, "y" : -4.04 }, + "4" : { "x" : -47.90, "y" : -12.15 }, + "5" : { "x" : -47.16, "y" : 5.69 }, + "6" : { "x" : -21.88, "y" : -9.41 }, + "7" : { "x" : -36.10, "y" : -11.15 }, + "8" : { "x" : -37.63, "y" : 10.83 }, + "9" : { "x" : -29.47, "y" : -23.96 }, + "10" : { "x" : -29.53, "y" : 21.95 }, + "11" : { "x" : -21.02, "y" : 6.84 } + }, + { + "index" : 22, + "ball" : { "x" : -48.35, "y" : 9.55 }, + "1" : { "x" : -51.23, "y" : 6.53 }, + "2" : { "x" : -50.08, "y" : 4.42 }, + "3" : { "x" : -46.67, "y" : 4.04 }, + "4" : { "x" : -47.16, "y" : -5.69 }, + "5" : { "x" : -47.90, "y" : 12.15 }, + "6" : { "x" : -21.02, "y" : -6.84 }, + "7" : { "x" : -37.63, "y" : -10.83 }, + "8" : { "x" : -36.10, "y" : 11.15 }, + "9" : { "x" : -29.53, "y" : -21.95 }, + "10" : { "x" : -29.47, "y" : 23.96 }, + "11" : { "x" : -21.88, "y" : 9.41 } + }, + { + "index" : 23, + "ball" : { "x" : 15.14, "y" : 0.00 }, + "1" : { "x" : -33.37, "y" : 0.05 }, + "2" : { "x" : 0.21, "y" : 0.57 }, + "3" : { "x" : -4.20, "y" : 0.84 }, + "4" : { "x" : -3.52, "y" : -16.25 }, + "5" : { "x" : -3.52, "y" : 16.25 }, + "6" : { "x" : 15.23, "y" : -7.62 }, + "7" : { "x" : 5.95, "y" : -10.25 }, + "8" : { "x" : 5.95, "y" : 10.25 }, + "9" : { "x" : 12.93, "y" : -20.91 }, + "10" : { "x" : 12.93, "y" : 20.91 }, + "11" : { "x" : 15.23, "y" : 7.62 } + }, + { + "index" : 24, + "ball" : { "x" : 12.06, "y" : -9.13 }, + "1" : { "x" : -34.63, "y" : -5.48 }, + "2" : { "x" : -1.71, "y" : -1.05 }, + "3" : { "x" : -4.96, "y" : -4.42 }, + "4" : { "x" : -5.57, "y" : -16.35 }, + "5" : { "x" : -3.23, "y" : 12.31 }, + "6" : { "x" : 20.08, "y" : -7.77 }, + "7" : { "x" : 3.83, "y" : -12.66 }, + "8" : { "x" : 6.17, "y" : 6.38 }, + "9" : { "x" : 7.53, "y" : -22.14 }, + "10" : { "x" : 11.62, "y" : 20.01 }, + "11" : { "x" : 6.80, "y" : -3.24 } + }, + { + "index" : 25, + "ball" : { "x" : 12.06, "y" : 9.13 }, + "1" : { "x" : -34.63, "y" : 5.48 }, + "2" : { "x" : -1.71, "y" : 1.05 }, + "3" : { "x" : -4.96, "y" : 4.42 }, + "4" : { "x" : -3.23, "y" : -12.31 }, + "5" : { "x" : -5.57, "y" : 16.35 }, + "6" : { "x" : 6.80, "y" : 3.24 }, + "7" : { "x" : 6.17, "y" : -6.38 }, + "8" : { "x" : 3.83, "y" : 12.66 }, + "9" : { "x" : 11.62, "y" : -20.01 }, + "10" : { "x" : 7.53, "y" : 22.14 }, + "11" : { "x" : 20.08, "y" : 7.77 } + }, + { + "index" : 26, + "ball" : { "x" : 11.63, "y" : -16.76 }, + "1" : { "x" : -37.55, "y" : -6.84 }, + "2" : { "x" : -4.36, "y" : -3.84 }, + "3" : { "x" : -4.73, "y" : -8.83 }, + "4" : { "x" : -4.85, "y" : -21.74 }, + "5" : { "x" : -4.13, "y" : 12.22 }, + "6" : { "x" : 21.64, "y" : -10.12 }, + "7" : { "x" : 3.76, "y" : -16.75 }, + "8" : { "x" : 5.95, "y" : 5.80 }, + "9" : { "x" : 7.96, "y" : -23.12 }, + "10" : { "x" : 11.99, "y" : 17.18 }, + "11" : { "x" : 4.77, "y" : -4.96 } + }, + { + "index" : 27, + "ball" : { "x" : 11.63, "y" : 16.76 }, + "1" : { "x" : -37.55, "y" : 6.84 }, + "2" : { "x" : -4.36, "y" : 3.84 }, + "3" : { "x" : -4.73, "y" : 8.83 }, + "4" : { "x" : -4.13, "y" : -12.22 }, + "5" : { "x" : -4.85, "y" : 21.74 }, + "6" : { "x" : 4.77, "y" : 4.96 }, + "7" : { "x" : 5.95, "y" : -5.80 }, + "8" : { "x" : 3.76, "y" : 16.75 }, + "9" : { "x" : 11.99, "y" : -17.18 }, + "10" : { "x" : 7.96, "y" : 23.12 }, + "11" : { "x" : 21.64, "y" : 10.12 } + }, + { + "index" : 28, + "ball" : { "x" : 23.43, "y" : -17.75 }, + "1" : { "x" : -35.36, "y" : -6.95 }, + "2" : { "x" : 1.45, "y" : -0.56 }, + "3" : { "x" : -4.05, "y" : -5.51 }, + "4" : { "x" : -3.57, "y" : -20.84 }, + "5" : { "x" : -0.82, "y" : 14.36 }, + "6" : { "x" : 24.14, "y" : -13.24 }, + "7" : { "x" : 5.73, "y" : -14.12 }, + "8" : { "x" : 8.65, "y" : 7.92 }, + "9" : { "x" : 16.94, "y" : -25.82 }, + "10" : { "x" : 23.53, "y" : 13.97 }, + "11" : { "x" : 12.11, "y" : -4.57 } + }, + { + "index" : 29, + "ball" : { "x" : 23.43, "y" : 17.75 }, + "1" : { "x" : -35.36, "y" : 6.95 }, + "2" : { "x" : 1.45, "y" : 0.56 }, + "3" : { "x" : -4.05, "y" : 5.51 }, + "4" : { "x" : -0.82, "y" : -14.36 }, + "5" : { "x" : -3.57, "y" : 20.84 }, + "6" : { "x" : 12.11, "y" : 4.57 }, + "7" : { "x" : 8.65, "y" : -7.92 }, + "8" : { "x" : 5.73, "y" : 14.12 }, + "9" : { "x" : 23.53, "y" : -13.97 }, + "10" : { "x" : 16.94, "y" : 25.82 }, + "11" : { "x" : 24.14, "y" : 13.24 } + }, + { + "index" : 30, + "ball" : { "x" : 41.30, "y" : -6.40 }, + "1" : { "x" : -34.63, "y" : -4.65 }, + "2" : { "x" : 11.89, "y" : -2.57 }, + "3" : { "x" : 0.99, "y" : -1.20 }, + "4" : { "x" : 2.03, "y" : -18.55 }, + "5" : { "x" : 4.74, "y" : 16.09 }, + "6" : { "x" : 41.41, "y" : -5.74 }, + "7" : { "x" : 22.73, "y" : -10.98 }, + "8" : { "x" : 24.70, "y" : 7.62 }, + "9" : { "x" : 32.90, "y" : -17.56 }, + "10" : { "x" : 34.38, "y" : 12.97 }, + "11" : { "x" : 35.47, "y" : -1.76 } + }, + { + "index" : 31, + "ball" : { "x" : 41.30, "y" : 6.40 }, + "1" : { "x" : -34.63, "y" : 4.65 }, + "2" : { "x" : 11.89, "y" : 2.57 }, + "3" : { "x" : 0.99, "y" : 1.20 }, + "4" : { "x" : 4.74, "y" : -16.09 }, + "5" : { "x" : 2.03, "y" : 18.55 }, + "6" : { "x" : 35.47, "y" : 1.76 }, + "7" : { "x" : 24.70, "y" : -7.62 }, + "8" : { "x" : 22.73, "y" : 10.98 }, + "9" : { "x" : 34.38, "y" : -12.97 }, + "10" : { "x" : 32.90, "y" : 17.56 }, + "11" : { "x" : 41.41, "y" : 5.74 } + }, + { + "index" : 32, + "ball" : { "x" : 43.35, "y" : 0.00 }, + "1" : { "x" : -32.54, "y" : -0.05 }, + "2" : { "x" : 11.74, "y" : -0.19 }, + "3" : { "x" : 0.69, "y" : -0.11 }, + "4" : { "x" : 2.23, "y" : -17.55 }, + "5" : { "x" : 2.59, "y" : 17.55 }, + "6" : { "x" : 37.58, "y" : -4.34 }, + "7" : { "x" : 22.84, "y" : -9.37 }, + "8" : { "x" : 22.84, "y" : 9.37 }, + "9" : { "x" : 36.83, "y" : -13.95 }, + "10" : { "x" : 36.83, "y" : 13.95 }, + "11" : { "x" : 37.58, "y" : 4.34 } + }, + { + "index" : 33, + "ball" : { "x" : 54.50, "y" : 0.00 }, + "1" : { "x" : -32.12, "y" : -0.05 }, + "2" : { "x" : 14.72, "y" : -0.11 }, + "3" : { "x" : 0.47, "y" : -0.69 }, + "4" : { "x" : 6.74, "y" : -20.46 }, + "5" : { "x" : 6.74, "y" : 20.46 }, + "6" : { "x" : 38.12, "y" : -5.98 }, + "7" : { "x" : 23.75, "y" : -10.47 }, + "8" : { "x" : 23.75, "y" : 10.47 }, + "9" : { "x" : 35.82, "y" : -13.97 }, + "10" : { "x" : 35.82, "y" : 13.97 }, + "11" : { "x" : 38.12, "y" : 5.98 } + }, + { + "index" : 34, + "ball" : { "x" : 48.31, "y" : -6.49 }, + "1" : { "x" : -34.00, "y" : -3.71 }, + "2" : { "x" : 12.71, "y" : -3.39 }, + "3" : { "x" : 1.57, "y" : -0.84 }, + "4" : { "x" : 4.66, "y" : -19.64 }, + "5" : { "x" : 4.58, "y" : 17.70 }, + "6" : { "x" : 42.66, "y" : -6.84 }, + "7" : { "x" : 26.19, "y" : -11.01 }, + "8" : { "x" : 26.11, "y" : 8.06 }, + "9" : { "x" : 35.52, "y" : -18.21 }, + "10" : { "x" : 36.18, "y" : 12.48 }, + "11" : { "x" : 37.19, "y" : -0.35 } + }, + { + "index" : 35, + "ball" : { "x" : 48.31, "y" : 6.49 }, + "1" : { "x" : -34.00, "y" : 3.71 }, + "2" : { "x" : 12.71, "y" : 3.39 }, + "3" : { "x" : 1.57, "y" : 0.84 }, + "4" : { "x" : 4.58, "y" : -17.70 }, + "5" : { "x" : 4.66, "y" : 19.64 }, + "6" : { "x" : 37.19, "y" : 0.35 }, + "7" : { "x" : 26.11, "y" : -8.06 }, + "8" : { "x" : 26.19, "y" : 11.01 }, + "9" : { "x" : 36.18, "y" : -12.48 }, + "10" : { "x" : 35.52, "y" : 18.21 }, + "11" : { "x" : 42.66, "y" : 6.84 } + }, + { + "index" : 36, + "ball" : { "x" : 0.12, "y" : -13.21 }, + "1" : { "x" : -38.07, "y" : -5.17 }, + "2" : { "x" : -15.02, "y" : -3.09 }, + "3" : { "x" : -13.01, "y" : -8.31 }, + "4" : { "x" : -13.35, "y" : -20.16 }, + "5" : { "x" : -14.46, "y" : 12.84 }, + "6" : { "x" : 8.12, "y" : -12.30 }, + "7" : { "x" : -7.04, "y" : -14.48 }, + "8" : { "x" : -5.07, "y" : 7.62 }, + "9" : { "x" : 0.33, "y" : -25.25 }, + "10" : { "x" : -0.90, "y" : 17.31 }, + "11" : { "x" : -3.44, "y" : -2.30 } + }, + { + "index" : 37, + "ball" : { "x" : 0.12, "y" : 13.21 }, + "1" : { "x" : -38.07, "y" : 5.17 }, + "2" : { "x" : -15.02, "y" : 3.09 }, + "3" : { "x" : -13.01, "y" : 8.31 }, + "4" : { "x" : -14.46, "y" : -12.84 }, + "5" : { "x" : -13.35, "y" : 20.16 }, + "6" : { "x" : -3.44, "y" : 2.30 }, + "7" : { "x" : -5.07, "y" : -7.62 }, + "8" : { "x" : -7.04, "y" : 14.48 }, + "9" : { "x" : -0.90, "y" : -17.31 }, + "10" : { "x" : 0.33, "y" : 25.25 }, + "11" : { "x" : 8.12, "y" : 12.30 } + }, + { + "index" : 38, + "ball" : { "x" : 13.61, "y" : -30.73 }, + "1" : { "x" : -36.30, "y" : -10.08 }, + "2" : { "x" : -1.08, "y" : -5.40 }, + "3" : { "x" : -3.17, "y" : -13.30 }, + "4" : { "x" : -2.54, "y" : -27.78 }, + "5" : { "x" : -0.85, "y" : 9.99 }, + "6" : { "x" : 24.22, "y" : -17.54 }, + "7" : { "x" : 7.61, "y" : -20.08 }, + "8" : { "x" : 8.57, "y" : 11.47 }, + "9" : { "x" : 12.44, "y" : -29.42 }, + "10" : { "x" : 19.23, "y" : 18.62 }, + "11" : { "x" : 10.00, "y" : -4.80 } + }, + { + "index" : 39, + "ball" : { "x" : 13.61, "y" : 30.73 }, + "1" : { "x" : -36.30, "y" : 10.08 }, + "2" : { "x" : -1.08, "y" : 5.40 }, + "3" : { "x" : -3.17, "y" : 13.30 }, + "4" : { "x" : -0.85, "y" : -9.99 }, + "5" : { "x" : -2.54, "y" : 27.78 }, + "6" : { "x" : 10.00, "y" : 4.80 }, + "7" : { "x" : 8.57, "y" : -11.47 }, + "8" : { "x" : 7.61, "y" : 20.08 }, + "9" : { "x" : 19.23, "y" : -18.62 }, + "10" : { "x" : 12.44, "y" : 29.42 }, + "11" : { "x" : 24.22, "y" : 17.54 } + }, + { + "index" : 40, + "ball" : { "x" : 24.32, "y" : -7.45 }, + "1" : { "x" : -34.00, "y" : -3.92 }, + "2" : { "x" : 1.60, "y" : -0.11 }, + "3" : { "x" : -2.20, "y" : -3.69 }, + "4" : { "x" : -1.45, "y" : -18.37 }, + "5" : { "x" : -1.79, "y" : 14.97 }, + "6" : { "x" : 25.23, "y" : -7.15 }, + "7" : { "x" : 9.30, "y" : -14.26 }, + "8" : { "x" : 12.88, "y" : 8.57 }, + "9" : { "x" : 20.79, "y" : -24.68 }, + "10" : { "x" : 22.87, "y" : 16.53 }, + "11" : { "x" : 11.80, "y" : -2.07 } + }, + { + "index" : 41, + "ball" : { "x" : 24.32, "y" : 7.45 }, + "1" : { "x" : -34.00, "y" : 3.92 }, + "2" : { "x" : 1.60, "y" : 0.11 }, + "3" : { "x" : -2.20, "y" : 3.69 }, + "4" : { "x" : -1.79, "y" : -14.97 }, + "5" : { "x" : -1.45, "y" : 18.37 }, + "6" : { "x" : 11.80, "y" : 2.07 }, + "7" : { "x" : 12.88, "y" : -8.57 }, + "8" : { "x" : 9.30, "y" : 14.26 }, + "9" : { "x" : 22.87, "y" : -16.53 }, + "10" : { "x" : 20.79, "y" : 24.68 }, + "11" : { "x" : 25.23, "y" : 7.15 } + }, + { + "index" : 42, + "ball" : { "x" : -22.08, "y" : -18.00 }, + "1" : { "x" : -45.07, "y" : -5.17 }, + "2" : { "x" : -25.84, "y" : -6.22 }, + "3" : { "x" : -30.00, "y" : -10.09 }, + "4" : { "x" : -30.00, "y" : -22.53 }, + "5" : { "x" : -30.00, "y" : 7.55 }, + "6" : { "x" : -7.42, "y" : -10.12 }, + "7" : { "x" : -17.48, "y" : -17.92 }, + "8" : { "x" : -21.40, "y" : 1.32 }, + "9" : { "x" : -12.40, "y" : -26.56 }, + "10" : { "x" : -11.21, "y" : 22.02 }, + "11" : { "x" : -13.28, "y" : -1.21 } + }, + { + "index" : 43, + "ball" : { "x" : -22.08, "y" : 18.00 }, + "1" : { "x" : -45.07, "y" : 5.17 }, + "2" : { "x" : -25.84, "y" : 6.22 }, + "3" : { "x" : -30.00, "y" : 10.09 }, + "4" : { "x" : -30.00, "y" : -7.55 }, + "5" : { "x" : -30.00, "y" : 22.53 }, + "6" : { "x" : -13.28, "y" : 1.21 }, + "7" : { "x" : -21.40, "y" : -1.32 }, + "8" : { "x" : -17.48, "y" : 17.92 }, + "9" : { "x" : -11.21, "y" : -22.02 }, + "10" : { "x" : -12.40, "y" : 26.56 }, + "11" : { "x" : -7.42, "y" : 10.12 } + }, + { + "index" : 44, + "ball" : { "x" : -22.08, "y" : -9.00 }, + "1" : { "x" : -45.38, "y" : -3.50 }, + "2" : { "x" : -25.84, "y" : -4.38 }, + "3" : { "x" : -30.00, "y" : -7.62 }, + "4" : { "x" : -30.00, "y" : -15.41 }, + "5" : { "x" : -30.00, "y" : 8.11 }, + "6" : { "x" : -12.11, "y" : -10.82 }, + "7" : { "x" : -21.17, "y" : -14.98 }, + "8" : { "x" : -17.77, "y" : 9.27 }, + "9" : { "x" : -15.24, "y" : -24.77 }, + "10" : { "x" : -9.43, "y" : 23.76 }, + "11" : { "x" : -12.58, "y" : 0.82 } + }, + { + "index" : 45, + "ball" : { "x" : -22.08, "y" : 9.00 }, + "1" : { "x" : -45.38, "y" : 3.50 }, + "2" : { "x" : -25.84, "y" : 4.38 }, + "3" : { "x" : -30.00, "y" : 7.62 }, + "4" : { "x" : -30.00, "y" : -8.11 }, + "5" : { "x" : -30.00, "y" : 15.41 }, + "6" : { "x" : -12.58, "y" : -0.82 }, + "7" : { "x" : -17.77, "y" : -9.27 }, + "8" : { "x" : -21.17, "y" : 14.98 }, + "9" : { "x" : -9.43, "y" : -23.76 }, + "10" : { "x" : -15.24, "y" : 24.77 }, + "11" : { "x" : -12.11, "y" : 10.82 } + }, + { + "index" : 46, + "ball" : { "x" : 52.45, "y" : -10.72 }, + "1" : { "x" : -34.42, "y" : -3.71 }, + "2" : { "x" : 12.19, "y" : -3.17 }, + "3" : { "x" : 1.20, "y" : -0.84 }, + "4" : { "x" : 4.57, "y" : -20.92 }, + "5" : { "x" : 7.69, "y" : 18.05 }, + "6" : { "x" : 45.31, "y" : -7.15 }, + "7" : { "x" : 30.20, "y" : -14.20 }, + "8" : { "x" : 25.45, "y" : 5.85 }, + "9" : { "x" : 40.27, "y" : -19.68 }, + "10" : { "x" : 38.45, "y" : 10.84 }, + "11" : { "x" : 31.72, "y" : -1.60 } + }, + { + "index" : 47, + "ball" : { "x" : 52.45, "y" : 10.72 }, + "1" : { "x" : -34.42, "y" : 3.71 }, + "2" : { "x" : 12.19, "y" : 3.17 }, + "3" : { "x" : 1.20, "y" : 0.84 }, + "4" : { "x" : 7.69, "y" : -18.05 }, + "5" : { "x" : 4.57, "y" : 20.92 }, + "6" : { "x" : 31.72, "y" : 1.60 }, + "7" : { "x" : 25.45, "y" : -5.85 }, + "8" : { "x" : 30.20, "y" : 14.20 }, + "9" : { "x" : 38.45, "y" : -10.84 }, + "10" : { "x" : 40.27, "y" : 19.68 }, + "11" : { "x" : 45.31, "y" : 7.15 } + }, + { + "index" : 48, + "ball" : { "x" : 54.50, "y" : -36.00 }, + "1" : { "x" : -36.09, "y" : -9.87 }, + "2" : { "x" : 14.65, "y" : -11.22 }, + "3" : { "x" : 0.99, "y" : -4.85 }, + "4" : { "x" : 7.19, "y" : -26.29 }, + "5" : { "x" : 6.38, "y" : 14.53 }, + "6" : { "x" : 48.36, "y" : -18.40 }, + "7" : { "x" : 26.35, "y" : -21.98 }, + "8" : { "x" : 24.47, "y" : -2.50 }, + "9" : { "x" : 39.20, "y" : -30.82 }, + "10" : { "x" : 35.30, "y" : 9.02 }, + "11" : { "x" : 34.38, "y" : -10.35 } + }, + { + "index" : 49, + "ball" : { "x" : 54.50, "y" : 36.00 }, + "1" : { "x" : -36.09, "y" : 9.87 }, + "2" : { "x" : 14.65, "y" : 11.22 }, + "3" : { "x" : 0.99, "y" : 4.85 }, + "4" : { "x" : 6.38, "y" : -14.53 }, + "5" : { "x" : 7.19, "y" : 26.29 }, + "6" : { "x" : 34.38, "y" : 10.35 }, + "7" : { "x" : 24.47, "y" : 2.50 }, + "8" : { "x" : 26.35, "y" : 21.98 }, + "9" : { "x" : 35.30, "y" : -9.02 }, + "10" : { "x" : 39.20, "y" : 30.82 }, + "11" : { "x" : 48.36, "y" : 18.40 } + }, + { + "index" : 50, + "ball" : { "x" : 49.50, "y" : -20.51 }, + "1" : { "x" : -34.63, "y" : -5.17 }, + "2" : { "x" : 12.86, "y" : -6.74 }, + "3" : { "x" : 1.53, "y" : -3.69 }, + "4" : { "x" : 3.98, "y" : -21.51 }, + "5" : { "x" : 5.25, "y" : 17.19 }, + "6" : { "x" : 43.91, "y" : -11.21 }, + "7" : { "x" : 26.52, "y" : -17.80 }, + "8" : { "x" : 24.26, "y" : 5.22 }, + "9" : { "x" : 41.50, "y" : -23.12 }, + "10" : { "x" : 40.02, "y" : 10.35 }, + "11" : { "x" : 29.45, "y" : -5.20 } + }, + { + "index" : 51, + "ball" : { "x" : 49.50, "y" : 20.51 }, + "1" : { "x" : -34.63, "y" : 5.17 }, + "2" : { "x" : 12.86, "y" : 6.74 }, + "3" : { "x" : 1.53, "y" : 3.69 }, + "4" : { "x" : 5.25, "y" : -17.19 }, + "5" : { "x" : 3.98, "y" : 21.51 }, + "6" : { "x" : 29.45, "y" : 5.20 }, + "7" : { "x" : 24.26, "y" : -5.22 }, + "8" : { "x" : 26.52, "y" : 17.80 }, + "9" : { "x" : 40.02, "y" : -10.35 }, + "10" : { "x" : 41.50, "y" : 23.12 }, + "11" : { "x" : 43.91, "y" : 11.21 } + }, + { + "index" : 52, + "ball" : { "x" : 26.43, "y" : -36.00 }, + "1" : { "x" : -36.30, "y" : -9.98 }, + "2" : { "x" : 5.55, "y" : -8.24 }, + "3" : { "x" : -0.78, "y" : -13.83 }, + "4" : { "x" : 0.68, "y" : -26.37 }, + "5" : { "x" : -0.74, "y" : 12.24 }, + "6" : { "x" : 31.33, "y" : -12.30 }, + "7" : { "x" : 13.90, "y" : -25.72 }, + "8" : { "x" : 9.30, "y" : 0.99 }, + "9" : { "x" : 19.64, "y" : -32.21 }, + "10" : { "x" : 21.56, "y" : 6.82 }, + "11" : { "x" : 13.05, "y" : -14.49 } + }, + { + "index" : 53, + "ball" : { "x" : 26.43, "y" : 36.00 }, + "1" : { "x" : -36.30, "y" : 9.98 }, + "2" : { "x" : 5.55, "y" : 8.24 }, + "3" : { "x" : -0.78, "y" : 13.83 }, + "4" : { "x" : -0.74, "y" : -12.24 }, + "5" : { "x" : 0.68, "y" : 26.37 }, + "6" : { "x" : 13.05, "y" : 14.49 }, + "7" : { "x" : 9.30, "y" : -0.99 }, + "8" : { "x" : 13.90, "y" : 25.72 }, + "9" : { "x" : 21.56, "y" : -6.82 }, + "10" : { "x" : 19.64, "y" : 32.21 }, + "11" : { "x" : 31.33, "y" : 12.30 } + }, + { + "index" : 54, + "ball" : { "x" : 34.75, "y" : -26.90 }, + "1" : { "x" : -34.83, "y" : -5.69 }, + "2" : { "x" : 5.58, "y" : -9.59 }, + "3" : { "x" : 0.47, "y" : -5.73 }, + "4" : { "x" : 2.37, "y" : -25.49 }, + "5" : { "x" : 5.48, "y" : 14.20 }, + "6" : { "x" : 35.62, "y" : -12.62 }, + "7" : { "x" : 17.04, "y" : -19.74 }, + "8" : { "x" : 16.70, "y" : 1.84 }, + "9" : { "x" : 31.51, "y" : -26.97 }, + "10" : { "x" : 31.59, "y" : 14.82 }, + "11" : { "x" : 23.91, "y" : -9.65 } + }, + { + "index" : 55, + "ball" : { "x" : 34.75, "y" : 26.90 }, + "1" : { "x" : -34.83, "y" : 5.69 }, + "2" : { "x" : 5.58, "y" : 9.59 }, + "3" : { "x" : 0.47, "y" : 5.73 }, + "4" : { "x" : 5.48, "y" : -14.20 }, + "5" : { "x" : 2.37, "y" : 25.49 }, + "6" : { "x" : 23.91, "y" : 9.65 }, + "7" : { "x" : 16.70, "y" : -1.84 }, + "8" : { "x" : 17.04, "y" : 19.74 }, + "9" : { "x" : 31.59, "y" : -14.82 }, + "10" : { "x" : 31.51, "y" : 26.97 }, + "11" : { "x" : 35.62, "y" : 12.62 } + }, + { + "index" : 56, + "ball" : { "x" : 35.87, "y" : -19.92 }, + "1" : { "x" : -34.63, "y" : -4.54 }, + "2" : { "x" : 8.16, "y" : -6.76 }, + "3" : { "x" : 0.69, "y" : -4.05 }, + "4" : { "x" : 1.89, "y" : -21.45 }, + "5" : { "x" : 3.98, "y" : 14.06 }, + "6" : { "x" : 39.22, "y" : -14.73 }, + "7" : { "x" : 20.54, "y" : -17.55 }, + "8" : { "x" : 20.54, "y" : 2.44 }, + "9" : { "x" : 28.20, "y" : -27.86 }, + "10" : { "x" : 34.21, "y" : 8.98 }, + "11" : { "x" : 24.45, "y" : -7.38 } + }, + { + "index" : 57, + "ball" : { "x" : 35.87, "y" : 19.92 }, + "1" : { "x" : -34.63, "y" : 4.54 }, + "2" : { "x" : 8.16, "y" : 6.76 }, + "3" : { "x" : 0.69, "y" : 4.05 }, + "4" : { "x" : 3.98, "y" : -14.06 }, + "5" : { "x" : 1.89, "y" : 21.45 }, + "6" : { "x" : 24.45, "y" : 7.38 }, + "7" : { "x" : 20.54, "y" : -2.44 }, + "8" : { "x" : 20.54, "y" : 17.55 }, + "9" : { "x" : 34.21, "y" : -8.98 }, + "10" : { "x" : 28.20, "y" : 27.86 }, + "11" : { "x" : 39.22, "y" : 14.73 } + }, + { + "index" : 58, + "ball" : { "x" : 36.26, "y" : 0.00 }, + "1" : { "x" : -32.01, "y" : -0.16 }, + "2" : { "x" : 10.55, "y" : 0.08 }, + "3" : { "x" : -1.35, "y" : -0.11 }, + "4" : { "x" : 0.91, "y" : -18.93 }, + "5" : { "x" : 0.91, "y" : 18.93 }, + "6" : { "x" : 32.42, "y" : -5.59 }, + "7" : { "x" : 21.56, "y" : -10.40 }, + "8" : { "x" : 21.56, "y" : 10.40 }, + "9" : { "x" : 32.49, "y" : -17.07 }, + "10" : { "x" : 32.49, "y" : 17.07 }, + "11" : { "x" : 32.42, "y" : 5.59 } + }, + { + "index" : 59, + "ball" : { "x" : -2.64, "y" : -22.23 }, + "1" : { "x" : -38.70, "y" : -7.99 }, + "2" : { "x" : -14.43, "y" : -7.59 }, + "3" : { "x" : -11.79, "y" : -12.04 }, + "4" : { "x" : -12.08, "y" : -24.92 }, + "5" : { "x" : -13.10, "y" : 11.99 }, + "6" : { "x" : 11.09, "y" : -12.30 }, + "7" : { "x" : -1.97, "y" : -10.34 }, + "8" : { "x" : -2.05, "y" : 15.98 }, + "9" : { "x" : -0.76, "y" : -26.68 }, + "10" : { "x" : 3.15, "y" : 17.85 }, + "11" : { "x" : -2.03, "y" : 2.07 } + }, + { + "index" : 60, + "ball" : { "x" : -2.64, "y" : 22.23 }, + "1" : { "x" : -38.70, "y" : 7.99 }, + "2" : { "x" : -14.43, "y" : 7.59 }, + "3" : { "x" : -11.79, "y" : 12.04 }, + "4" : { "x" : -13.10, "y" : -11.99 }, + "5" : { "x" : -12.08, "y" : 24.92 }, + "6" : { "x" : -2.03, "y" : -2.07 }, + "7" : { "x" : -2.05, "y" : -15.98 }, + "8" : { "x" : -1.97, "y" : 10.34 }, + "9" : { "x" : 3.15, "y" : -17.85 }, + "10" : { "x" : -0.76, "y" : 26.68 }, + "11" : { "x" : 11.09, "y" : 12.30 } + }, + { + "index" : 61, + "ball" : { "x" : -11.99, "y" : -18.00 }, + "1" : { "x" : -39.95, "y" : -6.84 }, + "2" : { "x" : -15.64, "y" : -7.72 }, + "3" : { "x" : -20.00, "y" : -10.14 }, + "4" : { "x" : -20.00, "y" : -23.39 }, + "5" : { "x" : -20.00, "y" : 12.76 }, + "6" : { "x" : 2.11, "y" : -10.12 }, + "7" : { "x" : -9.71, "y" : -11.98 }, + "8" : { "x" : -10.97, "y" : 9.56 }, + "9" : { "x" : -7.79, "y" : -25.66 }, + "10" : { "x" : 1.23, "y" : 22.55 }, + "11" : { "x" : -7.27, "y" : 1.13 } + }, + { + "index" : 62, + "ball" : { "x" : -11.99, "y" : 18.00 }, + "1" : { "x" : -39.95, "y" : 6.84 }, + "2" : { "x" : -15.64, "y" : 7.72 }, + "3" : { "x" : -20.00, "y" : 10.14 }, + "4" : { "x" : -20.00, "y" : -12.76 }, + "5" : { "x" : -20.00, "y" : 23.39 }, + "6" : { "x" : -7.27, "y" : -1.13 }, + "7" : { "x" : -10.97, "y" : -9.56 }, + "8" : { "x" : -9.71, "y" : 11.98 }, + "9" : { "x" : 1.23, "y" : -22.55 }, + "10" : { "x" : -7.79, "y" : 25.66 }, + "11" : { "x" : 2.11, "y" : 10.12 } + }, + { + "index" : 63, + "ball" : { "x" : -11.99, "y" : -9.00 }, + "1" : { "x" : -40.37, "y" : -5.48 }, + "2" : { "x" : -15.29, "y" : -4.26 }, + "3" : { "x" : -20.00, "y" : -5.00 }, + "4" : { "x" : -20.00, "y" : -17.27 }, + "5" : { "x" : -20.00, "y" : 11.31 }, + "6" : { "x" : -2.66, "y" : -7.54 }, + "7" : { "x" : -6.00, "y" : -16.06 }, + "8" : { "x" : -9.82, "y" : 10.83 }, + "9" : { "x" : -1.90, "y" : -29.26 }, + "10" : { "x" : -0.25, "y" : 22.55 }, + "11" : { "x" : -5.39, "y" : 1.76 } + }, + { + "index" : 64, + "ball" : { "x" : -11.99, "y" : 9.00 }, + "1" : { "x" : -40.37, "y" : 5.48 }, + "2" : { "x" : -15.29, "y" : 4.26 }, + "3" : { "x" : -20.00, "y" : 5.00 }, + "4" : { "x" : -20.00, "y" : -11.31 }, + "5" : { "x" : -20.00, "y" : 17.27 }, + "6" : { "x" : -5.39, "y" : -1.76 }, + "7" : { "x" : -9.82, "y" : -10.83 }, + "8" : { "x" : -6.00, "y" : 16.06 }, + "9" : { "x" : -0.25, "y" : -22.55 }, + "10" : { "x" : -1.90, "y" : 29.26 }, + "11" : { "x" : -2.66, "y" : 7.54 } + }, + { + "index" : 65, + "ball" : { "x" : -11.99, "y" : 0.00 }, + "1" : { "x" : -40.68, "y" : 0.16 }, + "2" : { "x" : -17.00, "y" : 0.00 }, + "3" : { "x" : -20.00, "y" : 0.00 }, + "4" : { "x" : -20.00, "y" : -16.50 }, + "5" : { "x" : -20.00, "y" : 16.50 }, + "6" : { "x" : -4.30, "y" : -6.99 }, + "7" : { "x" : -11.78, "y" : -12.10 }, + "8" : { "x" : -11.78, "y" : 12.10 }, + "9" : { "x" : -0.21, "y" : -25.41 }, + "10" : { "x" : -0.21, "y" : 25.41 }, + "11" : { "x" : -4.30, "y" : 6.99 } + }, + { + "index" : 66, + "ball" : { "x" : -8.22, "y" : -36.00 }, + "1" : { "x" : -42.35, "y" : -7.57 }, + "2" : { "x" : -18.67, "y" : -9.06 }, + "3" : { "x" : -14.59, "y" : -15.42 }, + "4" : { "x" : -10.47, "y" : -34.06 }, + "5" : { "x" : -15.74, "y" : 5.59 }, + "6" : { "x" : 7.03, "y" : -16.05 }, + "7" : { "x" : -5.59, "y" : -21.77 }, + "8" : { "x" : -6.24, "y" : 13.72 }, + "9" : { "x" : 1.19, "y" : -31.13 }, + "10" : { "x" : 3.47, "y" : 14.48 }, + "11" : { "x" : -2.81, "y" : -3.24 } + }, + { + "index" : 67, + "ball" : { "x" : -8.22, "y" : 36.00 }, + "1" : { "x" : -42.35, "y" : 7.57 }, + "2" : { "x" : -18.67, "y" : 9.06 }, + "3" : { "x" : -14.59, "y" : 15.42 }, + "4" : { "x" : -15.74, "y" : -5.59 }, + "5" : { "x" : -10.47, "y" : 34.06 }, + "6" : { "x" : -2.81, "y" : 3.24 }, + "7" : { "x" : -6.24, "y" : -13.72 }, + "8" : { "x" : -5.59, "y" : 21.77 }, + "9" : { "x" : 3.47, "y" : -14.48 }, + "10" : { "x" : 1.19, "y" : 31.13 }, + "11" : { "x" : 7.03, "y" : 16.05 } + }, + { + "index" : 68, + "ball" : { "x" : 14.04, "y" : -36.00 }, + "1" : { "x" : -36.71, "y" : -10.18 }, + "2" : { "x" : -4.14, "y" : -8.83 }, + "3" : { "x" : -2.35, "y" : -14.72 }, + "4" : { "x" : -2.07, "y" : -29.83 }, + "5" : { "x" : -0.62, "y" : 11.42 }, + "6" : { "x" : 23.83, "y" : -13.01 }, + "7" : { "x" : 5.07, "y" : -26.74 }, + "8" : { "x" : 9.67, "y" : -0.04 }, + "9" : { "x" : 12.60, "y" : -32.12 }, + "10" : { "x" : 18.72, "y" : 13.61 }, + "11" : { "x" : 7.66, "y" : -15.12 } + }, + { + "index" : 69, + "ball" : { "x" : 14.04, "y" : 36.00 }, + "1" : { "x" : -36.71, "y" : 10.18 }, + "2" : { "x" : -4.14, "y" : 8.83 }, + "3" : { "x" : -2.35, "y" : 14.72 }, + "4" : { "x" : -0.62, "y" : -11.42 }, + "5" : { "x" : -2.07, "y" : 29.83 }, + "6" : { "x" : 7.66, "y" : 15.12 }, + "7" : { "x" : 9.67, "y" : 0.04 }, + "8" : { "x" : 5.07, "y" : 26.74 }, + "9" : { "x" : 18.72, "y" : -13.61 }, + "10" : { "x" : 12.60, "y" : 32.12 }, + "11" : { "x" : 23.83, "y" : 13.01 } + }, + { + "index" : 70, + "ball" : { "x" : 37.32, "y" : -11.22 }, + "1" : { "x" : -34.63, "y" : -4.02 }, + "2" : { "x" : 9.15, "y" : -3.13 }, + "3" : { "x" : 1.13, "y" : -1.28 }, + "4" : { "x" : 1.42, "y" : -20.25 }, + "5" : { "x" : 3.10, "y" : 15.58 }, + "6" : { "x" : 36.25, "y" : -7.23 }, + "7" : { "x" : 20.98, "y" : -12.88 }, + "8" : { "x" : 20.90, "y" : 7.99 }, + "9" : { "x" : 33.88, "y" : -20.50 }, + "10" : { "x" : 35.64, "y" : 10.84 }, + "11" : { "x" : 24.77, "y" : -1.91 } + }, + { + "index" : 71, + "ball" : { "x" : 37.32, "y" : 11.22 }, + "1" : { "x" : -34.63, "y" : 4.02 }, + "2" : { "x" : 9.15, "y" : 3.13 }, + "3" : { "x" : 1.13, "y" : 1.28 }, + "4" : { "x" : 3.10, "y" : -15.58 }, + "5" : { "x" : 1.42, "y" : 20.25 }, + "6" : { "x" : 24.77, "y" : 1.91 }, + "7" : { "x" : 20.90, "y" : -7.99 }, + "8" : { "x" : 20.98, "y" : 12.88 }, + "9" : { "x" : 35.64, "y" : -10.84 }, + "10" : { "x" : 33.88, "y" : 20.50 }, + "11" : { "x" : 36.25, "y" : 7.23 } + }, + { + "index" : 72, + "ball" : { "x" : 37.32, "y" : -4.62 }, + "1" : { "x" : -33.37, "y" : -1.93 }, + "2" : { "x" : 10.39, "y" : -1.57 }, + "3" : { "x" : 0.84, "y" : -1.13 }, + "4" : { "x" : 2.71, "y" : -17.79 }, + "5" : { "x" : 2.71, "y" : 16.51 }, + "6" : { "x" : 31.88, "y" : -6.37 }, + "7" : { "x" : 22.73, "y" : -12.00 }, + "8" : { "x" : 23.02, "y" : 9.81 }, + "9" : { "x" : 34.13, "y" : -17.15 }, + "10" : { "x" : 36.59, "y" : 12.45 }, + "11" : { "x" : 31.64, "y" : 2.30 } + }, + { + "index" : 73, + "ball" : { "x" : 37.32, "y" : 4.62 }, + "1" : { "x" : -33.37, "y" : 1.93 }, + "2" : { "x" : 10.39, "y" : 1.57 }, + "3" : { "x" : 0.84, "y" : 1.13 }, + "4" : { "x" : 2.71, "y" : -16.51 }, + "5" : { "x" : 2.71, "y" : 17.79 }, + "6" : { "x" : 31.64, "y" : -2.30 }, + "7" : { "x" : 23.02, "y" : -9.81 }, + "8" : { "x" : 22.73, "y" : 12.00 }, + "9" : { "x" : 36.59, "y" : -12.45 }, + "10" : { "x" : 34.13, "y" : 17.15 }, + "11" : { "x" : 31.88, "y" : 6.37 } + }, + { + "index" : 74, + "ball" : { "x" : 44.70, "y" : -12.62 }, + "1" : { "x" : -34.42, "y" : -4.23 }, + "2" : { "x" : 9.38, "y" : -1.93 }, + "3" : { "x" : 0.55, "y" : -0.33 }, + "4" : { "x" : 1.64, "y" : -21.12 }, + "5" : { "x" : 1.28, "y" : 17.91 }, + "6" : { "x" : 44.06, "y" : -9.34 }, + "7" : { "x" : 29.66, "y" : -14.85 }, + "8" : { "x" : 24.92, "y" : 5.65 }, + "9" : { "x" : 36.18, "y" : -24.02 }, + "10" : { "x" : 36.88, "y" : 9.67 }, + "11" : { "x" : 32.89, "y" : -3.63 } + }, + { + "index" : 75, + "ball" : { "x" : 44.70, "y" : 12.62 }, + "1" : { "x" : -34.42, "y" : 4.23 }, + "2" : { "x" : 9.38, "y" : 1.93 }, + "3" : { "x" : 0.55, "y" : 0.33 }, + "4" : { "x" : 1.28, "y" : -17.91 }, + "5" : { "x" : 1.64, "y" : 21.12 }, + "6" : { "x" : 32.89, "y" : 3.63 }, + "7" : { "x" : 24.92, "y" : -5.65 }, + "8" : { "x" : 29.66, "y" : 14.85 }, + "9" : { "x" : 36.88, "y" : -9.67 }, + "10" : { "x" : 36.18, "y" : 24.02 }, + "11" : { "x" : 44.06, "y" : 9.34 } + }, + { + "index" : 76, + "ball" : { "x" : -39.13, "y" : -19.31 }, + "1" : { "x" : -48.73, "y" : -3.50 }, + "2" : { "x" : -43.61, "y" : -2.59 }, + "3" : { "x" : -40.58, "y" : -8.24 }, + "4" : { "x" : -40.15, "y" : -20.14 }, + "5" : { "x" : -40.07, "y" : 4.09 }, + "6" : { "x" : -20.08, "y" : -12.54 }, + "7" : { "x" : -32.29, "y" : -15.73 }, + "8" : { "x" : -33.84, "y" : 7.89 }, + "9" : { "x" : -24.83, "y" : -28.29 }, + "10" : { "x" : -23.03, "y" : 20.52 }, + "11" : { "x" : -15.00, "y" : 3.63 } + }, + { + "index" : 77, + "ball" : { "x" : -39.13, "y" : 19.31 }, + "1" : { "x" : -48.73, "y" : 3.50 }, + "2" : { "x" : -43.61, "y" : 2.59 }, + "3" : { "x" : -40.58, "y" : 8.24 }, + "4" : { "x" : -40.07, "y" : -4.09 }, + "5" : { "x" : -40.15, "y" : 20.14 }, + "6" : { "x" : -15.00, "y" : -3.63 }, + "7" : { "x" : -33.84, "y" : -7.89 }, + "8" : { "x" : -32.29, "y" : 15.73 }, + "9" : { "x" : -23.03, "y" : -20.52 }, + "10" : { "x" : -24.83, "y" : 28.29 }, + "11" : { "x" : -20.08, "y" : 12.54 } + }, + { + "index" : 78, + "ball" : { "x" : -42.41, "y" : -5.07 }, + "1" : { "x" : -50.02, "y" : -2.88 }, + "2" : { "x" : -48.58, "y" : 0.06 }, + "3" : { "x" : -46.17, "y" : -1.48 }, + "4" : { "x" : -46.09, "y" : -7.70 }, + "5" : { "x" : -46.23, "y" : 5.77 }, + "6" : { "x" : -16.02, "y" : -8.32 }, + "7" : { "x" : -39.00, "y" : -10.42 }, + "8" : { "x" : -37.35, "y" : 6.48 }, + "9" : { "x" : -29.76, "y" : -22.02 }, + "10" : { "x" : -30.94, "y" : 19.93 }, + "11" : { "x" : -15.47, "y" : 7.77 } + }, + { + "index" : 79, + "ball" : { "x" : -42.41, "y" : 5.07 }, + "1" : { "x" : -50.02, "y" : 2.88 }, + "2" : { "x" : -48.58, "y" : -0.06 }, + "3" : { "x" : -46.17, "y" : 1.48 }, + "4" : { "x" : -46.23, "y" : -5.77 }, + "5" : { "x" : -46.09, "y" : 7.70 }, + "6" : { "x" : -15.47, "y" : -7.77 }, + "7" : { "x" : -37.35, "y" : -6.48 }, + "8" : { "x" : -39.00, "y" : 10.42 }, + "9" : { "x" : -30.94, "y" : -19.93 }, + "10" : { "x" : -29.76, "y" : 22.02 }, + "11" : { "x" : -16.02, "y" : 8.32 } + }, + { + "index" : 80, + "ball" : { "x" : -35.82, "y" : 0.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -42.25, "y" : -0.29 }, + "3" : { "x" : -40.70, "y" : -0.12 }, + "4" : { "x" : -40.58, "y" : -7.48 }, + "5" : { "x" : -40.58, "y" : 7.48 }, + "6" : { "x" : -15.47, "y" : -8.01 }, + "7" : { "x" : -33.06, "y" : -9.49 }, + "8" : { "x" : -33.06, "y" : 9.49 }, + "9" : { "x" : -25.61, "y" : -22.60 }, + "10" : { "x" : -25.61, "y" : 22.60 }, + "11" : { "x" : -15.47, "y" : 8.01 } + }, + { + "index" : 81, + "ball" : { "x" : -43.84, "y" : -15.33 }, + "1" : { "x" : -50.23, "y" : -5.43 }, + "2" : { "x" : -48.85, "y" : -2.67 }, + "3" : { "x" : -44.09, "y" : -6.12 }, + "4" : { "x" : -44.87, "y" : -14.58 }, + "5" : { "x" : -44.87, "y" : 5.91 }, + "6" : { "x" : -20.39, "y" : -8.71 }, + "7" : { "x" : -35.46, "y" : -11.07 }, + "8" : { "x" : -37.87, "y" : 11.23 }, + "9" : { "x" : -27.63, "y" : -25.08 }, + "10" : { "x" : -23.24, "y" : 19.30 }, + "11" : { "x" : -16.72, "y" : 6.21 } + }, + { + "index" : 82, + "ball" : { "x" : -43.84, "y" : 15.33 }, + "1" : { "x" : -50.23, "y" : 5.43 }, + "2" : { "x" : -48.85, "y" : 2.67 }, + "3" : { "x" : -44.09, "y" : 6.12 }, + "4" : { "x" : -44.87, "y" : -5.91 }, + "5" : { "x" : -44.87, "y" : 14.58 }, + "6" : { "x" : -16.72, "y" : -6.21 }, + "7" : { "x" : -37.87, "y" : -11.23 }, + "8" : { "x" : -35.46, "y" : 11.07 }, + "9" : { "x" : -23.24, "y" : -19.30 }, + "10" : { "x" : -27.63, "y" : 25.08 }, + "11" : { "x" : -20.39, "y" : 8.71 } + }, + { + "index" : 83, + "ball" : { "x" : 43.96, "y" : -36.00 }, + "1" : { "x" : -36.09, "y" : -9.87 }, + "2" : { "x" : 10.70, "y" : -11.29 }, + "3" : { "x" : 0.86, "y" : -6.00 }, + "4" : { "x" : 4.75, "y" : -26.32 }, + "5" : { "x" : 3.71, "y" : 13.67 }, + "6" : { "x" : 42.03, "y" : -16.13 }, + "7" : { "x" : 21.84, "y" : -22.78 }, + "8" : { "x" : 18.77, "y" : -1.19 }, + "9" : { "x" : 31.86, "y" : -31.34 }, + "10" : { "x" : 30.48, "y" : 10.45 }, + "11" : { "x" : 28.36, "y" : -10.35 } + }, + { + "index" : 84, + "ball" : { "x" : 43.96, "y" : 36.00 }, + "1" : { "x" : -36.09, "y" : 9.87 }, + "2" : { "x" : 10.70, "y" : 11.29 }, + "3" : { "x" : 0.86, "y" : 6.00 }, + "4" : { "x" : 3.71, "y" : -13.67 }, + "5" : { "x" : 4.75, "y" : 26.32 }, + "6" : { "x" : 28.36, "y" : 10.35 }, + "7" : { "x" : 18.77, "y" : 1.19 }, + "8" : { "x" : 21.84, "y" : 22.78 }, + "9" : { "x" : 30.48, "y" : -10.45 }, + "10" : { "x" : 31.86, "y" : 31.34 }, + "11" : { "x" : 42.03, "y" : 16.13 } + } + ] +} diff --git a/src/formations/442/offense-formation.conf b/src/formations/442/offense-formation.conf new file mode 100644 index 00000000..c8ed6a9c --- /dev/null +++ b/src/formations/442/offense-formation.conf @@ -0,0 +1,1390 @@ +{ + "version" : "20230529-143101", + "method" : "DelaunayTriangulation", + "role" : [ + { + "number" : 1, + "name" : "Goalie", + "type" : "G", + "side" : "C", + "pair" : 0 + }, + { + "number" : 2, + "name" : "Sweeper", + "type" : "DF", + "side" : "C", + "pair" : 0 + }, + { + "number" : 3, + "name" : "CenterBack", + "type" : "DF", + "side" : "C", + "pair" : 0 + }, + { + "number" : 4, + "name" : "SideBack", + "type" : "DF", + "side" : "L", + "pair" : 5 + }, + { + "number" : 5, + "name" : "SideBack", + "type" : "DF", + "side" : "R", + "pair" : 4 + }, + { + "number" : 6, + "name" : "CenterForward", + "type" : "FW", + "side" : "L", + "pair" : 11 + }, + { + "number" : 7, + "name" : "DefensiveHalf", + "type" : "MF", + "side" : "L", + "pair" : 8 + }, + { + "number" : 8, + "name" : "DefensiveHalf", + "type" : "MF", + "side" : "R", + "pair" : 7 + }, + { + "number" : 9, + "name" : "SideHalf", + "type" : "FW", + "side" : "L", + "pair" : 10 + }, + { + "number" : 10, + "name" : "SideHalf", + "type" : "FW", + "side" : "R", + "pair" : 9 + }, + { + "number" : 11, + "name" : "CenterForward", + "type" : "FW", + "side" : "R", + "pair" : 6 + } + ], + "data" : [ + { + "index" : 0, + "ball" : { "x" : 5.00, "y" : 0.00 }, + "1" : { "x" : -36.07, "y" : 0.23 }, + "2" : { "x" : -7.04, "y" : -0.04 }, + "3" : { "x" : -13.32, "y" : -0.04 }, + "4" : { "x" : -12.20, "y" : -14.94 }, + "5" : { "x" : -12.20, "y" : 14.94 }, + "6" : { "x" : 9.01, "y" : -9.08 }, + "7" : { "x" : -0.18, "y" : -21.37 }, + "8" : { "x" : -0.18, "y" : 21.37 }, + "9" : { "x" : 7.17, "y" : -28.03 }, + "10" : { "x" : 7.17, "y" : 28.03 }, + "11" : { "x" : 9.01, "y" : 9.08 } + }, + { + "index" : 1, + "ball" : { "x" : -26.95, "y" : -31.61 }, + "1" : { "x" : -45.32, "y" : -7.03 }, + "2" : { "x" : -21.46, "y" : -4.41 }, + "3" : { "x" : -29.71, "y" : -13.32 }, + "4" : { "x" : -28.21, "y" : -30.37 }, + "5" : { "x" : -30.12, "y" : 8.88 }, + "6" : { "x" : 3.46, "y" : -8.07 }, + "7" : { "x" : -13.27, "y" : -21.11 }, + "8" : { "x" : -13.94, "y" : 11.20 }, + "9" : { "x" : -1.25, "y" : -29.28 }, + "10" : { "x" : -2.62, "y" : 22.96 }, + "11" : { "x" : -8.00, "y" : -0.79 } + }, + { + "index" : 2, + "ball" : { "x" : -26.95, "y" : 31.61 }, + "1" : { "x" : -45.32, "y" : 7.03 }, + "2" : { "x" : -21.46, "y" : 4.41 }, + "3" : { "x" : -29.71, "y" : 13.32 }, + "4" : { "x" : -30.12, "y" : -8.88 }, + "5" : { "x" : -28.21, "y" : 30.37 }, + "6" : { "x" : -8.00, "y" : 0.79 }, + "7" : { "x" : -13.94, "y" : -11.20 }, + "8" : { "x" : -13.27, "y" : 21.11 }, + "9" : { "x" : -2.62, "y" : -22.96 }, + "10" : { "x" : -1.25, "y" : 29.28 }, + "11" : { "x" : 3.46, "y" : 8.07 } + }, + { + "index" : 3, + "ball" : { "x" : -41.78, "y" : 0.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -44.33, "y" : -1.93 }, + "3" : { "x" : -44.33, "y" : 1.93 }, + "4" : { "x" : -44.35, "y" : -8.21 }, + "5" : { "x" : -44.35, "y" : 8.21 }, + "6" : { "x" : -18.39, "y" : -8.22 }, + "7" : { "x" : -34.97, "y" : -7.40 }, + "8" : { "x" : -34.97, "y" : 7.40 }, + "9" : { "x" : -17.68, "y" : -27.30 }, + "10" : { "x" : -17.68, "y" : 27.30 }, + "11" : { "x" : -18.39, "y" : 8.22 } + }, + { + "index" : 4, + "ball" : { "x" : -36.02, "y" : -35.00 }, + "1" : { "x" : -48.25, "y" : -8.90 }, + "2" : { "x" : -34.38, "y" : -6.76 }, + "3" : { "x" : -34.47, "y" : -14.02 }, + "4" : { "x" : -35.74, "y" : -28.63 }, + "5" : { "x" : -34.38, "y" : 7.82 }, + "6" : { "x" : -17.34, "y" : -10.58 }, + "7" : { "x" : -26.19, "y" : -19.27 }, + "8" : { "x" : -22.10, "y" : 1.43 }, + "9" : { "x" : -19.81, "y" : -30.73 }, + "10" : { "x" : -6.38, "y" : 21.48 }, + "11" : { "x" : -4.41, "y" : -1.52 } + }, + { + "index" : 5, + "ball" : { "x" : -36.02, "y" : 35.00 }, + "1" : { "x" : -48.25, "y" : 8.90 }, + "2" : { "x" : -34.38, "y" : 6.76 }, + "3" : { "x" : -34.47, "y" : 14.02 }, + "4" : { "x" : -34.38, "y" : -7.82 }, + "5" : { "x" : -35.74, "y" : 28.63 }, + "6" : { "x" : -17.34, "y" : 10.58 }, + "7" : { "x" : -22.10, "y" : -1.43 }, + "8" : { "x" : -26.19, "y" : 19.27 }, + "9" : { "x" : -6.38, "y" : -21.48 }, + "10" : { "x" : -19.81, "y" : 30.73 }, + "11" : { "x" : -4.41, "y" : 1.52 } + }, + { + "index" : 6, + "ball" : { "x" : -36.04, "y" : -9.96 }, + "1" : { "x" : -47.90, "y" : -3.63 }, + "2" : { "x" : -40.56, "y" : 0.12 }, + "3" : { "x" : -38.42, "y" : -3.58 }, + "4" : { "x" : -40.54, "y" : -11.88 }, + "5" : { "x" : -39.81, "y" : 6.82 }, + "6" : { "x" : -18.17, "y" : -7.50 }, + "7" : { "x" : -31.59, "y" : -9.02 }, + "8" : { "x" : -29.36, "y" : 5.89 }, + "9" : { "x" : -20.30, "y" : -29.67 }, + "10" : { "x" : -14.65, "y" : 25.50 }, + "11" : { "x" : -14.56, "y" : 6.85 } + }, + { + "index" : 7, + "ball" : { "x" : -36.04, "y" : 9.96 }, + "1" : { "x" : -47.90, "y" : 3.63 }, + "2" : { "x" : -40.56, "y" : -0.12 }, + "3" : { "x" : -38.42, "y" : 3.58 }, + "4" : { "x" : -39.81, "y" : -6.82 }, + "5" : { "x" : -40.54, "y" : 11.88 }, + "6" : { "x" : -14.56, "y" : -6.85 }, + "7" : { "x" : -29.36, "y" : -5.89 }, + "8" : { "x" : -31.59, "y" : 9.02 }, + "9" : { "x" : -14.65, "y" : -25.50 }, + "10" : { "x" : -20.30, "y" : 29.67 }, + "11" : { "x" : -18.17, "y" : 7.50 } + }, + { + "index" : 8, + "ball" : { "x" : -43.39, "y" : -9.53 }, + "1" : { "x" : -50.04, "y" : -5.66 }, + "2" : { "x" : -46.33, "y" : -4.08 }, + "3" : { "x" : -42.36, "y" : -2.59 }, + "4" : { "x" : -44.28, "y" : -12.02 }, + "5" : { "x" : -43.84, "y" : 5.79 }, + "6" : { "x" : -22.13, "y" : -8.44 }, + "7" : { "x" : -34.75, "y" : -13.60 }, + "8" : { "x" : -33.09, "y" : 5.02 }, + "9" : { "x" : -22.18, "y" : -29.83 }, + "10" : { "x" : -17.60, "y" : 23.61 }, + "11" : { "x" : -15.50, "y" : 6.20 } + }, + { + "index" : 9, + "ball" : { "x" : -43.39, "y" : 9.53 }, + "1" : { "x" : -50.04, "y" : 5.66 }, + "2" : { "x" : -46.33, "y" : 4.08 }, + "3" : { "x" : -42.36, "y" : 2.59 }, + "4" : { "x" : -43.84, "y" : -5.79 }, + "5" : { "x" : -44.28, "y" : 12.02 }, + "6" : { "x" : -15.50, "y" : -6.20 }, + "7" : { "x" : -33.09, "y" : -5.02 }, + "8" : { "x" : -34.75, "y" : 13.60 }, + "9" : { "x" : -17.60, "y" : -23.61 }, + "10" : { "x" : -22.18, "y" : 29.83 }, + "11" : { "x" : -22.13, "y" : 8.44 } + }, + { + "index" : 10, + "ball" : { "x" : -54.50, "y" : -36.00 }, + "1" : { "x" : -50.64, "y" : -6.46 }, + "2" : { "x" : -46.26, "y" : -6.51 }, + "3" : { "x" : -43.70, "y" : -13.36 }, + "4" : { "x" : -48.13, "y" : -28.69 }, + "5" : { "x" : -43.30, "y" : 2.81 }, + "6" : { "x" : -23.00, "y" : -11.54 }, + "7" : { "x" : -37.57, "y" : -19.93 }, + "8" : { "x" : -33.82, "y" : -5.58 }, + "9" : { "x" : -31.92, "y" : -30.65 }, + "10" : { "x" : -18.17, "y" : 19.36 }, + "11" : { "x" : -6.99, "y" : -1.66 } + }, + { + "index" : 11, + "ball" : { "x" : -54.50, "y" : 36.00 }, + "1" : { "x" : -50.64, "y" : 6.46 }, + "2" : { "x" : -46.26, "y" : 6.51 }, + "3" : { "x" : -43.70, "y" : 13.36 }, + "4" : { "x" : -43.30, "y" : -2.81 }, + "5" : { "x" : -48.13, "y" : 28.69 }, + "6" : { "x" : -6.99, "y" : 1.66 }, + "7" : { "x" : -33.82, "y" : 5.58 }, + "8" : { "x" : -37.57, "y" : 19.93 }, + "9" : { "x" : -18.17, "y" : -19.36 }, + "10" : { "x" : -31.92, "y" : 30.65 }, + "11" : { "x" : -23.00, "y" : 11.54 } + }, + { + "index" : 12, + "ball" : { "x" : -54.50, "y" : 0.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -46.95, "y" : -0.40 }, + "3" : { "x" : -45.28, "y" : -0.47 }, + "4" : { "x" : -43.87, "y" : -15.43 }, + "5" : { "x" : -43.87, "y" : 15.43 }, + "6" : { "x" : -19.68, "y" : -8.07 }, + "7" : { "x" : -32.25, "y" : -8.96 }, + "8" : { "x" : -32.25, "y" : 8.96 }, + "9" : { "x" : -21.85, "y" : -28.11 }, + "10" : { "x" : -21.85, "y" : 28.11 }, + "11" : { "x" : -19.68, "y" : 8.07 } + }, + { + "index" : 13, + "ball" : { "x" : -54.50, "y" : -10.57 }, + "1" : { "x" : -50.91, "y" : -6.27 }, + "2" : { "x" : -46.44, "y" : -4.20 }, + "3" : { "x" : -42.65, "y" : -2.52 }, + "4" : { "x" : -46.62, "y" : -12.61 }, + "5" : { "x" : -45.38, "y" : 4.62 }, + "6" : { "x" : -21.92, "y" : -9.08 }, + "7" : { "x" : -37.31, "y" : -9.02 }, + "8" : { "x" : -34.31, "y" : 3.45 }, + "9" : { "x" : -31.67, "y" : -27.21 }, + "10" : { "x" : -20.30, "y" : 24.51 }, + "11" : { "x" : -17.38, "y" : 5.98 } + }, + { + "index" : 14, + "ball" : { "x" : -54.50, "y" : 10.57 }, + "1" : { "x" : -50.91, "y" : 6.27 }, + "2" : { "x" : -46.44, "y" : 4.20 }, + "3" : { "x" : -42.65, "y" : 2.52 }, + "4" : { "x" : -45.38, "y" : -4.62 }, + "5" : { "x" : -46.62, "y" : 12.61 }, + "6" : { "x" : -17.38, "y" : -5.98 }, + "7" : { "x" : -34.31, "y" : -3.45 }, + "8" : { "x" : -37.31, "y" : 9.02 }, + "9" : { "x" : -20.30, "y" : -24.51 }, + "10" : { "x" : -31.67, "y" : 27.21 }, + "11" : { "x" : -21.92, "y" : 9.08 } + }, + { + "index" : 15, + "ball" : { "x" : -42.10, "y" : -28.03 }, + "1" : { "x" : -48.49, "y" : -6.73 }, + "2" : { "x" : -43.04, "y" : -4.78 }, + "3" : { "x" : -38.84, "y" : -11.79 }, + "4" : { "x" : -43.11, "y" : -25.07 }, + "5" : { "x" : -38.80, "y" : 10.03 }, + "6" : { "x" : -19.15, "y" : -8.44 }, + "7" : { "x" : -27.66, "y" : -16.49 }, + "8" : { "x" : -27.50, "y" : 0.70 }, + "9" : { "x" : -22.34, "y" : -30.57 }, + "10" : { "x" : -13.83, "y" : 21.24 }, + "11" : { "x" : -5.48, "y" : -1.36 } + }, + { + "index" : 16, + "ball" : { "x" : -42.10, "y" : 28.03 }, + "1" : { "x" : -48.49, "y" : 6.73 }, + "2" : { "x" : -43.04, "y" : 4.78 }, + "3" : { "x" : -38.84, "y" : 11.79 }, + "4" : { "x" : -38.80, "y" : -10.03 }, + "5" : { "x" : -43.11, "y" : 25.07 }, + "6" : { "x" : -19.15, "y" : 8.44 }, + "7" : { "x" : -27.50, "y" : -0.70 }, + "8" : { "x" : -27.66, "y" : 16.49 }, + "9" : { "x" : -13.83, "y" : -21.24 }, + "10" : { "x" : -22.34, "y" : 30.57 }, + "11" : { "x" : -5.48, "y" : 1.36 } + }, + { + "index" : 17, + "ball" : { "x" : -48.97, "y" : -17.73 }, + "1" : { "x" : -50.59, "y" : -6.55 }, + "2" : { "x" : -46.54, "y" : -3.46 }, + "3" : { "x" : -41.63, "y" : -5.51 }, + "4" : { "x" : -45.08, "y" : -15.61 }, + "5" : { "x" : -43.55, "y" : 7.77 }, + "6" : { "x" : -22.49, "y" : -8.65 }, + "7" : { "x" : -34.54, "y" : -13.08 }, + "8" : { "x" : -31.03, "y" : 4.08 }, + "9" : { "x" : -27.25, "y" : -29.34 }, + "10" : { "x" : -17.89, "y" : 22.49 }, + "11" : { "x" : -15.86, "y" : 4.40 } + }, + { + "index" : 18, + "ball" : { "x" : -48.97, "y" : 17.73 }, + "1" : { "x" : -50.59, "y" : 6.55 }, + "2" : { "x" : -46.54, "y" : 3.46 }, + "3" : { "x" : -41.63, "y" : 5.51 }, + "4" : { "x" : -43.55, "y" : -7.77 }, + "5" : { "x" : -45.08, "y" : 15.61 }, + "6" : { "x" : -15.86, "y" : -4.40 }, + "7" : { "x" : -31.03, "y" : -4.08 }, + "8" : { "x" : -34.54, "y" : 13.08 }, + "9" : { "x" : -17.89, "y" : -22.49 }, + "10" : { "x" : -27.25, "y" : 29.34 }, + "11" : { "x" : -22.49, "y" : 8.65 } + }, + { + "index" : 19, + "ball" : { "x" : -22.08, "y" : 0.00 }, + "1" : { "x" : -43.80, "y" : 0.00 }, + "2" : { "x" : -15.83, "y" : 0.00 }, + "3" : { "x" : -24.98, "y" : 0.00 }, + "4" : { "x" : -24.06, "y" : -18.05 }, + "5" : { "x" : -24.06, "y" : 18.05 }, + "6" : { "x" : -1.30, "y" : -9.52 }, + "7" : { "x" : -12.20, "y" : -13.95 }, + "8" : { "x" : -12.20, "y" : 13.95 }, + "9" : { "x" : -9.32, "y" : -28.20 }, + "10" : { "x" : -9.32, "y" : 28.20 }, + "11" : { "x" : -1.30, "y" : 9.52 } + }, + { + "index" : 20, + "ball" : { "x" : -31.00, "y" : 0.00 }, + "1" : { "x" : -46.84, "y" : 0.00 }, + "2" : { "x" : -34.96, "y" : -2.59 }, + "3" : { "x" : -34.80, "y" : 2.59 }, + "4" : { "x" : -34.16, "y" : -13.12 }, + "5" : { "x" : -34.16, "y" : 13.12 }, + "6" : { "x" : -11.97, "y" : -9.23 }, + "7" : { "x" : -25.82, "y" : -9.51 }, + "8" : { "x" : -25.82, "y" : 9.51 }, + "9" : { "x" : -9.82, "y" : -30.24 }, + "10" : { "x" : -9.82, "y" : 30.24 }, + "11" : { "x" : -11.97, "y" : 9.23 } + }, + { + "index" : 21, + "ball" : { "x" : -48.35, "y" : -9.55 }, + "1" : { "x" : -51.21, "y" : -6.74 }, + "2" : { "x" : -47.57, "y" : -4.29 }, + "3" : { "x" : -44.16, "y" : -2.95 }, + "4" : { "x" : -46.40, "y" : -12.90 }, + "5" : { "x" : -43.84, "y" : 6.89 }, + "6" : { "x" : -20.84, "y" : -9.30 }, + "7" : { "x" : -34.96, "y" : -12.57 }, + "8" : { "x" : -34.23, "y" : 5.22 }, + "9" : { "x" : -25.36, "y" : -25.80 }, + "10" : { "x" : -18.33, "y" : 26.40 }, + "11" : { "x" : -18.60, "y" : 5.62 } + }, + { + "index" : 22, + "ball" : { "x" : 15.14, "y" : 0.00 }, + "1" : { "x" : -33.38, "y" : 0.00 }, + "2" : { "x" : 3.46, "y" : 0.34 }, + "3" : { "x" : -4.81, "y" : 0.14 }, + "4" : { "x" : -3.11, "y" : -18.87 }, + "5" : { "x" : -3.11, "y" : 18.87 }, + "6" : { "x" : 21.05, "y" : -9.88 }, + "7" : { "x" : 10.90, "y" : -20.77 }, + "8" : { "x" : 10.90, "y" : 20.77 }, + "9" : { "x" : 20.46, "y" : -24.68 }, + "10" : { "x" : 20.46, "y" : 24.68 }, + "11" : { "x" : 21.05, "y" : 9.88 } + }, + { + "index" : 23, + "ball" : { "x" : -48.35, "y" : 9.55 }, + "1" : { "x" : -51.21, "y" : 6.74 }, + "2" : { "x" : -47.57, "y" : 4.29 }, + "3" : { "x" : -44.16, "y" : 2.95 }, + "4" : { "x" : -43.84, "y" : -6.89 }, + "5" : { "x" : -46.40, "y" : 12.90 }, + "6" : { "x" : -18.60, "y" : -5.62 }, + "7" : { "x" : -34.23, "y" : -5.22 }, + "8" : { "x" : -34.96, "y" : 12.57 }, + "9" : { "x" : -18.33, "y" : -26.40 }, + "10" : { "x" : -25.36, "y" : 25.80 }, + "11" : { "x" : -20.84, "y" : 9.30 } + }, + { + "index" : 24, + "ball" : { "x" : 12.06, "y" : -9.13 }, + "1" : { "x" : -34.66, "y" : -5.62 }, + "2" : { "x" : 3.17, "y" : -0.72 }, + "3" : { "x" : -4.90, "y" : -3.80 }, + "4" : { "x" : -4.58, "y" : -18.78 }, + "5" : { "x" : -2.86, "y" : 18.46 }, + "6" : { "x" : 23.86, "y" : -7.50 }, + "7" : { "x" : 9.69, "y" : -22.46 }, + "8" : { "x" : 10.42, "y" : 19.09 }, + "9" : { "x" : 22.12, "y" : -30.05 }, + "10" : { "x" : 22.67, "y" : 27.71 }, + "11" : { "x" : 16.22, "y" : 2.52 } + }, + { + "index" : 25, + "ball" : { "x" : 12.06, "y" : 9.13 }, + "1" : { "x" : -34.66, "y" : 5.62 }, + "2" : { "x" : 3.17, "y" : 0.72 }, + "3" : { "x" : -4.90, "y" : 3.80 }, + "4" : { "x" : -2.86, "y" : -18.46 }, + "5" : { "x" : -4.58, "y" : 18.78 }, + "6" : { "x" : 16.22, "y" : -2.52 }, + "7" : { "x" : 10.42, "y" : -19.09 }, + "8" : { "x" : 9.69, "y" : 22.46 }, + "9" : { "x" : 22.67, "y" : -27.71 }, + "10" : { "x" : 22.12, "y" : 30.05 }, + "11" : { "x" : 23.86, "y" : 7.50 } + }, + { + "index" : 26, + "ball" : { "x" : 11.63, "y" : -16.76 }, + "1" : { "x" : -37.47, "y" : -6.91 }, + "2" : { "x" : 3.84, "y" : -7.20 }, + "3" : { "x" : -4.41, "y" : -5.14 }, + "4" : { "x" : -4.85, "y" : -21.74 }, + "5" : { "x" : -4.05, "y" : 12.22 }, + "6" : { "x" : 24.37, "y" : -9.88 }, + "7" : { "x" : 5.99, "y" : -21.67 }, + "8" : { "x" : 7.94, "y" : 9.10 }, + "9" : { "x" : 23.39, "y" : -31.34 }, + "10" : { "x" : 24.72, "y" : 23.94 }, + "11" : { "x" : 12.33, "y" : -0.65 } + }, + { + "index" : 27, + "ball" : { "x" : 11.63, "y" : 16.76 }, + "1" : { "x" : -37.47, "y" : 6.91 }, + "2" : { "x" : 3.84, "y" : 7.20 }, + "3" : { "x" : -4.41, "y" : 5.14 }, + "4" : { "x" : -4.05, "y" : -12.22 }, + "5" : { "x" : -4.85, "y" : 21.74 }, + "6" : { "x" : 12.33, "y" : 0.65 }, + "7" : { "x" : 7.94, "y" : -9.10 }, + "8" : { "x" : 5.99, "y" : 21.67 }, + "9" : { "x" : 24.72, "y" : -23.94 }, + "10" : { "x" : 23.39, "y" : 31.34 }, + "11" : { "x" : 24.37, "y" : 9.88 } + }, + { + "index" : 28, + "ball" : { "x" : 23.43, "y" : -17.75 }, + "1" : { "x" : -35.37, "y" : -6.91 }, + "2" : { "x" : 7.88, "y" : -6.20 }, + "3" : { "x" : -3.90, "y" : -5.58 }, + "4" : { "x" : -3.57, "y" : -20.84 }, + "5" : { "x" : 0.00, "y" : 14.28 }, + "6" : { "x" : 33.96, "y" : -8.80 }, + "7" : { "x" : 19.33, "y" : -18.51 }, + "8" : { "x" : 20.58, "y" : 16.11 }, + "9" : { "x" : 33.80, "y" : -30.32 }, + "10" : { "x" : 32.08, "y" : 25.46 }, + "11" : { "x" : 25.45, "y" : 3.39 } + }, + { + "index" : 29, + "ball" : { "x" : 23.43, "y" : 17.75 }, + "1" : { "x" : -35.37, "y" : 6.91 }, + "2" : { "x" : 7.88, "y" : 6.20 }, + "3" : { "x" : -3.90, "y" : 5.58 }, + "4" : { "x" : 0.00, "y" : -14.28 }, + "5" : { "x" : -3.57, "y" : 20.84 }, + "6" : { "x" : 25.45, "y" : -3.39 }, + "7" : { "x" : 20.58, "y" : -16.11 }, + "8" : { "x" : 19.33, "y" : 18.51 }, + "9" : { "x" : 32.08, "y" : -25.46 }, + "10" : { "x" : 33.80, "y" : 30.32 }, + "11" : { "x" : 33.96, "y" : 8.80 } + }, + { + "index" : 30, + "ball" : { "x" : 41.30, "y" : -6.40 }, + "1" : { "x" : -34.66, "y" : -4.57 }, + "2" : { "x" : 12.00, "y" : -2.52 }, + "3" : { "x" : 1.20, "y" : -1.13 }, + "4" : { "x" : 2.59, "y" : -18.28 }, + "5" : { "x" : 5.22, "y" : 15.80 }, + "6" : { "x" : 45.57, "y" : -1.59 }, + "7" : { "x" : 30.41, "y" : -14.99 }, + "8" : { "x" : 28.60, "y" : 16.68 }, + "9" : { "x" : 46.08, "y" : -12.07 }, + "10" : { "x" : 46.25, "y" : 7.04 }, + "11" : { "x" : 35.90, "y" : 1.08 } + }, + { + "index" : 31, + "ball" : { "x" : 41.30, "y" : 6.40 }, + "1" : { "x" : -34.66, "y" : 4.57 }, + "2" : { "x" : 12.00, "y" : 2.52 }, + "3" : { "x" : 1.20, "y" : 1.13 }, + "4" : { "x" : 5.22, "y" : -15.80 }, + "5" : { "x" : 2.59, "y" : 18.28 }, + "6" : { "x" : 35.90, "y" : -1.08 }, + "7" : { "x" : 28.60, "y" : -16.68 }, + "8" : { "x" : 30.41, "y" : 14.99 }, + "9" : { "x" : 46.25, "y" : -7.04 }, + "10" : { "x" : 46.08, "y" : 12.07 }, + "11" : { "x" : 45.57, "y" : 1.59 } + }, + { + "index" : 32, + "ball" : { "x" : 43.35, "y" : 0.00 }, + "1" : { "x" : -32.56, "y" : -0.12 }, + "2" : { "x" : 12.00, "y" : -0.26 }, + "3" : { "x" : 0.69, "y" : -0.04 }, + "4" : { "x" : 3.03, "y" : -18.54 }, + "5" : { "x" : 3.03, "y" : 18.54 }, + "6" : { "x" : 36.70, "y" : -4.90 }, + "7" : { "x" : 29.64, "y" : -11.37 }, + "8" : { "x" : 29.64, "y" : 11.37 }, + "9" : { "x" : 41.05, "y" : -9.76 }, + "10" : { "x" : 41.05, "y" : 9.76 }, + "11" : { "x" : 36.70, "y" : 4.90 } + }, + { + "index" : 33, + "ball" : { "x" : 54.50, "y" : 0.00 }, + "1" : { "x" : -32.20, "y" : 0.00 }, + "2" : { "x" : 12.15, "y" : -0.40 }, + "3" : { "x" : 0.55, "y" : 0.11 }, + "4" : { "x" : 4.34, "y" : -19.36 }, + "5" : { "x" : 4.34, "y" : 19.36 }, + "6" : { "x" : 41.46, "y" : -4.76 }, + "7" : { "x" : 31.84, "y" : -10.84 }, + "8" : { "x" : 31.84, "y" : 10.84 }, + "9" : { "x" : 48.63, "y" : -9.01 }, + "10" : { "x" : 48.63, "y" : 9.01 }, + "11" : { "x" : 41.46, "y" : 4.76 } + }, + { + "index" : 34, + "ball" : { "x" : 48.31, "y" : -6.49 }, + "1" : { "x" : -34.20, "y" : -4.22 }, + "2" : { "x" : 12.95, "y" : -4.29 }, + "3" : { "x" : 1.20, "y" : -0.58 }, + "4" : { "x" : 4.30, "y" : -19.64 }, + "5" : { "x" : 4.29, "y" : 17.68 }, + "6" : { "x" : 34.51, "y" : -1.26 }, + "7" : { "x" : 32.59, "y" : -11.09 }, + "8" : { "x" : 32.69, "y" : 7.55 }, + "9" : { "x" : 44.00, "y" : -9.77 }, + "10" : { "x" : 45.61, "y" : 6.53 }, + "11" : { "x" : 47.49, "y" : -0.75 } + }, + { + "index" : 35, + "ball" : { "x" : 48.31, "y" : 6.49 }, + "1" : { "x" : -34.20, "y" : 4.22 }, + "2" : { "x" : 12.95, "y" : 4.29 }, + "3" : { "x" : 1.20, "y" : 0.58 }, + "4" : { "x" : 4.29, "y" : -17.68 }, + "5" : { "x" : 4.30, "y" : 19.64 }, + "6" : { "x" : 34.51, "y" : 1.26 }, + "7" : { "x" : 32.69, "y" : -7.55 }, + "8" : { "x" : 32.59, "y" : 11.09 }, + "9" : { "x" : 45.61, "y" : -6.53 }, + "10" : { "x" : 44.00, "y" : 9.77 }, + "11" : { "x" : 47.49, "y" : 0.75 } + }, + { + "index" : 36, + "ball" : { "x" : 0.12, "y" : -13.21 }, + "1" : { "x" : -38.06, "y" : -5.27 }, + "2" : { "x" : -2.88, "y" : -3.16 }, + "3" : { "x" : -12.31, "y" : -2.84 }, + "4" : { "x" : -11.38, "y" : -22.71 }, + "5" : { "x" : -12.60, "y" : 13.71 }, + "6" : { "x" : 17.95, "y" : -11.10 }, + "7" : { "x" : 1.38, "y" : -23.78 }, + "8" : { "x" : -0.30, "y" : 17.04 }, + "9" : { "x" : 13.13, "y" : -30.56 }, + "10" : { "x" : 12.82, "y" : 22.91 }, + "11" : { "x" : 11.46, "y" : 4.40 } + }, + { + "index" : 37, + "ball" : { "x" : 0.12, "y" : 13.21 }, + "1" : { "x" : -38.06, "y" : 5.27 }, + "2" : { "x" : -2.88, "y" : 3.16 }, + "3" : { "x" : -12.31, "y" : 2.84 }, + "4" : { "x" : -12.60, "y" : -13.71 }, + "5" : { "x" : -11.38, "y" : 22.71 }, + "6" : { "x" : 11.46, "y" : -4.40 }, + "7" : { "x" : -0.30, "y" : -17.04 }, + "8" : { "x" : 1.38, "y" : 23.78 }, + "9" : { "x" : 12.82, "y" : -22.91 }, + "10" : { "x" : 13.13, "y" : 30.56 }, + "11" : { "x" : 17.95, "y" : 11.10 } + }, + { + "index" : 38, + "ball" : { "x" : 13.61, "y" : -30.73 }, + "1" : { "x" : -36.42, "y" : -10.07 }, + "2" : { "x" : 3.55, "y" : -6.01 }, + "3" : { "x" : -3.56, "y" : -12.64 }, + "4" : { "x" : -3.11, "y" : -27.79 }, + "5" : { "x" : -0.90, "y" : 9.94 }, + "6" : { "x" : 23.43, "y" : -17.52 }, + "7" : { "x" : 7.70, "y" : -23.35 }, + "8" : { "x" : 12.12, "y" : 7.16 }, + "9" : { "x" : 25.57, "y" : -31.41 }, + "10" : { "x" : 23.50, "y" : 17.32 }, + "11" : { "x" : 13.99, "y" : -5.48 } + }, + { + "index" : 39, + "ball" : { "x" : 13.61, "y" : 30.73 }, + "1" : { "x" : -36.42, "y" : 10.07 }, + "2" : { "x" : 3.55, "y" : 6.01 }, + "3" : { "x" : -3.56, "y" : 12.64 }, + "4" : { "x" : -0.90, "y" : -9.94 }, + "5" : { "x" : -3.11, "y" : 27.79 }, + "6" : { "x" : 13.99, "y" : 5.48 }, + "7" : { "x" : 12.12, "y" : -7.16 }, + "8" : { "x" : 7.70, "y" : 23.35 }, + "9" : { "x" : 23.50, "y" : -17.32 }, + "10" : { "x" : 25.57, "y" : 31.41 }, + "11" : { "x" : 23.43, "y" : 17.52 } + }, + { + "index" : 40, + "ball" : { "x" : 24.32, "y" : -7.45 }, + "1" : { "x" : -33.96, "y" : -3.86 }, + "2" : { "x" : 9.23, "y" : -3.51 }, + "3" : { "x" : -2.15, "y" : -1.71 }, + "4" : { "x" : -1.45, "y" : -18.37 }, + "5" : { "x" : -1.79, "y" : 14.97 }, + "6" : { "x" : 33.96, "y" : -5.77 }, + "7" : { "x" : 17.31, "y" : -16.01 }, + "8" : { "x" : 17.31, "y" : 15.24 }, + "9" : { "x" : 33.56, "y" : -26.68 }, + "10" : { "x" : 32.08, "y" : 24.14 }, + "11" : { "x" : 23.22, "y" : 2.60 } + }, + { + "index" : 41, + "ball" : { "x" : 24.32, "y" : 7.45 }, + "1" : { "x" : -33.96, "y" : 3.86 }, + "2" : { "x" : 9.23, "y" : 3.51 }, + "3" : { "x" : -2.15, "y" : 1.71 }, + "4" : { "x" : -1.79, "y" : -14.97 }, + "5" : { "x" : -1.45, "y" : 18.37 }, + "6" : { "x" : 23.22, "y" : -2.60 }, + "7" : { "x" : 17.31, "y" : -15.24 }, + "8" : { "x" : 17.31, "y" : 16.01 }, + "9" : { "x" : 32.08, "y" : -24.14 }, + "10" : { "x" : 33.56, "y" : 26.68 }, + "11" : { "x" : 33.96, "y" : 5.77 } + }, + { + "index" : 42, + "ball" : { "x" : -22.08, "y" : -18.00 }, + "1" : { "x" : -44.97, "y" : -5.15 }, + "2" : { "x" : -17.79, "y" : -4.09 }, + "3" : { "x" : -25.87, "y" : -7.93 }, + "4" : { "x" : -25.45, "y" : -22.79 }, + "5" : { "x" : -25.37, "y" : 11.91 }, + "6" : { "x" : 2.96, "y" : -7.07 }, + "7" : { "x" : -10.38, "y" : -19.28 }, + "8" : { "x" : -10.96, "y" : 13.22 }, + "9" : { "x" : 2.93, "y" : -29.60 }, + "10" : { "x" : -1.63, "y" : 29.09 }, + "11" : { "x" : -8.65, "y" : 1.59 } + }, + { + "index" : 43, + "ball" : { "x" : -22.08, "y" : 18.00 }, + "1" : { "x" : -44.97, "y" : 5.15 }, + "2" : { "x" : -17.79, "y" : 4.09 }, + "3" : { "x" : -25.87, "y" : 7.93 }, + "4" : { "x" : -25.37, "y" : -11.91 }, + "5" : { "x" : -25.45, "y" : 22.79 }, + "6" : { "x" : -8.65, "y" : -1.59 }, + "7" : { "x" : -10.96, "y" : -13.22 }, + "8" : { "x" : -10.38, "y" : 19.28 }, + "9" : { "x" : -1.63, "y" : -29.09 }, + "10" : { "x" : 2.93, "y" : 29.60 }, + "11" : { "x" : 2.96, "y" : 7.07 } + }, + { + "index" : 44, + "ball" : { "x" : -22.08, "y" : -9.00 }, + "1" : { "x" : -45.32, "y" : -3.63 }, + "2" : { "x" : -19.81, "y" : -0.62 }, + "3" : { "x" : -25.28, "y" : -6.90 }, + "4" : { "x" : -24.31, "y" : -18.46 }, + "5" : { "x" : -24.72, "y" : 15.92 }, + "6" : { "x" : 0.87, "y" : -4.76 }, + "7" : { "x" : -11.90, "y" : -11.85 }, + "8" : { "x" : -12.12, "y" : 13.32 }, + "9" : { "x" : -3.65, "y" : -29.66 }, + "10" : { "x" : -8.49, "y" : 27.54 }, + "11" : { "x" : -8.72, "y" : 2.67 } + }, + { + "index" : 45, + "ball" : { "x" : -22.08, "y" : 9.00 }, + "1" : { "x" : -45.32, "y" : 3.63 }, + "2" : { "x" : -19.81, "y" : 0.62 }, + "3" : { "x" : -25.28, "y" : 6.90 }, + "4" : { "x" : -24.72, "y" : -15.92 }, + "5" : { "x" : -24.31, "y" : 18.46 }, + "6" : { "x" : -8.72, "y" : -2.67 }, + "7" : { "x" : -12.12, "y" : -13.32 }, + "8" : { "x" : -11.90, "y" : 11.85 }, + "9" : { "x" : -8.49, "y" : -27.54 }, + "10" : { "x" : -3.65, "y" : 29.66 }, + "11" : { "x" : 0.87, "y" : 4.76 } + }, + { + "index" : 46, + "ball" : { "x" : 52.45, "y" : -10.72 }, + "1" : { "x" : -34.43, "y" : -3.75 }, + "2" : { "x" : 12.51, "y" : -3.32 }, + "3" : { "x" : 2.08, "y" : -0.99 }, + "4" : { "x" : 5.16, "y" : -21.40 }, + "5" : { "x" : 6.30, "y" : 18.54 }, + "6" : { "x" : 46.00, "y" : -5.84 }, + "7" : { "x" : 36.91, "y" : -11.01 }, + "8" : { "x" : 33.60, "y" : 7.55 }, + "9" : { "x" : 48.35, "y" : -12.99 }, + "10" : { "x" : 48.12, "y" : 7.19 }, + "11" : { "x" : 35.54, "y" : -2.67 } + }, + { + "index" : 47, + "ball" : { "x" : 52.45, "y" : 10.72 }, + "1" : { "x" : -34.43, "y" : 3.75 }, + "2" : { "x" : 12.51, "y" : 3.32 }, + "3" : { "x" : 2.08, "y" : 0.99 }, + "4" : { "x" : 6.30, "y" : -18.54 }, + "5" : { "x" : 5.16, "y" : 21.40 }, + "6" : { "x" : 35.54, "y" : 2.67 }, + "7" : { "x" : 33.60, "y" : -7.55 }, + "8" : { "x" : 36.91, "y" : 11.01 }, + "9" : { "x" : 48.12, "y" : -7.19 }, + "10" : { "x" : 48.35, "y" : 12.99 }, + "11" : { "x" : 46.00, "y" : 5.84 } + }, + { + "index" : 48, + "ball" : { "x" : 54.50, "y" : -36.00 }, + "1" : { "x" : -36.07, "y" : -9.84 }, + "2" : { "x" : 15.34, "y" : -12.45 }, + "3" : { "x" : 1.42, "y" : -4.85 }, + "4" : { "x" : 7.19, "y" : -26.29 }, + "5" : { "x" : 6.71, "y" : 14.53 }, + "6" : { "x" : 44.84, "y" : -19.18 }, + "7" : { "x" : 36.03, "y" : -33.31 }, + "8" : { "x" : 30.77, "y" : 0.24 }, + "9" : { "x" : 50.00, "y" : -26.39 }, + "10" : { "x" : 48.67, "y" : -6.12 }, + "11" : { "x" : 34.10, "y" : -16.65 } + }, + { + "index" : 49, + "ball" : { "x" : 54.50, "y" : 36.00 }, + "1" : { "x" : -36.07, "y" : 9.84 }, + "2" : { "x" : 15.34, "y" : 12.45 }, + "3" : { "x" : 1.42, "y" : 4.85 }, + "4" : { "x" : 6.71, "y" : -14.53 }, + "5" : { "x" : 7.19, "y" : 26.29 }, + "6" : { "x" : 34.10, "y" : 16.65 }, + "7" : { "x" : 30.77, "y" : -0.24 }, + "8" : { "x" : 36.03, "y" : 33.31 }, + "9" : { "x" : 48.67, "y" : 6.12 }, + "10" : { "x" : 50.00, "y" : 26.39 }, + "11" : { "x" : 44.84, "y" : 19.18 } + }, + { + "index" : 50, + "ball" : { "x" : 49.50, "y" : -20.51 }, + "1" : { "x" : -34.66, "y" : -5.04 }, + "2" : { "x" : 19.17, "y" : -6.47 }, + "3" : { "x" : 2.74, "y" : -3.03 }, + "4" : { "x" : 4.94, "y" : -22.05 }, + "5" : { "x" : 6.81, "y" : 16.78 }, + "6" : { "x" : 46.94, "y" : -6.13 }, + "7" : { "x" : 34.71, "y" : -19.62 }, + "8" : { "x" : 35.99, "y" : 5.96 }, + "9" : { "x" : 44.48, "y" : -15.56 }, + "10" : { "x" : 46.69, "y" : 0.20 }, + "11" : { "x" : 36.27, "y" : -9.59 } + }, + { + "index" : 51, + "ball" : { "x" : 49.50, "y" : 20.51 }, + "1" : { "x" : -34.66, "y" : 5.04 }, + "2" : { "x" : 19.17, "y" : 6.47 }, + "3" : { "x" : 2.74, "y" : 3.03 }, + "4" : { "x" : 6.81, "y" : -16.78 }, + "5" : { "x" : 4.94, "y" : 22.05 }, + "6" : { "x" : 36.27, "y" : 9.59 }, + "7" : { "x" : 35.99, "y" : -5.96 }, + "8" : { "x" : 34.71, "y" : 19.62 }, + "9" : { "x" : 46.69, "y" : -0.20 }, + "10" : { "x" : 44.48, "y" : 15.56 }, + "11" : { "x" : 46.94, "y" : 6.13 } + }, + { + "index" : 52, + "ball" : { "x" : 26.43, "y" : -36.00 }, + "1" : { "x" : -36.19, "y" : -9.95 }, + "2" : { "x" : 8.81, "y" : -7.64 }, + "3" : { "x" : -1.06, "y" : -10.14 }, + "4" : { "x" : 0.68, "y" : -26.37 }, + "5" : { "x" : -0.65, "y" : 12.48 }, + "6" : { "x" : 32.01, "y" : -17.09 }, + "7" : { "x" : 16.19, "y" : -25.70 }, + "8" : { "x" : 19.85, "y" : 7.13 }, + "9" : { "x" : 32.78, "y" : -29.85 }, + "10" : { "x" : 31.06, "y" : 18.61 }, + "11" : { "x" : 19.83, "y" : -11.03 } + }, + { + "index" : 53, + "ball" : { "x" : 26.43, "y" : 36.00 }, + "1" : { "x" : -36.19, "y" : 9.95 }, + "2" : { "x" : 8.81, "y" : 7.64 }, + "3" : { "x" : -1.06, "y" : 10.14 }, + "4" : { "x" : -0.65, "y" : -12.48 }, + "5" : { "x" : 0.68, "y" : 26.37 }, + "6" : { "x" : 19.83, "y" : 11.03 }, + "7" : { "x" : 19.85, "y" : -7.13 }, + "8" : { "x" : 16.19, "y" : 25.70 }, + "9" : { "x" : 31.06, "y" : -18.61 }, + "10" : { "x" : 32.78, "y" : 29.85 }, + "11" : { "x" : 32.01, "y" : 17.09 } + }, + { + "index" : 54, + "ball" : { "x" : 34.75, "y" : -26.90 }, + "1" : { "x" : -34.78, "y" : -5.62 }, + "2" : { "x" : 10.54, "y" : -11.78 }, + "3" : { "x" : 0.33, "y" : -5.73 }, + "4" : { "x" : 2.62, "y" : -25.50 }, + "5" : { "x" : 5.40, "y" : 14.12 }, + "6" : { "x" : 40.23, "y" : -14.20 }, + "7" : { "x" : 26.38, "y" : -24.04 }, + "8" : { "x" : 25.28, "y" : 3.10 }, + "9" : { "x" : 40.35, "y" : -18.15 }, + "10" : { "x" : 38.14, "y" : 10.00 }, + "11" : { "x" : 28.91, "y" : -9.95 } + }, + { + "index" : 55, + "ball" : { "x" : 34.75, "y" : 26.90 }, + "1" : { "x" : -34.78, "y" : 5.62 }, + "2" : { "x" : 10.54, "y" : 11.78 }, + "3" : { "x" : 0.33, "y" : 5.73 }, + "4" : { "x" : 5.40, "y" : -14.12 }, + "5" : { "x" : 2.62, "y" : 25.50 }, + "6" : { "x" : 28.91, "y" : 9.95 }, + "7" : { "x" : 25.28, "y" : -3.10 }, + "8" : { "x" : 26.38, "y" : 24.04 }, + "9" : { "x" : 38.14, "y" : -10.00 }, + "10" : { "x" : 40.35, "y" : 18.15 }, + "11" : { "x" : 40.23, "y" : 14.20 } + }, + { + "index" : 56, + "ball" : { "x" : 35.87, "y" : -19.92 }, + "1" : { "x" : -34.66, "y" : -4.68 }, + "2" : { "x" : 13.46, "y" : -6.88 }, + "3" : { "x" : 1.20, "y" : -4.12 }, + "4" : { "x" : 1.89, "y" : -21.45 }, + "5" : { "x" : 4.26, "y" : 14.28 }, + "6" : { "x" : 43.40, "y" : -6.71 }, + "7" : { "x" : 25.95, "y" : -18.05 }, + "8" : { "x" : 27.38, "y" : 8.22 }, + "9" : { "x" : 44.60, "y" : -13.80 }, + "10" : { "x" : 43.65, "y" : 2.91 }, + "11" : { "x" : 31.00, "y" : -5.34 } + }, + { + "index" : 57, + "ball" : { "x" : 35.87, "y" : 19.92 }, + "1" : { "x" : -34.66, "y" : 4.68 }, + "2" : { "x" : 13.46, "y" : 6.88 }, + "3" : { "x" : 1.20, "y" : 4.12 }, + "4" : { "x" : 4.26, "y" : -14.28 }, + "5" : { "x" : 1.89, "y" : 21.45 }, + "6" : { "x" : 31.00, "y" : 5.34 }, + "7" : { "x" : 27.38, "y" : -8.22 }, + "8" : { "x" : 25.95, "y" : 18.05 }, + "9" : { "x" : 43.65, "y" : -2.91 }, + "10" : { "x" : 44.60, "y" : 13.80 }, + "11" : { "x" : 43.40, "y" : 6.71 } + }, + { + "index" : 58, + "ball" : { "x" : 36.26, "y" : 0.00 }, + "1" : { "x" : -31.97, "y" : -0.23 }, + "2" : { "x" : 12.29, "y" : 0.00 }, + "3" : { "x" : -1.28, "y" : -0.18 }, + "4" : { "x" : 1.15, "y" : -19.68 }, + "5" : { "x" : 1.15, "y" : 19.68 }, + "6" : { "x" : 34.39, "y" : -5.62 }, + "7" : { "x" : 25.95, "y" : -16.20 }, + "8" : { "x" : 25.95, "y" : 16.20 }, + "9" : { "x" : 40.73, "y" : -9.65 }, + "10" : { "x" : 40.73, "y" : 9.65 }, + "11" : { "x" : 34.39, "y" : 5.62 } + }, + { + "index" : 59, + "ball" : { "x" : -2.64, "y" : -22.23 }, + "1" : { "x" : -38.76, "y" : -7.96 }, + "2" : { "x" : -2.61, "y" : -8.10 }, + "3" : { "x" : -12.81, "y" : -7.55 }, + "4" : { "x" : -11.58, "y" : -27.59 }, + "5" : { "x" : -13.10, "y" : 11.99 }, + "6" : { "x" : 14.28, "y" : -11.97 }, + "7" : { "x" : 0.55, "y" : -30.60 }, + "8" : { "x" : -1.26, "y" : 15.35 }, + "9" : { "x" : 13.37, "y" : -31.49 }, + "10" : { "x" : 9.93, "y" : 23.32 }, + "11" : { "x" : 10.60, "y" : 3.97 } + }, + { + "index" : 60, + "ball" : { "x" : -2.64, "y" : 22.23 }, + "1" : { "x" : -38.76, "y" : 7.96 }, + "2" : { "x" : -2.61, "y" : 8.10 }, + "3" : { "x" : -12.81, "y" : 7.55 }, + "4" : { "x" : -13.10, "y" : -11.99 }, + "5" : { "x" : -11.58, "y" : 27.59 }, + "6" : { "x" : 10.60, "y" : -3.97 }, + "7" : { "x" : -1.26, "y" : -15.35 }, + "8" : { "x" : 0.55, "y" : 30.60 }, + "9" : { "x" : 9.93, "y" : -23.32 }, + "10" : { "x" : 13.37, "y" : 31.49 }, + "11" : { "x" : 14.28, "y" : 11.97 } + }, + { + "index" : 61, + "ball" : { "x" : -11.99, "y" : -18.00 }, + "1" : { "x" : -39.93, "y" : -6.79 }, + "2" : { "x" : -10.38, "y" : -4.61 }, + "3" : { "x" : -17.55, "y" : -8.58 }, + "4" : { "x" : -16.78, "y" : -25.89 }, + "5" : { "x" : -16.76, "y" : 12.76 }, + "6" : { "x" : 11.25, "y" : -13.05 }, + "7" : { "x" : 0.14, "y" : -24.21 }, + "8" : { "x" : -0.00, "y" : 13.75 }, + "9" : { "x" : 9.31, "y" : -31.49 }, + "10" : { "x" : 9.52, "y" : 25.62 }, + "11" : { "x" : -0.07, "y" : 1.51 } + }, + { + "index" : 62, + "ball" : { "x" : -11.99, "y" : 18.00 }, + "1" : { "x" : -39.93, "y" : 6.79 }, + "2" : { "x" : -10.38, "y" : 4.61 }, + "3" : { "x" : -17.55, "y" : 8.58 }, + "4" : { "x" : -16.76, "y" : -12.76 }, + "5" : { "x" : -16.78, "y" : 25.89 }, + "6" : { "x" : -0.07, "y" : -1.51 }, + "7" : { "x" : -0.00, "y" : -13.75 }, + "8" : { "x" : 0.14, "y" : 24.21 }, + "9" : { "x" : 9.52, "y" : -25.62 }, + "10" : { "x" : 9.31, "y" : 31.49 }, + "11" : { "x" : 11.25, "y" : 13.05 } + }, + { + "index" : 63, + "ball" : { "x" : -11.99, "y" : -9.00 }, + "1" : { "x" : -40.29, "y" : -5.50 }, + "2" : { "x" : -7.00, "y" : -3.84 }, + "3" : { "x" : -18.39, "y" : -3.57 }, + "4" : { "x" : -17.43, "y" : -20.50 }, + "5" : { "x" : -17.11, "y" : 12.73 }, + "6" : { "x" : 11.97, "y" : -5.55 }, + "7" : { "x" : 1.10, "y" : -20.31 }, + "8" : { "x" : -2.65, "y" : 15.28 }, + "9" : { "x" : 4.96, "y" : -30.04 }, + "10" : { "x" : 6.10, "y" : 27.16 }, + "11" : { "x" : 3.68, "y" : 4.90 } + }, + { + "index" : 64, + "ball" : { "x" : -11.99, "y" : 9.00 }, + "1" : { "x" : -40.29, "y" : 5.50 }, + "2" : { "x" : -7.00, "y" : 3.84 }, + "3" : { "x" : -18.39, "y" : 3.57 }, + "4" : { "x" : -17.11, "y" : -12.73 }, + "5" : { "x" : -17.43, "y" : 20.50 }, + "6" : { "x" : 3.68, "y" : -4.90 }, + "7" : { "x" : -2.65, "y" : -15.28 }, + "8" : { "x" : 1.10, "y" : 20.31 }, + "9" : { "x" : 6.10, "y" : -27.16 }, + "10" : { "x" : 4.96, "y" : 30.04 }, + "11" : { "x" : 11.97, "y" : 5.55 } + }, + { + "index" : 65, + "ball" : { "x" : -11.99, "y" : 0.00 }, + "1" : { "x" : -40.64, "y" : 0.12 }, + "2" : { "x" : -8.07, "y" : 0.26 }, + "3" : { "x" : -16.44, "y" : -0.16 }, + "4" : { "x" : -17.46, "y" : -17.46 }, + "5" : { "x" : -17.46, "y" : 17.46 }, + "6" : { "x" : 4.33, "y" : -9.73 }, + "7" : { "x" : -3.84, "y" : -19.08 }, + "8" : { "x" : -3.84, "y" : 19.08 }, + "9" : { "x" : 7.03, "y" : -25.80 }, + "10" : { "x" : 7.03, "y" : 25.80 }, + "11" : { "x" : 4.33, "y" : 9.73 } + }, + { + "index" : 66, + "ball" : { "x" : -8.22, "y" : -36.00 }, + "1" : { "x" : -42.28, "y" : -7.61 }, + "2" : { "x" : -6.63, "y" : -7.04 }, + "3" : { "x" : -14.44, "y" : -13.10 }, + "4" : { "x" : -13.88, "y" : -29.89 }, + "5" : { "x" : -16.16, "y" : 10.63 }, + "6" : { "x" : 13.70, "y" : -15.43 }, + "7" : { "x" : -2.12, "y" : -22.36 }, + "8" : { "x" : -2.00, "y" : 8.89 }, + "9" : { "x" : 13.10, "y" : -31.34 }, + "10" : { "x" : 13.27, "y" : 18.22 }, + "11" : { "x" : 5.05, "y" : 0.43 } + }, + { + "index" : 67, + "ball" : { "x" : -8.22, "y" : 36.00 }, + "1" : { "x" : -42.28, "y" : 7.61 }, + "2" : { "x" : -6.63, "y" : 7.04 }, + "3" : { "x" : -14.44, "y" : 13.10 }, + "4" : { "x" : -16.16, "y" : -10.63 }, + "5" : { "x" : -13.88, "y" : 29.89 }, + "6" : { "x" : 5.05, "y" : -0.43 }, + "7" : { "x" : -2.00, "y" : -8.89 }, + "8" : { "x" : -2.12, "y" : 22.36 }, + "9" : { "x" : 13.27, "y" : -18.22 }, + "10" : { "x" : 13.10, "y" : 31.34 }, + "11" : { "x" : 13.70, "y" : 15.43 } + }, + { + "index" : 68, + "ball" : { "x" : 14.04, "y" : -36.00 }, + "1" : { "x" : -36.77, "y" : -10.07 }, + "2" : { "x" : 8.11, "y" : -12.31 }, + "3" : { "x" : -1.77, "y" : -9.93 }, + "4" : { "x" : -2.07, "y" : -29.83 }, + "5" : { "x" : -0.33, "y" : 11.64 }, + "6" : { "x" : 24.59, "y" : -18.89 }, + "7" : { "x" : 7.78, "y" : -26.40 }, + "8" : { "x" : 12.24, "y" : 8.37 }, + "9" : { "x" : 24.24, "y" : -30.74 }, + "10" : { "x" : 22.86, "y" : 14.04 }, + "11" : { "x" : 16.08, "y" : -4.11 } + }, + { + "index" : 69, + "ball" : { "x" : 14.04, "y" : 36.00 }, + "1" : { "x" : -36.77, "y" : 10.07 }, + "2" : { "x" : 8.11, "y" : 12.31 }, + "3" : { "x" : -1.77, "y" : 9.93 }, + "4" : { "x" : -0.33, "y" : -11.64 }, + "5" : { "x" : -2.07, "y" : 29.83 }, + "6" : { "x" : 16.08, "y" : 4.11 }, + "7" : { "x" : 12.24, "y" : -8.37 }, + "8" : { "x" : 7.78, "y" : 26.40 }, + "9" : { "x" : 22.86, "y" : -14.04 }, + "10" : { "x" : 24.24, "y" : 30.74 }, + "11" : { "x" : 24.59, "y" : 18.89 } + }, + { + "index" : 70, + "ball" : { "x" : 37.32, "y" : -11.22 }, + "1" : { "x" : -34.55, "y" : -4.22 }, + "2" : { "x" : 10.76, "y" : -3.76 }, + "3" : { "x" : 1.20, "y" : -1.28 }, + "4" : { "x" : 1.93, "y" : -20.17 }, + "5" : { "x" : 3.54, "y" : 15.51 }, + "6" : { "x" : 44.48, "y" : -3.46 }, + "7" : { "x" : 27.88, "y" : -15.59 }, + "8" : { "x" : 26.55, "y" : 15.84 }, + "9" : { "x" : 41.70, "y" : -14.73 }, + "10" : { "x" : 40.97, "y" : 9.98 }, + "11" : { "x" : 35.98, "y" : -0.14 } + }, + { + "index" : 71, + "ball" : { "x" : 37.32, "y" : 11.22 }, + "1" : { "x" : -34.55, "y" : 4.22 }, + "2" : { "x" : 10.76, "y" : 3.76 }, + "3" : { "x" : 1.20, "y" : 1.28 }, + "4" : { "x" : 3.54, "y" : -15.51 }, + "5" : { "x" : 1.93, "y" : 20.17 }, + "6" : { "x" : 35.98, "y" : 0.14 }, + "7" : { "x" : 26.55, "y" : -15.84 }, + "8" : { "x" : 27.88, "y" : 15.59 }, + "9" : { "x" : 40.97, "y" : -9.98 }, + "10" : { "x" : 41.70, "y" : 14.73 }, + "11" : { "x" : 44.48, "y" : 3.46 } + }, + { + "index" : 72, + "ball" : { "x" : 37.32, "y" : -4.62 }, + "1" : { "x" : -33.49, "y" : -1.87 }, + "2" : { "x" : 10.47, "y" : -1.42 }, + "3" : { "x" : 0.84, "y" : -1.20 }, + "4" : { "x" : 2.54, "y" : -17.72 }, + "5" : { "x" : 3.17, "y" : 16.45 }, + "6" : { "x" : 41.53, "y" : -3.53 }, + "7" : { "x" : 26.55, "y" : -15.96 }, + "8" : { "x" : 26.43, "y" : 16.68 }, + "9" : { "x" : 41.70, "y" : -9.91 }, + "10" : { "x" : 41.19, "y" : 9.10 }, + "11" : { "x" : 32.30, "y" : 4.76 } + }, + { + "index" : 73, + "ball" : { "x" : 37.32, "y" : 4.62 }, + "1" : { "x" : -33.49, "y" : 1.87 }, + "2" : { "x" : 10.47, "y" : 1.42 }, + "3" : { "x" : 0.84, "y" : 1.20 }, + "4" : { "x" : 3.17, "y" : -16.45 }, + "5" : { "x" : 2.54, "y" : 17.72 }, + "6" : { "x" : 32.30, "y" : -4.76 }, + "7" : { "x" : 26.43, "y" : -16.68 }, + "8" : { "x" : 26.55, "y" : 15.96 }, + "9" : { "x" : 41.19, "y" : -9.10 }, + "10" : { "x" : 41.70, "y" : 9.91 }, + "11" : { "x" : 41.53, "y" : 3.53 } + }, + { + "index" : 74, + "ball" : { "x" : 44.70, "y" : -12.62 }, + "1" : { "x" : -34.43, "y" : -4.22 }, + "2" : { "x" : 11.64, "y" : -5.58 }, + "3" : { "x" : 1.20, "y" : -1.57 }, + "4" : { "x" : 4.58, "y" : -20.83 }, + "5" : { "x" : 4.67, "y" : 18.13 }, + "6" : { "x" : 44.77, "y" : -7.43 }, + "7" : { "x" : 33.44, "y" : -14.01 }, + "8" : { "x" : 34.04, "y" : 8.03 }, + "9" : { "x" : 44.93, "y" : -20.34 }, + "10" : { "x" : 43.75, "y" : 1.20 }, + "11" : { "x" : 35.54, "y" : -3.17 } + }, + { + "index" : 75, + "ball" : { "x" : 44.70, "y" : 12.62 }, + "1" : { "x" : -34.43, "y" : 4.22 }, + "2" : { "x" : 11.64, "y" : 5.58 }, + "3" : { "x" : 1.20, "y" : 1.57 }, + "4" : { "x" : 4.67, "y" : -18.13 }, + "5" : { "x" : 4.58, "y" : 20.83 }, + "6" : { "x" : 35.54, "y" : 3.17 }, + "7" : { "x" : 34.04, "y" : -8.03 }, + "8" : { "x" : 33.44, "y" : 14.01 }, + "9" : { "x" : 43.75, "y" : -1.20 }, + "10" : { "x" : 44.93, "y" : 20.34 }, + "11" : { "x" : 44.77, "y" : 7.43 } + }, + { + "index" : 76, + "ball" : { "x" : -39.13, "y" : -19.31 }, + "1" : { "x" : -48.60, "y" : -3.51 }, + "2" : { "x" : -41.64, "y" : -2.68 }, + "3" : { "x" : -39.40, "y" : -5.53 }, + "4" : { "x" : -40.02, "y" : -22.71 }, + "5" : { "x" : -38.39, "y" : 11.83 }, + "6" : { "x" : -14.92, "y" : -10.31 }, + "7" : { "x" : -28.40, "y" : -16.98 }, + "8" : { "x" : -26.65, "y" : 4.90 }, + "9" : { "x" : -18.33, "y" : -30.24 }, + "10" : { "x" : -13.96, "y" : 22.94 }, + "11" : { "x" : -11.90, "y" : 6.34 } + }, + { + "index" : 77, + "ball" : { "x" : -39.13, "y" : 19.31 }, + "1" : { "x" : -48.60, "y" : 3.51 }, + "2" : { "x" : -41.64, "y" : 2.68 }, + "3" : { "x" : -39.40, "y" : 5.53 }, + "4" : { "x" : -38.39, "y" : -11.83 }, + "5" : { "x" : -40.02, "y" : 22.71 }, + "6" : { "x" : -11.90, "y" : -6.34 }, + "7" : { "x" : -26.65, "y" : -4.90 }, + "8" : { "x" : -28.40, "y" : 16.98 }, + "9" : { "x" : -13.96, "y" : -22.94 }, + "10" : { "x" : -18.33, "y" : 30.24 }, + "11" : { "x" : -14.92, "y" : 10.31 } + }, + { + "index" : 78, + "ball" : { "x" : -42.41, "y" : -5.07 }, + "1" : { "x" : -50.02, "y" : -2.88 }, + "2" : { "x" : -46.00, "y" : -1.64 }, + "3" : { "x" : -43.09, "y" : -1.28 }, + "4" : { "x" : -43.91, "y" : -9.16 }, + "5" : { "x" : -43.62, "y" : 6.89 }, + "6" : { "x" : -18.46, "y" : -8.58 }, + "7" : { "x" : -36.58, "y" : -6.38 }, + "8" : { "x" : -35.33, "y" : 2.79 }, + "9" : { "x" : -19.15, "y" : -26.48 }, + "10" : { "x" : -19.15, "y" : 25.74 }, + "11" : { "x" : -18.46, "y" : 8.00 } + }, + { + "index" : 79, + "ball" : { "x" : -42.41, "y" : 5.07 }, + "1" : { "x" : -50.02, "y" : 2.88 }, + "2" : { "x" : -46.00, "y" : 1.64 }, + "3" : { "x" : -43.09, "y" : 1.28 }, + "4" : { "x" : -43.62, "y" : -6.89 }, + "5" : { "x" : -43.91, "y" : 9.16 }, + "6" : { "x" : -18.46, "y" : -8.00 }, + "7" : { "x" : -35.33, "y" : -2.79 }, + "8" : { "x" : -36.58, "y" : 6.38 }, + "9" : { "x" : -19.15, "y" : -25.74 }, + "10" : { "x" : -19.15, "y" : 26.48 }, + "11" : { "x" : -18.46, "y" : 8.58 } + }, + { + "index" : 80, + "ball" : { "x" : -35.82, "y" : 0.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -39.73, "y" : -2.15 }, + "3" : { "x" : -39.44, "y" : 2.15 }, + "4" : { "x" : -39.22, "y" : -9.38 }, + "5" : { "x" : -39.22, "y" : 9.38 }, + "6" : { "x" : -14.78, "y" : -8.80 }, + "7" : { "x" : -28.15, "y" : -9.09 }, + "8" : { "x" : -28.15, "y" : 9.09 }, + "9" : { "x" : -13.26, "y" : -28.69 }, + "10" : { "x" : -13.26, "y" : 28.69 }, + "11" : { "x" : -14.78, "y" : 8.80 } + }, + { + "index" : 81, + "ball" : { "x" : -43.84, "y" : 15.33 }, + "1" : { "x" : -50.23, "y" : 5.43 }, + "2" : { "x" : -45.61, "y" : 3.98 }, + "3" : { "x" : -41.57, "y" : 7.50 }, + "4" : { "x" : -40.54, "y" : -10.50 }, + "5" : { "x" : -44.06, "y" : 16.18 }, + "6" : { "x" : -14.06, "y" : -4.83 }, + "7" : { "x" : -27.50, "y" : -6.10 }, + "8" : { "x" : -32.00, "y" : 15.59 }, + "9" : { "x" : -16.04, "y" : -25.50 }, + "10" : { "x" : -24.47, "y" : 27.87 }, + "11" : { "x" : -17.88, "y" : 10.96 } + }, + { + "index" : 82, + "ball" : { "x" : -43.84, "y" : -15.33 }, + "1" : { "x" : -50.23, "y" : -5.43 }, + "2" : { "x" : -45.61, "y" : -3.98 }, + "3" : { "x" : -41.57, "y" : -7.50 }, + "4" : { "x" : -44.06, "y" : -16.18 }, + "5" : { "x" : -40.54, "y" : 10.50 }, + "6" : { "x" : -17.88, "y" : -10.96 }, + "7" : { "x" : -32.00, "y" : -15.59 }, + "8" : { "x" : -27.50, "y" : 6.10 }, + "9" : { "x" : -24.47, "y" : -27.87 }, + "10" : { "x" : -16.04, "y" : 25.50 }, + "11" : { "x" : -14.06, "y" : 4.83 } + }, + { + "index" : 83, + "ball" : { "x" : 43.96, "y" : -36.00 }, + "1" : { "x" : -35.84, "y" : -9.95 }, + "2" : { "x" : 13.39, "y" : -11.49 }, + "3" : { "x" : 0.99, "y" : -6.17 }, + "4" : { "x" : 4.75, "y" : -26.32 }, + "5" : { "x" : 3.95, "y" : 13.76 }, + "6" : { "x" : 45.35, "y" : -20.12 }, + "7" : { "x" : 33.39, "y" : -32.32 }, + "8" : { "x" : 34.71, "y" : 0.33 }, + "9" : { "x" : 47.58, "y" : -27.54 }, + "10" : { "x" : 46.36, "y" : -6.22 }, + "11" : { "x" : 35.69, "y" : -14.71 } + }, + { + "index" : 84, + "ball" : { "x" : 43.96, "y" : 36.00 }, + "1" : { "x" : -35.84, "y" : 9.95 }, + "2" : { "x" : 13.39, "y" : 11.49 }, + "3" : { "x" : 0.99, "y" : 6.17 }, + "4" : { "x" : 3.95, "y" : -13.76 }, + "5" : { "x" : 4.75, "y" : 26.32 }, + "6" : { "x" : 35.69, "y" : 14.71 }, + "7" : { "x" : 34.71, "y" : -0.33 }, + "8" : { "x" : 33.39, "y" : 32.32 }, + "9" : { "x" : 46.36, "y" : 6.22 }, + "10" : { "x" : 47.58, "y" : 27.54 }, + "11" : { "x" : 45.35, "y" : 20.12 } + }, + { + "index" : 85, + "ball" : { "x" : 39.09, "y" : -15.02 }, + "1" : { "x" : -34.66, "y" : -4.68 }, + "2" : { "x" : 9.45, "y" : -5.51 }, + "3" : { "x" : 1.06, "y" : -1.20 }, + "4" : { "x" : 2.75, "y" : -20.87 }, + "5" : { "x" : 4.17, "y" : 15.86 }, + "6" : { "x" : 44.20, "y" : -6.78 }, + "7" : { "x" : 26.73, "y" : -14.13 }, + "8" : { "x" : 26.40, "y" : 8.85 }, + "9" : { "x" : 40.33, "y" : -19.32 }, + "10" : { "x" : 41.47, "y" : 7.12 }, + "11" : { "x" : 35.11, "y" : -1.95 } + }, + { + "index" : 86, + "ball" : { "x" : 39.09, "y" : 15.02 }, + "1" : { "x" : -34.66, "y" : 4.68 }, + "2" : { "x" : 9.45, "y" : 5.51 }, + "3" : { "x" : 1.06, "y" : 1.20 }, + "4" : { "x" : 4.17, "y" : -15.86 }, + "5" : { "x" : 2.75, "y" : 20.87 }, + "6" : { "x" : 35.11, "y" : 1.95 }, + "7" : { "x" : 26.40, "y" : -8.85 }, + "8" : { "x" : 26.73, "y" : 14.13 }, + "9" : { "x" : 41.47, "y" : -7.12 }, + "10" : { "x" : 40.33, "y" : 19.32 }, + "11" : { "x" : 44.20, "y" : 6.78 } + } + ] +} diff --git a/src/formations/523/defense-formation.conf b/src/formations/523/defense-formation.conf new file mode 100644 index 00000000..f50f5908 --- /dev/null +++ b/src/formations/523/defense-formation.conf @@ -0,0 +1,1105 @@ +{ + "version" : "20230610-101209", + "method" : "DelaunayTriangulation", + "role" : [ + { + "number" : 1, + "name" : "Goalie", + "type" : "G", + "side" : "C", + "pair" : 0 + }, + { + "number" : 2, + "name" : "CenterBack", + "type" : "DF", + "side" : "L", + "pair" : 3 + }, + { + "number" : 3, + "name" : "CenterBack", + "type" : "DF", + "side" : "R", + "pair" : 2 + }, + { + "number" : 4, + "name" : "SideBack", + "type" : "DF", + "side" : "L", + "pair" : 5 + }, + { + "number" : 5, + "name" : "SideBack", + "type" : "DF", + "side" : "R", + "pair" : 4 + }, + { + "number" : 6, + "name" : "Sweeper", + "type" : "DF", + "side" : "C", + "pair" : 0 + }, + { + "number" : 7, + "name" : "DefensiveHalf", + "type" : "MF", + "side" : "L", + "pair" : 8 + }, + { + "number" : 8, + "name" : "DefensiveHalf", + "type" : "MF", + "side" : "R", + "pair" : 7 + }, + { + "number" : 9, + "name" : "SideHalf", + "type" : "FW", + "side" : "L", + "pair" : 10 + }, + { + "number" : 10, + "name" : "SideHalf", + "type" : "FW", + "side" : "R", + "pair" : 9 + }, + { + "number" : 11, + "name" : "CenterForward", + "type" : "FW", + "side" : "C", + "pair" : 0 + } + ], + "data" : [ + { + "index" : 0, + "ball" : { "x" : -0.03, "y" : 0.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -11.60, "y" : -9.34 }, + "3" : { "x" : -11.50, "y" : 9.50 }, + "4" : { "x" : -11.82, "y" : -17.57 }, + "5" : { "x" : -11.97, "y" : 17.72 }, + "6" : { "x" : -11.50, "y" : 0.00 }, + "7" : { "x" : -6.41, "y" : -10.16 }, + "8" : { "x" : -6.50, "y" : 10.00 }, + "9" : { "x" : 3.89, "y" : -21.05 }, + "10" : { "x" : 4.00, "y" : 21.00 }, + "11" : { "x" : -1.50, "y" : 0.00 } + }, + { + "index" : 1, + "ball" : { "x" : -54.50, "y" : -36.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -48.00, "y" : -16.50 }, + "3" : { "x" : -45.00, "y" : -5.50 }, + "4" : { "x" : -49.00, "y" : -28.50 }, + "5" : { "x" : -44.50, "y" : 3.00 }, + "6" : { "x" : -47.55, "y" : -7.94 }, + "7" : { "x" : -40.00, "y" : -17.00 }, + "8" : { "x" : -36.50, "y" : -1.50 }, + "9" : { "x" : -34.50, "y" : -28.50 }, + "10" : { "x" : -26.00, "y" : 14.00 }, + "11" : { "x" : -17.50, "y" : -13.50 } + }, + { + "index" : 2, + "ball" : { "x" : -54.50, "y" : 36.00 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -45.00, "y" : 5.50 }, + "3" : { "x" : -48.00, "y" : 16.50 }, + "4" : { "x" : -44.50, "y" : -3.00 }, + "5" : { "x" : -49.00, "y" : 28.50 }, + "6" : { "x" : -47.55, "y" : 7.94 }, + "7" : { "x" : -36.50, "y" : 1.50 }, + "8" : { "x" : -40.00, "y" : 17.00 }, + "9" : { "x" : -26.00, "y" : -14.00 }, + "10" : { "x" : -34.50, "y" : 28.50 }, + "11" : { "x" : -17.50, "y" : 13.50 } + }, + { + "index" : 3, + "ball" : { "x" : 54.50, "y" : -36.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : 4.00, "y" : -22.50 }, + "3" : { "x" : 2.50, "y" : 10.00 }, + "4" : { "x" : 23.50, "y" : -30.00 }, + "5" : { "x" : 26.00, "y" : 3.50 }, + "6" : { "x" : 1.50, "y" : -6.00 }, + "7" : { "x" : 26.00, "y" : -23.00 }, + "8" : { "x" : 26.00, "y" : -13.00 }, + "9" : { "x" : 43.50, "y" : -30.00 }, + "10" : { "x" : 38.00, "y" : -8.50 }, + "11" : { "x" : 35.50, "y" : -18.50 } + }, + { + "index" : 4, + "ball" : { "x" : 54.50, "y" : 36.00 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : 2.50, "y" : -10.00 }, + "3" : { "x" : 4.00, "y" : 22.50 }, + "4" : { "x" : 26.00, "y" : -3.50 }, + "5" : { "x" : 23.50, "y" : 30.00 }, + "6" : { "x" : 1.50, "y" : 6.00 }, + "7" : { "x" : 26.00, "y" : 13.00 }, + "8" : { "x" : 26.00, "y" : 23.00 }, + "9" : { "x" : 38.00, "y" : 8.50 }, + "10" : { "x" : 43.50, "y" : 30.00 }, + "11" : { "x" : 35.50, "y" : 18.50 } + }, + { + "index" : 5, + "ball" : { "x" : 54.50, "y" : 0.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : 4.26, "y" : -14.23 }, + "3" : { "x" : 4.50, "y" : 14.00 }, + "4" : { "x" : 21.68, "y" : -16.09 }, + "5" : { "x" : 21.50, "y" : 16.00 }, + "6" : { "x" : 1.50, "y" : 0.50 }, + "7" : { "x" : 25.17, "y" : -4.67 }, + "8" : { "x" : 25.00, "y" : 4.50 }, + "9" : { "x" : 41.55, "y" : -9.86 }, + "10" : { "x" : 41.50, "y" : 10.00 }, + "11" : { "x" : 41.00, "y" : 0.00 } + }, + { + "index" : 6, + "ball" : { "x" : 0.00, "y" : -36.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -11.50, "y" : -23.00 }, + "3" : { "x" : -11.50, "y" : -5.00 }, + "4" : { "x" : -11.50, "y" : -30.00 }, + "5" : { "x" : -11.00, "y" : 7.50 }, + "6" : { "x" : -11.50, "y" : -13.00 }, + "7" : { "x" : -5.50, "y" : -20.50 }, + "8" : { "x" : -4.50, "y" : -9.00 }, + "9" : { "x" : 2.50, "y" : -30.50 }, + "10" : { "x" : 1.50, "y" : 7.50 }, + "11" : { "x" : 5.50, "y" : -14.00 } + }, + { + "index" : 7, + "ball" : { "x" : 0.00, "y" : 36.00 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -11.50, "y" : 5.00 }, + "3" : { "x" : -11.50, "y" : 23.00 }, + "4" : { "x" : -11.00, "y" : -7.50 }, + "5" : { "x" : -11.50, "y" : 30.00 }, + "6" : { "x" : -11.50, "y" : 13.00 }, + "7" : { "x" : -4.50, "y" : 9.00 }, + "8" : { "x" : -5.50, "y" : 20.50 }, + "9" : { "x" : 1.50, "y" : -7.50 }, + "10" : { "x" : 2.50, "y" : 30.50 }, + "11" : { "x" : 5.50, "y" : 14.00 } + }, + { + "index" : 8, + "ball" : { "x" : -54.50, "y" : 0.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -46.98, "y" : -2.63 }, + "3" : { "x" : -46.98, "y" : 2.63 }, + "4" : { "x" : -47.18, "y" : -6.91 }, + "5" : { "x" : -47.18, "y" : 6.91 }, + "6" : { "x" : -47.08, "y" : -0.49 }, + "7" : { "x" : -37.84, "y" : -8.60 }, + "8" : { "x" : -38.00, "y" : 8.50 }, + "9" : { "x" : -24.87, "y" : -16.53 }, + "10" : { "x" : -25.00, "y" : 16.50 }, + "11" : { "x" : -17.50, "y" : -0.00 } + }, + { + "index" : 9, + "ball" : { "x" : 26.00, "y" : -17.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -1.50, "y" : -16.50 }, + "3" : { "x" : -1.50, "y" : 3.00 }, + "4" : { "x" : 0.00, "y" : -26.00 }, + "5" : { "x" : 3.00, "y" : 15.50 }, + "6" : { "x" : -1.50, "y" : -8.00 }, + "7" : { "x" : 8.50, "y" : -19.00 }, + "8" : { "x" : 9.50, "y" : 3.50 }, + "9" : { "x" : 16.00, "y" : -21.00 }, + "10" : { "x" : 16.00, "y" : 9.50 }, + "11" : { "x" : 16.00, "y" : -11.00 } + }, + { + "index" : 10, + "ball" : { "x" : 26.00, "y" : 17.00 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -1.50, "y" : -3.00 }, + "3" : { "x" : -1.50, "y" : 16.50 }, + "4" : { "x" : 3.00, "y" : -15.50 }, + "5" : { "x" : 0.00, "y" : 26.00 }, + "6" : { "x" : -1.50, "y" : 8.00 }, + "7" : { "x" : 9.50, "y" : -3.50 }, + "8" : { "x" : 8.50, "y" : 19.00 }, + "9" : { "x" : 16.00, "y" : -9.50 }, + "10" : { "x" : 16.00, "y" : 21.00 }, + "11" : { "x" : 16.00, "y" : 11.00 } + }, + { + "index" : 11, + "ball" : { "x" : -25.83, "y" : 0.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -34.28, "y" : -6.00 }, + "3" : { "x" : -34.50, "y" : 6.00 }, + "4" : { "x" : -34.58, "y" : -16.38 }, + "5" : { "x" : -34.50, "y" : 16.50 }, + "6" : { "x" : -34.00, "y" : -0.00 }, + "7" : { "x" : -29.00, "y" : -8.50 }, + "8" : { "x" : -28.95, "y" : 8.52 }, + "9" : { "x" : -20.20, "y" : -16.68 }, + "10" : { "x" : -20.00, "y" : 16.50 }, + "11" : { "x" : -9.50, "y" : 0.00 } + }, + { + "index" : 12, + "ball" : { "x" : -26.00, "y" : 17.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -34.00, "y" : -1.00 }, + "3" : { "x" : -34.00, "y" : 12.50 }, + "4" : { "x" : -34.00, "y" : -9.00 }, + "5" : { "x" : -34.00, "y" : 19.50 }, + "6" : { "x" : -34.00, "y" : 5.50 }, + "7" : { "x" : -28.00, "y" : 1.50 }, + "8" : { "x" : -28.50, "y" : 13.50 }, + "9" : { "x" : -16.50, "y" : -15.00 }, + "10" : { "x" : -19.00, "y" : 23.50 }, + "11" : { "x" : -20.00, "y" : 7.00 } + }, + { + "index" : 13, + "ball" : { "x" : 36.00, "y" : 0.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : 1.45, "y" : -12.38 }, + "3" : { "x" : 1.50, "y" : 12.50 }, + "4" : { "x" : 8.04, "y" : -19.72 }, + "5" : { "x" : 8.00, "y" : 19.50 }, + "6" : { "x" : 0.00, "y" : 0.00 }, + "7" : { "x" : 19.90, "y" : -7.04 }, + "8" : { "x" : 20.00, "y" : 7.00 }, + "9" : { "x" : 30.58, "y" : -10.30 }, + "10" : { "x" : 30.50, "y" : 10.50 }, + "11" : { "x" : 27.50, "y" : -0.00 } + }, + { + "index" : 14, + "ball" : { "x" : 36.00, "y" : -20.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : 1.50, "y" : -17.00 }, + "3" : { "x" : 0.00, "y" : 5.50 }, + "4" : { "x" : 9.50, "y" : -23.00 }, + "5" : { "x" : 5.50, "y" : 15.00 }, + "6" : { "x" : 1.50, "y" : -7.00 }, + "7" : { "x" : 23.00, "y" : -18.00 }, + "8" : { "x" : 21.00, "y" : -2.50 }, + "9" : { "x" : 33.50, "y" : -20.00 }, + "10" : { "x" : 34.00, "y" : 5.00 }, + "11" : { "x" : 34.28, "y" : -8.90 } + }, + { + "index" : 15, + "ball" : { "x" : 36.00, "y" : 20.00 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : 0.00, "y" : -5.50 }, + "3" : { "x" : 1.50, "y" : 17.00 }, + "4" : { "x" : 5.50, "y" : -15.00 }, + "5" : { "x" : 9.50, "y" : 23.00 }, + "6" : { "x" : 1.50, "y" : 7.00 }, + "7" : { "x" : 21.00, "y" : 2.50 }, + "8" : { "x" : 23.00, "y" : 18.00 }, + "9" : { "x" : 34.00, "y" : -5.00 }, + "10" : { "x" : 33.50, "y" : 20.00 }, + "11" : { "x" : 34.28, "y" : 8.90 } + }, + { + "index" : 16, + "ball" : { "x" : -11.50, "y" : 0.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -20.87, "y" : -10.25 }, + "3" : { "x" : -21.00, "y" : 10.00 }, + "4" : { "x" : -21.11, "y" : -20.06 }, + "5" : { "x" : -21.00, "y" : 20.00 }, + "6" : { "x" : -21.00, "y" : 0.00 }, + "7" : { "x" : -14.95, "y" : -7.98 }, + "8" : { "x" : -15.00, "y" : 8.00 }, + "9" : { "x" : -9.76, "y" : -23.22 }, + "10" : { "x" : -10.00, "y" : 23.00 }, + "11" : { "x" : -9.50, "y" : 0.00 } + }, + { + "index" : 17, + "ball" : { "x" : 47.00, "y" : -9.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : 0.50, "y" : -10.50 }, + "3" : { "x" : 1.00, "y" : 11.00 }, + "4" : { "x" : 10.50, "y" : -21.50 }, + "5" : { "x" : 11.00, "y" : 18.50 }, + "6" : { "x" : -0.00, "y" : 0.00 }, + "7" : { "x" : 27.50, "y" : -10.00 }, + "8" : { "x" : 27.50, "y" : 4.50 }, + "9" : { "x" : 41.00, "y" : -12.00 }, + "10" : { "x" : 40.50, "y" : 3.50 }, + "11" : { "x" : 41.00, "y" : -4.50 } + }, + { + "index" : 18, + "ball" : { "x" : 47.00, "y" : 9.00 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : 1.00, "y" : -11.00 }, + "3" : { "x" : 0.50, "y" : 10.50 }, + "4" : { "x" : 11.00, "y" : -18.50 }, + "5" : { "x" : 10.50, "y" : 21.50 }, + "6" : { "x" : -0.00, "y" : -0.00 }, + "7" : { "x" : 27.50, "y" : -4.50 }, + "8" : { "x" : 27.50, "y" : 10.00 }, + "9" : { "x" : 40.50, "y" : -3.50 }, + "10" : { "x" : 41.00, "y" : 12.00 }, + "11" : { "x" : 41.00, "y" : 4.50 } + }, + { + "index" : 19, + "ball" : { "x" : -26.00, "y" : -36.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -28.50, "y" : -23.50 }, + "3" : { "x" : -29.00, "y" : -6.50 }, + "4" : { "x" : -28.50, "y" : -32.00 }, + "5" : { "x" : -28.50, "y" : 6.50 }, + "6" : { "x" : -28.50, "y" : -16.50 }, + "7" : { "x" : -22.50, "y" : -20.00 }, + "8" : { "x" : -21.00, "y" : -2.00 }, + "9" : { "x" : -18.50, "y" : -30.00 }, + "10" : { "x" : -13.00, "y" : 14.00 }, + "11" : { "x" : -10.50, "y" : -14.00 } + }, + { + "index" : 20, + "ball" : { "x" : -26.00, "y" : 36.00 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -29.00, "y" : 6.50 }, + "3" : { "x" : -28.50, "y" : 23.50 }, + "4" : { "x" : -28.50, "y" : -6.50 }, + "5" : { "x" : -28.50, "y" : 32.00 }, + "6" : { "x" : -28.50, "y" : 16.50 }, + "7" : { "x" : -21.00, "y" : 2.00 }, + "8" : { "x" : -22.50, "y" : 20.00 }, + "9" : { "x" : -13.00, "y" : -14.00 }, + "10" : { "x" : -18.50, "y" : 30.00 }, + "11" : { "x" : -10.50, "y" : 14.00 } + }, + { + "index" : 21, + "ball" : { "x" : 10.00, "y" : -17.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -6.00, "y" : -17.00 }, + "3" : { "x" : -6.00, "y" : 4.00 }, + "4" : { "x" : -6.00, "y" : -25.50 }, + "5" : { "x" : -6.00, "y" : 15.00 }, + "6" : { "x" : -6.00, "y" : -6.50 }, + "7" : { "x" : -0.50, "y" : -14.50 }, + "8" : { "x" : -0.50, "y" : 4.50 }, + "9" : { "x" : 8.00, "y" : -20.50 }, + "10" : { "x" : 9.00, "y" : 11.00 }, + "11" : { "x" : 2.00, "y" : -6.00 } + }, + { + "index" : 22, + "ball" : { "x" : 10.00, "y" : 17.00 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -6.00, "y" : -4.00 }, + "3" : { "x" : -6.00, "y" : 17.00 }, + "4" : { "x" : -6.00, "y" : -15.00 }, + "5" : { "x" : -6.00, "y" : 25.50 }, + "6" : { "x" : -6.00, "y" : 6.50 }, + "7" : { "x" : -0.50, "y" : -4.50 }, + "8" : { "x" : -0.50, "y" : 14.50 }, + "9" : { "x" : 9.00, "y" : -11.00 }, + "10" : { "x" : 8.00, "y" : 20.50 }, + "11" : { "x" : 2.00, "y" : 6.00 } + }, + { + "index" : 23, + "ball" : { "x" : 10.00, "y" : 0.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -6.50, "y" : -11.00 }, + "3" : { "x" : -6.36, "y" : 10.90 }, + "4" : { "x" : -5.96, "y" : -20.54 }, + "5" : { "x" : -6.00, "y" : 20.50 }, + "6" : { "x" : -6.50, "y" : 0.50 }, + "7" : { "x" : 0.20, "y" : -8.79 }, + "8" : { "x" : 0.00, "y" : 9.00 }, + "9" : { "x" : 5.96, "y" : -17.71 }, + "10" : { "x" : 6.00, "y" : 17.50 }, + "11" : { "x" : 4.00, "y" : -0.00 } + }, + { + "index" : 24, + "ball" : { "x" : 36.00, "y" : -9.10 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : 1.00, "y" : -17.50 }, + "3" : { "x" : -0.50, "y" : 12.00 }, + "4" : { "x" : 9.00, "y" : -24.50 }, + "5" : { "x" : 7.50, "y" : 21.50 }, + "6" : { "x" : 0.50, "y" : -2.00 }, + "7" : { "x" : 20.50, "y" : -12.00 }, + "8" : { "x" : 20.50, "y" : 6.00 }, + "9" : { "x" : 38.00, "y" : -15.00 }, + "10" : { "x" : 38.50, "y" : 8.00 }, + "11" : { "x" : 29.50, "y" : -3.00 } + }, + { + "index" : 25, + "ball" : { "x" : 36.00, "y" : 9.10 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -0.50, "y" : -12.00 }, + "3" : { "x" : 1.00, "y" : 17.50 }, + "4" : { "x" : 7.50, "y" : -21.50 }, + "5" : { "x" : 9.00, "y" : 24.50 }, + "6" : { "x" : 0.50, "y" : 2.00 }, + "7" : { "x" : 20.50, "y" : -6.00 }, + "8" : { "x" : 20.50, "y" : 12.00 }, + "9" : { "x" : 38.50, "y" : -8.00 }, + "10" : { "x" : 38.00, "y" : 15.00 }, + "11" : { "x" : 29.50, "y" : 3.00 } + }, + { + "index" : 26, + "ball" : { "x" : 19.96, "y" : -26.61 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -3.50, "y" : -20.50 }, + "3" : { "x" : -3.50, "y" : 0.50 }, + "4" : { "x" : -1.00, "y" : -28.00 }, + "5" : { "x" : -1.00, "y" : 12.50 }, + "6" : { "x" : -3.50, "y" : -9.00 }, + "7" : { "x" : 2.00, "y" : -16.50 }, + "8" : { "x" : 4.00, "y" : -0.50 }, + "9" : { "x" : 13.50, "y" : -26.00 }, + "10" : { "x" : 14.00, "y" : 9.00 }, + "11" : { "x" : 7.00, "y" : -10.00 } + }, + { + "index" : 27, + "ball" : { "x" : 19.96, "y" : 26.61 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -3.50, "y" : -0.50 }, + "3" : { "x" : -3.50, "y" : 20.50 }, + "4" : { "x" : -1.00, "y" : -12.50 }, + "5" : { "x" : -1.00, "y" : 28.00 }, + "6" : { "x" : -3.50, "y" : 9.00 }, + "7" : { "x" : 4.00, "y" : 0.50 }, + "8" : { "x" : 2.00, "y" : 16.50 }, + "9" : { "x" : 14.00, "y" : -9.00 }, + "10" : { "x" : 13.50, "y" : 26.00 }, + "11" : { "x" : 7.00, "y" : 10.00 } + }, + { + "index" : 28, + "ball" : { "x" : 54.50, "y" : -15.90 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : 0.50, "y" : -15.00 }, + "3" : { "x" : 0.50, "y" : 10.00 }, + "4" : { "x" : 16.50, "y" : -22.00 }, + "5" : { "x" : 16.50, "y" : 17.50 }, + "6" : { "x" : 0.50, "y" : -3.00 }, + "7" : { "x" : 24.00, "y" : -12.50 }, + "8" : { "x" : 24.50, "y" : 4.00 }, + "9" : { "x" : 41.50, "y" : -19.00 }, + "10" : { "x" : 40.50, "y" : 1.00 }, + "11" : { "x" : 34.50, "y" : -7.50 } + }, + { + "index" : 29, + "ball" : { "x" : 54.50, "y" : 15.90 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : 0.50, "y" : -10.00 }, + "3" : { "x" : 0.50, "y" : 15.00 }, + "4" : { "x" : 16.50, "y" : -17.50 }, + "5" : { "x" : 16.50, "y" : 22.00 }, + "6" : { "x" : 0.50, "y" : 3.00 }, + "7" : { "x" : 24.50, "y" : -4.00 }, + "8" : { "x" : 24.00, "y" : 12.50 }, + "9" : { "x" : 40.50, "y" : -1.00 }, + "10" : { "x" : 41.50, "y" : 19.00 }, + "11" : { "x" : 34.50, "y" : 7.50 } + }, + { + "index" : 30, + "ball" : { "x" : 45.88, "y" : -18.15 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : 1.00, "y" : -14.50 }, + "3" : { "x" : 1.00, "y" : 11.50 }, + "4" : { "x" : 18.50, "y" : -23.00 }, + "5" : { "x" : 19.00, "y" : 16.00 }, + "6" : { "x" : 0.00, "y" : -1.50 }, + "7" : { "x" : 22.00, "y" : -11.50 }, + "8" : { "x" : 22.00, "y" : 3.00 }, + "9" : { "x" : 38.00, "y" : -18.50 }, + "10" : { "x" : 38.50, "y" : -2.00 }, + "11" : { "x" : 30.50, "y" : -7.00 } + }, + { + "index" : 31, + "ball" : { "x" : 45.88, "y" : 18.15 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : 1.00, "y" : -11.50 }, + "3" : { "x" : 1.00, "y" : 14.50 }, + "4" : { "x" : 19.00, "y" : -16.00 }, + "5" : { "x" : 18.50, "y" : 23.00 }, + "6" : { "x" : 0.00, "y" : 1.50 }, + "7" : { "x" : 22.00, "y" : -3.00 }, + "8" : { "x" : 22.00, "y" : 11.50 }, + "9" : { "x" : 38.50, "y" : 2.00 }, + "10" : { "x" : 38.00, "y" : 18.50 }, + "11" : { "x" : 30.50, "y" : 7.00 } + }, + { + "index" : 32, + "ball" : { "x" : 23.76, "y" : 0.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -2.39, "y" : -8.39 }, + "3" : { "x" : -2.50, "y" : 8.50 }, + "4" : { "x" : -2.15, "y" : -20.14 }, + "5" : { "x" : -2.00, "y" : 20.00 }, + "6" : { "x" : -2.50, "y" : -0.50 }, + "7" : { "x" : 4.09, "y" : -8.95 }, + "8" : { "x" : 4.00, "y" : 9.00 }, + "9" : { "x" : 15.11, "y" : -15.44 }, + "10" : { "x" : 15.00, "y" : 15.50 }, + "11" : { "x" : 8.50, "y" : 0.00 } + }, + { + "index" : 33, + "ball" : { "x" : 43.18, "y" : -36.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -1.00, "y" : -18.00 }, + "3" : { "x" : -1.00, "y" : 4.50 }, + "4" : { "x" : 11.00, "y" : -28.00 }, + "5" : { "x" : 18.50, "y" : 13.00 }, + "6" : { "x" : -1.00, "y" : -7.50 }, + "7" : { "x" : 20.00, "y" : -21.50 }, + "8" : { "x" : 20.00, "y" : -3.50 }, + "9" : { "x" : 34.00, "y" : -30.50 }, + "10" : { "x" : 32.00, "y" : 2.00 }, + "11" : { "x" : 27.00, "y" : -15.00 } + }, + { + "index" : 34, + "ball" : { "x" : 43.18, "y" : 36.00 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -1.00, "y" : -4.50 }, + "3" : { "x" : -1.00, "y" : 18.00 }, + "4" : { "x" : 18.50, "y" : -13.00 }, + "5" : { "x" : 11.00, "y" : 28.00 }, + "6" : { "x" : -1.00, "y" : 7.50 }, + "7" : { "x" : 20.00, "y" : 3.50 }, + "8" : { "x" : 20.00, "y" : 21.50 }, + "9" : { "x" : 32.00, "y" : -2.00 }, + "10" : { "x" : 34.00, "y" : 30.50 }, + "11" : { "x" : 27.00, "y" : 15.00 } + }, + { + "index" : 35, + "ball" : { "x" : 15.87, "y" : -36.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -5.00, "y" : -20.00 }, + "3" : { "x" : -5.00, "y" : 0.00 }, + "4" : { "x" : -4.00, "y" : -29.50 }, + "5" : { "x" : -0.00, "y" : 11.00 }, + "6" : { "x" : -5.00, "y" : -10.00 }, + "7" : { "x" : 1.50, "y" : -17.00 }, + "8" : { "x" : 2.00, "y" : -3.00 }, + "9" : { "x" : 12.00, "y" : -31.00 }, + "10" : { "x" : 13.00, "y" : 7.00 }, + "11" : { "x" : 8.00, "y" : -14.00 } + }, + { + "index" : 36, + "ball" : { "x" : 15.87, "y" : 36.00 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -5.00, "y" : -0.00 }, + "3" : { "x" : -5.00, "y" : 20.00 }, + "4" : { "x" : -0.00, "y" : -11.00 }, + "5" : { "x" : -4.00, "y" : 29.50 }, + "6" : { "x" : -5.00, "y" : 10.00 }, + "7" : { "x" : 2.00, "y" : 3.00 }, + "8" : { "x" : 1.50, "y" : 17.00 }, + "9" : { "x" : 13.00, "y" : -7.00 }, + "10" : { "x" : 12.00, "y" : 31.00 }, + "11" : { "x" : 8.00, "y" : 14.00 } + }, + { + "index" : 37, + "ball" : { "x" : -11.50, "y" : -17.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -21.00, "y" : -17.00 }, + "3" : { "x" : -21.00, "y" : 2.00 }, + "4" : { "x" : -21.00, "y" : -26.50 }, + "5" : { "x" : -21.00, "y" : 10.50 }, + "6" : { "x" : -21.00, "y" : -8.50 }, + "7" : { "x" : -16.50, "y" : -16.50 }, + "8" : { "x" : -14.50, "y" : 0.50 }, + "9" : { "x" : -5.50, "y" : -24.00 }, + "10" : { "x" : -3.00, "y" : 15.00 }, + "11" : { "x" : -10.50, "y" : -10.00 } + }, + { + "index" : 38, + "ball" : { "x" : -11.50, "y" : 17.00 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -21.00, "y" : -2.00 }, + "3" : { "x" : -21.00, "y" : 17.00 }, + "4" : { "x" : -21.00, "y" : -10.50 }, + "5" : { "x" : -21.00, "y" : 26.50 }, + "6" : { "x" : -21.00, "y" : 8.50 }, + "7" : { "x" : -14.50, "y" : -0.50 }, + "8" : { "x" : -16.50, "y" : 16.50 }, + "9" : { "x" : -3.00, "y" : -15.00 }, + "10" : { "x" : -5.50, "y" : 24.00 }, + "11" : { "x" : -10.50, "y" : 10.00 } + }, + { + "index" : 39, + "ball" : { "x" : -11.50, "y" : -36.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -21.00, "y" : -22.00 }, + "3" : { "x" : -21.00, "y" : -5.00 }, + "4" : { "x" : -21.00, "y" : -30.00 }, + "5" : { "x" : -21.00, "y" : 8.50 }, + "6" : { "x" : -21.00, "y" : -13.50 }, + "7" : { "x" : -15.50, "y" : -21.50 }, + "8" : { "x" : -12.00, "y" : -7.50 }, + "9" : { "x" : -8.00, "y" : -30.00 }, + "10" : { "x" : -1.50, "y" : 14.00 }, + "11" : { "x" : -10.00, "y" : -16.00 } + }, + { + "index" : 40, + "ball" : { "x" : -11.50, "y" : 36.00 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -21.00, "y" : 5.00 }, + "3" : { "x" : -21.00, "y" : 22.00 }, + "4" : { "x" : -21.00, "y" : -8.50 }, + "5" : { "x" : -21.00, "y" : 30.00 }, + "6" : { "x" : -21.00, "y" : 13.50 }, + "7" : { "x" : -12.00, "y" : 7.50 }, + "8" : { "x" : -15.50, "y" : 21.50 }, + "9" : { "x" : -1.50, "y" : -14.00 }, + "10" : { "x" : -8.00, "y" : 30.00 }, + "11" : { "x" : -10.00, "y" : 16.00 } + }, + { + "index" : 41, + "ball" : { "x" : -26.00, "y" : -17.00 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -34.00, "y" : -12.50 }, + "3" : { "x" : -34.00, "y" : 1.00 }, + "4" : { "x" : -34.00, "y" : -19.50 }, + "5" : { "x" : -34.00, "y" : 9.00 }, + "6" : { "x" : -34.00, "y" : -5.50 }, + "7" : { "x" : -28.50, "y" : -13.50 }, + "8" : { "x" : -28.00, "y" : -1.50 }, + "9" : { "x" : -19.00, "y" : -23.50 }, + "10" : { "x" : -16.50, "y" : 15.00 }, + "11" : { "x" : -20.00, "y" : -7.00 } + }, + { + "index" : 42, + "ball" : { "x" : 0.00, "y" : -17.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -11.50, "y" : -15.50 }, + "3" : { "x" : -12.00, "y" : 1.50 }, + "4" : { "x" : -11.30, "y" : -24.51 }, + "5" : { "x" : -11.50, "y" : 12.50 }, + "6" : { "x" : -11.50, "y" : -7.50 }, + "7" : { "x" : -6.50, "y" : -17.00 }, + "8" : { "x" : -4.50, "y" : 0.00 }, + "9" : { "x" : 2.00, "y" : -25.00 }, + "10" : { "x" : 4.00, "y" : 14.50 }, + "11" : { "x" : -1.50, "y" : -10.50 } + }, + { + "index" : 43, + "ball" : { "x" : 0.00, "y" : 17.00 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -12.00, "y" : -1.50 }, + "3" : { "x" : -11.50, "y" : 15.50 }, + "4" : { "x" : -11.50, "y" : -12.50 }, + "5" : { "x" : -11.30, "y" : 24.51 }, + "6" : { "x" : -11.50, "y" : 7.50 }, + "7" : { "x" : -4.50, "y" : -0.00 }, + "8" : { "x" : -6.50, "y" : 17.00 }, + "9" : { "x" : 4.00, "y" : -14.50 }, + "10" : { "x" : 2.00, "y" : 25.00 }, + "11" : { "x" : -1.50, "y" : 10.50 } + }, + { + "index" : 44, + "ball" : { "x" : -36.00, "y" : -17.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -39.00, "y" : -9.00 }, + "3" : { "x" : -39.00, "y" : 0.00 }, + "4" : { "x" : -39.00, "y" : -15.00 }, + "5" : { "x" : -39.00, "y" : 6.00 }, + "6" : { "x" : -36.50, "y" : -5.00 }, + "7" : { "x" : -34.00, "y" : -12.00 }, + "8" : { "x" : -32.00, "y" : 0.00 }, + "9" : { "x" : -26.50, "y" : -21.00 }, + "10" : { "x" : -22.00, "y" : 14.50 }, + "11" : { "x" : -25.50, "y" : -7.00 } + }, + { + "index" : 45, + "ball" : { "x" : -36.00, "y" : 17.00 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -39.00, "y" : -0.00 }, + "3" : { "x" : -39.00, "y" : 9.00 }, + "4" : { "x" : -39.00, "y" : -6.00 }, + "5" : { "x" : -39.00, "y" : 15.00 }, + "6" : { "x" : -36.50, "y" : 5.00 }, + "7" : { "x" : -32.00, "y" : -0.00 }, + "8" : { "x" : -34.00, "y" : 12.00 }, + "9" : { "x" : -22.00, "y" : -14.50 }, + "10" : { "x" : -26.50, "y" : 21.00 }, + "11" : { "x" : -25.50, "y" : 7.00 } + }, + { + "index" : 46, + "ball" : { "x" : 49.44, "y" : -20.58 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : 0.00, "y" : -16.00 }, + "3" : { "x" : -0.00, "y" : 9.50 }, + "4" : { "x" : 16.50, "y" : -25.00 }, + "5" : { "x" : 18.50, "y" : 17.00 }, + "6" : { "x" : -0.00, "y" : -4.00 }, + "7" : { "x" : 26.00, "y" : -14.50 }, + "8" : { "x" : 26.50, "y" : 3.00 }, + "9" : { "x" : 41.50, "y" : -19.50 }, + "10" : { "x" : 40.50, "y" : -1.50 }, + "11" : { "x" : 33.00, "y" : -9.00 } + }, + { + "index" : 47, + "ball" : { "x" : 49.44, "y" : 20.58 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -0.00, "y" : -9.50 }, + "3" : { "x" : 0.00, "y" : 16.00 }, + "4" : { "x" : 18.50, "y" : -17.00 }, + "5" : { "x" : 16.50, "y" : 25.00 }, + "6" : { "x" : -0.00, "y" : 4.00 }, + "7" : { "x" : 26.50, "y" : -3.00 }, + "8" : { "x" : 26.00, "y" : 14.50 }, + "9" : { "x" : 40.50, "y" : 1.50 }, + "10" : { "x" : 41.50, "y" : 19.50 }, + "11" : { "x" : 33.00, "y" : 9.00 } + }, + { + "index" : 48, + "ball" : { "x" : 39.46, "y" : -5.54 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : 0.00, "y" : -11.00 }, + "3" : { "x" : 0.00, "y" : 10.50 }, + "4" : { "x" : 14.00, "y" : -20.50 }, + "5" : { "x" : 18.50, "y" : 19.00 }, + "6" : { "x" : 0.00, "y" : -0.00 }, + "7" : { "x" : 26.50, "y" : -10.00 }, + "8" : { "x" : 26.00, "y" : 6.00 }, + "9" : { "x" : 40.00, "y" : -12.00 }, + "10" : { "x" : 40.50, "y" : 7.50 }, + "11" : { "x" : 36.00, "y" : -3.50 } + }, + { + "index" : 49, + "ball" : { "x" : 39.46, "y" : 5.54 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : 0.00, "y" : -10.50 }, + "3" : { "x" : 0.00, "y" : 11.00 }, + "4" : { "x" : 18.50, "y" : -19.00 }, + "5" : { "x" : 14.00, "y" : 20.50 }, + "6" : { "x" : 0.00, "y" : 0.00 }, + "7" : { "x" : 26.00, "y" : -6.00 }, + "8" : { "x" : 26.50, "y" : 10.00 }, + "9" : { "x" : 40.50, "y" : -7.50 }, + "10" : { "x" : 40.00, "y" : 12.00 }, + "11" : { "x" : 36.00, "y" : 3.50 } + }, + { + "index" : 50, + "ball" : { "x" : -41.91, "y" : -28.23 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -42.50, "y" : -14.00 }, + "3" : { "x" : -42.00, "y" : -2.50 }, + "4" : { "x" : -42.49, "y" : -24.77 }, + "5" : { "x" : -41.50, "y" : 5.00 }, + "6" : { "x" : -39.50, "y" : -8.00 }, + "7" : { "x" : -35.50, "y" : -14.50 }, + "8" : { "x" : -34.50, "y" : -3.00 }, + "9" : { "x" : -30.50, "y" : -26.00 }, + "10" : { "x" : -24.50, "y" : 14.00 }, + "11" : { "x" : -25.50, "y" : -9.50 } + }, + { + "index" : 51, + "ball" : { "x" : -41.91, "y" : 28.23 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -42.00, "y" : 2.50 }, + "3" : { "x" : -42.50, "y" : 14.00 }, + "4" : { "x" : -41.50, "y" : -5.00 }, + "5" : { "x" : -42.49, "y" : 24.77 }, + "6" : { "x" : -39.50, "y" : 8.00 }, + "7" : { "x" : -34.50, "y" : 3.00 }, + "8" : { "x" : -35.50, "y" : 14.50 }, + "9" : { "x" : -24.50, "y" : -14.00 }, + "10" : { "x" : -30.50, "y" : 26.00 }, + "11" : { "x" : -25.50, "y" : 9.50 } + }, + { + "index" : 52, + "ball" : { "x" : -43.81, "y" : -15.21 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -45.00, "y" : -8.00 }, + "3" : { "x" : -44.50, "y" : 0.00 }, + "4" : { "x" : -45.50, "y" : -13.50 }, + "5" : { "x" : -45.00, "y" : 5.00 }, + "6" : { "x" : -44.00, "y" : -4.00 }, + "7" : { "x" : -38.50, "y" : -9.50 }, + "8" : { "x" : -37.50, "y" : -1.00 }, + "9" : { "x" : -30.00, "y" : -20.00 }, + "10" : { "x" : -26.50, "y" : 15.00 }, + "11" : { "x" : -25.50, "y" : -3.00 } + }, + { + "index" : 53, + "ball" : { "x" : -43.81, "y" : 15.21 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -44.50, "y" : -0.00 }, + "3" : { "x" : -45.00, "y" : 8.00 }, + "4" : { "x" : -45.00, "y" : -5.00 }, + "5" : { "x" : -45.50, "y" : 13.50 }, + "6" : { "x" : -44.00, "y" : 4.00 }, + "7" : { "x" : -37.50, "y" : 1.00 }, + "8" : { "x" : -38.50, "y" : 9.50 }, + "9" : { "x" : -26.50, "y" : -15.00 }, + "10" : { "x" : -30.00, "y" : 20.00 }, + "11" : { "x" : -25.50, "y" : 3.00 } + }, + { + "index" : 54, + "ball" : { "x" : -43.35, "y" : 0.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -46.23, "y" : -2.80 }, + "3" : { "x" : -46.00, "y" : 3.00 }, + "4" : { "x" : -46.31, "y" : -5.88 }, + "5" : { "x" : -46.50, "y" : 6.00 }, + "6" : { "x" : -45.50, "y" : 0.00 }, + "7" : { "x" : -36.02, "y" : -7.82 }, + "8" : { "x" : -36.00, "y" : 8.00 }, + "9" : { "x" : -24.76, "y" : -16.57 }, + "10" : { "x" : -25.00, "y" : 16.50 }, + "11" : { "x" : -21.00, "y" : -0.00 } + }, + { + "index" : 55, + "ball" : { "x" : -35.98, "y" : -9.79 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -42.00, "y" : -5.50 }, + "3" : { "x" : -42.00, "y" : 2.00 }, + "4" : { "x" : -42.00, "y" : -10.00 }, + "5" : { "x" : -41.50, "y" : 7.00 }, + "6" : { "x" : -42.50, "y" : -1.50 }, + "7" : { "x" : -37.50, "y" : -10.00 }, + "8" : { "x" : -35.50, "y" : -1.00 }, + "9" : { "x" : -28.50, "y" : -18.50 }, + "10" : { "x" : -27.50, "y" : 16.00 }, + "11" : { "x" : -19.50, "y" : -3.00 } + }, + { + "index" : 56, + "ball" : { "x" : -35.98, "y" : 9.79 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -42.00, "y" : -2.00 }, + "3" : { "x" : -42.00, "y" : 5.50 }, + "4" : { "x" : -41.50, "y" : -7.00 }, + "5" : { "x" : -42.00, "y" : 10.00 }, + "6" : { "x" : -42.50, "y" : 1.50 }, + "7" : { "x" : -35.50, "y" : 1.00 }, + "8" : { "x" : -37.50, "y" : 10.00 }, + "9" : { "x" : -27.50, "y" : -16.00 }, + "10" : { "x" : -28.50, "y" : 18.50 }, + "11" : { "x" : -19.50, "y" : 3.00 } + }, + { + "index" : 57, + "ball" : { "x" : 39.78, "y" : 0.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -0.50, "y" : -11.50 }, + "3" : { "x" : -0.28, "y" : 11.30 }, + "4" : { "x" : 13.50, "y" : -20.00 }, + "5" : { "x" : 13.65, "y" : 19.98 }, + "6" : { "x" : -0.00, "y" : -0.00 }, + "7" : { "x" : 26.50, "y" : -10.00 }, + "8" : { "x" : 26.70, "y" : 9.93 }, + "9" : { "x" : 40.70, "y" : -9.39 }, + "10" : { "x" : 40.70, "y" : 9.39 }, + "11" : { "x" : 31.00, "y" : -0.00 } + }, + { + "index" : 58, + "ball" : { "x" : 44.90, "y" : -12.62 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : 0.50, "y" : -16.50 }, + "3" : { "x" : 0.50, "y" : 9.50 }, + "4" : { "x" : 18.00, "y" : -23.00 }, + "5" : { "x" : 17.50, "y" : 17.00 }, + "6" : { "x" : 0.50, "y" : -2.50 }, + "7" : { "x" : 27.00, "y" : -14.00 }, + "8" : { "x" : 27.50, "y" : 6.00 }, + "9" : { "x" : 39.50, "y" : -14.50 }, + "10" : { "x" : 38.50, "y" : 4.00 }, + "11" : { "x" : 34.00, "y" : -7.00 } + }, + { + "index" : 59, + "ball" : { "x" : 44.90, "y" : 12.62 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : 0.50, "y" : -9.50 }, + "3" : { "x" : 0.50, "y" : 16.50 }, + "4" : { "x" : 17.50, "y" : -17.00 }, + "5" : { "x" : 18.00, "y" : 23.00 }, + "6" : { "x" : 0.50, "y" : 2.50 }, + "7" : { "x" : 27.50, "y" : -6.00 }, + "8" : { "x" : 27.00, "y" : 14.00 }, + "9" : { "x" : 38.50, "y" : -4.00 }, + "10" : { "x" : 39.50, "y" : 14.50 }, + "11" : { "x" : 34.00, "y" : 7.00 } + }, + { + "index" : 60, + "ball" : { "x" : 52.57, "y" : -10.20 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : 0.50, "y" : -15.00 }, + "3" : { "x" : -0.00, "y" : 10.00 }, + "4" : { "x" : 16.50, "y" : -22.50 }, + "5" : { "x" : 18.00, "y" : 19.00 }, + "6" : { "x" : -0.00, "y" : -3.00 }, + "7" : { "x" : 27.00, "y" : -13.00 }, + "8" : { "x" : 27.50, "y" : 6.00 }, + "9" : { "x" : 41.50, "y" : -15.00 }, + "10" : { "x" : 41.00, "y" : 6.50 }, + "11" : { "x" : 35.50, "y" : -6.00 } + }, + { + "index" : 61, + "ball" : { "x" : 52.57, "y" : 10.20 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -0.00, "y" : -10.00 }, + "3" : { "x" : 0.50, "y" : 15.00 }, + "4" : { "x" : 18.00, "y" : -19.00 }, + "5" : { "x" : 16.50, "y" : 22.50 }, + "6" : { "x" : -0.00, "y" : 3.00 }, + "7" : { "x" : 27.50, "y" : -6.00 }, + "8" : { "x" : 27.00, "y" : 13.00 }, + "9" : { "x" : 41.00, "y" : -6.50 }, + "10" : { "x" : 41.50, "y" : 15.00 }, + "11" : { "x" : 35.50, "y" : 6.00 } + }, + { + "index" : 62, + "ball" : { "x" : -6.04, "y" : -8.14 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -13.50, "y" : -15.00 }, + "3" : { "x" : -13.50, "y" : 3.00 }, + "4" : { "x" : -13.50, "y" : -25.50 }, + "5" : { "x" : -13.50, "y" : 14.50 }, + "6" : { "x" : -13.50, "y" : -5.50 }, + "7" : { "x" : -9.00, "y" : -12.00 }, + "8" : { "x" : -7.00, "y" : 1.50 }, + "9" : { "x" : -4.00, "y" : -25.00 }, + "10" : { "x" : 1.50, "y" : 16.50 }, + "11" : { "x" : -1.50, "y" : -5.50 } + }, + { + "index" : 63, + "ball" : { "x" : -6.04, "y" : 8.14 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -13.50, "y" : -3.00 }, + "3" : { "x" : -13.50, "y" : 15.00 }, + "4" : { "x" : -13.50, "y" : -14.50 }, + "5" : { "x" : -13.50, "y" : 25.50 }, + "6" : { "x" : -13.50, "y" : 5.50 }, + "7" : { "x" : -7.00, "y" : -1.50 }, + "8" : { "x" : -9.00, "y" : 12.00 }, + "9" : { "x" : 1.50, "y" : -16.50 }, + "10" : { "x" : -4.00, "y" : 25.00 }, + "11" : { "x" : -1.50, "y" : 5.50 } + }, + { + "index" : 64, + "ball" : { "x" : 5.27, "y" : -8.35 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -9.00, "y" : -14.00 }, + "3" : { "x" : -9.00, "y" : 5.00 }, + "4" : { "x" : -9.00, "y" : -23.50 }, + "5" : { "x" : -8.50, "y" : 15.50 }, + "6" : { "x" : -9.00, "y" : -5.00 }, + "7" : { "x" : -3.00, "y" : -11.00 }, + "8" : { "x" : -2.50, "y" : 4.50 }, + "9" : { "x" : 5.00, "y" : -21.50 }, + "10" : { "x" : 5.00, "y" : 15.50 }, + "11" : { "x" : 1.50, "y" : -5.00 } + }, + { + "index" : 65, + "ball" : { "x" : 5.27, "y" : 8.35 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -9.00, "y" : -5.00 }, + "3" : { "x" : -9.00, "y" : 14.00 }, + "4" : { "x" : -8.50, "y" : -15.50 }, + "5" : { "x" : -9.00, "y" : 23.50 }, + "6" : { "x" : -9.00, "y" : 5.00 }, + "7" : { "x" : -2.50, "y" : -4.50 }, + "8" : { "x" : -3.00, "y" : 11.00 }, + "9" : { "x" : 5.00, "y" : -15.50 }, + "10" : { "x" : 5.00, "y" : 21.50 }, + "11" : { "x" : 1.50, "y" : 5.00 } + }, + { + "index" : 66, + "ball" : { "x" : 39.21, "y" : -14.99 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : 0.00, "y" : -16.50 }, + "3" : { "x" : 0.00, "y" : 9.00 }, + "4" : { "x" : 17.50, "y" : -23.00 }, + "5" : { "x" : 18.00, "y" : 16.00 }, + "6" : { "x" : -0.00, "y" : -4.00 }, + "7" : { "x" : 25.00, "y" : -13.00 }, + "8" : { "x" : 25.00, "y" : 3.00 }, + "9" : { "x" : 36.50, "y" : -16.50 }, + "10" : { "x" : 37.00, "y" : 5.50 }, + "11" : { "x" : 32.00, "y" : -7.00 } + }, + { + "index" : 67, + "ball" : { "x" : 39.21, "y" : 14.99 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : 0.00, "y" : -9.00 }, + "3" : { "x" : 0.00, "y" : 16.50 }, + "4" : { "x" : 18.00, "y" : -16.00 }, + "5" : { "x" : 17.50, "y" : 23.00 }, + "6" : { "x" : -0.00, "y" : 4.00 }, + "7" : { "x" : 25.00, "y" : -3.00 }, + "8" : { "x" : 25.00, "y" : 13.00 }, + "9" : { "x" : 37.00, "y" : -5.50 }, + "10" : { "x" : 36.50, "y" : 16.50 }, + "11" : { "x" : 32.00, "y" : 7.00 } + } + ] +} diff --git a/src/formations/523/offense-formation.conf b/src/formations/523/offense-formation.conf new file mode 100644 index 00000000..fd2e471a --- /dev/null +++ b/src/formations/523/offense-formation.conf @@ -0,0 +1,1105 @@ +{ + "version" : "20230610-104457", + "method" : "DelaunayTriangulation", + "role" : [ + { + "number" : 1, + "name" : "Goalie", + "type" : "G", + "side" : "C", + "pair" : 0 + }, + { + "number" : 2, + "name" : "CenterBack", + "type" : "DF", + "side" : "L", + "pair" : 3 + }, + { + "number" : 3, + "name" : "CenterBack", + "type" : "DF", + "side" : "R", + "pair" : 2 + }, + { + "number" : 4, + "name" : "SideBack", + "type" : "DF", + "side" : "L", + "pair" : 5 + }, + { + "number" : 5, + "name" : "SideBack", + "type" : "DF", + "side" : "R", + "pair" : 4 + }, + { + "number" : 6, + "name" : "Sweeper", + "type" : "DF", + "side" : "C", + "pair" : 0 + }, + { + "number" : 7, + "name" : "DefensiveHalf", + "type" : "MF", + "side" : "L", + "pair" : 8 + }, + { + "number" : 8, + "name" : "DefensiveHalf", + "type" : "MF", + "side" : "R", + "pair" : 7 + }, + { + "number" : 9, + "name" : "SideHalf", + "type" : "FW", + "side" : "L", + "pair" : 10 + }, + { + "number" : 10, + "name" : "SideHalf", + "type" : "FW", + "side" : "R", + "pair" : 9 + }, + { + "number" : 11, + "name" : "CenterForward", + "type" : "FW", + "side" : "C", + "pair" : 0 + } + ], + "data" : [ + { + "index" : 0, + "ball" : { "x" : -0.03, "y" : 0.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -11.55, "y" : -15.52 }, + "3" : { "x" : -11.50, "y" : 15.50 }, + "4" : { "x" : -0.45, "y" : -29.13 }, + "5" : { "x" : -0.50, "y" : 29.00 }, + "6" : { "x" : -11.50, "y" : 0.00 }, + "7" : { "x" : 4.34, "y" : -12.84 }, + "8" : { "x" : 4.01, "y" : 12.60 }, + "9" : { "x" : 13.49, "y" : -18.84 }, + "10" : { "x" : 13.50, "y" : 19.00 }, + "11" : { "x" : 8.50, "y" : 0.00 } + }, + { + "index" : 1, + "ball" : { "x" : -54.50, "y" : -36.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -46.75, "y" : -16.53 }, + "3" : { "x" : -45.25, "y" : -6.62 }, + "4" : { "x" : -47.96, "y" : -28.29 }, + "5" : { "x" : -44.28, "y" : 2.81 }, + "6" : { "x" : -47.55, "y" : -7.94 }, + "7" : { "x" : -38.63, "y" : -19.13 }, + "8" : { "x" : -30.73, "y" : -0.40 }, + "9" : { "x" : -31.71, "y" : -30.59 }, + "10" : { "x" : -18.00, "y" : 19.93 }, + "11" : { "x" : -9.82, "y" : -4.15 } + }, + { + "index" : 2, + "ball" : { "x" : -54.50, "y" : 36.00 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -45.25, "y" : 6.62 }, + "3" : { "x" : -46.75, "y" : 16.53 }, + "4" : { "x" : -44.28, "y" : -2.81 }, + "5" : { "x" : -47.96, "y" : 28.29 }, + "6" : { "x" : -47.55, "y" : 7.94 }, + "7" : { "x" : -30.73, "y" : 0.40 }, + "8" : { "x" : -38.63, "y" : 19.13 }, + "9" : { "x" : -18.00, "y" : -19.93 }, + "10" : { "x" : -31.71, "y" : 30.59 }, + "11" : { "x" : -9.82, "y" : 4.15 } + }, + { + "index" : 3, + "ball" : { "x" : 54.50, "y" : -36.00 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : 4.00, "y" : -22.50 }, + "3" : { "x" : 2.50, "y" : 10.00 }, + "4" : { "x" : 36.00, "y" : -32.00 }, + "5" : { "x" : 29.50, "y" : 5.50 }, + "6" : { "x" : 1.50, "y" : -6.00 }, + "7" : { "x" : 34.00, "y" : -22.00 }, + "8" : { "x" : 30.00, "y" : -8.00 }, + "9" : { "x" : 50.15, "y" : -27.13 }, + "10" : { "x" : 42.50, "y" : -7.00 }, + "11" : { "x" : 45.19, "y" : -18.55 } + }, + { + "index" : 4, + "ball" : { "x" : 54.50, "y" : 36.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : 2.50, "y" : -10.00 }, + "3" : { "x" : 4.00, "y" : 22.50 }, + "4" : { "x" : 29.50, "y" : -5.50 }, + "5" : { "x" : 36.00, "y" : 32.00 }, + "6" : { "x" : 1.50, "y" : 6.00 }, + "7" : { "x" : 30.00, "y" : 8.00 }, + "8" : { "x" : 34.00, "y" : 22.00 }, + "9" : { "x" : 42.50, "y" : 7.00 }, + "10" : { "x" : 50.15, "y" : 27.13 }, + "11" : { "x" : 45.19, "y" : 18.55 } + }, + { + "index" : 5, + "ball" : { "x" : 54.50, "y" : 0.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : 5.71, "y" : -16.90 }, + "3" : { "x" : 5.50, "y" : 17.00 }, + "4" : { "x" : 34.16, "y" : -15.76 }, + "5" : { "x" : 34.00, "y" : 16.00 }, + "6" : { "x" : 1.50, "y" : 0.50 }, + "7" : { "x" : 33.59, "y" : -6.12 }, + "8" : { "x" : 33.50, "y" : 6.00 }, + "9" : { "x" : 48.48, "y" : -8.99 }, + "10" : { "x" : 48.48, "y" : 8.99 }, + "11" : { "x" : 49.11, "y" : 0.12 } + }, + { + "index" : 6, + "ball" : { "x" : 0.00, "y" : -36.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -10.00, "y" : -21.00 }, + "3" : { "x" : -10.00, "y" : 9.00 }, + "4" : { "x" : 0.00, "y" : -31.00 }, + "5" : { "x" : 4.00, "y" : 24.50 }, + "6" : { "x" : -10.00, "y" : -7.50 }, + "7" : { "x" : 4.50, "y" : -20.50 }, + "8" : { "x" : 4.00, "y" : 0.00 }, + "9" : { "x" : 17.63, "y" : -30.83 }, + "10" : { "x" : 17.50, "y" : 5.00 }, + "11" : { "x" : 16.50, "y" : -16.00 } + }, + { + "index" : 7, + "ball" : { "x" : 0.00, "y" : 36.00 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -10.00, "y" : -9.00 }, + "3" : { "x" : -10.00, "y" : 21.00 }, + "4" : { "x" : 4.00, "y" : -24.50 }, + "5" : { "x" : 0.00, "y" : 31.00 }, + "6" : { "x" : -10.00, "y" : 7.50 }, + "7" : { "x" : 4.00, "y" : -0.00 }, + "8" : { "x" : 4.50, "y" : 20.50 }, + "9" : { "x" : 17.50, "y" : -5.00 }, + "10" : { "x" : 17.63, "y" : 30.83 }, + "11" : { "x" : 16.50, "y" : 16.00 } + }, + { + "index" : 8, + "ball" : { "x" : -54.50, "y" : 0.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -46.98, "y" : -2.63 }, + "3" : { "x" : -46.98, "y" : 2.63 }, + "4" : { "x" : -47.18, "y" : -6.91 }, + "5" : { "x" : -47.18, "y" : 6.91 }, + "6" : { "x" : -47.08, "y" : -0.49 }, + "7" : { "x" : -32.57, "y" : -13.15 }, + "8" : { "x" : -32.57, "y" : 13.15 }, + "9" : { "x" : -16.89, "y" : -24.15 }, + "10" : { "x" : -16.89, "y" : 24.15 }, + "11" : { "x" : -13.19, "y" : 0.19 } + }, + { + "index" : 9, + "ball" : { "x" : 26.00, "y" : -17.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : 2.00, "y" : -17.50 }, + "3" : { "x" : 3.00, "y" : 16.50 }, + "4" : { "x" : 26.00, "y" : -31.00 }, + "5" : { "x" : 21.50, "y" : 23.50 }, + "6" : { "x" : 1.50, "y" : -0.00 }, + "7" : { "x" : 22.50, "y" : -19.50 }, + "8" : { "x" : 22.50, "y" : 2.50 }, + "9" : { "x" : 35.28, "y" : -27.25 }, + "10" : { "x" : 34.50, "y" : 9.50 }, + "11" : { "x" : 31.50, "y" : -9.00 } + }, + { + "index" : 10, + "ball" : { "x" : 26.00, "y" : 17.00 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : 3.00, "y" : -16.50 }, + "3" : { "x" : 2.00, "y" : 17.50 }, + "4" : { "x" : 21.50, "y" : -23.50 }, + "5" : { "x" : 26.00, "y" : 31.00 }, + "6" : { "x" : 1.50, "y" : 0.00 }, + "7" : { "x" : 22.50, "y" : -2.50 }, + "8" : { "x" : 22.50, "y" : 19.50 }, + "9" : { "x" : 34.50, "y" : -9.50 }, + "10" : { "x" : 35.28, "y" : 27.25 }, + "11" : { "x" : 31.50, "y" : 9.00 } + }, + { + "index" : 11, + "ball" : { "x" : -25.83, "y" : 0.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -26.46, "y" : -12.03 }, + "3" : { "x" : -26.50, "y" : 12.00 }, + "4" : { "x" : -19.89, "y" : -25.00 }, + "5" : { "x" : -20.00, "y" : 25.00 }, + "6" : { "x" : -26.00, "y" : -0.00 }, + "7" : { "x" : -16.48, "y" : -9.73 }, + "8" : { "x" : -16.48, "y" : 9.73 }, + "9" : { "x" : -3.36, "y" : -26.38 }, + "10" : { "x" : -3.50, "y" : 26.50 }, + "11" : { "x" : -2.31, "y" : -0.07 } + }, + { + "index" : 12, + "ball" : { "x" : -26.00, "y" : 17.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -28.86, "y" : -5.96 }, + "3" : { "x" : -28.95, "y" : 8.76 }, + "4" : { "x" : -27.15, "y" : -20.33 }, + "5" : { "x" : -28.05, "y" : 25.11 }, + "6" : { "x" : -15.67, "y" : 0.72 }, + "7" : { "x" : -14.50, "y" : -11.74 }, + "8" : { "x" : -13.96, "y" : 17.62 }, + "9" : { "x" : -5.28, "y" : -25.57 }, + "10" : { "x" : -3.57, "y" : 29.72 }, + "11" : { "x" : -2.74, "y" : 8.41 } + }, + { + "index" : 13, + "ball" : { "x" : 36.00, "y" : 0.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : 3.85, "y" : -15.92 }, + "3" : { "x" : 4.00, "y" : 16.00 }, + "4" : { "x" : 31.24, "y" : -18.84 }, + "5" : { "x" : 31.00, "y" : 19.00 }, + "6" : { "x" : 0.00, "y" : 0.00 }, + "7" : { "x" : 28.00, "y" : -6.77 }, + "8" : { "x" : 28.00, "y" : 7.00 }, + "9" : { "x" : 41.62, "y" : -10.25 }, + "10" : { "x" : 41.62, "y" : 10.25 }, + "11" : { "x" : 38.00, "y" : 0.00 } + }, + { + "index" : 14, + "ball" : { "x" : 36.00, "y" : -20.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : 2.50, "y" : -19.50 }, + "3" : { "x" : 1.50, "y" : 11.00 }, + "4" : { "x" : 32.50, "y" : -28.00 }, + "5" : { "x" : 29.50, "y" : 10.00 }, + "6" : { "x" : 0.00, "y" : -5.50 }, + "7" : { "x" : 29.00, "y" : -16.50 }, + "8" : { "x" : 27.50, "y" : -3.50 }, + "9" : { "x" : 44.50, "y" : -13.88 }, + "10" : { "x" : 40.00, "y" : 0.00 }, + "11" : { "x" : 47.05, "y" : -7.79 } + }, + { + "index" : 15, + "ball" : { "x" : 36.00, "y" : 20.00 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : 1.50, "y" : -11.00 }, + "3" : { "x" : 2.50, "y" : 19.50 }, + "4" : { "x" : 29.50, "y" : -10.00 }, + "5" : { "x" : 32.50, "y" : 28.00 }, + "6" : { "x" : 0.00, "y" : 5.50 }, + "7" : { "x" : 27.50, "y" : 3.50 }, + "8" : { "x" : 29.00, "y" : 16.50 }, + "9" : { "x" : 40.00, "y" : -0.00 }, + "10" : { "x" : 44.50, "y" : 13.88 }, + "11" : { "x" : 47.05, "y" : 7.79 } + }, + { + "index" : 16, + "ball" : { "x" : -11.50, "y" : 0.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -16.98, "y" : -17.71 }, + "3" : { "x" : -17.00, "y" : 17.50 }, + "4" : { "x" : -5.71, "y" : -30.83 }, + "5" : { "x" : -5.50, "y" : 31.00 }, + "6" : { "x" : -17.50, "y" : -0.00 }, + "7" : { "x" : -3.04, "y" : -14.63 }, + "8" : { "x" : -3.00, "y" : 14.50 }, + "9" : { "x" : 11.06, "y" : -21.43 }, + "10" : { "x" : 11.00, "y" : 21.50 }, + "11" : { "x" : 2.00, "y" : 0.00 } + }, + { + "index" : 17, + "ball" : { "x" : 47.00, "y" : -9.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : 3.50, "y" : -17.00 }, + "3" : { "x" : 3.50, "y" : 16.50 }, + "4" : { "x" : 34.00, "y" : -17.50 }, + "5" : { "x" : 34.00, "y" : 13.50 }, + "6" : { "x" : -0.00, "y" : 0.00 }, + "7" : { "x" : 32.50, "y" : -7.50 }, + "8" : { "x" : 32.50, "y" : 3.50 }, + "9" : { "x" : 44.50, "y" : -13.42 }, + "10" : { "x" : 41.50, "y" : 1.50 }, + "11" : { "x" : 46.00, "y" : -3.28 } + }, + { + "index" : 18, + "ball" : { "x" : 47.00, "y" : 9.00 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : 3.50, "y" : -16.50 }, + "3" : { "x" : 3.50, "y" : 17.00 }, + "4" : { "x" : 34.00, "y" : -13.50 }, + "5" : { "x" : 34.00, "y" : 17.50 }, + "6" : { "x" : -0.00, "y" : -0.00 }, + "7" : { "x" : 32.50, "y" : -3.50 }, + "8" : { "x" : 32.50, "y" : 7.50 }, + "9" : { "x" : 41.50, "y" : -1.50 }, + "10" : { "x" : 44.50, "y" : 13.42 }, + "11" : { "x" : 46.00, "y" : 3.28 } + }, + { + "index" : 19, + "ball" : { "x" : -26.00, "y" : -36.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -27.05, "y" : -17.80 }, + "3" : { "x" : -26.88, "y" : -0.09 }, + "4" : { "x" : -27.07, "y" : -29.09 }, + "5" : { "x" : -24.89, "y" : 13.91 }, + "6" : { "x" : -12.06, "y" : -5.06 }, + "7" : { "x" : -12.95, "y" : -21.72 }, + "8" : { "x" : -10.34, "y" : 7.59 }, + "9" : { "x" : -5.33, "y" : -30.76 }, + "10" : { "x" : 0.49, "y" : 21.55 }, + "11" : { "x" : 0.55, "y" : -13.31 } + }, + { + "index" : 20, + "ball" : { "x" : -26.00, "y" : 36.00 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -26.88, "y" : 0.09 }, + "3" : { "x" : -27.05, "y" : 17.80 }, + "4" : { "x" : -24.89, "y" : -13.91 }, + "5" : { "x" : -27.07, "y" : 29.09 }, + "6" : { "x" : -12.06, "y" : 5.06 }, + "7" : { "x" : -10.34, "y" : -7.59 }, + "8" : { "x" : -12.95, "y" : 21.72 }, + "9" : { "x" : 0.49, "y" : -21.55 }, + "10" : { "x" : -5.33, "y" : 30.76 }, + "11" : { "x" : 0.55, "y" : 13.31 } + }, + { + "index" : 21, + "ball" : { "x" : 10.00, "y" : -17.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -6.00, "y" : -17.00 }, + "3" : { "x" : -5.50, "y" : 12.50 }, + "4" : { "x" : 12.00, "y" : -30.00 }, + "5" : { "x" : 10.50, "y" : 25.50 }, + "6" : { "x" : -6.00, "y" : -2.50 }, + "7" : { "x" : 16.50, "y" : -20.50 }, + "8" : { "x" : 9.00, "y" : 0.50 }, + "9" : { "x" : 22.55, "y" : -31.43 }, + "10" : { "x" : 24.00, "y" : 7.00 }, + "11" : { "x" : 22.50, "y" : -13.50 } + }, + { + "index" : 22, + "ball" : { "x" : 10.00, "y" : 17.00 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -5.50, "y" : -12.50 }, + "3" : { "x" : -6.00, "y" : 17.00 }, + "4" : { "x" : 10.50, "y" : -25.50 }, + "5" : { "x" : 12.00, "y" : 30.00 }, + "6" : { "x" : -6.00, "y" : 2.50 }, + "7" : { "x" : 9.00, "y" : -0.50 }, + "8" : { "x" : 16.50, "y" : 20.50 }, + "9" : { "x" : 24.00, "y" : -7.00 }, + "10" : { "x" : 22.55, "y" : 31.43 }, + "11" : { "x" : 22.50, "y" : 13.50 } + }, + { + "index" : 23, + "ball" : { "x" : 10.00, "y" : 0.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -8.39, "y" : -13.49 }, + "3" : { "x" : -8.50, "y" : 13.50 }, + "4" : { "x" : 6.04, "y" : -27.03 }, + "5" : { "x" : 6.00, "y" : 27.00 }, + "6" : { "x" : -9.00, "y" : -0.00 }, + "7" : { "x" : 8.31, "y" : -12.84 }, + "8" : { "x" : 8.50, "y" : 13.00 }, + "9" : { "x" : 19.98, "y" : -21.92 }, + "10" : { "x" : 20.00, "y" : 22.00 }, + "11" : { "x" : 13.50, "y" : 0.00 } + }, + { + "index" : 24, + "ball" : { "x" : 36.00, "y" : -9.10 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : 1.00, "y" : -17.50 }, + "3" : { "x" : -0.50, "y" : 14.50 }, + "4" : { "x" : 32.50, "y" : -26.50 }, + "5" : { "x" : 30.00, "y" : 19.00 }, + "6" : { "x" : 0.50, "y" : -2.00 }, + "7" : { "x" : 29.50, "y" : -9.00 }, + "8" : { "x" : 30.50, "y" : 4.00 }, + "9" : { "x" : 40.76, "y" : -14.23 }, + "10" : { "x" : 40.00, "y" : 4.00 }, + "11" : { "x" : 42.50, "y" : -3.50 } + }, + { + "index" : 25, + "ball" : { "x" : 36.00, "y" : 9.10 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -0.50, "y" : -14.50 }, + "3" : { "x" : 1.00, "y" : 17.50 }, + "4" : { "x" : 30.00, "y" : -19.00 }, + "5" : { "x" : 32.50, "y" : 26.50 }, + "6" : { "x" : 0.50, "y" : 2.00 }, + "7" : { "x" : 30.50, "y" : -4.00 }, + "8" : { "x" : 29.50, "y" : 9.00 }, + "9" : { "x" : 40.00, "y" : -4.00 }, + "10" : { "x" : 40.76, "y" : 14.23 }, + "11" : { "x" : 42.50, "y" : 3.50 } + }, + { + "index" : 26, + "ball" : { "x" : 19.96, "y" : -26.61 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -0.00, "y" : -22.50 }, + "3" : { "x" : -0.50, "y" : 12.00 }, + "4" : { "x" : 16.50, "y" : -32.00 }, + "5" : { "x" : 17.50, "y" : 23.00 }, + "6" : { "x" : -0.00, "y" : -6.00 }, + "7" : { "x" : 16.00, "y" : -18.00 }, + "8" : { "x" : 16.00, "y" : 0.50 }, + "9" : { "x" : 30.27, "y" : -30.59 }, + "10" : { "x" : 30.00, "y" : 6.50 }, + "11" : { "x" : 24.17, "y" : -9.21 } + }, + { + "index" : 27, + "ball" : { "x" : 19.96, "y" : 26.61 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -0.50, "y" : -12.00 }, + "3" : { "x" : -0.00, "y" : 22.50 }, + "4" : { "x" : 17.50, "y" : -23.00 }, + "5" : { "x" : 16.50, "y" : 32.00 }, + "6" : { "x" : -0.00, "y" : 6.00 }, + "7" : { "x" : 16.00, "y" : -0.50 }, + "8" : { "x" : 16.00, "y" : 18.00 }, + "9" : { "x" : 30.00, "y" : -6.50 }, + "10" : { "x" : 30.27, "y" : 30.59 }, + "11" : { "x" : 24.17, "y" : 9.21 } + }, + { + "index" : 28, + "ball" : { "x" : 54.50, "y" : -15.90 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : 3.00, "y" : -16.50 }, + "3" : { "x" : 4.00, "y" : 16.50 }, + "4" : { "x" : 36.00, "y" : -27.50 }, + "5" : { "x" : 34.50, "y" : 14.50 }, + "6" : { "x" : 1.00, "y" : -0.00 }, + "7" : { "x" : 35.50, "y" : -15.00 }, + "8" : { "x" : 35.00, "y" : -0.50 }, + "9" : { "x" : 48.99, "y" : -16.76 }, + "10" : { "x" : 44.94, "y" : -3.53 }, + "11" : { "x" : 47.50, "y" : -12.00 } + }, + { + "index" : 29, + "ball" : { "x" : 54.50, "y" : 15.90 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : 4.00, "y" : -16.50 }, + "3" : { "x" : 3.00, "y" : 16.50 }, + "4" : { "x" : 34.50, "y" : -14.50 }, + "5" : { "x" : 36.00, "y" : 27.50 }, + "6" : { "x" : 1.00, "y" : 0.00 }, + "7" : { "x" : 35.00, "y" : 0.50 }, + "8" : { "x" : 35.50, "y" : 15.00 }, + "9" : { "x" : 44.94, "y" : 3.53 }, + "10" : { "x" : 48.99, "y" : 16.76 }, + "11" : { "x" : 47.50, "y" : 12.00 } + }, + { + "index" : 30, + "ball" : { "x" : 45.88, "y" : -18.15 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : 2.50, "y" : -16.00 }, + "3" : { "x" : 2.00, "y" : 16.00 }, + "4" : { "x" : 36.00, "y" : -28.00 }, + "5" : { "x" : 35.50, "y" : 9.50 }, + "6" : { "x" : 0.00, "y" : -1.50 }, + "7" : { "x" : 34.00, "y" : -12.00 }, + "8" : { "x" : 30.50, "y" : -0.00 }, + "9" : { "x" : 43.58, "y" : -16.88 }, + "10" : { "x" : 42.50, "y" : -5.00 }, + "11" : { "x" : 47.00, "y" : -10.50 } + }, + { + "index" : 31, + "ball" : { "x" : 45.88, "y" : 18.15 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : 2.00, "y" : -16.00 }, + "3" : { "x" : 2.50, "y" : 16.00 }, + "4" : { "x" : 35.50, "y" : -9.50 }, + "5" : { "x" : 36.00, "y" : 28.00 }, + "6" : { "x" : 0.00, "y" : 1.50 }, + "7" : { "x" : 30.50, "y" : 0.00 }, + "8" : { "x" : 34.00, "y" : 12.00 }, + "9" : { "x" : 42.50, "y" : 5.00 }, + "10" : { "x" : 43.58, "y" : 16.88 }, + "11" : { "x" : 47.00, "y" : 10.50 } + }, + { + "index" : 32, + "ball" : { "x" : 23.76, "y" : 0.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : 0.12, "y" : -16.33 }, + "3" : { "x" : 0.00, "y" : 16.50 }, + "4" : { "x" : 22.16, "y" : -25.81 }, + "5" : { "x" : 22.00, "y" : 26.00 }, + "6" : { "x" : -0.00, "y" : 0.00 }, + "7" : { "x" : 20.06, "y" : -10.25 }, + "8" : { "x" : 20.00, "y" : 10.00 }, + "9" : { "x" : 34.97, "y" : -13.33 }, + "10" : { "x" : 35.00, "y" : 13.50 }, + "11" : { "x" : 29.91, "y" : -0.17 } + }, + { + "index" : 33, + "ball" : { "x" : 43.18, "y" : -36.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : 4.00, "y" : -22.00 }, + "3" : { "x" : 3.50, "y" : 12.50 }, + "4" : { "x" : 29.50, "y" : -32.00 }, + "5" : { "x" : 30.50, "y" : 7.00 }, + "6" : { "x" : 1.50, "y" : -5.50 }, + "7" : { "x" : 31.00, "y" : -22.00 }, + "8" : { "x" : 31.50, "y" : -9.00 }, + "9" : { "x" : 46.52, "y" : -27.77 }, + "10" : { "x" : 40.50, "y" : -6.22 }, + "11" : { "x" : 44.39, "y" : -19.99 } + }, + { + "index" : 34, + "ball" : { "x" : 43.18, "y" : 36.00 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : 3.50, "y" : -12.50 }, + "3" : { "x" : 4.00, "y" : 22.00 }, + "4" : { "x" : 30.50, "y" : -7.00 }, + "5" : { "x" : 29.50, "y" : 32.00 }, + "6" : { "x" : 1.50, "y" : 5.50 }, + "7" : { "x" : 31.50, "y" : 9.00 }, + "8" : { "x" : 31.00, "y" : 22.00 }, + "9" : { "x" : 40.50, "y" : 6.22 }, + "10" : { "x" : 46.52, "y" : 27.77 }, + "11" : { "x" : 44.39, "y" : 19.99 } + }, + { + "index" : 35, + "ball" : { "x" : 15.87, "y" : -36.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -1.00, "y" : -20.50 }, + "3" : { "x" : -0.50, "y" : 13.00 }, + "4" : { "x" : 11.00, "y" : -31.50 }, + "5" : { "x" : 13.00, "y" : 20.00 }, + "6" : { "x" : -2.00, "y" : -3.00 }, + "7" : { "x" : 12.00, "y" : -17.50 }, + "8" : { "x" : 11.50, "y" : 3.00 }, + "9" : { "x" : 26.12, "y" : -30.13 }, + "10" : { "x" : 24.71, "y" : 16.01 }, + "11" : { "x" : 24.95, "y" : -19.09 } + }, + { + "index" : 36, + "ball" : { "x" : 15.87, "y" : 36.00 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -0.50, "y" : -13.00 }, + "3" : { "x" : -1.00, "y" : 20.50 }, + "4" : { "x" : 13.00, "y" : -20.00 }, + "5" : { "x" : 11.00, "y" : 31.50 }, + "6" : { "x" : -2.00, "y" : 3.00 }, + "7" : { "x" : 11.50, "y" : -3.00 }, + "8" : { "x" : 12.00, "y" : 17.50 }, + "9" : { "x" : 24.71, "y" : -16.01 }, + "10" : { "x" : 26.12, "y" : 30.13 }, + "11" : { "x" : 24.95, "y" : 19.09 } + }, + { + "index" : 37, + "ball" : { "x" : -11.50, "y" : -17.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -18.00, "y" : -20.00 }, + "3" : { "x" : -18.00, "y" : 11.00 }, + "4" : { "x" : -4.00, "y" : -29.00 }, + "5" : { "x" : -7.00, "y" : 24.00 }, + "6" : { "x" : -18.00, "y" : -5.50 }, + "7" : { "x" : -1.50, "y" : -15.00 }, + "8" : { "x" : -1.50, "y" : 9.50 }, + "9" : { "x" : 9.50, "y" : -28.00 }, + "10" : { "x" : 10.00, "y" : 17.50 }, + "11" : { "x" : 5.00, "y" : -2.50 } + }, + { + "index" : 38, + "ball" : { "x" : -11.50, "y" : 17.00 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -18.00, "y" : -11.00 }, + "3" : { "x" : -18.00, "y" : 20.00 }, + "4" : { "x" : -7.00, "y" : -24.00 }, + "5" : { "x" : -4.00, "y" : 29.00 }, + "6" : { "x" : -18.00, "y" : 5.50 }, + "7" : { "x" : -1.50, "y" : -9.50 }, + "8" : { "x" : -1.50, "y" : 15.00 }, + "9" : { "x" : 10.00, "y" : -17.50 }, + "10" : { "x" : 9.50, "y" : 28.00 }, + "11" : { "x" : 5.00, "y" : 2.50 } + }, + { + "index" : 39, + "ball" : { "x" : -11.50, "y" : -36.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -16.00, "y" : -21.50 }, + "3" : { "x" : -16.00, "y" : 8.50 }, + "4" : { "x" : -0.50, "y" : -30.50 }, + "5" : { "x" : -1.00, "y" : 21.50 }, + "6" : { "x" : -16.00, "y" : -7.00 }, + "7" : { "x" : 0.00, "y" : -20.50 }, + "8" : { "x" : -1.50, "y" : 2.50 }, + "9" : { "x" : 11.00, "y" : -30.50 }, + "10" : { "x" : 11.50, "y" : 6.50 }, + "11" : { "x" : 10.00, "y" : -15.00 } + }, + { + "index" : 40, + "ball" : { "x" : -11.50, "y" : 36.00 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -16.00, "y" : -8.50 }, + "3" : { "x" : -16.00, "y" : 21.50 }, + "4" : { "x" : -1.00, "y" : -21.50 }, + "5" : { "x" : -0.50, "y" : 30.50 }, + "6" : { "x" : -16.00, "y" : 7.00 }, + "7" : { "x" : -1.50, "y" : -2.50 }, + "8" : { "x" : 0.00, "y" : 20.50 }, + "9" : { "x" : 11.50, "y" : -6.50 }, + "10" : { "x" : 11.00, "y" : 30.50 }, + "11" : { "x" : 10.00, "y" : 15.00 } + }, + { + "index" : 41, + "ball" : { "x" : -26.00, "y" : -17.00 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -28.95, "y" : -8.76 }, + "3" : { "x" : -28.86, "y" : 5.96 }, + "4" : { "x" : -28.05, "y" : -25.11 }, + "5" : { "x" : -27.15, "y" : 20.33 }, + "6" : { "x" : -15.67, "y" : -0.72 }, + "7" : { "x" : -13.96, "y" : -17.62 }, + "8" : { "x" : -14.50, "y" : 11.74 }, + "9" : { "x" : -3.57, "y" : -29.72 }, + "10" : { "x" : -5.28, "y" : 25.57 }, + "11" : { "x" : -2.74, "y" : -8.41 } + }, + { + "index" : 42, + "ball" : { "x" : 0.00, "y" : -17.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -11.00, "y" : -21.00 }, + "3" : { "x" : -11.00, "y" : 9.00 }, + "4" : { "x" : 1.00, "y" : -30.00 }, + "5" : { "x" : 1.50, "y" : 24.50 }, + "6" : { "x" : -11.00, "y" : -7.00 }, + "7" : { "x" : 10.50, "y" : -20.50 }, + "8" : { "x" : 3.50, "y" : -1.00 }, + "9" : { "x" : 17.66, "y" : -30.21 }, + "10" : { "x" : 18.00, "y" : 6.00 }, + "11" : { "x" : 14.00, "y" : -9.50 } + }, + { + "index" : 43, + "ball" : { "x" : 0.00, "y" : 17.00 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -11.00, "y" : -9.00 }, + "3" : { "x" : -11.00, "y" : 21.00 }, + "4" : { "x" : 1.50, "y" : -24.50 }, + "5" : { "x" : 1.00, "y" : 30.00 }, + "6" : { "x" : -11.00, "y" : 7.00 }, + "7" : { "x" : 3.50, "y" : 1.00 }, + "8" : { "x" : 10.50, "y" : 20.50 }, + "9" : { "x" : 18.00, "y" : -6.00 }, + "10" : { "x" : 17.66, "y" : 30.21 }, + "11" : { "x" : 14.00, "y" : 9.50 } + }, + { + "index" : 44, + "ball" : { "x" : -36.00, "y" : -17.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -33.04, "y" : -8.49 }, + "3" : { "x" : -33.25, "y" : 3.04 }, + "4" : { "x" : -31.14, "y" : -24.60 }, + "5" : { "x" : -29.98, "y" : 15.84 }, + "6" : { "x" : -23.53, "y" : -4.95 }, + "7" : { "x" : -18.41, "y" : -18.03 }, + "8" : { "x" : -17.14, "y" : 10.37 }, + "9" : { "x" : -15.18, "y" : -30.30 }, + "10" : { "x" : -11.20, "y" : 23.68 }, + "11" : { "x" : -4.36, "y" : -5.69 } + }, + { + "index" : 45, + "ball" : { "x" : -36.00, "y" : 17.00 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -33.25, "y" : -3.04 }, + "3" : { "x" : -33.04, "y" : 8.49 }, + "4" : { "x" : -29.98, "y" : -15.84 }, + "5" : { "x" : -31.14, "y" : 24.60 }, + "6" : { "x" : -23.53, "y" : 4.95 }, + "7" : { "x" : -17.14, "y" : -10.37 }, + "8" : { "x" : -18.41, "y" : 18.03 }, + "9" : { "x" : -11.20, "y" : -23.68 }, + "10" : { "x" : -15.18, "y" : 30.30 }, + "11" : { "x" : -4.36, "y" : 5.69 } + }, + { + "index" : 46, + "ball" : { "x" : 49.44, "y" : -20.58 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : 1.50, "y" : -17.00 }, + "3" : { "x" : 0.50, "y" : 15.00 }, + "4" : { "x" : 37.00, "y" : -27.00 }, + "5" : { "x" : 33.50, "y" : 8.50 }, + "6" : { "x" : 0.50, "y" : -1.50 }, + "7" : { "x" : 36.50, "y" : -12.00 }, + "8" : { "x" : 35.50, "y" : -3.00 }, + "9" : { "x" : 44.37, "y" : -16.27 }, + "10" : { "x" : 45.50, "y" : -5.00 }, + "11" : { "x" : 48.50, "y" : -12.50 } + }, + { + "index" : 47, + "ball" : { "x" : 49.44, "y" : 20.58 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : 0.50, "y" : -15.00 }, + "3" : { "x" : 1.50, "y" : 17.00 }, + "4" : { "x" : 33.50, "y" : -8.50 }, + "5" : { "x" : 37.00, "y" : 27.00 }, + "6" : { "x" : 0.50, "y" : 1.50 }, + "7" : { "x" : 35.50, "y" : 3.00 }, + "8" : { "x" : 36.50, "y" : 12.00 }, + "9" : { "x" : 45.50, "y" : 5.00 }, + "10" : { "x" : 44.37, "y" : 16.27 }, + "11" : { "x" : 48.50, "y" : 12.50 } + }, + { + "index" : 48, + "ball" : { "x" : 39.46, "y" : -5.54 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : 1.00, "y" : -17.00 }, + "3" : { "x" : -0.00, "y" : 16.50 }, + "4" : { "x" : 33.50, "y" : -19.50 }, + "5" : { "x" : 35.50, "y" : 15.50 }, + "6" : { "x" : 0.00, "y" : -0.00 }, + "7" : { "x" : 32.00, "y" : -9.50 }, + "8" : { "x" : 32.50, "y" : 6.00 }, + "9" : { "x" : 46.00, "y" : -8.50 }, + "10" : { "x" : 46.50, "y" : 5.00 }, + "11" : { "x" : 43.00, "y" : -0.50 } + }, + { + "index" : 49, + "ball" : { "x" : 39.46, "y" : 5.54 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -0.00, "y" : -16.50 }, + "3" : { "x" : 1.00, "y" : 17.00 }, + "4" : { "x" : 35.50, "y" : -15.50 }, + "5" : { "x" : 33.50, "y" : 19.50 }, + "6" : { "x" : 0.00, "y" : 0.00 }, + "7" : { "x" : 32.50, "y" : -6.00 }, + "8" : { "x" : 32.00, "y" : 9.50 }, + "9" : { "x" : 46.50, "y" : -5.00 }, + "10" : { "x" : 46.00, "y" : 8.50 }, + "11" : { "x" : 43.00, "y" : 0.50 } + }, + { + "index" : 50, + "ball" : { "x" : -41.91, "y" : -28.23 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -38.86, "y" : -11.75 }, + "3" : { "x" : -38.74, "y" : 0.00 }, + "4" : { "x" : -42.49, "y" : -24.77 }, + "5" : { "x" : -37.53, "y" : 12.16 }, + "6" : { "x" : -32.03, "y" : -6.87 }, + "7" : { "x" : -28.20, "y" : -16.65 }, + "8" : { "x" : -22.09, "y" : 4.09 }, + "9" : { "x" : -22.44, "y" : -30.13 }, + "10" : { "x" : -13.34, "y" : 21.03 }, + "11" : { "x" : -5.56, "y" : -2.82 } + }, + { + "index" : 51, + "ball" : { "x" : -41.91, "y" : 28.23 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -38.74, "y" : -0.00 }, + "3" : { "x" : -38.86, "y" : 11.75 }, + "4" : { "x" : -37.53, "y" : -12.16 }, + "5" : { "x" : -42.49, "y" : 24.77 }, + "6" : { "x" : -32.03, "y" : 6.87 }, + "7" : { "x" : -22.09, "y" : -4.09 }, + "8" : { "x" : -28.20, "y" : 16.65 }, + "9" : { "x" : -13.34, "y" : -21.03 }, + "10" : { "x" : -22.44, "y" : 30.13 }, + "11" : { "x" : -5.56, "y" : 2.82 } + }, + { + "index" : 52, + "ball" : { "x" : -43.81, "y" : -15.21 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -40.53, "y" : -7.49 }, + "3" : { "x" : -39.40, "y" : 1.93 }, + "4" : { "x" : -40.44, "y" : -18.36 }, + "5" : { "x" : -37.91, "y" : 11.80 }, + "6" : { "x" : -33.79, "y" : -4.15 }, + "7" : { "x" : -30.79, "y" : -15.15 }, + "8" : { "x" : -23.24, "y" : 6.68 }, + "9" : { "x" : -24.11, "y" : -27.88 }, + "10" : { "x" : -15.12, "y" : 25.23 }, + "11" : { "x" : -7.56, "y" : -2.89 } + }, + { + "index" : 53, + "ball" : { "x" : -43.81, "y" : 15.21 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -39.40, "y" : -1.93 }, + "3" : { "x" : -40.53, "y" : 7.49 }, + "4" : { "x" : -37.91, "y" : -11.80 }, + "5" : { "x" : -40.44, "y" : 18.36 }, + "6" : { "x" : -33.79, "y" : 4.15 }, + "7" : { "x" : -23.24, "y" : -6.68 }, + "8" : { "x" : -30.79, "y" : 15.15 }, + "9" : { "x" : -15.12, "y" : -25.23 }, + "10" : { "x" : -24.11, "y" : 27.88 }, + "11" : { "x" : -7.56, "y" : 2.89 } + }, + { + "index" : 54, + "ball" : { "x" : -43.35, "y" : 0.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -41.45, "y" : -4.21 }, + "3" : { "x" : -41.45, "y" : 4.21 }, + "4" : { "x" : -40.30, "y" : -14.29 }, + "5" : { "x" : -40.30, "y" : 14.29 }, + "6" : { "x" : -36.78, "y" : 0.29 }, + "7" : { "x" : -28.77, "y" : -13.25 }, + "8" : { "x" : -28.77, "y" : 13.25 }, + "9" : { "x" : -18.52, "y" : -27.02 }, + "10" : { "x" : -18.52, "y" : 27.02 }, + "11" : { "x" : -8.79, "y" : 0.46 } + }, + { + "index" : 55, + "ball" : { "x" : -35.98, "y" : -9.79 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -36.78, "y" : -6.40 }, + "3" : { "x" : -36.22, "y" : 3.62 }, + "4" : { "x" : -32.04, "y" : -20.74 }, + "5" : { "x" : -30.55, "y" : 16.76 }, + "6" : { "x" : -29.13, "y" : -1.67 }, + "7" : { "x" : -24.96, "y" : -13.35 }, + "8" : { "x" : -24.40, "y" : 9.18 }, + "9" : { "x" : -19.62, "y" : -30.07 }, + "10" : { "x" : -14.67, "y" : 25.31 }, + "11" : { "x" : -6.19, "y" : -1.04 } + }, + { + "index" : 56, + "ball" : { "x" : -35.98, "y" : 9.79 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -36.22, "y" : -3.62 }, + "3" : { "x" : -36.78, "y" : 6.40 }, + "4" : { "x" : -30.55, "y" : -16.76 }, + "5" : { "x" : -32.04, "y" : 20.74 }, + "6" : { "x" : -29.13, "y" : 1.67 }, + "7" : { "x" : -24.40, "y" : -9.18 }, + "8" : { "x" : -24.96, "y" : 13.35 }, + "9" : { "x" : -14.67, "y" : -25.31 }, + "10" : { "x" : -19.62, "y" : 30.07 }, + "11" : { "x" : -6.19, "y" : 1.04 } + }, + { + "index" : 57, + "ball" : { "x" : 39.78, "y" : 0.00 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : 2.96, "y" : -16.49 }, + "3" : { "x" : 3.00, "y" : 16.50 }, + "4" : { "x" : 31.89, "y" : -19.08 }, + "5" : { "x" : 32.00, "y" : 19.00 }, + "6" : { "x" : -0.00, "y" : -0.00 }, + "7" : { "x" : 30.59, "y" : -7.33 }, + "8" : { "x" : 30.50, "y" : 7.50 }, + "9" : { "x" : 40.70, "y" : -9.39 }, + "10" : { "x" : 40.70, "y" : 9.39 }, + "11" : { "x" : 35.50, "y" : 0.00 } + }, + { + "index" : 58, + "ball" : { "x" : 44.90, "y" : -12.62 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : 3.50, "y" : -17.00 }, + "3" : { "x" : 2.00, "y" : 16.00 }, + "4" : { "x" : 34.00, "y" : -24.50 }, + "5" : { "x" : 37.00, "y" : 9.50 }, + "6" : { "x" : 0.50, "y" : -0.00 }, + "7" : { "x" : 34.00, "y" : -12.50 }, + "8" : { "x" : 32.00, "y" : -0.50 }, + "9" : { "x" : 44.96, "y" : -20.22 }, + "10" : { "x" : 41.00, "y" : -4.00 }, + "11" : { "x" : 46.72, "y" : -6.63 } + }, + { + "index" : 59, + "ball" : { "x" : 44.90, "y" : 12.62 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : 2.00, "y" : -16.00 }, + "3" : { "x" : 3.50, "y" : 17.00 }, + "4" : { "x" : 37.00, "y" : -9.50 }, + "5" : { "x" : 34.00, "y" : 24.50 }, + "6" : { "x" : 0.50, "y" : 0.00 }, + "7" : { "x" : 32.00, "y" : 0.50 }, + "8" : { "x" : 34.00, "y" : 12.50 }, + "9" : { "x" : 41.00, "y" : 4.00 }, + "10" : { "x" : 44.96, "y" : 20.22 }, + "11" : { "x" : 46.72, "y" : 6.63 } + }, + { + "index" : 60, + "ball" : { "x" : 52.57, "y" : -10.20 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : 2.00, "y" : -16.50 }, + "3" : { "x" : 1.00, "y" : 17.00 }, + "4" : { "x" : 36.00, "y" : -20.00 }, + "5" : { "x" : 35.50, "y" : 10.00 }, + "6" : { "x" : -0.00, "y" : 0.00 }, + "7" : { "x" : 36.00, "y" : -10.50 }, + "8" : { "x" : 32.50, "y" : -0.00 }, + "9" : { "x" : 48.07, "y" : -12.90 }, + "10" : { "x" : 43.00, "y" : -0.00 }, + "11" : { "x" : 46.17, "y" : -5.47 } + }, + { + "index" : 61, + "ball" : { "x" : 52.57, "y" : 10.20 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : 1.00, "y" : -17.00 }, + "3" : { "x" : 2.00, "y" : 16.50 }, + "4" : { "x" : 35.50, "y" : -10.00 }, + "5" : { "x" : 36.00, "y" : 20.00 }, + "6" : { "x" : -0.00, "y" : -0.00 }, + "7" : { "x" : 32.50, "y" : 0.00 }, + "8" : { "x" : 36.00, "y" : 10.50 }, + "9" : { "x" : 43.00, "y" : 0.00 }, + "10" : { "x" : 48.07, "y" : 12.90 }, + "11" : { "x" : 46.17, "y" : 5.47 } + }, + { + "index" : 62, + "ball" : { "x" : -6.04, "y" : -8.14 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -14.00, "y" : -17.50 }, + "3" : { "x" : -14.00, "y" : 10.50 }, + "4" : { "x" : -3.00, "y" : -29.50 }, + "5" : { "x" : -2.50, "y" : 25.00 }, + "6" : { "x" : -14.00, "y" : -3.50 }, + "7" : { "x" : 0.00, "y" : -17.50 }, + "8" : { "x" : -0.50, "y" : 4.00 }, + "9" : { "x" : 11.97, "y" : -27.91 }, + "10" : { "x" : 10.00, "y" : 18.50 }, + "11" : { "x" : 12.50, "y" : -6.50 } + }, + { + "index" : 63, + "ball" : { "x" : -6.04, "y" : 8.14 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -14.00, "y" : -10.50 }, + "3" : { "x" : -14.00, "y" : 17.50 }, + "4" : { "x" : -2.50, "y" : -25.00 }, + "5" : { "x" : -3.00, "y" : 29.50 }, + "6" : { "x" : -14.00, "y" : 3.50 }, + "7" : { "x" : -0.50, "y" : -4.00 }, + "8" : { "x" : 0.00, "y" : 17.50 }, + "9" : { "x" : 10.00, "y" : -18.50 }, + "10" : { "x" : 11.97, "y" : 27.91 }, + "11" : { "x" : 12.50, "y" : 6.50 } + }, + { + "index" : 64, + "ball" : { "x" : 5.27, "y" : -8.35 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : -11.50, "y" : -18.00 }, + "3" : { "x" : -12.00, "y" : 9.00 }, + "4" : { "x" : 2.00, "y" : -29.00 }, + "5" : { "x" : 2.00, "y" : 25.50 }, + "6" : { "x" : -11.50, "y" : -5.00 }, + "7" : { "x" : 10.50, "y" : -19.00 }, + "8" : { "x" : 1.50, "y" : 4.50 }, + "9" : { "x" : 15.24, "y" : -29.32 }, + "10" : { "x" : 15.50, "y" : 8.00 }, + "11" : { "x" : 10.00, "y" : -7.00 } + }, + { + "index" : 65, + "ball" : { "x" : 5.27, "y" : 8.35 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : -12.00, "y" : -9.00 }, + "3" : { "x" : -11.50, "y" : 18.00 }, + "4" : { "x" : 2.00, "y" : -25.50 }, + "5" : { "x" : 2.00, "y" : 29.00 }, + "6" : { "x" : -11.50, "y" : 5.00 }, + "7" : { "x" : 1.50, "y" : -4.50 }, + "8" : { "x" : 10.50, "y" : 19.00 }, + "9" : { "x" : 15.50, "y" : -8.00 }, + "10" : { "x" : 15.24, "y" : 29.32 }, + "11" : { "x" : 10.00, "y" : 7.00 } + }, + { + "index" : 66, + "ball" : { "x" : 39.21, "y" : -14.99 }, + "1" : { "x" : -50.00, "y" : 0.00 }, + "2" : { "x" : 2.00, "y" : -16.50 }, + "3" : { "x" : 1.50, "y" : 16.50 }, + "4" : { "x" : 33.50, "y" : -23.00 }, + "5" : { "x" : 36.00, "y" : 10.00 }, + "6" : { "x" : 0.00, "y" : -0.50 }, + "7" : { "x" : 31.00, "y" : -11.50 }, + "8" : { "x" : 32.00, "y" : 0.00 }, + "9" : { "x" : 43.86, "y" : -16.24 }, + "10" : { "x" : 41.50, "y" : 0.00 }, + "11" : { "x" : 44.94, "y" : -6.60 } + }, + { + "index" : 67, + "ball" : { "x" : 39.21, "y" : 14.99 }, + "1" : { "x" : -50.00, "y" : -0.00 }, + "2" : { "x" : 1.50, "y" : -16.50 }, + "3" : { "x" : 2.00, "y" : 16.50 }, + "4" : { "x" : 36.00, "y" : -10.00 }, + "5" : { "x" : 33.50, "y" : 23.00 }, + "6" : { "x" : 0.00, "y" : 0.50 }, + "7" : { "x" : 32.00, "y" : -0.00 }, + "8" : { "x" : 31.00, "y" : 11.50 }, + "9" : { "x" : 41.50, "y" : -0.00 }, + "10" : { "x" : 43.86, "y" : 16.24 }, + "11" : { "x" : 44.94, "y" : 6.60 } + } + ] +} diff --git a/src/player/CMakeLists.txt b/src/player/CMakeLists.txt index 74666ae2..aa473beb 100644 --- a/src/player/CMakeLists.txt +++ b/src/player/CMakeLists.txt @@ -104,10 +104,8 @@ add_executable(sample_player sample_player.cpp strategy.cpp main_player.cpp - data_extractor/DEState.cpp - data_extractor/offensive_data_extractor.cpp - bhv_unmark.cpp - bhv_basic_block.cpp + bhv_basic_block.cpp + setting.cpp ) diff --git a/src/player/bhv_basic_move.cpp b/src/player/bhv_basic_move.cpp index ed56131b..3e417bf2 100644 --- a/src/player/bhv_basic_move.cpp +++ b/src/player/bhv_basic_move.cpp @@ -5,7 +5,7 @@ Cyrus2D Modified by Omid Amini, Nader Zare - + Gliders2d Modified by Mikhail Prokopenko, Peter Wang @@ -46,6 +46,7 @@ #include "basic_actions/neck_turn_to_ball_or_scan.h" #include "basic_actions/neck_scan_field.h" #include "basic_actions/neck_turn_to_low_conf_teammate.h" +#include "setting.h" #include #include @@ -56,7 +57,6 @@ #include "neck_offensive_intercept_neck.h" #include -#include "bhv_unmark.h" using namespace rcsc; @@ -64,13 +64,12 @@ using namespace rcsc; /*! */ -bool -Bhv_BasicMove::execute( PlayerAgent * agent ) +bool Bhv_BasicMove::execute(PlayerAgent *agent) { - dlog.addText( Logger::TEAM, - __FILE__": Bhv_BasicMove" ); + dlog.addText(Logger::TEAM, + __FILE__ ": Bhv_BasicMove"); - const WorldModel & wm = agent->world(); + const WorldModel &wm = agent->world(); //----------------------------------------------- // tackle @@ -78,10 +77,10 @@ Bhv_BasicMove::execute( PlayerAgent * agent ) double doTackleProb = 0.8; if (wm.ball().pos().x < 0.0) { - doTackleProb = 0.5; + doTackleProb = 0.5; } - if ( Bhv_BasicTackle( doTackleProb, 80.0 ).execute( agent ) ) + if (Bhv_BasicTackle(doTackleProb, 80.0).execute(agent)) { return true; } @@ -92,22 +91,22 @@ Bhv_BasicMove::execute( PlayerAgent * agent ) const int mate_min = wm.interceptTable().teammateStep(); const int opp_min = wm.interceptTable().opponentStep(); - const Vector2D target_point = Strategy::i().getPosition( wm.self().unum() ); + const Vector2D target_point = Strategy::i().getPosition(wm.self().unum()); // G2d: to retrieve opp team name // C2D: Helios 18 Tune removed -> replace with BNN // bool helios2018 = false; // if (wm.opponentTeamName().find("HELIOS2018") != std::string::npos) - // helios2018 = true; -// if (std::min(self_min, mate_min) < opp_min){ -// -// }else{ -// if (Bhv_BasicBlock().execute(agent)){ -// return true; -// } -// } + // helios2018 = true; + // if (std::min(self_min, mate_min) < opp_min){ + // + // }else{ + // if (Bhv_BasicBlock().execute(agent)){ + // return true; + // } + // } // G2d: role - int role = Strategy::i().roleNumber( wm.self().unum() ); + int role = Strategy::i().roleNumber(wm.self().unum()); // G2D: blocking @@ -120,141 +119,137 @@ Bhv_BasicMove::execute( PlayerAgent * agent ) int num = role; auto opps = wm.opponentsFromBall(); - const PlayerObject * nearest_opp - = ( opps.empty() - ? static_cast< PlayerObject * >( 0 ) - : opps.front() ); - const double nearest_opp_dist = ( nearest_opp - ? nearest_opp->distFromSelf() - : 1000.0 ); + const PlayerObject *nearest_opp = (opps.empty() + ? static_cast(0) + : opps.front()); + const double nearest_opp_dist = (nearest_opp + ? nearest_opp->distFromSelf() + : 1000.0); if (ball.x < block_d) { double block_line = -38.0; - // if (helios2018) - // block_line = -48.0; + // if (helios2018) + // block_line = -48.0; - // acknowledgement: fragments of Marlik-2012 code - if( (num == 2 || num == 3) && homePos.x < block_line && - !( num == 2 && ball.x < -46.0 && ball.y > -18.0 && ball.y < -6.0 && - opp_min <= 3 && opp_min <= mate_min && ball.dist(me) < 9.5 ) && - !( num == 3 && ball.x < -46.0 && ball.y < 18.0 && ball.y > 6.0 && - opp_min <= 3 && opp_min <= mate_min && ball.dist(me) < 9.5 ) ) // do not block in this situation + // acknowledgement: fragments of Marlik-2012 code + if ((num == 2 || num == 3) && homePos.x < block_line && + !(num == 2 && ball.x < -46.0 && ball.y > -18.0 && ball.y < -6.0 && + opp_min <= 3 && opp_min <= mate_min && ball.dist(me) < 9.5) && + !(num == 3 && ball.x < -46.0 && ball.y < 18.0 && ball.y > 6.0 && + opp_min <= 3 && opp_min <= mate_min && ball.dist(me) < 9.5)) // do not block in this situation { // do nothing } - else if( (num == 2 || num == 3) && fabs(wm.ball().pos().y) > 22.0 ) + else if ((num == 2 || num == 3) && fabs(wm.ball().pos().y) > 22.0) { // do nothing } - else if (Bhv_BasicBlock().execute(agent)){ + else if (Bhv_BasicBlock().execute(agent)) + { return true; } } // end of block + double pressing_level = static_cast(Setting::i().pressing); // G2d: pressing - int pressing = 13; + int pressing = static_cast(26.0 * pressing_level); - if ( role >= 6 && role <= 8 && wm.ball().pos().x > -30.0 && wm.self().pos().x < 10.0 ) - pressing = 7; + if (role >= 6 && role <= 8 && wm.ball().pos().x > -30.0 && wm.self().pos().x < 10.0) + pressing = static_cast(14.0 * pressing_level); - if (fabs(wm.ball().pos().y) > 22.0 && wm.ball().pos().x < 0.0 && wm.ball().pos().x > -36.5 && (role == 4 || role == 5) ) - pressing = 23; + if (fabs(wm.ball().pos().y) > 22.0 && wm.ball().pos().x < 0.0 && wm.ball().pos().x > -36.5 && (role == 4 || role == 5)) + pressing = static_cast(46.0 * pressing_level); // C2D: Helios 18 Tune removed -> replace with BNN - // if (helios2018) - // pressing = 4; - - if ( ! wm.kickableTeammate() - && ( self_min <= 3 - || ( self_min <= mate_min - && self_min < opp_min + pressing ) // pressing - ) - ) + // if (helios2018) + // pressing = 4; + + if (!wm.kickableTeammate() && (self_min <= 3 || (self_min <= mate_min && self_min < opp_min + pressing) // pressing + )) { - dlog.addText( Logger::TEAM, - __FILE__": intercept" ); - Body_Intercept().execute( agent ); - agent->setNeckAction( new Neck_OffensiveInterceptNeck() ); + dlog.addText(Logger::TEAM, + __FILE__ ": intercept"); + Body_Intercept().execute(agent); + agent->setNeckAction(new Neck_OffensiveInterceptNeck()); return true; } + // G2D : offside trap + if (Setting::i().offside_trap == 1) + { + double first = 0.0, second = 0.0; + const auto t3_end = wm.teammatesFromSelf().end(); - -// G2D : offside trap - double first = 0.0, second = 0.0; - const auto t3_end = wm.teammatesFromSelf().end(); - for ( auto it = wm.teammatesFromSelf().begin(); - it != t3_end; - ++it ) + // find the first and second closest teammates + for (auto it = wm.teammatesFromSelf().begin(); it != t3_end; ++it) { double x = (*it)->pos().x; - if ( x < second ) + if (x < second) { second = x; - if ( second < first ) + if (second < first) { - std::swap( first, second ); + std::swap(first, second); } } } - double buf1 = 3.5; - double buf2 = 4.5; - - if( me.x < -37.0 && opp_min < mate_min && - (homePos.x > -37.5 || wm.ball().inertiaPoint(opp_min).x > -36.0 ) && - second + buf1 > me.x && wm.ball().pos().x > me.x + buf2) - { - Body_GoToPoint( rcsc::Vector2D( me.x + 15.0, me.y ), - 0.5, ServerParam::i().maxDashPower(), // maximum dash power - ServerParam::i().maxDashPower(), // preferred dash speed - 2, // preferred reach cycle - true, // save recovery - 5.0 ).execute( agent ); - - if (wm.kickableOpponent() && wm.ball().distFromSelf() < 12.0) // C2D - agent->setNeckAction(new Neck_TurnToBall()); - else - agent->setNeckAction(new Neck_TurnToBallOrScan(4)); // C2D - return true; - } + double buf1 = 3.5; + double buf2 = 4.5; - if (std::min(self_min, mate_min) < opp_min){ - if (Bhv_Unmark().execute(agent)) + if (me.x < -37.0 && opp_min < mate_min && + (homePos.x > -37.5 || wm.ball().inertiaPoint(opp_min).x > -36.0) && + second + buf1 > me.x && wm.ball().pos().x > me.x + buf2) + { + Body_GoToPoint( + rcsc::Vector2D(me.x + 15.0, me.y), + 0.5, + ServerParam::i().maxDashPower(), // maximum dash power + ServerParam::i().maxDashPower(), // preferred dash speed + 2, // preferred reach cycle + true, // save recovery + 5.0) + .execute(agent); + + if (wm.kickableOpponent() && wm.ball().distFromSelf() < 12.0) // C2D + agent->setNeckAction(new Neck_TurnToBall()); + else + agent->setNeckAction(new Neck_TurnToBallOrScan(4)); // C2D return true; + } } - const double dash_power = Strategy::get_normal_dash_power( wm ); + + const double dash_power = Strategy::get_normal_dash_power(wm); double dist_thr = wm.ball().distFromSelf() * 0.1; - if ( dist_thr < 1.0 ) dist_thr = 1.0; + if (dist_thr < 1.0) + dist_thr = 1.0; - dlog.addText( Logger::TEAM, - __FILE__": Bhv_BasicMove target=(%.1f %.1f) dist_thr=%.2f", - target_point.x, target_point.y, - dist_thr ); + dlog.addText(Logger::TEAM, + __FILE__ ": Bhv_BasicMove target=(%.1f %.1f) dist_thr=%.2f", + target_point.x, target_point.y, + dist_thr); - agent->debugClient().addMessage( "BasicMove%.0f", dash_power ); - agent->debugClient().setTarget( target_point ); - agent->debugClient().addCircle( target_point, dist_thr ); + agent->debugClient().addMessage("BasicMove%.0f", dash_power); + agent->debugClient().setTarget(target_point); + agent->debugClient().addCircle(target_point, dist_thr); - if ( ! Body_GoToPoint( target_point, dist_thr, dash_power - ).execute( agent ) ) + if (!Body_GoToPoint(target_point, dist_thr, dash_power).execute(agent)) { - Body_TurnToBall().execute( agent ); + Body_TurnToBall().execute(agent); } - if ( wm.kickableOpponent() - && wm.ball().distFromSelf() < 18.0 ) + if (wm.kickableOpponent() && wm.ball().distFromSelf() < 18.0) { - agent->setNeckAction( new Neck_TurnToBall() ); + agent->setNeckAction(new Neck_TurnToBall()); } else { - agent->setNeckAction( new Neck_TurnToBallOrScan( 0 ) ); + agent->setNeckAction(new Neck_TurnToBallOrScan(0)); } return true; diff --git a/src/player/bhv_unmark.cpp b/src/player/bhv_unmark.cpp deleted file mode 100644 index fd9770dc..00000000 --- a/src/player/bhv_unmark.cpp +++ /dev/null @@ -1,579 +0,0 @@ -/* - Copyright: - Cyrus2D - Modified by Aref Sayareh, Nader Zare, Omid Amini -*/ - -#ifdef HAVE_CONFIG_H - -#include - -#endif - -#include "strategy.h" -#include "bhv_unmark.h" -#include "intention_receive.h" -#include "planner/field_analyzer.h" -#include - -#include -#include "basic_actions/basic_actions.h" -#include "basic_actions/body_go_to_point.h" -#include "basic_actions/neck_turn_to_ball_or_scan.h" -#include -#include -#include -#include -#include -#include - -#include "data_extractor/offensive_data_extractor.h" -#include "data_extractor/DEState.h" - -using namespace std; -using namespace rcsc; - - -// static bool debug = false; -Bhv_Unmark::UnmarkPosition Bhv_Unmark::last_unmark_position = UnmarkPosition(); -DeepNueralNetwork * Bhv_Unmark::pass_prediction = new DeepNueralNetwork(); - - -bool Bhv_Unmark::execute(PlayerAgent *agent) { - const WorldModel &wm = agent->world(); - int passer = find_passer_dnn(wm,agent); - if (!can_unmarking(wm)) - return false; - - if (last_unmark_position.target.isValid() - && last_unmark_position.last_run_cycle == wm.time().cycle() - 1 - && last_unmark_position.end_valid_cycle > wm.time().cycle() - && last_unmark_position.target.x < wm.offsideLineX()) { - dlog.addText(Logger::POSITIONING, "run last unmarking to (%.1f, %.1f)", - last_unmark_position.target.x, last_unmark_position.target.y); - last_unmark_position.last_run_cycle = wm.time().cycle(); - if (run(agent, last_unmark_position)) { - agent->debugClient().addMessage("Unmarking to (%.1f, %.1f)", last_unmark_position.target.x, - last_unmark_position.target.y); - return true; - } - } - - // int passer = passer_finder(agent); - - // std::cout << "st_____" << wm.time().cycle() << " " << wm.self().unum() << std::endl; - - // DEState state = DEState(wm); - // int fastest_tm = 0; - // if (wm.interceptTable()->fastestTeammate() != nullptr) - // fastest_tm = wm.interceptTable()->fastestTeammate()->unum(); - // int tm_reach_cycle = wm.interceptTable()->teammateReachCycle(); - // if (fastest_tm != 0 && !state.updateKicker(fastest_tm, wm.ball().inertiaPoint(tm_reach_cycle))) - // fastest_tm = 0; - // if (fastest_tm != 0){ - // auto features = OffensiveDataExtractor::i().get_data(state); - // vector ignored_player; - // ignored_player.push_back(5); - // auto passes = predict_pass_dnn(features, ignored_player, fastest_tm); - // } - - // std::cout << wm.time().cycle() << "ed___ " << wm.self().unum() << " __ " << passer << std::endl; - // passer = passer_finder(agent); - - dlog.addText(Logger::POSITIONING, "Should unmarking for %d", passer); - if (passer == 0) - return false; - vector unmark_positions; - simulate_dash(agent, passer, unmark_positions); - - if (unmark_positions.empty()) - return false; - - double max_eval = 0; - int best = -1; //-1=not 0=last other=other - for (size_t i = 0; i < unmark_positions.size(); i++) { - double ev = unmark_positions[i].eval; - if (ev > max_eval) { - best = i; - max_eval = ev; - } - } - if (best == -1) - return false; - - last_unmark_position = unmark_positions[best]; - last_unmark_position.last_run_cycle = wm.time().cycle(); - last_unmark_position.end_valid_cycle = wm.time().cycle() + 5; - if (run(agent, unmark_positions[best])) { - agent->debugClient().addMessage("Unmarking to (%.1f, %.1f)", unmark_positions[best].target.x, - unmark_positions[best].target.y); - return true; - } - return false; -} - -bool Bhv_Unmark::can_unmarking(const WorldModel &wm) { - int mate_min = wm.interceptTable().teammateStep(); - int opp_min = wm.interceptTable().opponentStep(); - int unum = wm.self().unum(); - double stamina = wm.self().stamina(); - double dist2target = Strategy::instance().getPosition(unum).dist(wm.self().pos()); - int min_stamina_limit = 3500; - if (wm.self().unum() >= 9) { - if (wm.ball().pos().x > 30) - min_stamina_limit = 2700; - else if (wm.ball().pos().x > 10) - min_stamina_limit = 3500; - else if (wm.ball().pos().x > -30) - min_stamina_limit = 5000; - else if (wm.ball().pos().x > -55) - min_stamina_limit = 6000; - } else if (wm.self().unum() >= 6) { - if (wm.ball().pos().x > 30) - min_stamina_limit = 3000; - else if (wm.ball().pos().x > 10) - min_stamina_limit = 4000; - else if (wm.ball().pos().x > -30) - min_stamina_limit = 5000; - else if (wm.ball().pos().x > -55) - min_stamina_limit = 6000; - } else { - if (wm.ball().pos().x > 30) - min_stamina_limit = 6000; - else if (wm.ball().pos().x > 10) - min_stamina_limit = 4000; - else if (wm.ball().pos().x > -30) - min_stamina_limit = 3500; - else if (wm.ball().pos().x > -55) - min_stamina_limit = 2500; - } - - if (opp_min < mate_min || stamina < min_stamina_limit || dist2target > 10) { - dlog.addText(Logger::POSITIONING, - "can not for opp cycle or stamina or dist"); - return false; - } - - if (opp_min == mate_min) - if (unum < 6) { - dlog.addText(Logger::POSITIONING, - "can not for opp cycle or stamina or dist def"); - return false; - } - - if (wm.self().isFrozen()) { - dlog.addText(Logger::POSITIONING, "can not for frozen"); - return false; - } - if (wm.ball().inertiaPoint(mate_min).dist(wm.self().pos()) > 35) - return false; - Vector2D home_pos = Strategy::instance().getPosition(wm.self().unum()); - if (wm.ball().inertiaPoint(mate_min).x < 30 - && home_pos.x > wm.offsideLineX() - 10) - return false; - return true; -} - -int Bhv_Unmark::passer_finder(rcsc::PlayerAgent *agent) { - const WorldModel &wm = agent->world(); - auto tm = wm.interceptTable().firstTeammate(); - if (tm != nullptr && tm->unum() > 0) - return tm->unum(); - return 0; -} - -void Bhv_Unmark::simulate_dash(rcsc::PlayerAgent *agent, int tm, - vector &unmark_positions) { - const WorldModel &wm = agent->world(); - const AbstractPlayerObject *passer = wm.ourPlayer(tm); - int mate_min = wm.interceptTable().teammateStep(); - - Vector2D ball_pos = wm.ball().inertiaPoint(mate_min); - Vector2D self_pos = wm.self().inertiaFinalPoint(); - Vector2D home_pos = Strategy::instance().getPosition(wm.self().unum()); - Vector2D passer_pos = passer->pos(); - // Vector2D self_vel = wm.self().vel(); - // AngleDeg self_body = wm.self().body().degree(); - - // const PlayerType *self_type = &(wm.self().playerType()); - // double self_max_speed = self_type->realSpeedMax(); - // double self_speed = self_vel.r(); - double offside_lineX = wm.offsideLineX(); - - vector positions; - if (self_pos.dist(home_pos) < 5){ - for (double dist = 2.0; dist <= 7.0; dist += 1.0){ - for (double angle = -180; angle < 180; angle += 20){ - Vector2D position = self_pos + Vector2D::polar2vector(dist, angle); - positions.push_back(position); - } - } - }else{ - for (double dist = 3.0; dist <= 8.0; dist += 1){ - double center_angle = (home_pos - self_pos).th().degree(); - for (double angle = -30; angle < 30; angle += 10){ - Vector2D position = self_pos + Vector2D::polar2vector(dist, angle + center_angle); - positions.push_back(position); - } - } - } - int position_id = 0; - for (auto target: positions){ - position_id += 1; - dlog.addText(Logger::POSITIONING, "# %d ##### (%.1f,%.1f)", position_id, target.x, target.y); - char num[8]; - snprintf(num, 8, "%d", position_id); - dlog.addMessage(Logger::POSITIONING, target + Vector2D(0, 0), num); - if (target.x > offside_lineX) { - dlog.addCircle(Logger::POSITIONING, target, 0.5, 255, 0, 0); - dlog.addText(Logger::POSITIONING, "---- more than offside"); - continue; - } - - double home_max_dist = 7; - - if (target.dist(home_pos) > home_max_dist) { - dlog.addCircle(Logger::POSITIONING, target, 0.5, 255, 0, 0); - dlog.addText(Logger::POSITIONING, "---- far to home pos"); - continue; - } - - double min_tm_dist = - ServerParam::i().theirPenaltyArea().contains(target) ? - 5 : 8; - if (nearest_tm_dist_to(wm, target) < min_tm_dist) { - dlog.addCircle(Logger::POSITIONING, target, 0.5, 255, 0, 0); - dlog.addText(Logger::POSITIONING, "---- close to tm"); - continue; - } - if (target.absX() > 52 || target.absY() > 31.5) { - dlog.addCircle(Logger::POSITIONING, target, 0.5, 255, 0, 0); - dlog.addText(Logger::POSITIONING, "---- out of field"); - continue; - } - - vector passes; - lead_pass_simulator(wm, passer_pos, target, //0, - passes); - - if (!passes.empty()) { - double pos_eval = 0; - UnmarkPosition new_pos(position_id, ball_pos, target, pos_eval, passes); - pos_eval = evaluate_position(wm, new_pos); - new_pos.eval = pos_eval; - dlog.addCircle(Logger::POSITIONING, target, 0.5, 0, 0, 255); - dlog.addText(Logger::POSITIONING, "---- OK (%.1f, %.1f) passes: %d eval: %.1f", target.x, - target.y, passes.size(), pos_eval); - unmark_positions.push_back(new_pos); - } else { - dlog.addText(Logger::POSITIONING, "---- NOK no pass"); - dlog.addCircle(Logger::POSITIONING, target, 0.5, 0, 0, 0); - } - } -} - -double Bhv_Unmark::nearest_tm_dist_to(const WorldModel &wm, Vector2D point) { - - double dist = 1000; - for (auto &tm: wm.teammatesFromSelf()) { - if (tm != nullptr && tm->unum() > 0) { - if (!tm->pos().isValid()) - continue; - if (dist > tm->pos().dist(point)) - dist = tm->pos().dist(point); - } - } - return dist; -} - -double passSpeed(double dist_ball_to_unmark_target, double dist_unmark_to_pass_target){ - double pass_speed = 1.5; - if (dist_ball_to_unmark_target >= 20.0) - pass_speed = 3.0; - else if (dist_ball_to_unmark_target >= 8.0) - pass_speed = 2.6; - else if (dist_ball_to_unmark_target >= 5.0) - pass_speed = 2.0; - if (dist_unmark_to_pass_target < 0.1) - pass_speed += 0.5; - pass_speed = std::min(3.0, pass_speed); - return pass_speed; -} -void Bhv_Unmark::lead_pass_simulator(const WorldModel &wm, Vector2D passer_pos, - Vector2D unmark_target, //int n_step, - vector &passes) { - - int mate_min = wm.interceptTable().teammateStep(); - Vector2D pass_start = wm.ball().inertiaPoint(mate_min); - // Vector2D current_self_pos = wm.self().pos(); - - vector pass_targets; - for (double dist = 0; dist <= 3; dist += 3.0){ - for (double angle = -180; angle < 180; angle += 90){ - pass_targets.push_back(unmark_target + Vector2D::polar2vector(dist, angle)); - if (dist == 0) - break; - } - } - for (auto & pass_target: pass_targets){ - double pass_speed = passSpeed(passer_pos.dist(unmark_target), unmark_target.dist(pass_target)); - int pass_cycle = pass_travel_cycle(pass_start, pass_speed, pass_target); - int min_opp_cut_cycle = opponents_cycle_intercept(wm, pass_start, pass_speed, - pass_target, pass_cycle); - - - if (pass_cycle < min_opp_cut_cycle) { - dlog.addText(Logger::POSITIONING, - "------pass_start(%.1f,%.1f), pass_target(%.1f,%.1f), self_cycle(%d), opp_cycle(%d) OK", - pass_start.x, pass_start.y, pass_target.x, pass_target.y, - pass_cycle, min_opp_cut_cycle); - double pass_eval = pass_target.x + std::max(0.0, 40.0 - pass_target.dist(Vector2D(50.0, 0))); - - UnmakingPass pass_obj = UnmakingPass(pass_target, pass_speed, - pass_eval, pass_cycle); - - passes.push_back(pass_obj); - dlog.addCircle(Logger::POSITIONING, pass_target, 0.1, 0, 0, 200); - } else { - dlog.addCircle(Logger::POSITIONING, pass_target, 0.1, 255, 0, 0); - dlog.addText(Logger::POSITIONING, - "------pass_start(%.1f,%.1f), pass_target(%.1f,%.1f), self_cycle(%d), opp_cycle(%d) NOT OK", - pass_start.x, pass_start.y, pass_target.x, pass_target.y, - pass_cycle, min_opp_cut_cycle); - } - } - -} - -int Bhv_Unmark::pass_travel_cycle(Vector2D pass_start, double pass_speed, Vector2D &pass_target) { - const ServerParam &SP = ServerParam::i(); - double cycle = -(pass_start.dist(pass_target) / pass_speed * ( 1 - SP.ballDecay()) - 1); - cycle = std::log(cycle) / std::log(SP.ballDecay()); - return static_cast(cycle); -} - -int Bhv_Unmark::opponents_cycle_intercept(const WorldModel &wm, - Vector2D pass_start, double pass_speed, - Vector2D pass_target, - int pass_cycle) { - int min_cycle = 1000; - for (auto &opp: wm.opponentsFromSelf()) { - if (opp == nullptr) - continue; - int opp_cycle = opponent_cycle_intercept(opp, pass_start, pass_speed, pass_target, pass_cycle); - if (min_cycle > opp_cycle) - min_cycle = opp_cycle; - if (min_cycle <= pass_cycle) - break; - } - return min_cycle; - -} - -int Bhv_Unmark::opponent_cycle_intercept(const AbstractPlayerObject *opp, Vector2D pass_start, double pass_speed, - Vector2D pass_target, int pass_cycle) { - - const ServerParam &SP = ServerParam::i(); - - AngleDeg pass_angle = (pass_target - pass_start).th(); - - Vector2D pass_start_vel = Vector2D::polar2vector(pass_speed, pass_angle); - Vector2D opp_pos = (*opp).pos(); - - const PlayerType *opp_type = (*opp).playerTypePtr(); - - for (int cycle = 1; cycle <= pass_cycle; cycle++) { - const Vector2D ball_pos = inertia_n_step_point(pass_start, - pass_start_vel, cycle, SP.ballDecay()); - - double dash_dist = ball_pos.dist(opp_pos); - dash_dist -= 0.5; - - int n_dash = opp_type->cyclesToReachDistance(dash_dist); - int n_step = n_dash; - if (n_step <= cycle) { - return cycle; - } - } - return 1000; -} - -double Bhv_Unmark::evaluate_position(const WorldModel &wm, const UnmarkPosition &unmark_position) { - double sum_eval = 0; - double best_pass_eval = 0; - double opp_eval = 10; - for (auto &i: unmark_position.pass_list) { - if (best_pass_eval < i.pass_eval) - best_pass_eval = i.pass_eval; - - sum_eval += i.pass_eval; - } - - for (auto &opp: wm.theirPlayers()) { - if (opp != nullptr && opp->unum() > 0) { - double opp_dist = opp->pos().dist(unmark_position.target); - if (opp_dist < opp_eval) - opp_eval = opp_dist; - - } - } - - bool have_turn = - ((unmark_position.target - wm.self().pos()).th() - wm.self().body()).abs() >= 15; - bool up_pos = - wm.self().unum() >= 6 - && (unmark_position.target - wm.self().pos()).th().abs() < 60; - sum_eval /= unmark_position.pass_list.size(); - sum_eval += (sum_eval * unmark_position.pass_list.size() / 10); - sum_eval += best_pass_eval; - sum_eval += opp_eval; - (!have_turn) ? sum_eval += 10 : sum_eval += 0; - (up_pos) ? sum_eval += 10 : sum_eval += 0; - return sum_eval; -} - -bool Bhv_Unmark::run(PlayerAgent *agent, const UnmarkPosition &unmark_position) { - - const WorldModel &wm = agent->world(); - Vector2D target = unmark_position.target; - Vector2D ball_pos = unmark_position.ball_pos; - // Vector2D me = wm.self().pos(); - // Vector2D homePos = Strategy::i().getPosition(wm.self().unum()); - // const int self_min = wm.interceptTable()->selfReachCycle(); - const int mate_min = wm.interceptTable().teammateStep(); - // const int opp_min = wm.interceptTable()->opponentReachCycle(); - - double thr = 0.5; - if (agent->world().self().inertiaPoint(1).dist(unmark_position.target) < thr) { - AngleDeg bestAngle = (ball_pos - unmark_position.target).th() + 80; - if (abs(bestAngle.degree()) > 90) - bestAngle = (ball_pos - unmark_position.target).th() - 80; - Body_TurnToAngle(bestAngle).execute(agent); - agent->setNeckAction(new Neck_TurnToBallOrScan(0)); - return true; - } - dlog.addCircle(Logger::POSITIONING, target, 0.5, 0, 0, 255, true); - double dash_power = ( - ball_pos.x > 30 && wm.self().stamina() > 6000 && wm.self().unum() > 6 ? - 100 : Strategy::get_normal_dash_power(agent->world())); - if (!Body_GoToPoint(unmark_position.target, thr, dash_power).execute(agent)){ - Body_TurnToBall().execute( agent ); - } - if (mate_min <= 3) - agent->setNeckAction(new Neck_TurnToBallOrScan(0)); - else - agent->setNeckAction(new Neck_TurnToBallOrScan(1)); - return true; -} - -void Bhv_Unmark::load_dnn(){ - static bool load_dnn = false; - if(!load_dnn){ - load_dnn = true; - pass_prediction->ReadFromKeras("./unmark_dnn_weights.txt"); - } -} - -vector Bhv_Unmark::predict_pass_dnn(vector & features, vector ignored_player, int kicker){ - load_dnn(); - MatrixXd input(290,1); // 290 12 - for (int i = 1; i <= 290; i += 1){ - input(i - 1,0) = features[i]; - } - pass_prediction->Calculate(input); - vector predict; - for (int i = 0; i < 12; i++){ - - if (i == 0){ - dlog.addText(Logger::POSITIONING, "##### Pass from %d to %d : %.6f NOK(0)", kicker, i, pass_prediction->mOutput(i)); - }else if(std::find(ignored_player.begin(), ignored_player.end(), i) == std::end(ignored_player)){ - dlog.addText(Logger::POSITIONING, "##### Pass from %d to %d : %.6f OKKKK", kicker, i, pass_prediction->mOutput(i)); - predict.push_back(pass_prob(pass_prediction->mOutput(i), kicker, i)); - }else{ - dlog.addText(Logger::POSITIONING, "##### Pass from %d to %d : %.6f NOK(ignored)", kicker, i, pass_prediction->mOutput(i)); - } - } - std::sort(predict.begin(), predict.end(),pass_prob::ProbCmp); - return predict; -} - - -int Bhv_Unmark::find_passer_dnn(const WorldModel & wm, PlayerAgent * agent){ - dlog.addText(Logger::POSITIONING, "############### Start Update Passer DNN ###########"); - DEState state = DEState(wm); - - int fastest_tm = 0; - if (wm.interceptTable().firstTeammate() != nullptr) - fastest_tm = wm.interceptTable().firstTeammate()->unum(); - if (fastest_tm < 1) - return 0; - int tm_reach_cycle = wm.interceptTable().teammateStep(); - if (!state.updateKicker(fastest_tm, wm.ball().inertiaPoint(tm_reach_cycle))) - return 0; - - vector ignored_player; - string ignored = ""; - for (int i = 1; i <= 11; i++){ - if (wm.ourPlayer(i) == nullptr || wm.ourPlayer(i)->unum() < 1 || not wm.ourPlayer(i)->pos().isValid()){ - ignored_player.push_back(i); - ignored += std::to_string(i) + ","; - } - } - dlog.addText(Logger::POSITIONING, "ignored: %s", ignored.c_str()); - vector best_passes; - vector all_passes; - all_passes.push_back(pass_prob(100.0, 0, fastest_tm)); - - for (int processed_player = 0; processed_player < 6 && all_passes.size() > 0; processed_player++){ - std::sort(all_passes.begin(), all_passes.end(),pass_prob::ProbCmp); - auto best_pass = all_passes.back(); - all_passes.pop_back(); - - dlog.addText(Logger::POSITIONING, "###selected best pass: %d to %d, %.5f", best_pass.pass_sender, best_pass.pass_getter, best_pass.prob); - if (std::find(ignored_player.begin(), ignored_player.end(), best_pass.pass_getter) != ignored_player.end()){ - dlog.addText(Logger::POSITIONING, "######is in ignored"); - continue; - } - if (best_pass.prob < 0.01){ - dlog.addText(Logger::POSITIONING, "######is not valuable"); - continue; - } - - if (best_pass.pass_sender != 0) - best_passes.push_back(best_pass); - ignored_player.push_back(best_pass.pass_getter); - - if (state.updateKicker(best_pass.pass_getter)){ - auto features = OffensiveDataExtractor::i().get_data(state); - auto passes = predict_pass_dnn(features, ignored_player, best_pass.pass_getter); - int max_pass = 2; - for (int p = passes.size() - 1; p >= 0; p--){ - if (max_pass == 0) - break; - all_passes.push_back(passes[p]); - max_pass -= 1; - } - } - } - - vector res; - for (auto &p : best_passes) - { - Vector2D kicker_pos = wm.ourPlayer(p.pass_sender)->pos(); - Vector2D target_pos = wm.ourPlayer(p.pass_getter)->pos(); - dlog.addLine(Logger::POSITIONING,kicker_pos - Vector2D(-0.2, 0), target_pos - Vector2D(-0.2, 0)); - dlog.addLine(Logger::POSITIONING,kicker_pos - Vector2D(-0.1, 0), target_pos - Vector2D(-0.1, 0)); - dlog.addLine(Logger::POSITIONING,kicker_pos, target_pos); - dlog.addLine(Logger::POSITIONING,kicker_pos - Vector2D(0.2, 0), target_pos - Vector2D(0.2, 0)); - dlog.addLine(Logger::POSITIONING,kicker_pos - Vector2D(0.1, 0), target_pos - Vector2D(0.1, 0)); - dlog.addCircle(Logger::POSITIONING, target_pos, 2); - - if (p.pass_getter == wm.self().unum()) - res.push_back(unmark_passer(p.pass_sender, kicker_pos, wm.interceptTable().opponentStep())); - } - if (!res.empty()){ - return res[0].unum; - } - return 0; -} -// */ \ No newline at end of file diff --git a/src/player/bhv_unmark.h b/src/player/bhv_unmark.h deleted file mode 100644 index c7069479..00000000 --- a/src/player/bhv_unmark.h +++ /dev/null @@ -1,132 +0,0 @@ -/* - Copyright: - Cyrus2D - Modified by Nader Zare, Omid Amini -*/ - - -#ifndef CYRUS2DBASE_BHV_UNMARK_H -#define CYRUS2DBASE_BHV_UNMARK_H - -#include -#include -#include -#include -#include -#include - -using namespace std; -using namespace rcsc; - - -class pass_prob { -public: - double prob = 0.0; - int pass_sender = 0; - int pass_getter = 0; - - pass_prob(double prob, int pass_sender, int pass_getter) - : prob(prob), pass_sender(pass_sender), pass_getter(pass_getter) - { - } - - static bool ProbCmp(pass_prob const &a, pass_prob const &b) - { - return a.prob < b.prob; - } -}; - -class Bhv_Unmark - : public rcsc::SoccerBehavior { -public: - Bhv_Unmark() = default; - - struct UnmakingPass { - Vector2D pass_target; - double pass_speed; - double pass_eval; - double pass_cycle; - - explicit UnmakingPass(Vector2D target, double speed, double eval, double cycle) - : pass_target(target), pass_speed(speed), pass_eval(eval), pass_cycle(cycle) { - } - }; - - struct unmark_passer - { - int unum = 0; - Vector2D ballpos = Vector2D::INVALIDATED;; - int oppmin_cycle = 0; - unmark_passer(int unum, Vector2D ballpos, int oppmin_cycle) - : unum(unum), ballpos(ballpos), oppmin_cycle(oppmin_cycle) - { - } - unmark_passer() - { - ballpos = Vector2D::INVALIDATED; - } - }; - - struct UnmarkPosition { - int id; - Vector2D ball_pos; - Vector2D target; - double eval; - vector pass_list; - int end_valid_cycle; - int last_run_cycle; - UnmarkPosition(int id, Vector2D ball_pos, Vector2D target, double eval, vector pass_list) - : id(id), ball_pos(ball_pos), target(target), eval(eval), pass_list(std::move(pass_list)), - end_valid_cycle(0), last_run_cycle(0) { - } - UnmarkPosition(){ - target = Vector2D::INVALIDATED; - } - }; - - static UnmarkPosition last_unmark_position; - - bool execute(PlayerAgent *agent) override; - - bool can_unmarking(const rcsc::WorldModel &wm); - - int passer_finder(PlayerAgent *agent); - - void simulate_dash(PlayerAgent *agent, int passer, std::vector &unmark_positions); - - double nearest_tm_dist_to(const WorldModel &wm, - Vector2D point); - - void lead_pass_simulator(const WorldModel &wm, - Vector2D passer_pos, - Vector2D unmark_target, - // int n_step, - vector &passes); - - int pass_travel_cycle(Vector2D pass_start, double pass_speed, Vector2D &pass_target); - - int opponents_cycle_intercept(const WorldModel &wm, - Vector2D pass_start, - double pass_speed, - Vector2D pass_target, - int pass_cycle); - - int opponent_cycle_intercept(const AbstractPlayerObject *opp, Vector2D pass_start, double pass_speed, - Vector2D pass_target, int pass_cycle); - - double evaluate_position(const WorldModel &wm, const UnmarkPosition &unmark_position); - - bool run(PlayerAgent *agent, const UnmarkPosition &unmark_position); - - static DeepNueralNetwork * pass_prediction; - - static void load_dnn(); - - vector predict_pass_dnn(vector & features, vector ignored_player, int kicker); - - int find_passer_dnn(const WorldModel & wm, PlayerAgent * agent); - -}; - - -#endif //CYRUS2DBASE_BHV_UNMARK_H diff --git a/src/player/data_extractor/DEState.cpp b/src/player/data_extractor/DEState.cpp deleted file mode 100644 index f13fbfa2..00000000 --- a/src/player/data_extractor/DEState.cpp +++ /dev/null @@ -1,5 +0,0 @@ -// -// Created by nader on 2022-02-10. -// - -#include "DEState.h" diff --git a/src/player/data_extractor/DEState.h b/src/player/data_extractor/DEState.h deleted file mode 100644 index d9563f66..00000000 --- a/src/player/data_extractor/DEState.h +++ /dev/null @@ -1,300 +0,0 @@ -/* - Copyright: - Cyrus2D - Modified by Nader Zare, Omid Amini, Aref Sayareh -*/ - -#ifndef TEAM_DESTATE_H -#define TEAM_DESTATE_H -#include -#include -#include -#include -#include -#include -#include -#include -#include -#define DESDebug - -using namespace rcsc; -class DEBall{ -public: - Vector2D M_pos; - Vector2D M_rpos; - const BallObject * M_ball; - DEBall(){} - DEBall(const BallObject & ball): - M_ball(&ball){ - M_pos = ball.pos(); - M_rpos = ball.rpos(); - } - const BallObject * ball() const{ - return M_ball; - } - void update_pos(Vector2D pos){ - M_pos = pos; - } - void update_rpos(Vector2D & kicker_pos){ - M_rpos = kicker_pos - M_pos; - } - Vector2D & pos() { - return M_pos; - } - Vector2D & rpos() { - return M_rpos; - } - bool posValid() { - return M_pos.isValid(); - } - bool rposValid() { - return M_rpos.isValid(); - } -}; -class DEPlayer{ -public: - Vector2D M_pos; - int M_unum; - int M_side; - double M_dist_from_ball; - bool M_is_ghost; - const AbstractPlayerObject * M_player; - bool M_body_valid; - DEPlayer(const AbstractPlayerObject * p, DEBall & ball): - M_player(p) - { - M_pos = p->pos(); - M_unum = p->unum(); - M_side = p->side(); - M_dist_from_ball = pos().dist(ball.pos()); - M_is_ghost = p->isGhost(); - M_body_valid = false; - } - const AbstractPlayerObject * player(){ - return M_player; - } - int & unum(){ - return M_unum; - } - int & side(){ - return M_side; - } - Vector2D & pos(){ - return M_pos; - } - double distFromBall(){ - return M_dist_from_ball; - } - bool isGhost(){ - return M_is_ghost; - } - bool isTackling(){ - return false; - } - bool kicked(){ - return false; - } - bool bodyValid(){ - return true; - } - void updateForKicker(Vector2D & ball_pos){ - M_dist_from_ball = M_pos.dist(ball_pos); - } -}; -class DEState { -public: - int M_cycle; - DEBall M_ball; - std::vector M_all_players; - std::vector M_teammates; - std::vector M_opponents; - std::vector M_unknown_players; - std::vector M_known_teammates; - std::vector M_known_opponents; - std::vector M_our_players; - std::vector M_their_players; - int M_kicker_unum; - DEPlayer* M_kicker_player; - double M_offside_line_x; - int M_offside_line_count; - int M_our_side; - const WorldModel &M_wm; - bool current_cycle; - DEState(const WorldModel & wm): - M_wm(wm) - { - M_cycle = wm.time().cycle(); - current_cycle = true; - M_offside_line_x = wm.offsideLineX(); - M_offside_line_count = wm.offsideLineCount(); - M_our_side = wm.ourSide(); - M_ball = DEBall(wm.ball()); - #ifdef DESDebug - dlog.addText(Logger::BLOCK, "Start updating M_all_players"); - #endif - for (auto p: wm.allPlayers()){ - #ifdef DESDebug - dlog.addText(Logger::BLOCK, "##side:%d, unum:%d is added to all_players", p->side(), p->unum()); - #endif - M_all_players.push_back(new DEPlayer(p, M_ball)); - } - #ifdef DESDebug - dlog.addText(Logger::BLOCK, "End updating M_all_players"); - #endif - updateVectors(wm); - } - ~DEState(){ - for (auto p : M_all_players) - { - delete p; - } - M_all_players.clear(); - } - int cycle(){ - return M_cycle; - } - DEBall & ball(){ - return M_ball; - } - void updateVectors(const WorldModel & wm){ - #ifdef DESDebug - dlog.addText(Logger::BLOCK, "Start updating Vectors"); - #endif - for (int i = 0; i <= 11; i++){ - M_known_teammates.push_back(nullptr);//DEPlayer(); - M_known_opponents.push_back(nullptr);//DEPlayer(); - } - for (auto p: M_all_players){ - #ifdef DESDebug - dlog.addText(Logger::BLOCK, "--P side%d unum%d", p->side(), p->unum()); - #endif - if (p->side() == ourSide()){ - #ifdef DESDebug - dlog.addText(Logger::BLOCK, "###is tm"); - #endif - M_our_players.push_back(p); - M_teammates.push_back(p); - #ifdef DESDebug - dlog.addText(Logger::BLOCK, "####pushed to ourPlayers, teammates"); - #endif - if (p->unum() != -1){ - M_known_teammates[p->unum()] = p; - #ifdef DESDebug - dlog.addText(Logger::BLOCK, "#####add to kn tm %d %d, add %s", p->unum(), M_known_teammates[p->unum()]->unum(), p); - #endif - } - }else{ - #ifdef DESDebug - dlog.addText(Logger::BLOCK, "###is opp"); - #endif - M_their_players.push_back(p); - #ifdef DESDebug - dlog.addText(Logger::BLOCK, "#####pushed to their_players"); - #endif - if(p->side() == -ourSide()){ - #ifdef DESDebug - dlog.addText(Logger::BLOCK, "#####pushed to opponents"); - #endif - M_opponents.push_back(p); - }else{ - #ifdef DESDebug - dlog.addText(Logger::BLOCK, "#####pushed to unknown_players"); - #endif - M_unknown_players.push_back(p); - } - if (p->unum() != -1){ - #ifdef DESDebug - dlog.addText(Logger::BLOCK, "#####pushed to known_opponents"); - #endif - M_known_opponents[p->unum()] = p; - } - } - } - #ifdef DESDebug - dlog.addText(Logger::BLOCK, "----M_known_teammates--- %d", M_known_teammates.size()); - for (auto p: M_known_teammates){ - if (p != nullptr) - dlog.addText(Logger::BLOCK, "## tm %d side %d %s", p->unum(), p->side(), p); - } - #endif - int fastest_unum = wm.interceptTable().firstTeammate()->unum(); - int tm_reach = wm.interceptTable().teammateStep(); - int self_reach = wm.interceptTable().selfStep(); - if (self_reach <= tm_reach){ - M_kicker_unum = wm.self().unum(); - M_kicker_player = M_known_teammates[wm.self().unum()]; - }else{ - M_kicker_unum = fastest_unum; - M_kicker_player = M_known_teammates[fastest_unum]; - } - if (M_kicker_unum == -1){ - M_kicker_player = nullptr; - } - } - std::vector & allPlayers(){ - return M_all_players; - } - std::vector teammates(){ - return M_teammates; - } - std::vector opponents(){ - return M_opponents; - } - std::vector unknownPlayers(){ - return M_unknown_players; - } - std::vector ourPlayers(){ - return M_our_players; - } - std::vector theirPlayers(){ - return M_their_players; - } - DEPlayer * ourPlayer(int i){ - if (i < 0 || i > 11) - return nullptr; - return M_known_teammates[i]; - } - DEPlayer * theirPlayer(int i){ - if (i < 0 || i > 11) - return nullptr; - return M_known_opponents[i]; - } - DEPlayer * kicker(){ - return M_kicker_player; - } - int kickerUnum(){ - return M_kicker_unum; - } - bool updateKicker(int unum, Vector2D kicker_pos=Vector2D::INVALIDATED){ - if (unum < 0 || unum > 11) - return false; - if (M_known_teammates[unum] == nullptr) - return false; - M_kicker_unum = unum; - M_kicker_player = M_known_teammates[unum]; - if (kicker_pos.isValid()){ - M_kicker_player->M_pos = kicker_pos; - } - M_ball.update_pos(M_kicker_player->pos() + Vector2D(0.2, 0)); - M_ball.update_rpos(M_kicker_player->pos()); - for (auto p: M_all_players){ - p->updateForKicker(M_ball.pos()); - } - return true; - } - int offsideLineCount(){ - return M_offside_line_count; - } - double offsideLineX(){ - return M_offside_line_x; - } - int ourSide(){ - return M_our_side; - } - const WorldModel & wm(){ - return M_wm; - } -}; - - -#endif //TEAM_DESTATE_H diff --git a/src/player/data_extractor/offensive_data_extractor.cpp b/src/player/data_extractor/offensive_data_extractor.cpp deleted file mode 100644 index 2a5393da..00000000 --- a/src/player/data_extractor/offensive_data_extractor.cpp +++ /dev/null @@ -1,682 +0,0 @@ -/* - Copyright: - Cyrus2D - Modified by Aref Sayareh, Nader Zare, Omid Amini -*/ - -#include "offensive_data_extractor.h" -#include "../planner/cooperative_action.h" -#include "../sample_player.h" -#include "../planner/action_state_pair.h" -#include -#include -#include -#include -#include - -#define ODEDebug - -#define cm "," -//#define ADD_ELEM(key, value) fout << (value) << cm -#define ADD_ELEM(key, value) features.push_back(value) - -double invalid_data_ = -2.0; -bool OffensiveDataExtractor::active = false; - -using namespace rcsc; - - -OffensiveDataExtractor::OffensiveDataExtractor() : - last_update_cycle(-1) { -} - -OffensiveDataExtractor::~OffensiveDataExtractor() { -} - - -OffensiveDataExtractor::Option::Option() { - cycle = false; // - ball_pos = true; - unum = BOTH; - pos = BOTH; - relativePos = BOTH; - polarPos = BOTH; - isKicker = TM; - openAnglePass = TM; - nearestOppDist = TM; - in_offside = TM; - use_convertor = true; -} - - -void OffensiveDataExtractor::init_file(DEState &state) { - #ifdef ODEDebug - dlog.addText(Logger::BLOCK, "start init_file"); - #endif - time_t rawtime; - struct tm *timeinfo; - char buffer[80]; - - time(&rawtime); - timeinfo = localtime(&rawtime); - - std::string dir = "/data1/nader/workspace/robo/base_data/"; - strftime(buffer, sizeof(buffer), "%Y-%m-%d-%H-%M-%S", timeinfo); - std::string str(buffer); - std::string rand_name = std::to_string(SamplePlayer::player_port); - str += "_" + std::to_string(state.wm().self().unum()) + "_" + state.wm().theirTeamName() + "_E" + rand_name + ".csv"; - - fout = std::ofstream((dir + str).c_str()); - std::string header = get_header(); - #ifdef ODEDebug - dlog.addText(Logger::BLOCK, header.c_str()); - #endif - fout << header << std::endl; -} - - -std::string OffensiveDataExtractor::get_header() { - std::string header = ""; - // Cycle and BALL - if (option.cycle) - header += "cycle,"; - if (option.ball_pos){ - header += std::string("ball_pos_x,ball_pos_y,ball_pos_r,ball_pos_t,"); - } - - for (int i = 1; i <= 11; i++) { - if (option.unum == TM || option.unum == BOTH) - header += "p_l_" + std::to_string(i) + "_unum,"; - if (option.pos == TM || option.pos == BOTH) { - header += "p_l_" + std::to_string(i) + "_pos_x,"; - header += "p_l_" + std::to_string(i) + "_pos_y,"; - } - if (option.polarPos == TM || option.polarPos == BOTH) { - header += "p_l_" + std::to_string(i) + "_pos_r,"; - header += "p_l_" + std::to_string(i) + "_pos_t,"; - } - if (option.relativePos == TM || option.relativePos == BOTH) { - header += "p_l_" + std::to_string(i) + "_kicker_x,"; - header += "p_l_" + std::to_string(i) + "_kicker_y,"; - header += "p_l_" + std::to_string(i) + "_kicker_r,"; - header += "p_l_" + std::to_string(i) + "_kicker_t,"; - } - if (option.in_offside == TM) - header += "p_l_" + std::to_string(i) + "_in_offside,"; - if (option.isKicker == TM || option.isKicker == BOTH) - header += "p_l_" + std::to_string(i) + "_is_kicker,"; - if (option.openAnglePass == TM || option.openAnglePass == BOTH) { - header += "p_l_" + std::to_string(i) + "_pass_opp_dist,"; - header += "p_l_" + std::to_string(i) + "_pass_opp_dist_proj_to_opp,"; - header += "p_l_" + std::to_string(i) + "_pass_opp_dist_proj_to_kicker,"; - header += "p_l_" + std::to_string(i) + "_pass_opp_open_angle,"; - } - if (option.nearestOppDist == TM || option.nearestOppDist == BOTH){ - header += "p_l_" + std::to_string(i) + "_opp_dist,"; - header += "p_l_" + std::to_string(i) + "_opp_angle,"; - } - } - for (int i = 1; i <= 11; i++) { - if (option.unum == OPP || option.unum == BOTH) - header += "p_r_" + std::to_string(i) + "_unum,"; - if (option.pos == OPP || option.pos == BOTH) { - header += "p_r_" + std::to_string(i) + "_pos_x,"; - header += "p_r_" + std::to_string(i) + "_pos_y,"; - } - if (option.polarPos == OPP || option.polarPos == BOTH) { - header += "p_r_" + std::to_string(i) + "_pos_r,"; - header += "p_r_" + std::to_string(i) + "_pos_t,"; - } - if (option.relativePos == OPP || option.relativePos == BOTH) { - header += "p_r_" + std::to_string(i) + "_kicker_x,"; - header += "p_r_" + std::to_string(i) + "_kicker_y,"; - header += "p_r_" + std::to_string(i) + "_kicker_r,"; - header += "p_r_" + std::to_string(i) + "_kicker_t,"; - } - if (option.isKicker == OPP || option.isKicker == BOTH) - header += "p_r_" + std::to_string(i) + "_is_kicker,"; - if (option.openAnglePass == OPP || option.openAnglePass == BOTH) { - header += "p_r_" + std::to_string(i) + "_pass_angle,"; - header += "p_r_" + std::to_string(i) + "_pass_dist,"; - } - if (option.nearestOppDist == OPP || option.nearestOppDist == BOTH){ - header += "p_r_" + std::to_string(i) + "_opp_dist,"; - header += "p_r_" + std::to_string(i) + "_opp_angle,"; - } - } - header += "out_target_x,out_target_y,out_unum,"; - return header; -} - -void OffensiveDataExtractor::generate_save_data(const WorldModel & wm, const CooperativeAction &action,bool update_shoot) { - if(!OffensiveDataExtractor::active) - return; - if (last_update_cycle == wm.time().cycle()) - return; - if (!wm.self().isKickable()) - return; - if (wm.gameMode().type() != rcsc::GameMode::PlayOn) - return; - - #ifdef ODEDebug - dlog.addText(Logger::BLOCK, "start update"); - #endif - DEState state = DEState(wm); - if (state.kicker() == nullptr) - return; - - if (!fout.is_open()) { - init_file(state); - } - last_update_cycle = wm.time().cycle(); - features.clear(); - - if (!update_shoot){ - if ( - action.category() > 2 - || - !action.targetPoint().isValid() - || - action.targetPlayerUnum() > 11 - || - action.targetPlayerUnum() < 1 - ) - return; - } - - // cycle - if (option.cycle) - ADD_ELEM("cycle", convertor_cycle(last_update_cycle)); - - // ball - extract_ball(state); - - // players - extract_players(state); - - // output - if (!update_shoot){ - extract_output(state, - action.category(), - action.targetPoint(), - action.targetPlayerUnum(), - action.description(), - action.firstBallSpeed()); - } - for (int i = 0; i < features.size(); i++){ - if ( i == features.size() - 1){ - fout< OffensiveDataExtractor::get_data(DEState & state){ - features.clear(); - if (option.cycle) - ADD_ELEM("cycle", convertor_cycle(state.cycle())); - - // ball - extract_ball(state); - - // players - extract_players(state); - return features; -} - -OffensiveDataExtractor &OffensiveDataExtractor::i() { - static OffensiveDataExtractor instance; - return instance; -} - - -void OffensiveDataExtractor::extract_ball(DEState &state) { - #ifdef ODEDebug - dlog.addText(Logger::BLOCK, "start extract_ball"); - #endif - if (option.ball_pos){ - if (state.ball().posValid()) { - ADD_ELEM("p_x", convertor_x(state.ball().pos().x)); - ADD_ELEM("p_y", convertor_y(state.ball().pos().y)); - ADD_ELEM("p_r", convertor_dist(state.ball().pos().r())); - ADD_ELEM("p_t", convertor_angle(state.ball().pos().th().degree())); - #ifdef ODEDebug - dlog.addText(Logger::BLOCK, "##add ball pos x y r t"); - #endif - } else { - ADD_ELEM("p_x", invalid_data_); - ADD_ELEM("p_y", invalid_data_); - ADD_ELEM("p_r", invalid_data_); - ADD_ELEM("p_t", invalid_data_); - #ifdef ODEDebug - dlog.addText(Logger::BLOCK, "##@add ball invalid pos x y r t"); - #endif - } - } -} - -void OffensiveDataExtractor::extract_players(DEState &state) { - auto players = sort_players(state); - #ifdef ODEDebug - dlog.addText(Logger::BLOCK, "start extract_players"); - #endif - for (uint i = 0; i < players.size(); i++) { - #ifdef ODEDebug - dlog.addText(Logger::BLOCK, "------------------------------"); - dlog.addText(Logger::BLOCK, "player %d in players list", i); - #endif - DEPlayer *player = players[i]; - if (player == nullptr) { - add_null_player(invalid_data_, - (i <= 10 ? TM : OPP)); - #ifdef ODEDebug - dlog.addText(Logger::BLOCK, "## add invalid data"); - #endif - continue; - } - #ifdef ODEDebug - dlog.addText(Logger::BLOCK, "## start extracting for p side%d unum%d", player->side(), player->unum()); - #endif - ODEDataSide side = player->side() == state.ourSide() ? TM : OPP; - extract_base_data(player, side, state); - extract_pos(player, state, side); - - if (option.isKicker == side || option.isKicker == BOTH) { - if (player->unum() == state.kicker()->unum()) { - ADD_ELEM("is_kicker", 1); - } else - ADD_ELEM("is_kicker", 0); - } - extract_pass_angle(player, state, side); - } -} - -std::vector OffensiveDataExtractor::sort_players(DEState &state) { - static int cycle = 0; - static std::vector tms; - if (state.wm().time().cycle() == cycle){ - return tms; - } - - cycle = state.wm().time().cycle(); - tms.clear(); - std::vector opps; - tms.clear(); - opps.clear(); - - for (int i = 1; i <= 11; i++){ - DEPlayer * player = state.ourPlayer(i); - if (player == nullptr || player->unum() < 0 || !player->pos().isValid() || player->isGhost()){ - tms.push_back(nullptr); - continue; - } - tms.push_back(player); - } - - for (int i = 1; i <= 11; i++){ - DEPlayer * player = state.theirPlayer(i); - if (player == nullptr || player->unum() < 0 || !player->pos().isValid()){ - opps.push_back(nullptr); - continue; - } - opps.push_back(player); - } - - tms.insert(tms.end(), opps.begin(), opps.end()); - - return tms; -} - -void OffensiveDataExtractor::add_null_player(int unum, ODEDataSide side) { - if (option.unum == side || option.unum == BOTH) - ADD_ELEM("unum", unum); - if (option.pos == side || option.pos == BOTH) { - ADD_ELEM("pos_x", invalid_data_); - ADD_ELEM("pos_y", invalid_data_); - } - if (option.polarPos == side || option.polarPos == BOTH) { - ADD_ELEM("pos_r", invalid_data_); - ADD_ELEM("pos_t", invalid_data_); - } - if (option.relativePos == side || option.relativePos == BOTH) { - ADD_ELEM("kicker_x", invalid_data_); - ADD_ELEM("kicker_y", invalid_data_); - ADD_ELEM("kicker_r", invalid_data_); - ADD_ELEM("kicker_t", invalid_data_); - } - if (option.in_offside == side || option.in_offside == BOTH) { - ADD_ELEM("in_offside", invalid_data_); - } - if (option.isKicker == side || option.isKicker == BOTH) - ADD_ELEM("is_kicker", invalid_data_); - if (option.openAnglePass == side || option.openAnglePass == BOTH) { - ADD_ELEM("pass_opp1_dist", invalid_data_); - ADD_ELEM("pass_opp1_dist_proj_to_opp", invalid_data_); - ADD_ELEM("pass_opp1_dist_proj_to_kicker", invalid_data_); - ADD_ELEM("pass_opp1_open_angle", invalid_data_); - } - if (option.nearestOppDist == side || option.nearestOppDist == BOTH){ - ADD_ELEM("opp1_dist", invalid_data_); - ADD_ELEM("opp1_angle", invalid_data_); - } -} - -void OffensiveDataExtractor::extract_output(DEState &state, - int category, - const rcsc::Vector2D &target, - const int &unum, - const char *desc, - double ball_speed) { - ADD_ELEM("target_x", convertor_x(target.x)); - ADD_ELEM("target_y", convertor_y(target.y)); - ADD_ELEM("unum", unum); -} - -void OffensiveDataExtractor::extract_pass_angle(DEPlayer *player, DEState &state, ODEDataSide side) { - Vector2D ball_pos = state.ball().pos(); - Vector2D tm_pos = player->pos(); - int max_pos_count = 30; - if (player->unum() == state.kicker()->unum() && player->side() == state.ourSide()){ - max_pos_count = 20; - } - #ifdef ODEDebug - dlog.addText(Logger::BLOCK, "##start extract pass angle"); - #endif - if (!ball_pos.isValid() || !tm_pos.isValid() || !state.ball().posValid()){ - if (option.openAnglePass == side || option.openAnglePass == BOTH) { - #ifdef ODEDebug - dlog.addText(Logger::BLOCK, "#### add invalid data for open angle pass"); - #endif - ADD_ELEM("pass_opp_dist", invalid_data_); - ADD_ELEM("pass_opp_dist_proj_to_opp", invalid_data_); - ADD_ELEM("pass_opp_dist_proj_to_kicker", invalid_data_); - ADD_ELEM("pass_opp_open_angle", invalid_data_); - } - if (option.nearestOppDist == side || option.nearestOppDist == BOTH){ - #ifdef ODEDebug - dlog.addText(Logger::BLOCK, "#### add invalid for nearest opp dist"); - #endif - ADD_ELEM("opp_dist", invalid_data_); - ADD_ELEM("opp_angle", invalid_data_); - } - return; - } - std::vector> opp_dist_angle; - std::vector candidates; - for (const auto& opp: state.opponents()) { - ODEOpenAngle candid; - #ifdef ODEDebug - dlog.addText(Logger::BLOCK, "######want to check opp %d", opp->unum()); - #endif - if (!opp->pos().isValid()) continue; - candid.dist_self_to_opp = opp->pos().dist(ball_pos); - opp_dist_angle.push_back(std::make_pair(opp->pos().dist(tm_pos), (opp->pos() - tm_pos).th().degree())); - AngleDeg diff = (tm_pos - ball_pos).th() - (opp->pos() - ball_pos).th(); - #ifdef ODEDebug - dlog.addText(Logger::BLOCK, "######check opp %d in %.1f,%.1f, diff:%.1f", opp->unum(), opp->pos().x, opp->pos().y, diff.degree()); - #endif - if (diff.abs() > 60) - continue; - if (opp->pos().dist(ball_pos) > tm_pos.dist(ball_pos) + 10.0) - continue; - candid.unum = opp->unum(); - candid.open_angle = diff.abs(); - Vector2D proj_pos = Line2D(ball_pos, tm_pos).projection(opp->pos()); - candid.dist_opp_proj = proj_pos.dist(opp->pos()); - candid.dist_self_to_opp_proj = proj_pos.dist(state.kicker()->pos()); - candidates.push_back(candid); - - } - if (option.openAnglePass == side || option.openAnglePass == BOTH) { - auto open_angle_sorter = [](ODEOpenAngle &p1, ODEOpenAngle &p2) -> bool { - return p1.open_angle < p2.open_angle; - }; - std::sort(candidates.begin(), candidates.end(), open_angle_sorter); - - if (candidates.size() >= 1){ - #ifdef ODEDebug - dlog.addText(Logger::BLOCK, "###### add opp %d angle pass first", candidates[0].unum); - #endif - ADD_ELEM("pass_opp_dist", convertor_dist(candidates[0].dist_self_to_opp)); - ADD_ELEM("pass_opp_dist_proj_to_opp", convertor_dist(candidates[0].dist_opp_proj)); - ADD_ELEM("pass_opp_dist_proj_to_kicker", convertor_dist(candidates[0].dist_self_to_opp_proj)); - ADD_ELEM("pass_opp_open_angle", convertor_angle(candidates[0].open_angle)); - } - else{ - #ifdef ODEDebug - dlog.addText(Logger::BLOCK, "###### add opp angle pass first invalid"); - #endif - ADD_ELEM("pass_opp_dist", invalid_data_); - ADD_ELEM("pass_opp_dist_proj_to_opp", invalid_data_); - ADD_ELEM("pass_opp_dist_proj_to_kicker", invalid_data_); - ADD_ELEM("pass_opp_open_angle", invalid_data_); - } - } - if (option.nearestOppDist == side || option.nearestOppDist == BOTH){ - std::sort(opp_dist_angle.begin(), opp_dist_angle.end()); - if (opp_dist_angle.size() >= 1){ - #ifdef ODEDebug - dlog.addText(Logger::BLOCK, "###### add opp pass dist first"); - #endif - ADD_ELEM("opp_dist", convertor_dist(opp_dist_angle[0].first)); - ADD_ELEM("opp_angle", convertor_angle(opp_dist_angle[0].second)); - } - else{ - #ifdef ODEDebug - dlog.addText(Logger::BLOCK, "###### add opp pass dist first invalid"); - #endif - ADD_ELEM("opp_dist", invalid_data_); - ADD_ELEM("opp_angle", invalid_data_); - } - } -} - -void OffensiveDataExtractor::extract_pos(DEPlayer *player, DEState &state, ODEDataSide side) { - if (player->pos().isValid()){ - if (option.pos == side || option.pos == BOTH) { - ADD_ELEM("pos_x", convertor_x(player->pos().x)); - ADD_ELEM("pos_y", convertor_y(player->pos().y)); - } - if (option.polarPos == side || option.polarPos == BOTH) { - ADD_ELEM("pos_r", convertor_dist(player->pos().r())); - ADD_ELEM("pos_t", convertor_angle(player->pos().th().degree())); - } - Vector2D rpos = player->pos() - state.kicker()->pos(); - if (option.relativePos == side || option.relativePos == BOTH) { - ADD_ELEM("kicker_x", convertor_dist_x(rpos.x)); - ADD_ELEM("kicker_y", convertor_dist_y(rpos.y)); - ADD_ELEM("kicker_r", convertor_dist(rpos.r())); - ADD_ELEM("kicker_t", convertor_angle(rpos.th().degree())); - } - if (option.in_offside == side || option.in_offside == BOTH) { - if (player->pos().x > state.offsideLineX()) { - ADD_ELEM("pos_offside", 1); - } else { - ADD_ELEM("pos_offside", 0); - } - } - }else{ - if (option.pos == side || option.pos == BOTH) { - ADD_ELEM("pos_x", invalid_data_); - ADD_ELEM("pos_y", invalid_data_); - } - if (option.polarPos == side || option.polarPos == BOTH) { - ADD_ELEM("pos_r", invalid_data_); - ADD_ELEM("pos_t", invalid_data_); - } - if (option.relativePos == side || option.relativePos == BOTH) { - ADD_ELEM("kicker_x", invalid_data_); - ADD_ELEM("kicker_y", invalid_data_); - ADD_ELEM("kicker_r", invalid_data_); - ADD_ELEM("kicker_t", invalid_data_); - } - if (option.in_offside == side || option.in_offside == BOTH) { - ADD_ELEM("pos_offside", invalid_data_); - } - } -} - -void OffensiveDataExtractor::extract_base_data(DEPlayer *player, ODEDataSide side, DEState &state) { - if (option.unum == side || option.unum == BOTH){ - if (player->unum() == -1){ - ADD_ELEM("unum", invalid_data_); - #ifdef ODEDebug - dlog.addText(Logger::BLOCK, "#### add invalid unum"); - #endif - }else{ - ADD_ELEM("unum", convertor_unum(player->unum())); - #ifdef ODEDebug - dlog.addText(Logger::BLOCK, "#### add unum %d", player->unum()); - #endif - } - } -} - -double OffensiveDataExtractor::convertor_x(double x) { - if (!option.use_convertor) - return x; -// return x / 52.5; - return std::min(std::max((x + 52.5) / 105.0, 0.0), 1.0); -} - -double OffensiveDataExtractor::convertor_y(double y) { - if (!option.use_convertor) - return y; -// return y / 34.0; - return std::min(std::max((y + 34) / 68.0, 0.0), 1.0); -} - -double OffensiveDataExtractor::convertor_dist(double dist) { - if (!option.use_convertor) - return dist; -// return dist / 63.0 - 1.0; - return dist / 123.0; -} - -double OffensiveDataExtractor::convertor_dist_x(double dist) { - if (!option.use_convertor) - return dist; -// return dist / 63.0 - 1.0; - return dist / 105.0; -} - -double OffensiveDataExtractor::convertor_dist_y(double dist) { - if (!option.use_convertor) - return dist; -// return dist / 63.0 - 1.0; - return dist / 68.0; -} - -double OffensiveDataExtractor::convertor_angle(double angle) { - if (!option.use_convertor) - return angle; -// return angle / 180.0; - return (angle + 180.0) / 360.0; -} - -double OffensiveDataExtractor::convertor_type(double type) { - if (!option.use_convertor) - return type; -// return type / 9.0 - 1.0; - return type / 18.0; -} - -double OffensiveDataExtractor::convertor_cycle(double cycle) { - if (!option.use_convertor) - return cycle; -// return cycle / 3000.0 - 1.0; - return cycle / 6000.0; -} - -double OffensiveDataExtractor::convertor_bv(double bv) { - if (!option.use_convertor) - return bv; -// return bv / 3.0 * 2 - 1; - return bv / 3.0; -} - -double OffensiveDataExtractor::convertor_bvx(double bvx) { - if (!option.use_convertor) - return bvx; -// return bvx / 3.0; - return (bvx + 3.0) / 6.0; -} - -double OffensiveDataExtractor::convertor_bvy(double bvy) { - if (!option.use_convertor) - return bvy; -// return bvy / 3.0; - return (bvy + 3.0) / 6.0; -} - -double OffensiveDataExtractor::convertor_pv(double pv) { - if (!option.use_convertor) - return pv; - return pv / 1.5; -} - -double OffensiveDataExtractor::convertor_pvx(double pvx) { - if (!option.use_convertor) - return pvx; -// return pvx / 1.5; - return (pvx + 1.5) / 3.0; -} - -double OffensiveDataExtractor::convertor_pvy(double pvy) { - if (!option.use_convertor) - return pvy; -// return pvy / 1.5; - return (pvy + 1.5) / 3.0; -} - -double OffensiveDataExtractor::convertor_unum(double unum) { - if (!option.use_convertor) - return unum; - if (unum == -1) - return unum; - return unum / 11.0; -} - -double OffensiveDataExtractor::convertor_card(double card) { - if (!option.use_convertor) - return card; - return card / 2.0; -} - -double OffensiveDataExtractor::convertor_stamina(double stamina) { - if (!option.use_convertor) - return stamina; - return stamina / 8000.0; -} - -double OffensiveDataExtractor::convertor_counts(double count) { - count = std::min(count, 20.0); - if (!option.use_convertor) - return count; - return count / 20; // TODO I Dont know the MAX??? -} - -uint OffensiveDataExtractor::find_unum_index(DEState &state, uint unum) { - auto players = sort_players(state); - if (players.size() < 11) - std::cout<unum()<<" "<<"size problems"<unum() == unum) - return i + 1; // TODO add 1 or not?? - } - - std::cout<unum()<<" "<<"not match"< -#include -#include -//#include "../chain_action/action_state_pair.h" -#include "../planner/cooperative_action.h" -#include "DEState.h" - -//#include "shoot_generator.h" -enum ODEDataSide { - NONE, - TM, - OPP, - BOTH, - Kicker -}; - -class OffensiveDataExtractor { -private: - struct Option { - public: - bool cycle; - bool ball_pos; - ODEDataSide unum; - ODEDataSide pos; - ODEDataSide relativePos; - ODEDataSide polarPos; - ODEDataSide isKicker; - ODEDataSide openAnglePass; - ODEDataSide nearestOppDist; - ODEDataSide in_offside; - - bool use_convertor; - Option(); - }; - -private: - std::vector features; - std::ofstream fout; - long last_update_cycle; - std::vector data; - -public: - - OffensiveDataExtractor(); - - ~OffensiveDataExtractor(); - Option option; - void generate_save_data(const WorldModel & wm, - const CooperativeAction &action, - bool update_shoot=false); - std::string get_header(); - - //accessors - static OffensiveDataExtractor &i(); - static bool active; - - void extract_output(DEState &state, - int category, - const rcsc::Vector2D &target, - const int &unum, - const char *desc, - double bell_speed); - - std::vector get_data(DEState &state); -private: - void init_file(DEState &state); - - void extract_ball(DEState &state); - - void extract_players(DEState &state); - - void add_null_player(int unum, ODEDataSide side); - - void extract_pos(DEPlayer *player, DEState &state, ODEDataSide side); - - void extract_pass_angle(DEPlayer *player, DEState &state, ODEDataSide side); - - void extract_base_data(DEPlayer *player, ODEDataSide side, DEState &state); - - void extract_type(DEPlayer *player, ODEDataSide side); - - uint find_unum_index(DEState &state, uint unum); - - double convertor_x(double x); - - double convertor_y(double y); - - double convertor_dist(double dist); - - double convertor_dist_x(double dist); - - double convertor_dist_y(double dist); - - double convertor_angle(double angle); - - double convertor_type(double type); - - double convertor_cycle(double cycle); - - double convertor_bv(double bv); - - double convertor_bvx(double bvx); - - double convertor_bvy(double bvy); - - double convertor_pv(double pv); - - double convertor_pvx(double pvx); - - double convertor_pvy(double pvy); - - double convertor_unum(double unum); - - double convertor_card(double card); - - double convertor_stamina(double stamina); - - double convertor_counts(double count); - - void extract_drible_angles(DEState &state); - - std::vector sort_players(DEState &state); -}; - -class ODEPolar { -public: - double r; - double teta; - - ODEPolar(rcsc::Vector2D p); -}; - -class ODEOpenAngle { -public: - int unum; - double dist_self_to_opp; - double dist_self_to_opp_proj; - double dist_opp_proj; - double open_angle; - - ODEOpenAngle(){}; - ODEOpenAngle( - int _unum, - double _dist_self_to_opp, - double _dist_self_to_opp_proj, - double _dist_opp_proj, - double _open_angle - ) { - unum = _unum; - dist_self_to_opp = _dist_self_to_opp; - dist_self_to_opp_proj = _dist_self_to_opp_proj; - dist_opp_proj = _dist_opp_proj; - open_angle = _open_angle; - }; -}; - - -#endif //CYRUS_OffensiveDataExtractor_H diff --git a/src/player/json.hpp b/src/player/json.hpp new file mode 100755 index 00000000..a858728c --- /dev/null +++ b/src/player/json.hpp @@ -0,0 +1,24766 @@ +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + +/****************************************************************************\ + * Note on documentation: The source files contain links to the online * + * documentation of the public API at https://json.nlohmann.me. This URL * + * contains the most recent documentation and should also be applicable to * + * previous versions; documentation for deprecated functions is not * + * removed, but marked deprecated. See "Generate documentation" section in * + * file docs/README.md. * +\****************************************************************************/ + +#ifndef INCLUDE_NLOHMANN_JSON_HPP_ +#define INCLUDE_NLOHMANN_JSON_HPP_ + +#include // all_of, find, for_each +#include // nullptr_t, ptrdiff_t, size_t +#include // hash, less +#include // initializer_list +#ifndef JSON_NO_IO + #include // istream, ostream +#endif // JSON_NO_IO +#include // random_access_iterator_tag +#include // unique_ptr +#include // string, stoi, to_string +#include // declval, forward, move, pair, swap +#include // vector + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +// This file contains all macro definitions affecting or depending on the ABI + +#ifndef JSON_SKIP_LIBRARY_VERSION_CHECK + #if defined(NLOHMANN_JSON_VERSION_MAJOR) && defined(NLOHMANN_JSON_VERSION_MINOR) && defined(NLOHMANN_JSON_VERSION_PATCH) + #if NLOHMANN_JSON_VERSION_MAJOR != 3 || NLOHMANN_JSON_VERSION_MINOR != 11 || NLOHMANN_JSON_VERSION_PATCH != 3 + #warning "Already included a different version of the library!" + #endif + #endif +#endif + +#define NLOHMANN_JSON_VERSION_MAJOR 3 // NOLINT(modernize-macro-to-enum) +#define NLOHMANN_JSON_VERSION_MINOR 11 // NOLINT(modernize-macro-to-enum) +#define NLOHMANN_JSON_VERSION_PATCH 3 // NOLINT(modernize-macro-to-enum) + +#ifndef JSON_DIAGNOSTICS + #define JSON_DIAGNOSTICS 0 +#endif + +#ifndef JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON + #define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 0 +#endif + +#if JSON_DIAGNOSTICS + #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS _diag +#else + #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS +#endif + +#if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON + #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON _ldvcmp +#else + #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON +#endif + +#ifndef NLOHMANN_JSON_NAMESPACE_NO_VERSION + #define NLOHMANN_JSON_NAMESPACE_NO_VERSION 0 +#endif + +// Construct the namespace ABI tags component +#define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b) json_abi ## a ## b +#define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b) \ + NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b) + +#define NLOHMANN_JSON_ABI_TAGS \ + NLOHMANN_JSON_ABI_TAGS_CONCAT( \ + NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS, \ + NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON) + +// Construct the namespace version component +#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch) \ + _v ## major ## _ ## minor ## _ ## patch +#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(major, minor, patch) \ + NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch) + +#if NLOHMANN_JSON_NAMESPACE_NO_VERSION +#define NLOHMANN_JSON_NAMESPACE_VERSION +#else +#define NLOHMANN_JSON_NAMESPACE_VERSION \ + NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(NLOHMANN_JSON_VERSION_MAJOR, \ + NLOHMANN_JSON_VERSION_MINOR, \ + NLOHMANN_JSON_VERSION_PATCH) +#endif + +// Combine namespace components +#define NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b) a ## b +#define NLOHMANN_JSON_NAMESPACE_CONCAT(a, b) \ + NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b) + +#ifndef NLOHMANN_JSON_NAMESPACE +#define NLOHMANN_JSON_NAMESPACE \ + nlohmann::NLOHMANN_JSON_NAMESPACE_CONCAT( \ + NLOHMANN_JSON_ABI_TAGS, \ + NLOHMANN_JSON_NAMESPACE_VERSION) +#endif + +#ifndef NLOHMANN_JSON_NAMESPACE_BEGIN +#define NLOHMANN_JSON_NAMESPACE_BEGIN \ + namespace nlohmann \ + { \ + inline namespace NLOHMANN_JSON_NAMESPACE_CONCAT( \ + NLOHMANN_JSON_ABI_TAGS, \ + NLOHMANN_JSON_NAMESPACE_VERSION) \ + { +#endif + +#ifndef NLOHMANN_JSON_NAMESPACE_END +#define NLOHMANN_JSON_NAMESPACE_END \ + } /* namespace (inline namespace) NOLINT(readability/namespace) */ \ + } // namespace nlohmann +#endif + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include // transform +#include // array +#include // forward_list +#include // inserter, front_inserter, end +#include // map +#include // string +#include // tuple, make_tuple +#include // is_arithmetic, is_same, is_enum, underlying_type, is_convertible +#include // unordered_map +#include // pair, declval +#include // valarray + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include // nullptr_t +#include // exception +#if JSON_DIAGNOSTICS + #include // accumulate +#endif +#include // runtime_error +#include // to_string +#include // vector + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include // array +#include // size_t +#include // uint8_t +#include // string + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include // declval, pair +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +// #include + + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +template struct make_void +{ + using type = void; +}; +template using void_t = typename make_void::type; + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +// https://en.cppreference.com/w/cpp/experimental/is_detected +struct nonesuch +{ + nonesuch() = delete; + ~nonesuch() = delete; + nonesuch(nonesuch const&) = delete; + nonesuch(nonesuch const&&) = delete; + void operator=(nonesuch const&) = delete; + void operator=(nonesuch&&) = delete; +}; + +template class Op, + class... Args> +struct detector +{ + using value_t = std::false_type; + using type = Default; +}; + +template class Op, class... Args> +struct detector>, Op, Args...> +{ + using value_t = std::true_type; + using type = Op; +}; + +template class Op, class... Args> +using is_detected = typename detector::value_t; + +template class Op, class... Args> +struct is_detected_lazy : is_detected { }; + +template class Op, class... Args> +using detected_t = typename detector::type; + +template class Op, class... Args> +using detected_or = detector; + +template class Op, class... Args> +using detected_or_t = typename detected_or::type; + +template class Op, class... Args> +using is_detected_exact = std::is_same>; + +template class Op, class... Args> +using is_detected_convertible = + std::is_convertible, To>; + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + +// #include + + +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2016-2021 Evan Nemerson +// SPDX-License-Identifier: MIT + +/* Hedley - https://nemequ.github.io/hedley + * Created by Evan Nemerson + */ + +#if !defined(JSON_HEDLEY_VERSION) || (JSON_HEDLEY_VERSION < 15) +#if defined(JSON_HEDLEY_VERSION) + #undef JSON_HEDLEY_VERSION +#endif +#define JSON_HEDLEY_VERSION 15 + +#if defined(JSON_HEDLEY_STRINGIFY_EX) + #undef JSON_HEDLEY_STRINGIFY_EX +#endif +#define JSON_HEDLEY_STRINGIFY_EX(x) #x + +#if defined(JSON_HEDLEY_STRINGIFY) + #undef JSON_HEDLEY_STRINGIFY +#endif +#define JSON_HEDLEY_STRINGIFY(x) JSON_HEDLEY_STRINGIFY_EX(x) + +#if defined(JSON_HEDLEY_CONCAT_EX) + #undef JSON_HEDLEY_CONCAT_EX +#endif +#define JSON_HEDLEY_CONCAT_EX(a,b) a##b + +#if defined(JSON_HEDLEY_CONCAT) + #undef JSON_HEDLEY_CONCAT +#endif +#define JSON_HEDLEY_CONCAT(a,b) JSON_HEDLEY_CONCAT_EX(a,b) + +#if defined(JSON_HEDLEY_CONCAT3_EX) + #undef JSON_HEDLEY_CONCAT3_EX +#endif +#define JSON_HEDLEY_CONCAT3_EX(a,b,c) a##b##c + +#if defined(JSON_HEDLEY_CONCAT3) + #undef JSON_HEDLEY_CONCAT3 +#endif +#define JSON_HEDLEY_CONCAT3(a,b,c) JSON_HEDLEY_CONCAT3_EX(a,b,c) + +#if defined(JSON_HEDLEY_VERSION_ENCODE) + #undef JSON_HEDLEY_VERSION_ENCODE +#endif +#define JSON_HEDLEY_VERSION_ENCODE(major,minor,revision) (((major) * 1000000) + ((minor) * 1000) + (revision)) + +#if defined(JSON_HEDLEY_VERSION_DECODE_MAJOR) + #undef JSON_HEDLEY_VERSION_DECODE_MAJOR +#endif +#define JSON_HEDLEY_VERSION_DECODE_MAJOR(version) ((version) / 1000000) + +#if defined(JSON_HEDLEY_VERSION_DECODE_MINOR) + #undef JSON_HEDLEY_VERSION_DECODE_MINOR +#endif +#define JSON_HEDLEY_VERSION_DECODE_MINOR(version) (((version) % 1000000) / 1000) + +#if defined(JSON_HEDLEY_VERSION_DECODE_REVISION) + #undef JSON_HEDLEY_VERSION_DECODE_REVISION +#endif +#define JSON_HEDLEY_VERSION_DECODE_REVISION(version) ((version) % 1000) + +#if defined(JSON_HEDLEY_GNUC_VERSION) + #undef JSON_HEDLEY_GNUC_VERSION +#endif +#if defined(__GNUC__) && defined(__GNUC_PATCHLEVEL__) + #define JSON_HEDLEY_GNUC_VERSION JSON_HEDLEY_VERSION_ENCODE(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__) +#elif defined(__GNUC__) + #define JSON_HEDLEY_GNUC_VERSION JSON_HEDLEY_VERSION_ENCODE(__GNUC__, __GNUC_MINOR__, 0) +#endif + +#if defined(JSON_HEDLEY_GNUC_VERSION_CHECK) + #undef JSON_HEDLEY_GNUC_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_GNUC_VERSION) + #define JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_GNUC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_MSVC_VERSION) + #undef JSON_HEDLEY_MSVC_VERSION +#endif +#if defined(_MSC_FULL_VER) && (_MSC_FULL_VER >= 140000000) && !defined(__ICL) + #define JSON_HEDLEY_MSVC_VERSION JSON_HEDLEY_VERSION_ENCODE(_MSC_FULL_VER / 10000000, (_MSC_FULL_VER % 10000000) / 100000, (_MSC_FULL_VER % 100000) / 100) +#elif defined(_MSC_FULL_VER) && !defined(__ICL) + #define JSON_HEDLEY_MSVC_VERSION JSON_HEDLEY_VERSION_ENCODE(_MSC_FULL_VER / 1000000, (_MSC_FULL_VER % 1000000) / 10000, (_MSC_FULL_VER % 10000) / 10) +#elif defined(_MSC_VER) && !defined(__ICL) + #define JSON_HEDLEY_MSVC_VERSION JSON_HEDLEY_VERSION_ENCODE(_MSC_VER / 100, _MSC_VER % 100, 0) +#endif + +#if defined(JSON_HEDLEY_MSVC_VERSION_CHECK) + #undef JSON_HEDLEY_MSVC_VERSION_CHECK +#endif +#if !defined(JSON_HEDLEY_MSVC_VERSION) + #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (0) +#elif defined(_MSC_VER) && (_MSC_VER >= 1400) + #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_FULL_VER >= ((major * 10000000) + (minor * 100000) + (patch))) +#elif defined(_MSC_VER) && (_MSC_VER >= 1200) + #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_FULL_VER >= ((major * 1000000) + (minor * 10000) + (patch))) +#else + #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_VER >= ((major * 100) + (minor))) +#endif + +#if defined(JSON_HEDLEY_INTEL_VERSION) + #undef JSON_HEDLEY_INTEL_VERSION +#endif +#if defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE) && !defined(__ICL) + #define JSON_HEDLEY_INTEL_VERSION JSON_HEDLEY_VERSION_ENCODE(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, __INTEL_COMPILER_UPDATE) +#elif defined(__INTEL_COMPILER) && !defined(__ICL) + #define JSON_HEDLEY_INTEL_VERSION JSON_HEDLEY_VERSION_ENCODE(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, 0) +#endif + +#if defined(JSON_HEDLEY_INTEL_VERSION_CHECK) + #undef JSON_HEDLEY_INTEL_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_INTEL_VERSION) + #define JSON_HEDLEY_INTEL_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_INTEL_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_INTEL_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_INTEL_CL_VERSION) + #undef JSON_HEDLEY_INTEL_CL_VERSION +#endif +#if defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE) && defined(__ICL) + #define JSON_HEDLEY_INTEL_CL_VERSION JSON_HEDLEY_VERSION_ENCODE(__INTEL_COMPILER, __INTEL_COMPILER_UPDATE, 0) +#endif + +#if defined(JSON_HEDLEY_INTEL_CL_VERSION_CHECK) + #undef JSON_HEDLEY_INTEL_CL_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_INTEL_CL_VERSION) + #define JSON_HEDLEY_INTEL_CL_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_INTEL_CL_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_INTEL_CL_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_PGI_VERSION) + #undef JSON_HEDLEY_PGI_VERSION +#endif +#if defined(__PGI) && defined(__PGIC__) && defined(__PGIC_MINOR__) && defined(__PGIC_PATCHLEVEL__) + #define JSON_HEDLEY_PGI_VERSION JSON_HEDLEY_VERSION_ENCODE(__PGIC__, __PGIC_MINOR__, __PGIC_PATCHLEVEL__) +#endif + +#if defined(JSON_HEDLEY_PGI_VERSION_CHECK) + #undef JSON_HEDLEY_PGI_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_PGI_VERSION) + #define JSON_HEDLEY_PGI_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_PGI_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_PGI_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_SUNPRO_VERSION) + #undef JSON_HEDLEY_SUNPRO_VERSION +#endif +#if defined(__SUNPRO_C) && (__SUNPRO_C > 0x1000) + #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((((__SUNPRO_C >> 16) & 0xf) * 10) + ((__SUNPRO_C >> 12) & 0xf), (((__SUNPRO_C >> 8) & 0xf) * 10) + ((__SUNPRO_C >> 4) & 0xf), (__SUNPRO_C & 0xf) * 10) +#elif defined(__SUNPRO_C) + #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((__SUNPRO_C >> 8) & 0xf, (__SUNPRO_C >> 4) & 0xf, (__SUNPRO_C) & 0xf) +#elif defined(__SUNPRO_CC) && (__SUNPRO_CC > 0x1000) + #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((((__SUNPRO_CC >> 16) & 0xf) * 10) + ((__SUNPRO_CC >> 12) & 0xf), (((__SUNPRO_CC >> 8) & 0xf) * 10) + ((__SUNPRO_CC >> 4) & 0xf), (__SUNPRO_CC & 0xf) * 10) +#elif defined(__SUNPRO_CC) + #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((__SUNPRO_CC >> 8) & 0xf, (__SUNPRO_CC >> 4) & 0xf, (__SUNPRO_CC) & 0xf) +#endif + +#if defined(JSON_HEDLEY_SUNPRO_VERSION_CHECK) + #undef JSON_HEDLEY_SUNPRO_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_SUNPRO_VERSION) + #define JSON_HEDLEY_SUNPRO_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_SUNPRO_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_SUNPRO_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_EMSCRIPTEN_VERSION) + #undef JSON_HEDLEY_EMSCRIPTEN_VERSION +#endif +#if defined(__EMSCRIPTEN__) + #define JSON_HEDLEY_EMSCRIPTEN_VERSION JSON_HEDLEY_VERSION_ENCODE(__EMSCRIPTEN_major__, __EMSCRIPTEN_minor__, __EMSCRIPTEN_tiny__) +#endif + +#if defined(JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK) + #undef JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_EMSCRIPTEN_VERSION) + #define JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_EMSCRIPTEN_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_ARM_VERSION) + #undef JSON_HEDLEY_ARM_VERSION +#endif +#if defined(__CC_ARM) && defined(__ARMCOMPILER_VERSION) + #define JSON_HEDLEY_ARM_VERSION JSON_HEDLEY_VERSION_ENCODE(__ARMCOMPILER_VERSION / 1000000, (__ARMCOMPILER_VERSION % 1000000) / 10000, (__ARMCOMPILER_VERSION % 10000) / 100) +#elif defined(__CC_ARM) && defined(__ARMCC_VERSION) + #define JSON_HEDLEY_ARM_VERSION JSON_HEDLEY_VERSION_ENCODE(__ARMCC_VERSION / 1000000, (__ARMCC_VERSION % 1000000) / 10000, (__ARMCC_VERSION % 10000) / 100) +#endif + +#if defined(JSON_HEDLEY_ARM_VERSION_CHECK) + #undef JSON_HEDLEY_ARM_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_ARM_VERSION) + #define JSON_HEDLEY_ARM_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_ARM_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_ARM_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_IBM_VERSION) + #undef JSON_HEDLEY_IBM_VERSION +#endif +#if defined(__ibmxl__) + #define JSON_HEDLEY_IBM_VERSION JSON_HEDLEY_VERSION_ENCODE(__ibmxl_version__, __ibmxl_release__, __ibmxl_modification__) +#elif defined(__xlC__) && defined(__xlC_ver__) + #define JSON_HEDLEY_IBM_VERSION JSON_HEDLEY_VERSION_ENCODE(__xlC__ >> 8, __xlC__ & 0xff, (__xlC_ver__ >> 8) & 0xff) +#elif defined(__xlC__) + #define JSON_HEDLEY_IBM_VERSION JSON_HEDLEY_VERSION_ENCODE(__xlC__ >> 8, __xlC__ & 0xff, 0) +#endif + +#if defined(JSON_HEDLEY_IBM_VERSION_CHECK) + #undef JSON_HEDLEY_IBM_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_IBM_VERSION) + #define JSON_HEDLEY_IBM_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_IBM_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_IBM_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_VERSION) + #undef JSON_HEDLEY_TI_VERSION +#endif +#if \ + defined(__TI_COMPILER_VERSION__) && \ + ( \ + defined(__TMS470__) || defined(__TI_ARM__) || \ + defined(__MSP430__) || \ + defined(__TMS320C2000__) \ + ) +#if (__TI_COMPILER_VERSION__ >= 16000000) + #define JSON_HEDLEY_TI_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif +#endif + +#if defined(JSON_HEDLEY_TI_VERSION_CHECK) + #undef JSON_HEDLEY_TI_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_VERSION) + #define JSON_HEDLEY_TI_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_CL2000_VERSION) + #undef JSON_HEDLEY_TI_CL2000_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__TMS320C2000__) + #define JSON_HEDLEY_TI_CL2000_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_CL2000_VERSION_CHECK) + #undef JSON_HEDLEY_TI_CL2000_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_CL2000_VERSION) + #define JSON_HEDLEY_TI_CL2000_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CL2000_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_CL2000_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_CL430_VERSION) + #undef JSON_HEDLEY_TI_CL430_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__MSP430__) + #define JSON_HEDLEY_TI_CL430_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_CL430_VERSION_CHECK) + #undef JSON_HEDLEY_TI_CL430_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_CL430_VERSION) + #define JSON_HEDLEY_TI_CL430_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CL430_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_CL430_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_ARMCL_VERSION) + #undef JSON_HEDLEY_TI_ARMCL_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && (defined(__TMS470__) || defined(__TI_ARM__)) + #define JSON_HEDLEY_TI_ARMCL_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_ARMCL_VERSION_CHECK) + #undef JSON_HEDLEY_TI_ARMCL_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_ARMCL_VERSION) + #define JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_ARMCL_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_CL6X_VERSION) + #undef JSON_HEDLEY_TI_CL6X_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__TMS320C6X__) + #define JSON_HEDLEY_TI_CL6X_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_CL6X_VERSION_CHECK) + #undef JSON_HEDLEY_TI_CL6X_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_CL6X_VERSION) + #define JSON_HEDLEY_TI_CL6X_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CL6X_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_CL6X_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_CL7X_VERSION) + #undef JSON_HEDLEY_TI_CL7X_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__C7000__) + #define JSON_HEDLEY_TI_CL7X_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_CL7X_VERSION_CHECK) + #undef JSON_HEDLEY_TI_CL7X_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_CL7X_VERSION) + #define JSON_HEDLEY_TI_CL7X_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CL7X_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_CL7X_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_CLPRU_VERSION) + #undef JSON_HEDLEY_TI_CLPRU_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__PRU__) + #define JSON_HEDLEY_TI_CLPRU_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_CLPRU_VERSION_CHECK) + #undef JSON_HEDLEY_TI_CLPRU_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_CLPRU_VERSION) + #define JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CLPRU_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_CRAY_VERSION) + #undef JSON_HEDLEY_CRAY_VERSION +#endif +#if defined(_CRAYC) + #if defined(_RELEASE_PATCHLEVEL) + #define JSON_HEDLEY_CRAY_VERSION JSON_HEDLEY_VERSION_ENCODE(_RELEASE_MAJOR, _RELEASE_MINOR, _RELEASE_PATCHLEVEL) + #else + #define JSON_HEDLEY_CRAY_VERSION JSON_HEDLEY_VERSION_ENCODE(_RELEASE_MAJOR, _RELEASE_MINOR, 0) + #endif +#endif + +#if defined(JSON_HEDLEY_CRAY_VERSION_CHECK) + #undef JSON_HEDLEY_CRAY_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_CRAY_VERSION) + #define JSON_HEDLEY_CRAY_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_CRAY_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_CRAY_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_IAR_VERSION) + #undef JSON_HEDLEY_IAR_VERSION +#endif +#if defined(__IAR_SYSTEMS_ICC__) + #if __VER__ > 1000 + #define JSON_HEDLEY_IAR_VERSION JSON_HEDLEY_VERSION_ENCODE((__VER__ / 1000000), ((__VER__ / 1000) % 1000), (__VER__ % 1000)) + #else + #define JSON_HEDLEY_IAR_VERSION JSON_HEDLEY_VERSION_ENCODE(__VER__ / 100, __VER__ % 100, 0) + #endif +#endif + +#if defined(JSON_HEDLEY_IAR_VERSION_CHECK) + #undef JSON_HEDLEY_IAR_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_IAR_VERSION) + #define JSON_HEDLEY_IAR_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_IAR_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_IAR_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TINYC_VERSION) + #undef JSON_HEDLEY_TINYC_VERSION +#endif +#if defined(__TINYC__) + #define JSON_HEDLEY_TINYC_VERSION JSON_HEDLEY_VERSION_ENCODE(__TINYC__ / 1000, (__TINYC__ / 100) % 10, __TINYC__ % 100) +#endif + +#if defined(JSON_HEDLEY_TINYC_VERSION_CHECK) + #undef JSON_HEDLEY_TINYC_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TINYC_VERSION) + #define JSON_HEDLEY_TINYC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TINYC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TINYC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_DMC_VERSION) + #undef JSON_HEDLEY_DMC_VERSION +#endif +#if defined(__DMC__) + #define JSON_HEDLEY_DMC_VERSION JSON_HEDLEY_VERSION_ENCODE(__DMC__ >> 8, (__DMC__ >> 4) & 0xf, __DMC__ & 0xf) +#endif + +#if defined(JSON_HEDLEY_DMC_VERSION_CHECK) + #undef JSON_HEDLEY_DMC_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_DMC_VERSION) + #define JSON_HEDLEY_DMC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_DMC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_DMC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_COMPCERT_VERSION) + #undef JSON_HEDLEY_COMPCERT_VERSION +#endif +#if defined(__COMPCERT_VERSION__) + #define JSON_HEDLEY_COMPCERT_VERSION JSON_HEDLEY_VERSION_ENCODE(__COMPCERT_VERSION__ / 10000, (__COMPCERT_VERSION__ / 100) % 100, __COMPCERT_VERSION__ % 100) +#endif + +#if defined(JSON_HEDLEY_COMPCERT_VERSION_CHECK) + #undef JSON_HEDLEY_COMPCERT_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_COMPCERT_VERSION) + #define JSON_HEDLEY_COMPCERT_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_COMPCERT_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_COMPCERT_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_PELLES_VERSION) + #undef JSON_HEDLEY_PELLES_VERSION +#endif +#if defined(__POCC__) + #define JSON_HEDLEY_PELLES_VERSION JSON_HEDLEY_VERSION_ENCODE(__POCC__ / 100, __POCC__ % 100, 0) +#endif + +#if defined(JSON_HEDLEY_PELLES_VERSION_CHECK) + #undef JSON_HEDLEY_PELLES_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_PELLES_VERSION) + #define JSON_HEDLEY_PELLES_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_PELLES_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_PELLES_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_MCST_LCC_VERSION) + #undef JSON_HEDLEY_MCST_LCC_VERSION +#endif +#if defined(__LCC__) && defined(__LCC_MINOR__) + #define JSON_HEDLEY_MCST_LCC_VERSION JSON_HEDLEY_VERSION_ENCODE(__LCC__ / 100, __LCC__ % 100, __LCC_MINOR__) +#endif + +#if defined(JSON_HEDLEY_MCST_LCC_VERSION_CHECK) + #undef JSON_HEDLEY_MCST_LCC_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_MCST_LCC_VERSION) + #define JSON_HEDLEY_MCST_LCC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_MCST_LCC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_MCST_LCC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_GCC_VERSION) + #undef JSON_HEDLEY_GCC_VERSION +#endif +#if \ + defined(JSON_HEDLEY_GNUC_VERSION) && \ + !defined(__clang__) && \ + !defined(JSON_HEDLEY_INTEL_VERSION) && \ + !defined(JSON_HEDLEY_PGI_VERSION) && \ + !defined(JSON_HEDLEY_ARM_VERSION) && \ + !defined(JSON_HEDLEY_CRAY_VERSION) && \ + !defined(JSON_HEDLEY_TI_VERSION) && \ + !defined(JSON_HEDLEY_TI_ARMCL_VERSION) && \ + !defined(JSON_HEDLEY_TI_CL430_VERSION) && \ + !defined(JSON_HEDLEY_TI_CL2000_VERSION) && \ + !defined(JSON_HEDLEY_TI_CL6X_VERSION) && \ + !defined(JSON_HEDLEY_TI_CL7X_VERSION) && \ + !defined(JSON_HEDLEY_TI_CLPRU_VERSION) && \ + !defined(__COMPCERT__) && \ + !defined(JSON_HEDLEY_MCST_LCC_VERSION) + #define JSON_HEDLEY_GCC_VERSION JSON_HEDLEY_GNUC_VERSION +#endif + +#if defined(JSON_HEDLEY_GCC_VERSION_CHECK) + #undef JSON_HEDLEY_GCC_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_GCC_VERSION) + #define JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_GCC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_HAS_ATTRIBUTE) + #undef JSON_HEDLEY_HAS_ATTRIBUTE +#endif +#if \ + defined(__has_attribute) && \ + ( \ + (!defined(JSON_HEDLEY_IAR_VERSION) || JSON_HEDLEY_IAR_VERSION_CHECK(8,5,9)) \ + ) +# define JSON_HEDLEY_HAS_ATTRIBUTE(attribute) __has_attribute(attribute) +#else +# define JSON_HEDLEY_HAS_ATTRIBUTE(attribute) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_ATTRIBUTE) + #undef JSON_HEDLEY_GNUC_HAS_ATTRIBUTE +#endif +#if defined(__has_attribute) + #define JSON_HEDLEY_GNUC_HAS_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_HAS_ATTRIBUTE(attribute) +#else + #define JSON_HEDLEY_GNUC_HAS_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_ATTRIBUTE) + #undef JSON_HEDLEY_GCC_HAS_ATTRIBUTE +#endif +#if defined(__has_attribute) + #define JSON_HEDLEY_GCC_HAS_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_HAS_ATTRIBUTE(attribute) +#else + #define JSON_HEDLEY_GCC_HAS_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_CPP_ATTRIBUTE) + #undef JSON_HEDLEY_HAS_CPP_ATTRIBUTE +#endif +#if \ + defined(__has_cpp_attribute) && \ + defined(__cplusplus) && \ + (!defined(JSON_HEDLEY_SUNPRO_VERSION) || JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0)) + #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute) __has_cpp_attribute(attribute) +#else + #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute) (0) +#endif + +#if defined(JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS) + #undef JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS +#endif +#if !defined(__cplusplus) || !defined(__has_cpp_attribute) + #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) (0) +#elif \ + !defined(JSON_HEDLEY_PGI_VERSION) && \ + !defined(JSON_HEDLEY_IAR_VERSION) && \ + (!defined(JSON_HEDLEY_SUNPRO_VERSION) || JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0)) && \ + (!defined(JSON_HEDLEY_MSVC_VERSION) || JSON_HEDLEY_MSVC_VERSION_CHECK(19,20,0)) + #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) JSON_HEDLEY_HAS_CPP_ATTRIBUTE(ns::attribute) +#else + #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE) + #undef JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE +#endif +#if defined(__has_cpp_attribute) && defined(__cplusplus) + #define JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) __has_cpp_attribute(attribute) +#else + #define JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE) + #undef JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE +#endif +#if defined(__has_cpp_attribute) && defined(__cplusplus) + #define JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) __has_cpp_attribute(attribute) +#else + #define JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_BUILTIN) + #undef JSON_HEDLEY_HAS_BUILTIN +#endif +#if defined(__has_builtin) + #define JSON_HEDLEY_HAS_BUILTIN(builtin) __has_builtin(builtin) +#else + #define JSON_HEDLEY_HAS_BUILTIN(builtin) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_BUILTIN) + #undef JSON_HEDLEY_GNUC_HAS_BUILTIN +#endif +#if defined(__has_builtin) + #define JSON_HEDLEY_GNUC_HAS_BUILTIN(builtin,major,minor,patch) __has_builtin(builtin) +#else + #define JSON_HEDLEY_GNUC_HAS_BUILTIN(builtin,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_BUILTIN) + #undef JSON_HEDLEY_GCC_HAS_BUILTIN +#endif +#if defined(__has_builtin) + #define JSON_HEDLEY_GCC_HAS_BUILTIN(builtin,major,minor,patch) __has_builtin(builtin) +#else + #define JSON_HEDLEY_GCC_HAS_BUILTIN(builtin,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_FEATURE) + #undef JSON_HEDLEY_HAS_FEATURE +#endif +#if defined(__has_feature) + #define JSON_HEDLEY_HAS_FEATURE(feature) __has_feature(feature) +#else + #define JSON_HEDLEY_HAS_FEATURE(feature) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_FEATURE) + #undef JSON_HEDLEY_GNUC_HAS_FEATURE +#endif +#if defined(__has_feature) + #define JSON_HEDLEY_GNUC_HAS_FEATURE(feature,major,minor,patch) __has_feature(feature) +#else + #define JSON_HEDLEY_GNUC_HAS_FEATURE(feature,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_FEATURE) + #undef JSON_HEDLEY_GCC_HAS_FEATURE +#endif +#if defined(__has_feature) + #define JSON_HEDLEY_GCC_HAS_FEATURE(feature,major,minor,patch) __has_feature(feature) +#else + #define JSON_HEDLEY_GCC_HAS_FEATURE(feature,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_EXTENSION) + #undef JSON_HEDLEY_HAS_EXTENSION +#endif +#if defined(__has_extension) + #define JSON_HEDLEY_HAS_EXTENSION(extension) __has_extension(extension) +#else + #define JSON_HEDLEY_HAS_EXTENSION(extension) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_EXTENSION) + #undef JSON_HEDLEY_GNUC_HAS_EXTENSION +#endif +#if defined(__has_extension) + #define JSON_HEDLEY_GNUC_HAS_EXTENSION(extension,major,minor,patch) __has_extension(extension) +#else + #define JSON_HEDLEY_GNUC_HAS_EXTENSION(extension,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_EXTENSION) + #undef JSON_HEDLEY_GCC_HAS_EXTENSION +#endif +#if defined(__has_extension) + #define JSON_HEDLEY_GCC_HAS_EXTENSION(extension,major,minor,patch) __has_extension(extension) +#else + #define JSON_HEDLEY_GCC_HAS_EXTENSION(extension,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE) + #undef JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE +#endif +#if defined(__has_declspec_attribute) + #define JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) __has_declspec_attribute(attribute) +#else + #define JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE) + #undef JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE +#endif +#if defined(__has_declspec_attribute) + #define JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) __has_declspec_attribute(attribute) +#else + #define JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE) + #undef JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE +#endif +#if defined(__has_declspec_attribute) + #define JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) __has_declspec_attribute(attribute) +#else + #define JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_WARNING) + #undef JSON_HEDLEY_HAS_WARNING +#endif +#if defined(__has_warning) + #define JSON_HEDLEY_HAS_WARNING(warning) __has_warning(warning) +#else + #define JSON_HEDLEY_HAS_WARNING(warning) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_WARNING) + #undef JSON_HEDLEY_GNUC_HAS_WARNING +#endif +#if defined(__has_warning) + #define JSON_HEDLEY_GNUC_HAS_WARNING(warning,major,minor,patch) __has_warning(warning) +#else + #define JSON_HEDLEY_GNUC_HAS_WARNING(warning,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_WARNING) + #undef JSON_HEDLEY_GCC_HAS_WARNING +#endif +#if defined(__has_warning) + #define JSON_HEDLEY_GCC_HAS_WARNING(warning,major,minor,patch) __has_warning(warning) +#else + #define JSON_HEDLEY_GCC_HAS_WARNING(warning,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || \ + defined(__clang__) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(18,4,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,7,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(2,0,1) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,1,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,0,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_CRAY_VERSION_CHECK(5,0,0) || \ + JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,17) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(8,0,0) || \ + (JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) && defined(__C99_PRAGMA_OPERATOR)) + #define JSON_HEDLEY_PRAGMA(value) _Pragma(#value) +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) + #define JSON_HEDLEY_PRAGMA(value) __pragma(value) +#else + #define JSON_HEDLEY_PRAGMA(value) +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_PUSH) + #undef JSON_HEDLEY_DIAGNOSTIC_PUSH +#endif +#if defined(JSON_HEDLEY_DIAGNOSTIC_POP) + #undef JSON_HEDLEY_DIAGNOSTIC_POP +#endif +#if defined(__clang__) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("clang diagnostic push") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("clang diagnostic pop") +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("warning(push)") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("warning(pop)") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,6,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("GCC diagnostic push") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("GCC diagnostic pop") +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH __pragma(warning(push)) + #define JSON_HEDLEY_DIAGNOSTIC_POP __pragma(warning(pop)) +#elif JSON_HEDLEY_ARM_VERSION_CHECK(5,6,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("push") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("pop") +#elif \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,4,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,1,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("diag_push") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("diag_pop") +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(2,90,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("warning(push)") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("warning(pop)") +#else + #define JSON_HEDLEY_DIAGNOSTIC_PUSH + #define JSON_HEDLEY_DIAGNOSTIC_POP +#endif + +/* JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_ is for + HEDLEY INTERNAL USE ONLY. API subject to change without notice. */ +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_ +#endif +#if defined(__cplusplus) +# if JSON_HEDLEY_HAS_WARNING("-Wc++98-compat") +# if JSON_HEDLEY_HAS_WARNING("-Wc++17-extensions") +# if JSON_HEDLEY_HAS_WARNING("-Wc++1z-extensions") +# define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wc++98-compat\"") \ + _Pragma("clang diagnostic ignored \"-Wc++17-extensions\"") \ + _Pragma("clang diagnostic ignored \"-Wc++1z-extensions\"") \ + xpr \ + JSON_HEDLEY_DIAGNOSTIC_POP +# else +# define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wc++98-compat\"") \ + _Pragma("clang diagnostic ignored \"-Wc++17-extensions\"") \ + xpr \ + JSON_HEDLEY_DIAGNOSTIC_POP +# endif +# else +# define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wc++98-compat\"") \ + xpr \ + JSON_HEDLEY_DIAGNOSTIC_POP +# endif +# endif +#endif +#if !defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(x) x +#endif + +#if defined(JSON_HEDLEY_CONST_CAST) + #undef JSON_HEDLEY_CONST_CAST +#endif +#if defined(__cplusplus) +# define JSON_HEDLEY_CONST_CAST(T, expr) (const_cast(expr)) +#elif \ + JSON_HEDLEY_HAS_WARNING("-Wcast-qual") || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,6,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define JSON_HEDLEY_CONST_CAST(T, expr) (__extension__ ({ \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL \ + ((T) (expr)); \ + JSON_HEDLEY_DIAGNOSTIC_POP \ + })) +#else +# define JSON_HEDLEY_CONST_CAST(T, expr) ((T) (expr)) +#endif + +#if defined(JSON_HEDLEY_REINTERPRET_CAST) + #undef JSON_HEDLEY_REINTERPRET_CAST +#endif +#if defined(__cplusplus) + #define JSON_HEDLEY_REINTERPRET_CAST(T, expr) (reinterpret_cast(expr)) +#else + #define JSON_HEDLEY_REINTERPRET_CAST(T, expr) ((T) (expr)) +#endif + +#if defined(JSON_HEDLEY_STATIC_CAST) + #undef JSON_HEDLEY_STATIC_CAST +#endif +#if defined(__cplusplus) + #define JSON_HEDLEY_STATIC_CAST(T, expr) (static_cast(expr)) +#else + #define JSON_HEDLEY_STATIC_CAST(T, expr) ((T) (expr)) +#endif + +#if defined(JSON_HEDLEY_CPP_CAST) + #undef JSON_HEDLEY_CPP_CAST +#endif +#if defined(__cplusplus) +# if JSON_HEDLEY_HAS_WARNING("-Wold-style-cast") +# define JSON_HEDLEY_CPP_CAST(T, expr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wold-style-cast\"") \ + ((T) (expr)) \ + JSON_HEDLEY_DIAGNOSTIC_POP +# elif JSON_HEDLEY_IAR_VERSION_CHECK(8,3,0) +# define JSON_HEDLEY_CPP_CAST(T, expr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("diag_suppress=Pe137") \ + JSON_HEDLEY_DIAGNOSTIC_POP +# else +# define JSON_HEDLEY_CPP_CAST(T, expr) ((T) (expr)) +# endif +#else +# define JSON_HEDLEY_CPP_CAST(T, expr) (expr) +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wdeprecated-declarations") + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("warning(disable:1478 1786)") +#elif JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED __pragma(warning(disable:1478 1786)) +#elif JSON_HEDLEY_PGI_VERSION_CHECK(20,7,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1215,1216,1444,1445") +#elif JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1215,1444") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,3,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED __pragma(warning(disable:4996)) +#elif JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1215,1444") +#elif \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1291,1718") +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) && !defined(__cplusplus) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("error_messages(off,E_DEPRECATED_ATT,E_DEPRECATED_ATT_MESS)") +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) && defined(__cplusplus) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("error_messages(off,symdeprecated,symdeprecated2)") +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress=Pe1444,Pe1215") +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(2,90,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("warn(disable:2241)") +#else + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wunknown-pragmas") + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("clang diagnostic ignored \"-Wunknown-pragmas\"") +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("warning(disable:161)") +#elif JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS __pragma(warning(disable:161)) +#elif JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 1675") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,3,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("GCC diagnostic ignored \"-Wunknown-pragmas\"") +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS __pragma(warning(disable:4068)) +#elif \ + JSON_HEDLEY_TI_VERSION_CHECK(16,9,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,3,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 163") +#elif JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 163") +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress=Pe161") +#elif JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 161") +#else + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wunknown-attributes") + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("clang diagnostic ignored \"-Wunknown-attributes\"") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,6,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(17,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("warning(disable:1292)") +#elif JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES __pragma(warning(disable:1292)) +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(19,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES __pragma(warning(disable:5030)) +#elif JSON_HEDLEY_PGI_VERSION_CHECK(20,7,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1097,1098") +#elif JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1097") +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,14,0) && defined(__cplusplus) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("error_messages(off,attrskipunsup)") +#elif \ + JSON_HEDLEY_TI_VERSION_CHECK(18,1,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,3,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1173") +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress=Pe1097") +#elif JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1097") +#else + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wcast-qual") + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("clang diagnostic ignored \"-Wcast-qual\"") +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("warning(disable:2203 2331)") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(3,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("GCC diagnostic ignored \"-Wcast-qual\"") +#else + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wunused-function") + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION _Pragma("clang diagnostic ignored \"-Wunused-function\"") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION _Pragma("GCC diagnostic ignored \"-Wunused-function\"") +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(1,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION __pragma(warning(disable:4505)) +#elif JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION _Pragma("diag_suppress 3142") +#else + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION +#endif + +#if defined(JSON_HEDLEY_DEPRECATED) + #undef JSON_HEDLEY_DEPRECATED +#endif +#if defined(JSON_HEDLEY_DEPRECATED_FOR) + #undef JSON_HEDLEY_DEPRECATED_FOR +#endif +#if \ + JSON_HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_DEPRECATED(since) __declspec(deprecated("Since " # since)) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __declspec(deprecated("Since " #since "; use " #replacement)) +#elif \ + (JSON_HEDLEY_HAS_EXTENSION(attribute_deprecated_with_message) && !defined(JSON_HEDLEY_IAR_VERSION)) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,5,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(5,6,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(18,1,0) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(18,1,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,3,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,3,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_DEPRECATED(since) __attribute__((__deprecated__("Since " #since))) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __attribute__((__deprecated__("Since " #since "; use " #replacement))) +#elif defined(__cplusplus) && (__cplusplus >= 201402L) + #define JSON_HEDLEY_DEPRECATED(since) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[deprecated("Since " #since)]]) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[deprecated("Since " #since "; use " #replacement)]]) +#elif \ + JSON_HEDLEY_HAS_ATTRIBUTE(deprecated) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,10,0) + #define JSON_HEDLEY_DEPRECATED(since) __attribute__((__deprecated__)) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __attribute__((__deprecated__)) +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ + JSON_HEDLEY_PELLES_VERSION_CHECK(6,50,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_DEPRECATED(since) __declspec(deprecated) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __declspec(deprecated) +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_DEPRECATED(since) _Pragma("deprecated") + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) _Pragma("deprecated") +#else + #define JSON_HEDLEY_DEPRECATED(since) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) +#endif + +#if defined(JSON_HEDLEY_UNAVAILABLE) + #undef JSON_HEDLEY_UNAVAILABLE +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(warning) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,3,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_UNAVAILABLE(available_since) __attribute__((__warning__("Not available until " #available_since))) +#else + #define JSON_HEDLEY_UNAVAILABLE(available_since) +#endif + +#if defined(JSON_HEDLEY_WARN_UNUSED_RESULT) + #undef JSON_HEDLEY_WARN_UNUSED_RESULT +#endif +#if defined(JSON_HEDLEY_WARN_UNUSED_RESULT_MSG) + #undef JSON_HEDLEY_WARN_UNUSED_RESULT_MSG +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(warn_unused_result) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0) && defined(__cplusplus)) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_WARN_UNUSED_RESULT __attribute__((__warn_unused_result__)) + #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) __attribute__((__warn_unused_result__)) +#elif (JSON_HEDLEY_HAS_CPP_ATTRIBUTE(nodiscard) >= 201907L) + #define JSON_HEDLEY_WARN_UNUSED_RESULT JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]]) + #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard(msg)]]) +#elif JSON_HEDLEY_HAS_CPP_ATTRIBUTE(nodiscard) + #define JSON_HEDLEY_WARN_UNUSED_RESULT JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]]) + #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]]) +#elif defined(_Check_return_) /* SAL */ + #define JSON_HEDLEY_WARN_UNUSED_RESULT _Check_return_ + #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) _Check_return_ +#else + #define JSON_HEDLEY_WARN_UNUSED_RESULT + #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) +#endif + +#if defined(JSON_HEDLEY_SENTINEL) + #undef JSON_HEDLEY_SENTINEL +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(sentinel) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(5,4,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_SENTINEL(position) __attribute__((__sentinel__(position))) +#else + #define JSON_HEDLEY_SENTINEL(position) +#endif + +#if defined(JSON_HEDLEY_NO_RETURN) + #undef JSON_HEDLEY_NO_RETURN +#endif +#if JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_NO_RETURN __noreturn +#elif \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_NO_RETURN __attribute__((__noreturn__)) +#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L + #define JSON_HEDLEY_NO_RETURN _Noreturn +#elif defined(__cplusplus) && (__cplusplus >= 201103L) + #define JSON_HEDLEY_NO_RETURN JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[noreturn]]) +#elif \ + JSON_HEDLEY_HAS_ATTRIBUTE(noreturn) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,2,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,10,0) + #define JSON_HEDLEY_NO_RETURN __attribute__((__noreturn__)) +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) + #define JSON_HEDLEY_NO_RETURN _Pragma("does_not_return") +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_NO_RETURN __declspec(noreturn) +#elif JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,0,0) && defined(__cplusplus) + #define JSON_HEDLEY_NO_RETURN _Pragma("FUNC_NEVER_RETURNS;") +#elif JSON_HEDLEY_COMPCERT_VERSION_CHECK(3,2,0) + #define JSON_HEDLEY_NO_RETURN __attribute((noreturn)) +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(9,0,0) + #define JSON_HEDLEY_NO_RETURN __declspec(noreturn) +#else + #define JSON_HEDLEY_NO_RETURN +#endif + +#if defined(JSON_HEDLEY_NO_ESCAPE) + #undef JSON_HEDLEY_NO_ESCAPE +#endif +#if JSON_HEDLEY_HAS_ATTRIBUTE(noescape) + #define JSON_HEDLEY_NO_ESCAPE __attribute__((__noescape__)) +#else + #define JSON_HEDLEY_NO_ESCAPE +#endif + +#if defined(JSON_HEDLEY_UNREACHABLE) + #undef JSON_HEDLEY_UNREACHABLE +#endif +#if defined(JSON_HEDLEY_UNREACHABLE_RETURN) + #undef JSON_HEDLEY_UNREACHABLE_RETURN +#endif +#if defined(JSON_HEDLEY_ASSUME) + #undef JSON_HEDLEY_ASSUME +#endif +#if \ + JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_ASSUME(expr) __assume(expr) +#elif JSON_HEDLEY_HAS_BUILTIN(__builtin_assume) + #define JSON_HEDLEY_ASSUME(expr) __builtin_assume(expr) +#elif \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(4,0,0) + #if defined(__cplusplus) + #define JSON_HEDLEY_ASSUME(expr) std::_nassert(expr) + #else + #define JSON_HEDLEY_ASSUME(expr) _nassert(expr) + #endif +#endif +#if \ + (JSON_HEDLEY_HAS_BUILTIN(__builtin_unreachable) && (!defined(JSON_HEDLEY_ARM_VERSION))) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,5,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(18,10,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(13,1,5) || \ + JSON_HEDLEY_CRAY_VERSION_CHECK(10,0,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_UNREACHABLE() __builtin_unreachable() +#elif defined(JSON_HEDLEY_ASSUME) + #define JSON_HEDLEY_UNREACHABLE() JSON_HEDLEY_ASSUME(0) +#endif +#if !defined(JSON_HEDLEY_ASSUME) + #if defined(JSON_HEDLEY_UNREACHABLE) + #define JSON_HEDLEY_ASSUME(expr) JSON_HEDLEY_STATIC_CAST(void, ((expr) ? 1 : (JSON_HEDLEY_UNREACHABLE(), 1))) + #else + #define JSON_HEDLEY_ASSUME(expr) JSON_HEDLEY_STATIC_CAST(void, expr) + #endif +#endif +#if defined(JSON_HEDLEY_UNREACHABLE) + #if \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(4,0,0) + #define JSON_HEDLEY_UNREACHABLE_RETURN(value) return (JSON_HEDLEY_STATIC_CAST(void, JSON_HEDLEY_ASSUME(0)), (value)) + #else + #define JSON_HEDLEY_UNREACHABLE_RETURN(value) JSON_HEDLEY_UNREACHABLE() + #endif +#else + #define JSON_HEDLEY_UNREACHABLE_RETURN(value) return (value) +#endif +#if !defined(JSON_HEDLEY_UNREACHABLE) + #define JSON_HEDLEY_UNREACHABLE() JSON_HEDLEY_ASSUME(0) +#endif + +JSON_HEDLEY_DIAGNOSTIC_PUSH +#if JSON_HEDLEY_HAS_WARNING("-Wpedantic") + #pragma clang diagnostic ignored "-Wpedantic" +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wc++98-compat-pedantic") && defined(__cplusplus) + #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" +#endif +#if JSON_HEDLEY_GCC_HAS_WARNING("-Wvariadic-macros",4,0,0) + #if defined(__clang__) + #pragma clang diagnostic ignored "-Wvariadic-macros" + #elif defined(JSON_HEDLEY_GCC_VERSION) + #pragma GCC diagnostic ignored "-Wvariadic-macros" + #endif +#endif +#if defined(JSON_HEDLEY_NON_NULL) + #undef JSON_HEDLEY_NON_NULL +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(nonnull) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) + #define JSON_HEDLEY_NON_NULL(...) __attribute__((__nonnull__(__VA_ARGS__))) +#else + #define JSON_HEDLEY_NON_NULL(...) +#endif +JSON_HEDLEY_DIAGNOSTIC_POP + +#if defined(JSON_HEDLEY_PRINTF_FORMAT) + #undef JSON_HEDLEY_PRINTF_FORMAT +#endif +#if defined(__MINGW32__) && JSON_HEDLEY_GCC_HAS_ATTRIBUTE(format,4,4,0) && !defined(__USE_MINGW_ANSI_STDIO) + #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(ms_printf, string_idx, first_to_check))) +#elif defined(__MINGW32__) && JSON_HEDLEY_GCC_HAS_ATTRIBUTE(format,4,4,0) && defined(__USE_MINGW_ANSI_STDIO) + #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(gnu_printf, string_idx, first_to_check))) +#elif \ + JSON_HEDLEY_HAS_ATTRIBUTE(format) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(5,6,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(__printf__, string_idx, first_to_check))) +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(6,0,0) + #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __declspec(vaformat(printf,string_idx,first_to_check)) +#else + #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) +#endif + +#if defined(JSON_HEDLEY_CONSTEXPR) + #undef JSON_HEDLEY_CONSTEXPR +#endif +#if defined(__cplusplus) + #if __cplusplus >= 201103L + #define JSON_HEDLEY_CONSTEXPR JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(constexpr) + #endif +#endif +#if !defined(JSON_HEDLEY_CONSTEXPR) + #define JSON_HEDLEY_CONSTEXPR +#endif + +#if defined(JSON_HEDLEY_PREDICT) + #undef JSON_HEDLEY_PREDICT +#endif +#if defined(JSON_HEDLEY_LIKELY) + #undef JSON_HEDLEY_LIKELY +#endif +#if defined(JSON_HEDLEY_UNLIKELY) + #undef JSON_HEDLEY_UNLIKELY +#endif +#if defined(JSON_HEDLEY_UNPREDICTABLE) + #undef JSON_HEDLEY_UNPREDICTABLE +#endif +#if JSON_HEDLEY_HAS_BUILTIN(__builtin_unpredictable) + #define JSON_HEDLEY_UNPREDICTABLE(expr) __builtin_unpredictable((expr)) +#endif +#if \ + (JSON_HEDLEY_HAS_BUILTIN(__builtin_expect_with_probability) && !defined(JSON_HEDLEY_PGI_VERSION)) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(9,0,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define JSON_HEDLEY_PREDICT(expr, value, probability) __builtin_expect_with_probability( (expr), (value), (probability)) +# define JSON_HEDLEY_PREDICT_TRUE(expr, probability) __builtin_expect_with_probability(!!(expr), 1 , (probability)) +# define JSON_HEDLEY_PREDICT_FALSE(expr, probability) __builtin_expect_with_probability(!!(expr), 0 , (probability)) +# define JSON_HEDLEY_LIKELY(expr) __builtin_expect (!!(expr), 1 ) +# define JSON_HEDLEY_UNLIKELY(expr) __builtin_expect (!!(expr), 0 ) +#elif \ + (JSON_HEDLEY_HAS_BUILTIN(__builtin_expect) && !defined(JSON_HEDLEY_INTEL_CL_VERSION)) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0) && defined(__cplusplus)) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,7,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,1,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,27) || \ + JSON_HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define JSON_HEDLEY_PREDICT(expr, expected, probability) \ + (((probability) >= 0.9) ? __builtin_expect((expr), (expected)) : (JSON_HEDLEY_STATIC_CAST(void, expected), (expr))) +# define JSON_HEDLEY_PREDICT_TRUE(expr, probability) \ + (__extension__ ({ \ + double hedley_probability_ = (probability); \ + ((hedley_probability_ >= 0.9) ? __builtin_expect(!!(expr), 1) : ((hedley_probability_ <= 0.1) ? __builtin_expect(!!(expr), 0) : !!(expr))); \ + })) +# define JSON_HEDLEY_PREDICT_FALSE(expr, probability) \ + (__extension__ ({ \ + double hedley_probability_ = (probability); \ + ((hedley_probability_ >= 0.9) ? __builtin_expect(!!(expr), 0) : ((hedley_probability_ <= 0.1) ? __builtin_expect(!!(expr), 1) : !!(expr))); \ + })) +# define JSON_HEDLEY_LIKELY(expr) __builtin_expect(!!(expr), 1) +# define JSON_HEDLEY_UNLIKELY(expr) __builtin_expect(!!(expr), 0) +#else +# define JSON_HEDLEY_PREDICT(expr, expected, probability) (JSON_HEDLEY_STATIC_CAST(void, expected), (expr)) +# define JSON_HEDLEY_PREDICT_TRUE(expr, probability) (!!(expr)) +# define JSON_HEDLEY_PREDICT_FALSE(expr, probability) (!!(expr)) +# define JSON_HEDLEY_LIKELY(expr) (!!(expr)) +# define JSON_HEDLEY_UNLIKELY(expr) (!!(expr)) +#endif +#if !defined(JSON_HEDLEY_UNPREDICTABLE) + #define JSON_HEDLEY_UNPREDICTABLE(expr) JSON_HEDLEY_PREDICT(expr, 1, 0.5) +#endif + +#if defined(JSON_HEDLEY_MALLOC) + #undef JSON_HEDLEY_MALLOC +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(malloc) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(12,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_MALLOC __attribute__((__malloc__)) +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) + #define JSON_HEDLEY_MALLOC _Pragma("returns_new_memory") +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_MALLOC __declspec(restrict) +#else + #define JSON_HEDLEY_MALLOC +#endif + +#if defined(JSON_HEDLEY_PURE) + #undef JSON_HEDLEY_PURE +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(pure) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(2,96,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define JSON_HEDLEY_PURE __attribute__((__pure__)) +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) +# define JSON_HEDLEY_PURE _Pragma("does_not_write_global_data") +#elif defined(__cplusplus) && \ + ( \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(2,0,1) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(4,0,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) \ + ) +# define JSON_HEDLEY_PURE _Pragma("FUNC_IS_PURE;") +#else +# define JSON_HEDLEY_PURE +#endif + +#if defined(JSON_HEDLEY_CONST) + #undef JSON_HEDLEY_CONST +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(const) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(2,5,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_CONST __attribute__((__const__)) +#elif \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) + #define JSON_HEDLEY_CONST _Pragma("no_side_effect") +#else + #define JSON_HEDLEY_CONST JSON_HEDLEY_PURE +#endif + +#if defined(JSON_HEDLEY_RESTRICT) + #undef JSON_HEDLEY_RESTRICT +#endif +#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && !defined(__cplusplus) + #define JSON_HEDLEY_RESTRICT restrict +#elif \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,2,4) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,1,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,14,0) && defined(__cplusplus)) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) || \ + defined(__clang__) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_RESTRICT __restrict +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,3,0) && !defined(__cplusplus) + #define JSON_HEDLEY_RESTRICT _Restrict +#else + #define JSON_HEDLEY_RESTRICT +#endif + +#if defined(JSON_HEDLEY_INLINE) + #undef JSON_HEDLEY_INLINE +#endif +#if \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || \ + (defined(__cplusplus) && (__cplusplus >= 199711L)) + #define JSON_HEDLEY_INLINE inline +#elif \ + defined(JSON_HEDLEY_GCC_VERSION) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(6,2,0) + #define JSON_HEDLEY_INLINE __inline__ +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(12,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,1,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_INLINE __inline +#else + #define JSON_HEDLEY_INLINE +#endif + +#if defined(JSON_HEDLEY_ALWAYS_INLINE) + #undef JSON_HEDLEY_ALWAYS_INLINE +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(always_inline) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,10,0) +# define JSON_HEDLEY_ALWAYS_INLINE __attribute__((__always_inline__)) JSON_HEDLEY_INLINE +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(12,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define JSON_HEDLEY_ALWAYS_INLINE __forceinline +#elif defined(__cplusplus) && \ + ( \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) \ + ) +# define JSON_HEDLEY_ALWAYS_INLINE _Pragma("FUNC_ALWAYS_INLINE;") +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) +# define JSON_HEDLEY_ALWAYS_INLINE _Pragma("inline=forced") +#else +# define JSON_HEDLEY_ALWAYS_INLINE JSON_HEDLEY_INLINE +#endif + +#if defined(JSON_HEDLEY_NEVER_INLINE) + #undef JSON_HEDLEY_NEVER_INLINE +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(noinline) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,10,0) + #define JSON_HEDLEY_NEVER_INLINE __attribute__((__noinline__)) +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_NEVER_INLINE __declspec(noinline) +#elif JSON_HEDLEY_PGI_VERSION_CHECK(10,2,0) + #define JSON_HEDLEY_NEVER_INLINE _Pragma("noinline") +#elif JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,0,0) && defined(__cplusplus) + #define JSON_HEDLEY_NEVER_INLINE _Pragma("FUNC_CANNOT_INLINE;") +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_NEVER_INLINE _Pragma("inline=never") +#elif JSON_HEDLEY_COMPCERT_VERSION_CHECK(3,2,0) + #define JSON_HEDLEY_NEVER_INLINE __attribute((noinline)) +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(9,0,0) + #define JSON_HEDLEY_NEVER_INLINE __declspec(noinline) +#else + #define JSON_HEDLEY_NEVER_INLINE +#endif + +#if defined(JSON_HEDLEY_PRIVATE) + #undef JSON_HEDLEY_PRIVATE +#endif +#if defined(JSON_HEDLEY_PUBLIC) + #undef JSON_HEDLEY_PUBLIC +#endif +#if defined(JSON_HEDLEY_IMPORT) + #undef JSON_HEDLEY_IMPORT +#endif +#if defined(_WIN32) || defined(__CYGWIN__) +# define JSON_HEDLEY_PRIVATE +# define JSON_HEDLEY_PUBLIC __declspec(dllexport) +# define JSON_HEDLEY_IMPORT __declspec(dllimport) +#else +# if \ + JSON_HEDLEY_HAS_ATTRIBUTE(visibility) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ + ( \ + defined(__TI_EABI__) && \ + ( \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) \ + ) \ + ) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define JSON_HEDLEY_PRIVATE __attribute__((__visibility__("hidden"))) +# define JSON_HEDLEY_PUBLIC __attribute__((__visibility__("default"))) +# else +# define JSON_HEDLEY_PRIVATE +# define JSON_HEDLEY_PUBLIC +# endif +# define JSON_HEDLEY_IMPORT extern +#endif + +#if defined(JSON_HEDLEY_NO_THROW) + #undef JSON_HEDLEY_NO_THROW +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(nothrow) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_NO_THROW __attribute__((__nothrow__)) +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(13,1,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) + #define JSON_HEDLEY_NO_THROW __declspec(nothrow) +#else + #define JSON_HEDLEY_NO_THROW +#endif + +#if defined(JSON_HEDLEY_FALL_THROUGH) + #undef JSON_HEDLEY_FALL_THROUGH +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(fallthrough) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(7,0,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_FALL_THROUGH __attribute__((__fallthrough__)) +#elif JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(clang,fallthrough) + #define JSON_HEDLEY_FALL_THROUGH JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[clang::fallthrough]]) +#elif JSON_HEDLEY_HAS_CPP_ATTRIBUTE(fallthrough) + #define JSON_HEDLEY_FALL_THROUGH JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[fallthrough]]) +#elif defined(__fallthrough) /* SAL */ + #define JSON_HEDLEY_FALL_THROUGH __fallthrough +#else + #define JSON_HEDLEY_FALL_THROUGH +#endif + +#if defined(JSON_HEDLEY_RETURNS_NON_NULL) + #undef JSON_HEDLEY_RETURNS_NON_NULL +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(returns_nonnull) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,9,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_RETURNS_NON_NULL __attribute__((__returns_nonnull__)) +#elif defined(_Ret_notnull_) /* SAL */ + #define JSON_HEDLEY_RETURNS_NON_NULL _Ret_notnull_ +#else + #define JSON_HEDLEY_RETURNS_NON_NULL +#endif + +#if defined(JSON_HEDLEY_ARRAY_PARAM) + #undef JSON_HEDLEY_ARRAY_PARAM +#endif +#if \ + defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && \ + !defined(__STDC_NO_VLA__) && \ + !defined(__cplusplus) && \ + !defined(JSON_HEDLEY_PGI_VERSION) && \ + !defined(JSON_HEDLEY_TINYC_VERSION) + #define JSON_HEDLEY_ARRAY_PARAM(name) (name) +#else + #define JSON_HEDLEY_ARRAY_PARAM(name) +#endif + +#if defined(JSON_HEDLEY_IS_CONSTANT) + #undef JSON_HEDLEY_IS_CONSTANT +#endif +#if defined(JSON_HEDLEY_REQUIRE_CONSTEXPR) + #undef JSON_HEDLEY_REQUIRE_CONSTEXPR +#endif +/* JSON_HEDLEY_IS_CONSTEXPR_ is for + HEDLEY INTERNAL USE ONLY. API subject to change without notice. */ +#if defined(JSON_HEDLEY_IS_CONSTEXPR_) + #undef JSON_HEDLEY_IS_CONSTEXPR_ +#endif +#if \ + JSON_HEDLEY_HAS_BUILTIN(__builtin_constant_p) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,19) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \ + (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) && !defined(__cplusplus)) || \ + JSON_HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_IS_CONSTANT(expr) __builtin_constant_p(expr) +#endif +#if !defined(__cplusplus) +# if \ + JSON_HEDLEY_HAS_BUILTIN(__builtin_types_compatible_p) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ + JSON_HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(5,4,0) || \ + JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,24) +#if defined(__INTPTR_TYPE__) + #define JSON_HEDLEY_IS_CONSTEXPR_(expr) __builtin_types_compatible_p(__typeof__((1 ? (void*) ((__INTPTR_TYPE__) ((expr) * 0)) : (int*) 0)), int*) +#else + #include + #define JSON_HEDLEY_IS_CONSTEXPR_(expr) __builtin_types_compatible_p(__typeof__((1 ? (void*) ((intptr_t) ((expr) * 0)) : (int*) 0)), int*) +#endif +# elif \ + ( \ + defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && \ + !defined(JSON_HEDLEY_SUNPRO_VERSION) && \ + !defined(JSON_HEDLEY_PGI_VERSION) && \ + !defined(JSON_HEDLEY_IAR_VERSION)) || \ + (JSON_HEDLEY_HAS_EXTENSION(c_generic_selections) && !defined(JSON_HEDLEY_IAR_VERSION)) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,9,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(17,0,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(12,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(5,3,0) +#if defined(__INTPTR_TYPE__) + #define JSON_HEDLEY_IS_CONSTEXPR_(expr) _Generic((1 ? (void*) ((__INTPTR_TYPE__) ((expr) * 0)) : (int*) 0), int*: 1, void*: 0) +#else + #include + #define JSON_HEDLEY_IS_CONSTEXPR_(expr) _Generic((1 ? (void*) ((intptr_t) * 0) : (int*) 0), int*: 1, void*: 0) +#endif +# elif \ + defined(JSON_HEDLEY_GCC_VERSION) || \ + defined(JSON_HEDLEY_INTEL_VERSION) || \ + defined(JSON_HEDLEY_TINYC_VERSION) || \ + defined(JSON_HEDLEY_TI_ARMCL_VERSION) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(18,12,0) || \ + defined(JSON_HEDLEY_TI_CL2000_VERSION) || \ + defined(JSON_HEDLEY_TI_CL6X_VERSION) || \ + defined(JSON_HEDLEY_TI_CL7X_VERSION) || \ + defined(JSON_HEDLEY_TI_CLPRU_VERSION) || \ + defined(__clang__) +# define JSON_HEDLEY_IS_CONSTEXPR_(expr) ( \ + sizeof(void) != \ + sizeof(*( \ + 1 ? \ + ((void*) ((expr) * 0L) ) : \ +((struct { char v[sizeof(void) * 2]; } *) 1) \ + ) \ + ) \ + ) +# endif +#endif +#if defined(JSON_HEDLEY_IS_CONSTEXPR_) + #if !defined(JSON_HEDLEY_IS_CONSTANT) + #define JSON_HEDLEY_IS_CONSTANT(expr) JSON_HEDLEY_IS_CONSTEXPR_(expr) + #endif + #define JSON_HEDLEY_REQUIRE_CONSTEXPR(expr) (JSON_HEDLEY_IS_CONSTEXPR_(expr) ? (expr) : (-1)) +#else + #if !defined(JSON_HEDLEY_IS_CONSTANT) + #define JSON_HEDLEY_IS_CONSTANT(expr) (0) + #endif + #define JSON_HEDLEY_REQUIRE_CONSTEXPR(expr) (expr) +#endif + +#if defined(JSON_HEDLEY_BEGIN_C_DECLS) + #undef JSON_HEDLEY_BEGIN_C_DECLS +#endif +#if defined(JSON_HEDLEY_END_C_DECLS) + #undef JSON_HEDLEY_END_C_DECLS +#endif +#if defined(JSON_HEDLEY_C_DECL) + #undef JSON_HEDLEY_C_DECL +#endif +#if defined(__cplusplus) + #define JSON_HEDLEY_BEGIN_C_DECLS extern "C" { + #define JSON_HEDLEY_END_C_DECLS } + #define JSON_HEDLEY_C_DECL extern "C" +#else + #define JSON_HEDLEY_BEGIN_C_DECLS + #define JSON_HEDLEY_END_C_DECLS + #define JSON_HEDLEY_C_DECL +#endif + +#if defined(JSON_HEDLEY_STATIC_ASSERT) + #undef JSON_HEDLEY_STATIC_ASSERT +#endif +#if \ + !defined(__cplusplus) && ( \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)) || \ + (JSON_HEDLEY_HAS_FEATURE(c_static_assert) && !defined(JSON_HEDLEY_INTEL_CL_VERSION)) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(6,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + defined(_Static_assert) \ + ) +# define JSON_HEDLEY_STATIC_ASSERT(expr, message) _Static_assert(expr, message) +#elif \ + (defined(__cplusplus) && (__cplusplus >= 201103L)) || \ + JSON_HEDLEY_MSVC_VERSION_CHECK(16,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define JSON_HEDLEY_STATIC_ASSERT(expr, message) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(static_assert(expr, message)) +#else +# define JSON_HEDLEY_STATIC_ASSERT(expr, message) +#endif + +#if defined(JSON_HEDLEY_NULL) + #undef JSON_HEDLEY_NULL +#endif +#if defined(__cplusplus) + #if __cplusplus >= 201103L + #define JSON_HEDLEY_NULL JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(nullptr) + #elif defined(NULL) + #define JSON_HEDLEY_NULL NULL + #else + #define JSON_HEDLEY_NULL JSON_HEDLEY_STATIC_CAST(void*, 0) + #endif +#elif defined(NULL) + #define JSON_HEDLEY_NULL NULL +#else + #define JSON_HEDLEY_NULL ((void*) 0) +#endif + +#if defined(JSON_HEDLEY_MESSAGE) + #undef JSON_HEDLEY_MESSAGE +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wunknown-pragmas") +# define JSON_HEDLEY_MESSAGE(msg) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS \ + JSON_HEDLEY_PRAGMA(message msg) \ + JSON_HEDLEY_DIAGNOSTIC_POP +#elif \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,4,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(message msg) +#elif JSON_HEDLEY_CRAY_VERSION_CHECK(5,0,0) +# define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(_CRI message msg) +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) +# define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(message(msg)) +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(2,0,0) +# define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(message(msg)) +#else +# define JSON_HEDLEY_MESSAGE(msg) +#endif + +#if defined(JSON_HEDLEY_WARNING) + #undef JSON_HEDLEY_WARNING +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wunknown-pragmas") +# define JSON_HEDLEY_WARNING(msg) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS \ + JSON_HEDLEY_PRAGMA(clang warning msg) \ + JSON_HEDLEY_DIAGNOSTIC_POP +#elif \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,8,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(18,4,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define JSON_HEDLEY_WARNING(msg) JSON_HEDLEY_PRAGMA(GCC warning msg) +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define JSON_HEDLEY_WARNING(msg) JSON_HEDLEY_PRAGMA(message(msg)) +#else +# define JSON_HEDLEY_WARNING(msg) JSON_HEDLEY_MESSAGE(msg) +#endif + +#if defined(JSON_HEDLEY_REQUIRE) + #undef JSON_HEDLEY_REQUIRE +#endif +#if defined(JSON_HEDLEY_REQUIRE_MSG) + #undef JSON_HEDLEY_REQUIRE_MSG +#endif +#if JSON_HEDLEY_HAS_ATTRIBUTE(diagnose_if) +# if JSON_HEDLEY_HAS_WARNING("-Wgcc-compat") +# define JSON_HEDLEY_REQUIRE(expr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wgcc-compat\"") \ + __attribute__((diagnose_if(!(expr), #expr, "error"))) \ + JSON_HEDLEY_DIAGNOSTIC_POP +# define JSON_HEDLEY_REQUIRE_MSG(expr,msg) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wgcc-compat\"") \ + __attribute__((diagnose_if(!(expr), msg, "error"))) \ + JSON_HEDLEY_DIAGNOSTIC_POP +# else +# define JSON_HEDLEY_REQUIRE(expr) __attribute__((diagnose_if(!(expr), #expr, "error"))) +# define JSON_HEDLEY_REQUIRE_MSG(expr,msg) __attribute__((diagnose_if(!(expr), msg, "error"))) +# endif +#else +# define JSON_HEDLEY_REQUIRE(expr) +# define JSON_HEDLEY_REQUIRE_MSG(expr,msg) +#endif + +#if defined(JSON_HEDLEY_FLAGS) + #undef JSON_HEDLEY_FLAGS +#endif +#if JSON_HEDLEY_HAS_ATTRIBUTE(flag_enum) && (!defined(__cplusplus) || JSON_HEDLEY_HAS_WARNING("-Wbitfield-enum-conversion")) + #define JSON_HEDLEY_FLAGS __attribute__((__flag_enum__)) +#else + #define JSON_HEDLEY_FLAGS +#endif + +#if defined(JSON_HEDLEY_FLAGS_CAST) + #undef JSON_HEDLEY_FLAGS_CAST +#endif +#if JSON_HEDLEY_INTEL_VERSION_CHECK(19,0,0) +# define JSON_HEDLEY_FLAGS_CAST(T, expr) (__extension__ ({ \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("warning(disable:188)") \ + ((T) (expr)); \ + JSON_HEDLEY_DIAGNOSTIC_POP \ + })) +#else +# define JSON_HEDLEY_FLAGS_CAST(T, expr) JSON_HEDLEY_STATIC_CAST(T, expr) +#endif + +#if defined(JSON_HEDLEY_EMPTY_BASES) + #undef JSON_HEDLEY_EMPTY_BASES +#endif +#if \ + (JSON_HEDLEY_MSVC_VERSION_CHECK(19,0,23918) && !JSON_HEDLEY_MSVC_VERSION_CHECK(20,0,0)) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_EMPTY_BASES __declspec(empty_bases) +#else + #define JSON_HEDLEY_EMPTY_BASES +#endif + +/* Remaining macros are deprecated. */ + +#if defined(JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK) + #undef JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK +#endif +#if defined(__clang__) + #define JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK(major,minor,patch) (0) +#else + #define JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK(major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_CLANG_HAS_ATTRIBUTE) + #undef JSON_HEDLEY_CLANG_HAS_ATTRIBUTE +#endif +#define JSON_HEDLEY_CLANG_HAS_ATTRIBUTE(attribute) JSON_HEDLEY_HAS_ATTRIBUTE(attribute) + +#if defined(JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE) + #undef JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE +#endif +#define JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE(attribute) JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute) + +#if defined(JSON_HEDLEY_CLANG_HAS_BUILTIN) + #undef JSON_HEDLEY_CLANG_HAS_BUILTIN +#endif +#define JSON_HEDLEY_CLANG_HAS_BUILTIN(builtin) JSON_HEDLEY_HAS_BUILTIN(builtin) + +#if defined(JSON_HEDLEY_CLANG_HAS_FEATURE) + #undef JSON_HEDLEY_CLANG_HAS_FEATURE +#endif +#define JSON_HEDLEY_CLANG_HAS_FEATURE(feature) JSON_HEDLEY_HAS_FEATURE(feature) + +#if defined(JSON_HEDLEY_CLANG_HAS_EXTENSION) + #undef JSON_HEDLEY_CLANG_HAS_EXTENSION +#endif +#define JSON_HEDLEY_CLANG_HAS_EXTENSION(extension) JSON_HEDLEY_HAS_EXTENSION(extension) + +#if defined(JSON_HEDLEY_CLANG_HAS_DECLSPEC_DECLSPEC_ATTRIBUTE) + #undef JSON_HEDLEY_CLANG_HAS_DECLSPEC_DECLSPEC_ATTRIBUTE +#endif +#define JSON_HEDLEY_CLANG_HAS_DECLSPEC_ATTRIBUTE(attribute) JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) + +#if defined(JSON_HEDLEY_CLANG_HAS_WARNING) + #undef JSON_HEDLEY_CLANG_HAS_WARNING +#endif +#define JSON_HEDLEY_CLANG_HAS_WARNING(warning) JSON_HEDLEY_HAS_WARNING(warning) + +#endif /* !defined(JSON_HEDLEY_VERSION) || (JSON_HEDLEY_VERSION < X) */ + + +// This file contains all internal macro definitions (except those affecting ABI) +// You MUST include macro_unscope.hpp at the end of json.hpp to undef all of them + +// #include + + +// exclude unsupported compilers +#if !defined(JSON_SKIP_UNSUPPORTED_COMPILER_CHECK) + #if defined(__clang__) + #if (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__) < 30400 + #error "unsupported Clang version - see https://github.com/nlohmann/json#supported-compilers" + #endif + #elif defined(__GNUC__) && !(defined(__ICC) || defined(__INTEL_COMPILER)) + #if (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) < 40800 + #error "unsupported GCC version - see https://github.com/nlohmann/json#supported-compilers" + #endif + #endif +#endif + +// C++ language standard detection +// if the user manually specified the used c++ version this is skipped +#if !defined(JSON_HAS_CPP_20) && !defined(JSON_HAS_CPP_17) && !defined(JSON_HAS_CPP_14) && !defined(JSON_HAS_CPP_11) + #if (defined(__cplusplus) && __cplusplus >= 202002L) || (defined(_MSVC_LANG) && _MSVC_LANG >= 202002L) + #define JSON_HAS_CPP_20 + #define JSON_HAS_CPP_17 + #define JSON_HAS_CPP_14 + #elif (defined(__cplusplus) && __cplusplus >= 201703L) || (defined(_HAS_CXX17) && _HAS_CXX17 == 1) // fix for issue #464 + #define JSON_HAS_CPP_17 + #define JSON_HAS_CPP_14 + #elif (defined(__cplusplus) && __cplusplus >= 201402L) || (defined(_HAS_CXX14) && _HAS_CXX14 == 1) + #define JSON_HAS_CPP_14 + #endif + // the cpp 11 flag is always specified because it is the minimal required version + #define JSON_HAS_CPP_11 +#endif + +#ifdef __has_include + #if __has_include() + #include + #endif +#endif + +#if !defined(JSON_HAS_FILESYSTEM) && !defined(JSON_HAS_EXPERIMENTAL_FILESYSTEM) + #ifdef JSON_HAS_CPP_17 + #if defined(__cpp_lib_filesystem) + #define JSON_HAS_FILESYSTEM 1 + #elif defined(__cpp_lib_experimental_filesystem) + #define JSON_HAS_EXPERIMENTAL_FILESYSTEM 1 + #elif !defined(__has_include) + #define JSON_HAS_EXPERIMENTAL_FILESYSTEM 1 + #elif __has_include() + #define JSON_HAS_FILESYSTEM 1 + #elif __has_include() + #define JSON_HAS_EXPERIMENTAL_FILESYSTEM 1 + #endif + + // std::filesystem does not work on MinGW GCC 8: https://sourceforge.net/p/mingw-w64/bugs/737/ + #if defined(__MINGW32__) && defined(__GNUC__) && __GNUC__ == 8 + #undef JSON_HAS_FILESYSTEM + #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM + #endif + + // no filesystem support before GCC 8: https://en.cppreference.com/w/cpp/compiler_support + #if defined(__GNUC__) && !defined(__clang__) && __GNUC__ < 8 + #undef JSON_HAS_FILESYSTEM + #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM + #endif + + // no filesystem support before Clang 7: https://en.cppreference.com/w/cpp/compiler_support + #if defined(__clang_major__) && __clang_major__ < 7 + #undef JSON_HAS_FILESYSTEM + #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM + #endif + + // no filesystem support before MSVC 19.14: https://en.cppreference.com/w/cpp/compiler_support + #if defined(_MSC_VER) && _MSC_VER < 1914 + #undef JSON_HAS_FILESYSTEM + #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM + #endif + + // no filesystem support before iOS 13 + #if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED < 130000 + #undef JSON_HAS_FILESYSTEM + #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM + #endif + + // no filesystem support before macOS Catalina + #if defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED < 101500 + #undef JSON_HAS_FILESYSTEM + #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM + #endif + #endif +#endif + +#ifndef JSON_HAS_EXPERIMENTAL_FILESYSTEM + #define JSON_HAS_EXPERIMENTAL_FILESYSTEM 0 +#endif + +#ifndef JSON_HAS_FILESYSTEM + #define JSON_HAS_FILESYSTEM 0 +#endif + +#ifndef JSON_HAS_THREE_WAY_COMPARISON + #if defined(__cpp_impl_three_way_comparison) && __cpp_impl_three_way_comparison >= 201907L \ + && defined(__cpp_lib_three_way_comparison) && __cpp_lib_three_way_comparison >= 201907L + #define JSON_HAS_THREE_WAY_COMPARISON 1 + #else + #define JSON_HAS_THREE_WAY_COMPARISON 0 + #endif +#endif + +#ifndef JSON_HAS_RANGES + // ranges header shipping in GCC 11.1.0 (released 2021-04-27) has syntax error + #if defined(__GLIBCXX__) && __GLIBCXX__ == 20210427 + #define JSON_HAS_RANGES 0 + #elif defined(__cpp_lib_ranges) + #define JSON_HAS_RANGES 1 + #else + #define JSON_HAS_RANGES 0 + #endif +#endif + +#ifndef JSON_HAS_STATIC_RTTI + #if !defined(_HAS_STATIC_RTTI) || _HAS_STATIC_RTTI != 0 + #define JSON_HAS_STATIC_RTTI 1 + #else + #define JSON_HAS_STATIC_RTTI 0 + #endif +#endif + +#ifdef JSON_HAS_CPP_17 + #define JSON_INLINE_VARIABLE inline +#else + #define JSON_INLINE_VARIABLE +#endif + +#if JSON_HEDLEY_HAS_ATTRIBUTE(no_unique_address) + #define JSON_NO_UNIQUE_ADDRESS [[no_unique_address]] +#else + #define JSON_NO_UNIQUE_ADDRESS +#endif + +// disable documentation warnings on clang +#if defined(__clang__) + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wdocumentation" + #pragma clang diagnostic ignored "-Wdocumentation-unknown-command" +#endif + +// allow disabling exceptions +#if (defined(__cpp_exceptions) || defined(__EXCEPTIONS) || defined(_CPPUNWIND)) && !defined(JSON_NOEXCEPTION) + #define JSON_THROW(exception) throw exception + #define JSON_TRY try + #define JSON_CATCH(exception) catch(exception) + #define JSON_INTERNAL_CATCH(exception) catch(exception) +#else + #include + #define JSON_THROW(exception) std::abort() + #define JSON_TRY if(true) + #define JSON_CATCH(exception) if(false) + #define JSON_INTERNAL_CATCH(exception) if(false) +#endif + +// override exception macros +#if defined(JSON_THROW_USER) + #undef JSON_THROW + #define JSON_THROW JSON_THROW_USER +#endif +#if defined(JSON_TRY_USER) + #undef JSON_TRY + #define JSON_TRY JSON_TRY_USER +#endif +#if defined(JSON_CATCH_USER) + #undef JSON_CATCH + #define JSON_CATCH JSON_CATCH_USER + #undef JSON_INTERNAL_CATCH + #define JSON_INTERNAL_CATCH JSON_CATCH_USER +#endif +#if defined(JSON_INTERNAL_CATCH_USER) + #undef JSON_INTERNAL_CATCH + #define JSON_INTERNAL_CATCH JSON_INTERNAL_CATCH_USER +#endif + +// allow overriding assert +#if !defined(JSON_ASSERT) + #include // assert + #define JSON_ASSERT(x) assert(x) +#endif + +// allow to access some private functions (needed by the test suite) +#if defined(JSON_TESTS_PRIVATE) + #define JSON_PRIVATE_UNLESS_TESTED public +#else + #define JSON_PRIVATE_UNLESS_TESTED private +#endif + +/*! +@brief macro to briefly define a mapping between an enum and JSON +@def NLOHMANN_JSON_SERIALIZE_ENUM +@since version 3.4.0 +*/ +#define NLOHMANN_JSON_SERIALIZE_ENUM(ENUM_TYPE, ...) \ + template \ + inline void to_json(BasicJsonType& j, const ENUM_TYPE& e) \ + { \ + static_assert(std::is_enum::value, #ENUM_TYPE " must be an enum!"); \ + static const std::pair m[] = __VA_ARGS__; \ + auto it = std::find_if(std::begin(m), std::end(m), \ + [e](const std::pair& ej_pair) -> bool \ + { \ + return ej_pair.first == e; \ + }); \ + j = ((it != std::end(m)) ? it : std::begin(m))->second; \ + } \ + template \ + inline void from_json(const BasicJsonType& j, ENUM_TYPE& e) \ + { \ + static_assert(std::is_enum::value, #ENUM_TYPE " must be an enum!"); \ + static const std::pair m[] = __VA_ARGS__; \ + auto it = std::find_if(std::begin(m), std::end(m), \ + [&j](const std::pair& ej_pair) -> bool \ + { \ + return ej_pair.second == j; \ + }); \ + e = ((it != std::end(m)) ? it : std::begin(m))->first; \ + } + +// Ugly macros to avoid uglier copy-paste when specializing basic_json. They +// may be removed in the future once the class is split. + +#define NLOHMANN_BASIC_JSON_TPL_DECLARATION \ + template class ObjectType, \ + template class ArrayType, \ + class StringType, class BooleanType, class NumberIntegerType, \ + class NumberUnsignedType, class NumberFloatType, \ + template class AllocatorType, \ + template class JSONSerializer, \ + class BinaryType, \ + class CustomBaseClass> + +#define NLOHMANN_BASIC_JSON_TPL \ + basic_json + +// Macros to simplify conversion from/to types + +#define NLOHMANN_JSON_EXPAND( x ) x +#define NLOHMANN_JSON_GET_MACRO(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64, NAME,...) NAME +#define NLOHMANN_JSON_PASTE(...) NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_GET_MACRO(__VA_ARGS__, \ + NLOHMANN_JSON_PASTE64, \ + NLOHMANN_JSON_PASTE63, \ + NLOHMANN_JSON_PASTE62, \ + NLOHMANN_JSON_PASTE61, \ + NLOHMANN_JSON_PASTE60, \ + NLOHMANN_JSON_PASTE59, \ + NLOHMANN_JSON_PASTE58, \ + NLOHMANN_JSON_PASTE57, \ + NLOHMANN_JSON_PASTE56, \ + NLOHMANN_JSON_PASTE55, \ + NLOHMANN_JSON_PASTE54, \ + NLOHMANN_JSON_PASTE53, \ + NLOHMANN_JSON_PASTE52, \ + NLOHMANN_JSON_PASTE51, \ + NLOHMANN_JSON_PASTE50, \ + NLOHMANN_JSON_PASTE49, \ + NLOHMANN_JSON_PASTE48, \ + NLOHMANN_JSON_PASTE47, \ + NLOHMANN_JSON_PASTE46, \ + NLOHMANN_JSON_PASTE45, \ + NLOHMANN_JSON_PASTE44, \ + NLOHMANN_JSON_PASTE43, \ + NLOHMANN_JSON_PASTE42, \ + NLOHMANN_JSON_PASTE41, \ + NLOHMANN_JSON_PASTE40, \ + NLOHMANN_JSON_PASTE39, \ + NLOHMANN_JSON_PASTE38, \ + NLOHMANN_JSON_PASTE37, \ + NLOHMANN_JSON_PASTE36, \ + NLOHMANN_JSON_PASTE35, \ + NLOHMANN_JSON_PASTE34, \ + NLOHMANN_JSON_PASTE33, \ + NLOHMANN_JSON_PASTE32, \ + NLOHMANN_JSON_PASTE31, \ + NLOHMANN_JSON_PASTE30, \ + NLOHMANN_JSON_PASTE29, \ + NLOHMANN_JSON_PASTE28, \ + NLOHMANN_JSON_PASTE27, \ + NLOHMANN_JSON_PASTE26, \ + NLOHMANN_JSON_PASTE25, \ + NLOHMANN_JSON_PASTE24, \ + NLOHMANN_JSON_PASTE23, \ + NLOHMANN_JSON_PASTE22, \ + NLOHMANN_JSON_PASTE21, \ + NLOHMANN_JSON_PASTE20, \ + NLOHMANN_JSON_PASTE19, \ + NLOHMANN_JSON_PASTE18, \ + NLOHMANN_JSON_PASTE17, \ + NLOHMANN_JSON_PASTE16, \ + NLOHMANN_JSON_PASTE15, \ + NLOHMANN_JSON_PASTE14, \ + NLOHMANN_JSON_PASTE13, \ + NLOHMANN_JSON_PASTE12, \ + NLOHMANN_JSON_PASTE11, \ + NLOHMANN_JSON_PASTE10, \ + NLOHMANN_JSON_PASTE9, \ + NLOHMANN_JSON_PASTE8, \ + NLOHMANN_JSON_PASTE7, \ + NLOHMANN_JSON_PASTE6, \ + NLOHMANN_JSON_PASTE5, \ + NLOHMANN_JSON_PASTE4, \ + NLOHMANN_JSON_PASTE3, \ + NLOHMANN_JSON_PASTE2, \ + NLOHMANN_JSON_PASTE1)(__VA_ARGS__)) +#define NLOHMANN_JSON_PASTE2(func, v1) func(v1) +#define NLOHMANN_JSON_PASTE3(func, v1, v2) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE2(func, v2) +#define NLOHMANN_JSON_PASTE4(func, v1, v2, v3) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE3(func, v2, v3) +#define NLOHMANN_JSON_PASTE5(func, v1, v2, v3, v4) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE4(func, v2, v3, v4) +#define NLOHMANN_JSON_PASTE6(func, v1, v2, v3, v4, v5) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE5(func, v2, v3, v4, v5) +#define NLOHMANN_JSON_PASTE7(func, v1, v2, v3, v4, v5, v6) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE6(func, v2, v3, v4, v5, v6) +#define NLOHMANN_JSON_PASTE8(func, v1, v2, v3, v4, v5, v6, v7) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE7(func, v2, v3, v4, v5, v6, v7) +#define NLOHMANN_JSON_PASTE9(func, v1, v2, v3, v4, v5, v6, v7, v8) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE8(func, v2, v3, v4, v5, v6, v7, v8) +#define NLOHMANN_JSON_PASTE10(func, v1, v2, v3, v4, v5, v6, v7, v8, v9) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE9(func, v2, v3, v4, v5, v6, v7, v8, v9) +#define NLOHMANN_JSON_PASTE11(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE10(func, v2, v3, v4, v5, v6, v7, v8, v9, v10) +#define NLOHMANN_JSON_PASTE12(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE11(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) +#define NLOHMANN_JSON_PASTE13(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE12(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) +#define NLOHMANN_JSON_PASTE14(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE13(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) +#define NLOHMANN_JSON_PASTE15(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE14(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) +#define NLOHMANN_JSON_PASTE16(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE15(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15) +#define NLOHMANN_JSON_PASTE17(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE16(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16) +#define NLOHMANN_JSON_PASTE18(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE17(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17) +#define NLOHMANN_JSON_PASTE19(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE18(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18) +#define NLOHMANN_JSON_PASTE20(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE19(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19) +#define NLOHMANN_JSON_PASTE21(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE20(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20) +#define NLOHMANN_JSON_PASTE22(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE21(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21) +#define NLOHMANN_JSON_PASTE23(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE22(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22) +#define NLOHMANN_JSON_PASTE24(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE23(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) +#define NLOHMANN_JSON_PASTE25(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE24(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24) +#define NLOHMANN_JSON_PASTE26(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE25(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25) +#define NLOHMANN_JSON_PASTE27(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE26(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26) +#define NLOHMANN_JSON_PASTE28(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE27(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27) +#define NLOHMANN_JSON_PASTE29(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE28(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28) +#define NLOHMANN_JSON_PASTE30(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE29(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29) +#define NLOHMANN_JSON_PASTE31(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE30(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30) +#define NLOHMANN_JSON_PASTE32(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE31(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31) +#define NLOHMANN_JSON_PASTE33(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE32(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32) +#define NLOHMANN_JSON_PASTE34(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE33(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33) +#define NLOHMANN_JSON_PASTE35(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE34(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34) +#define NLOHMANN_JSON_PASTE36(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE35(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35) +#define NLOHMANN_JSON_PASTE37(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE36(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36) +#define NLOHMANN_JSON_PASTE38(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE37(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37) +#define NLOHMANN_JSON_PASTE39(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE38(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38) +#define NLOHMANN_JSON_PASTE40(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE39(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39) +#define NLOHMANN_JSON_PASTE41(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE40(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40) +#define NLOHMANN_JSON_PASTE42(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE41(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41) +#define NLOHMANN_JSON_PASTE43(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE42(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42) +#define NLOHMANN_JSON_PASTE44(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE43(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43) +#define NLOHMANN_JSON_PASTE45(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE44(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44) +#define NLOHMANN_JSON_PASTE46(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE45(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45) +#define NLOHMANN_JSON_PASTE47(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE46(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46) +#define NLOHMANN_JSON_PASTE48(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE47(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47) +#define NLOHMANN_JSON_PASTE49(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE48(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48) +#define NLOHMANN_JSON_PASTE50(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE49(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49) +#define NLOHMANN_JSON_PASTE51(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE50(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50) +#define NLOHMANN_JSON_PASTE52(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE51(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51) +#define NLOHMANN_JSON_PASTE53(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE52(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52) +#define NLOHMANN_JSON_PASTE54(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE53(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53) +#define NLOHMANN_JSON_PASTE55(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE54(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54) +#define NLOHMANN_JSON_PASTE56(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE55(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55) +#define NLOHMANN_JSON_PASTE57(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE56(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56) +#define NLOHMANN_JSON_PASTE58(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE57(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57) +#define NLOHMANN_JSON_PASTE59(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE58(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58) +#define NLOHMANN_JSON_PASTE60(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE59(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59) +#define NLOHMANN_JSON_PASTE61(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE60(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60) +#define NLOHMANN_JSON_PASTE62(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE61(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61) +#define NLOHMANN_JSON_PASTE63(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE62(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62) +#define NLOHMANN_JSON_PASTE64(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE63(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63) + +#define NLOHMANN_JSON_TO(v1) nlohmann_json_j[#v1] = nlohmann_json_t.v1; +#define NLOHMANN_JSON_FROM(v1) nlohmann_json_j.at(#v1).get_to(nlohmann_json_t.v1); +#define NLOHMANN_JSON_FROM_WITH_DEFAULT(v1) nlohmann_json_t.v1 = nlohmann_json_j.value(#v1, nlohmann_json_default_obj.v1); + +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_INTRUSIVE +@since version 3.9.0 +*/ +#define NLOHMANN_DEFINE_TYPE_INTRUSIVE(Type, ...) \ + friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + friend void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } + +#define NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(Type, ...) \ + friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + friend void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } + +#define NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE(Type, ...) \ + friend void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE +@since version 3.9.0 +*/ +#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(Type, ...) \ + inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + inline void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } + +#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(Type, ...) \ + inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } + +#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(Type, ...) \ + inline void to_json(nlohmann::json& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + inline void from_json(const nlohmann::json& nlohmann_json_j, Type& nlohmann_json_t) { const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } + +// inspired from https://stackoverflow.com/a/26745591 +// allows to call any std function as if (e.g. with begin): +// using std::begin; begin(x); +// +// it allows using the detected idiom to retrieve the return type +// of such an expression +#define NLOHMANN_CAN_CALL_STD_FUNC_IMPL(std_name) \ + namespace detail { \ + using std::std_name; \ + \ + template \ + using result_of_##std_name = decltype(std_name(std::declval()...)); \ + } \ + \ + namespace detail2 { \ + struct std_name##_tag \ + { \ + }; \ + \ + template \ + std_name##_tag std_name(T&&...); \ + \ + template \ + using result_of_##std_name = decltype(std_name(std::declval()...)); \ + \ + template \ + struct would_call_std_##std_name \ + { \ + static constexpr auto const value = ::nlohmann::detail:: \ + is_detected_exact::value; \ + }; \ + } /* namespace detail2 */ \ + \ + template \ + struct would_call_std_##std_name : detail2::would_call_std_##std_name \ + { \ + } + +#ifndef JSON_USE_IMPLICIT_CONVERSIONS + #define JSON_USE_IMPLICIT_CONVERSIONS 1 +#endif + +#if JSON_USE_IMPLICIT_CONVERSIONS + #define JSON_EXPLICIT +#else + #define JSON_EXPLICIT explicit +#endif + +#ifndef JSON_DISABLE_ENUM_SERIALIZATION + #define JSON_DISABLE_ENUM_SERIALIZATION 0 +#endif + +#ifndef JSON_USE_GLOBAL_UDLS + #define JSON_USE_GLOBAL_UDLS 1 +#endif + +#if JSON_HAS_THREE_WAY_COMPARISON + #include // partial_ordering +#endif + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +/////////////////////////// +// JSON type enumeration // +/////////////////////////// + +/*! +@brief the JSON type enumeration + +This enumeration collects the different JSON types. It is internally used to +distinguish the stored values, and the functions @ref basic_json::is_null(), +@ref basic_json::is_object(), @ref basic_json::is_array(), +@ref basic_json::is_string(), @ref basic_json::is_boolean(), +@ref basic_json::is_number() (with @ref basic_json::is_number_integer(), +@ref basic_json::is_number_unsigned(), and @ref basic_json::is_number_float()), +@ref basic_json::is_discarded(), @ref basic_json::is_primitive(), and +@ref basic_json::is_structured() rely on it. + +@note There are three enumeration entries (number_integer, number_unsigned, and +number_float), because the library distinguishes these three types for numbers: +@ref basic_json::number_unsigned_t is used for unsigned integers, +@ref basic_json::number_integer_t is used for signed integers, and +@ref basic_json::number_float_t is used for floating-point numbers or to +approximate integers which do not fit in the limits of their respective type. + +@sa see @ref basic_json::basic_json(const value_t value_type) -- create a JSON +value with the default value for a given type + +@since version 1.0.0 +*/ +enum class value_t : std::uint8_t +{ + null, ///< null value + object, ///< object (unordered set of name/value pairs) + array, ///< array (ordered collection of values) + string, ///< string value + boolean, ///< boolean value + number_integer, ///< number value (signed integer) + number_unsigned, ///< number value (unsigned integer) + number_float, ///< number value (floating-point) + binary, ///< binary array (ordered collection of bytes) + discarded ///< discarded by the parser callback function +}; + +/*! +@brief comparison operator for JSON types + +Returns an ordering that is similar to Python: +- order: null < boolean < number < object < array < string < binary +- furthermore, each type is not smaller than itself +- discarded values are not comparable +- binary is represented as a b"" string in python and directly comparable to a + string; however, making a binary array directly comparable with a string would + be surprising behavior in a JSON file. + +@since version 1.0.0 +*/ +#if JSON_HAS_THREE_WAY_COMPARISON + inline std::partial_ordering operator<=>(const value_t lhs, const value_t rhs) noexcept // *NOPAD* +#else + inline bool operator<(const value_t lhs, const value_t rhs) noexcept +#endif +{ + static constexpr std::array order = {{ + 0 /* null */, 3 /* object */, 4 /* array */, 5 /* string */, + 1 /* boolean */, 2 /* integer */, 2 /* unsigned */, 2 /* float */, + 6 /* binary */ + } + }; + + const auto l_index = static_cast(lhs); + const auto r_index = static_cast(rhs); +#if JSON_HAS_THREE_WAY_COMPARISON + if (l_index < order.size() && r_index < order.size()) + { + return order[l_index] <=> order[r_index]; // *NOPAD* + } + return std::partial_ordering::unordered; +#else + return l_index < order.size() && r_index < order.size() && order[l_index] < order[r_index]; +#endif +} + +// GCC selects the built-in operator< over an operator rewritten from +// a user-defined spaceship operator +// Clang, MSVC, and ICC select the rewritten candidate +// (see GCC bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105200) +#if JSON_HAS_THREE_WAY_COMPARISON && defined(__GNUC__) +inline bool operator<(const value_t lhs, const value_t rhs) noexcept +{ + return std::is_lt(lhs <=> rhs); // *NOPAD* +} +#endif + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +// #include + + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +/*! +@brief replace all occurrences of a substring by another string + +@param[in,out] s the string to manipulate; changed so that all + occurrences of @a f are replaced with @a t +@param[in] f the substring to replace with @a t +@param[in] t the string to replace @a f + +@pre The search string @a f must not be empty. **This precondition is +enforced with an assertion.** + +@since version 2.0.0 +*/ +template +inline void replace_substring(StringType& s, const StringType& f, + const StringType& t) +{ + JSON_ASSERT(!f.empty()); + for (auto pos = s.find(f); // find first occurrence of f + pos != StringType::npos; // make sure f was found + s.replace(pos, f.size(), t), // replace with t, and + pos = s.find(f, pos + t.size())) // find next occurrence of f + {} +} + +/*! + * @brief string escaping as described in RFC 6901 (Sect. 4) + * @param[in] s string to escape + * @return escaped string + * + * Note the order of escaping "~" to "~0" and "/" to "~1" is important. + */ +template +inline StringType escape(StringType s) +{ + replace_substring(s, StringType{"~"}, StringType{"~0"}); + replace_substring(s, StringType{"/"}, StringType{"~1"}); + return s; +} + +/*! + * @brief string unescaping as described in RFC 6901 (Sect. 4) + * @param[in] s string to unescape + * @return unescaped string + * + * Note the order of escaping "~1" to "/" and "~0" to "~" is important. + */ +template +static void unescape(StringType& s) +{ + replace_substring(s, StringType{"~1"}, StringType{"/"}); + replace_substring(s, StringType{"~0"}, StringType{"~"}); +} + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include // size_t + +// #include + + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +/// struct to capture the start position of the current token +struct position_t +{ + /// the total number of characters read + std::size_t chars_read_total = 0; + /// the number of characters read in the current line + std::size_t chars_read_current_line = 0; + /// the number of lines read + std::size_t lines_read = 0; + + /// conversion to size_t to preserve SAX interface + constexpr operator size_t() const + { + return chars_read_total; + } +}; + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + +// #include + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-FileCopyrightText: 2018 The Abseil Authors +// SPDX-License-Identifier: MIT + + + +#include // array +#include // size_t +#include // conditional, enable_if, false_type, integral_constant, is_constructible, is_integral, is_same, remove_cv, remove_reference, true_type +#include // index_sequence, make_index_sequence, index_sequence_for + +// #include + + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +template +using uncvref_t = typename std::remove_cv::type>::type; + +#ifdef JSON_HAS_CPP_14 + +// the following utilities are natively available in C++14 +using std::enable_if_t; +using std::index_sequence; +using std::make_index_sequence; +using std::index_sequence_for; + +#else + +// alias templates to reduce boilerplate +template +using enable_if_t = typename std::enable_if::type; + +// The following code is taken from https://github.com/abseil/abseil-cpp/blob/10cb35e459f5ecca5b2ff107635da0bfa41011b4/absl/utility/utility.h +// which is part of Google Abseil (https://github.com/abseil/abseil-cpp), licensed under the Apache License 2.0. + +//// START OF CODE FROM GOOGLE ABSEIL + +// integer_sequence +// +// Class template representing a compile-time integer sequence. An instantiation +// of `integer_sequence` has a sequence of integers encoded in its +// type through its template arguments (which is a common need when +// working with C++11 variadic templates). `absl::integer_sequence` is designed +// to be a drop-in replacement for C++14's `std::integer_sequence`. +// +// Example: +// +// template< class T, T... Ints > +// void user_function(integer_sequence); +// +// int main() +// { +// // user_function's `T` will be deduced to `int` and `Ints...` +// // will be deduced to `0, 1, 2, 3, 4`. +// user_function(make_integer_sequence()); +// } +template +struct integer_sequence +{ + using value_type = T; + static constexpr std::size_t size() noexcept + { + return sizeof...(Ints); + } +}; + +// index_sequence +// +// A helper template for an `integer_sequence` of `size_t`, +// `absl::index_sequence` is designed to be a drop-in replacement for C++14's +// `std::index_sequence`. +template +using index_sequence = integer_sequence; + +namespace utility_internal +{ + +template +struct Extend; + +// Note that SeqSize == sizeof...(Ints). It's passed explicitly for efficiency. +template +struct Extend, SeqSize, 0> +{ + using type = integer_sequence < T, Ints..., (Ints + SeqSize)... >; +}; + +template +struct Extend, SeqSize, 1> +{ + using type = integer_sequence < T, Ints..., (Ints + SeqSize)..., 2 * SeqSize >; +}; + +// Recursion helper for 'make_integer_sequence'. +// 'Gen::type' is an alias for 'integer_sequence'. +template +struct Gen +{ + using type = + typename Extend < typename Gen < T, N / 2 >::type, N / 2, N % 2 >::type; +}; + +template +struct Gen +{ + using type = integer_sequence; +}; + +} // namespace utility_internal + +// Compile-time sequences of integers + +// make_integer_sequence +// +// This template alias is equivalent to +// `integer_sequence`, and is designed to be a drop-in +// replacement for C++14's `std::make_integer_sequence`. +template +using make_integer_sequence = typename utility_internal::Gen::type; + +// make_index_sequence +// +// This template alias is equivalent to `index_sequence<0, 1, ..., N-1>`, +// and is designed to be a drop-in replacement for C++14's +// `std::make_index_sequence`. +template +using make_index_sequence = make_integer_sequence; + +// index_sequence_for +// +// Converts a typename pack into an index sequence of the same length, and +// is designed to be a drop-in replacement for C++14's +// `std::index_sequence_for()` +template +using index_sequence_for = make_index_sequence; + +//// END OF CODE FROM GOOGLE ABSEIL + +#endif + +// dispatch utility (taken from ranges-v3) +template struct priority_tag : priority_tag < N - 1 > {}; +template<> struct priority_tag<0> {}; + +// taken from ranges-v3 +template +struct static_const +{ + static JSON_INLINE_VARIABLE constexpr T value{}; +}; + +#ifndef JSON_HAS_CPP_17 + template + constexpr T static_const::value; +#endif + +template +inline constexpr std::array make_array(Args&& ... args) +{ + return std::array {{static_cast(std::forward(args))...}}; +} + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include // numeric_limits +#include // false_type, is_constructible, is_integral, is_same, true_type +#include // declval +#include // tuple +#include // char_traits + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include // random_access_iterator_tag + +// #include + +// #include + +// #include + + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +template +struct iterator_types {}; + +template +struct iterator_types < + It, + void_t> +{ + using difference_type = typename It::difference_type; + using value_type = typename It::value_type; + using pointer = typename It::pointer; + using reference = typename It::reference; + using iterator_category = typename It::iterator_category; +}; + +// This is required as some compilers implement std::iterator_traits in a way that +// doesn't work with SFINAE. See https://github.com/nlohmann/json/issues/1341. +template +struct iterator_traits +{ +}; + +template +struct iterator_traits < T, enable_if_t < !std::is_pointer::value >> + : iterator_types +{ +}; + +template +struct iterator_traits::value>> +{ + using iterator_category = std::random_access_iterator_tag; + using value_type = T; + using difference_type = ptrdiff_t; + using pointer = T*; + using reference = T&; +}; + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + +// #include + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +// #include + + +NLOHMANN_JSON_NAMESPACE_BEGIN + +NLOHMANN_CAN_CALL_STD_FUNC_IMPL(begin); + +NLOHMANN_JSON_NAMESPACE_END + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +// #include + + +NLOHMANN_JSON_NAMESPACE_BEGIN + +NLOHMANN_CAN_CALL_STD_FUNC_IMPL(end); + +NLOHMANN_JSON_NAMESPACE_END + +// #include + +// #include + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.11.3 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013-2023 Niels Lohmann +// SPDX-License-Identifier: MIT + +#ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_ + #define INCLUDE_NLOHMANN_JSON_FWD_HPP_ + + #include // int64_t, uint64_t + #include // map + #include // allocator + #include // string + #include // vector + + // #include + + + /*! + @brief namespace for Niels Lohmann + @see https://github.com/nlohmann + @since version 1.0.0 + */ + NLOHMANN_JSON_NAMESPACE_BEGIN + + /*! + @brief default JSONSerializer template argument + + This serializer ignores the template arguments and uses ADL + ([argument-dependent lookup](https://en.cppreference.com/w/cpp/language/adl)) + for serialization. + */ + template + struct adl_serializer; + + /// a class to store JSON values + /// @sa https://json.nlohmann.me/api/basic_json/ + template class ObjectType = + std::map, + template class ArrayType = std::vector, + class StringType = std::string, class BooleanType = bool, + class NumberIntegerType = std::int64_t, + class NumberUnsignedType = std::uint64_t, + class NumberFloatType = double, + template class AllocatorType = std::allocator, + template class JSONSerializer = + adl_serializer, + class BinaryType = std::vector, // cppcheck-suppress syntaxError + class CustomBaseClass = void> + class basic_json; + + /// @brief JSON Pointer defines a string syntax for identifying a specific value within a JSON document + /// @sa https://json.nlohmann.me/api/json_pointer/ + template + class json_pointer; + + /*! + @brief default specialization + @sa https://json.nlohmann.me/api/json/ + */ + using json = basic_json<>; + + /// @brief a minimal map-like container that preserves insertion order + /// @sa https://json.nlohmann.me/api/ordered_map/ + template + struct ordered_map; + + /// @brief specialization that maintains the insertion order of object keys + /// @sa https://json.nlohmann.me/api/ordered_json/ + using ordered_json = basic_json; + + NLOHMANN_JSON_NAMESPACE_END + +#endif // INCLUDE_NLOHMANN_JSON_FWD_HPP_ + + +NLOHMANN_JSON_NAMESPACE_BEGIN +/*! +@brief detail namespace with internal helper functions + +This namespace collects functions that should not be exposed, +implementations of some @ref basic_json methods, and meta-programming helpers. + +@since version 2.1.0 +*/ +namespace detail +{ + +///////////// +// helpers // +///////////// + +// Note to maintainers: +// +// Every trait in this file expects a non CV-qualified type. +// The only exceptions are in the 'aliases for detected' section +// (i.e. those of the form: decltype(T::member_function(std::declval()))) +// +// In this case, T has to be properly CV-qualified to constraint the function arguments +// (e.g. to_json(BasicJsonType&, const T&)) + +template struct is_basic_json : std::false_type {}; + +NLOHMANN_BASIC_JSON_TPL_DECLARATION +struct is_basic_json : std::true_type {}; + +// used by exceptions create() member functions +// true_type for pointer to possibly cv-qualified basic_json or std::nullptr_t +// false_type otherwise +template +struct is_basic_json_context : + std::integral_constant < bool, + is_basic_json::type>::type>::value + || std::is_same::value > +{}; + +////////////////////// +// json_ref helpers // +////////////////////// + +template +class json_ref; + +template +struct is_json_ref : std::false_type {}; + +template +struct is_json_ref> : std::true_type {}; + +////////////////////////// +// aliases for detected // +////////////////////////// + +template +using mapped_type_t = typename T::mapped_type; + +template +using key_type_t = typename T::key_type; + +template +using value_type_t = typename T::value_type; + +template +using difference_type_t = typename T::difference_type; + +template +using pointer_t = typename T::pointer; + +template +using reference_t = typename T::reference; + +template +using iterator_category_t = typename T::iterator_category; + +template +using to_json_function = decltype(T::to_json(std::declval()...)); + +template +using from_json_function = decltype(T::from_json(std::declval()...)); + +template +using get_template_function = decltype(std::declval().template get()); + +// trait checking if JSONSerializer::from_json(json const&, udt&) exists +template +struct has_from_json : std::false_type {}; + +// trait checking if j.get is valid +// use this trait instead of std::is_constructible or std::is_convertible, +// both rely on, or make use of implicit conversions, and thus fail when T +// has several constructors/operator= (see https://github.com/nlohmann/json/issues/958) +template +struct is_getable +{ + static constexpr bool value = is_detected::value; +}; + +template +struct has_from_json < BasicJsonType, T, enable_if_t < !is_basic_json::value >> +{ + using serializer = typename BasicJsonType::template json_serializer; + + static constexpr bool value = + is_detected_exact::value; +}; + +// This trait checks if JSONSerializer::from_json(json const&) exists +// this overload is used for non-default-constructible user-defined-types +template +struct has_non_default_from_json : std::false_type {}; + +template +struct has_non_default_from_json < BasicJsonType, T, enable_if_t < !is_basic_json::value >> +{ + using serializer = typename BasicJsonType::template json_serializer; + + static constexpr bool value = + is_detected_exact::value; +}; + +// This trait checks if BasicJsonType::json_serializer::to_json exists +// Do not evaluate the trait when T is a basic_json type, to avoid template instantiation infinite recursion. +template +struct has_to_json : std::false_type {}; + +template +struct has_to_json < BasicJsonType, T, enable_if_t < !is_basic_json::value >> +{ + using serializer = typename BasicJsonType::template json_serializer; + + static constexpr bool value = + is_detected_exact::value; +}; + +template +using detect_key_compare = typename T::key_compare; + +template +struct has_key_compare : std::integral_constant::value> {}; + +// obtains the actual object key comparator +template +struct actual_object_comparator +{ + using object_t = typename BasicJsonType::object_t; + using object_comparator_t = typename BasicJsonType::default_object_comparator_t; + using type = typename std::conditional < has_key_compare::value, + typename object_t::key_compare, object_comparator_t>::type; +}; + +template +using actual_object_comparator_t = typename actual_object_comparator::type; + +///////////////// +// char_traits // +///////////////// + +// Primary template of char_traits calls std char_traits +template +struct char_traits : std::char_traits +{}; + +// Explicitly define char traits for unsigned char since it is not standard +template<> +struct char_traits : std::char_traits +{ + using char_type = unsigned char; + using int_type = uint64_t; + + // Redefine to_int_type function + static int_type to_int_type(char_type c) noexcept + { + return static_cast(c); + } + + static char_type to_char_type(int_type i) noexcept + { + return static_cast(i); + } + + static constexpr int_type eof() noexcept + { + return static_cast(EOF); + } +}; + +// Explicitly define char traits for signed char since it is not standard +template<> +struct char_traits : std::char_traits +{ + using char_type = signed char; + using int_type = uint64_t; + + // Redefine to_int_type function + static int_type to_int_type(char_type c) noexcept + { + return static_cast(c); + } + + static char_type to_char_type(int_type i) noexcept + { + return static_cast(i); + } + + static constexpr int_type eof() noexcept + { + return static_cast(EOF); + } +}; + +/////////////////// +// is_ functions // +/////////////////// + +// https://en.cppreference.com/w/cpp/types/conjunction +template struct conjunction : std::true_type { }; +template struct conjunction : B { }; +template +struct conjunction +: std::conditional(B::value), conjunction, B>::type {}; + +// https://en.cppreference.com/w/cpp/types/negation +template struct negation : std::integral_constant < bool, !B::value > { }; + +// Reimplementation of is_constructible and is_default_constructible, due to them being broken for +// std::pair and std::tuple until LWG 2367 fix (see https://cplusplus.github.io/LWG/lwg-defects.html#2367). +// This causes compile errors in e.g. clang 3.5 or gcc 4.9. +template +struct is_default_constructible : std::is_default_constructible {}; + +template +struct is_default_constructible> + : conjunction, is_default_constructible> {}; + +template +struct is_default_constructible> + : conjunction, is_default_constructible> {}; + +template +struct is_default_constructible> + : conjunction...> {}; + +template +struct is_default_constructible> + : conjunction...> {}; + +template +struct is_constructible : std::is_constructible {}; + +template +struct is_constructible> : is_default_constructible> {}; + +template +struct is_constructible> : is_default_constructible> {}; + +template +struct is_constructible> : is_default_constructible> {}; + +template +struct is_constructible> : is_default_constructible> {}; + +template +struct is_iterator_traits : std::false_type {}; + +template +struct is_iterator_traits> +{ + private: + using traits = iterator_traits; + + public: + static constexpr auto value = + is_detected::value && + is_detected::value && + is_detected::value && + is_detected::value && + is_detected::value; +}; + +template +struct is_range +{ + private: + using t_ref = typename std::add_lvalue_reference::type; + + using iterator = detected_t; + using sentinel = detected_t; + + // to be 100% correct, it should use https://en.cppreference.com/w/cpp/iterator/input_or_output_iterator + // and https://en.cppreference.com/w/cpp/iterator/sentinel_for + // but reimplementing these would be too much work, as a lot of other concepts are used underneath + static constexpr auto is_iterator_begin = + is_iterator_traits>::value; + + public: + static constexpr bool value = !std::is_same::value && !std::is_same::value && is_iterator_begin; +}; + +template +using iterator_t = enable_if_t::value, result_of_begin())>>; + +template +using range_value_t = value_type_t>>; + +// The following implementation of is_complete_type is taken from +// https://blogs.msdn.microsoft.com/vcblog/2015/12/02/partial-support-for-expression-sfinae-in-vs-2015-update-1/ +// and is written by Xiang Fan who agreed to using it in this library. + +template +struct is_complete_type : std::false_type {}; + +template +struct is_complete_type : std::true_type {}; + +template +struct is_compatible_object_type_impl : std::false_type {}; + +template +struct is_compatible_object_type_impl < + BasicJsonType, CompatibleObjectType, + enable_if_t < is_detected::value&& + is_detected::value >> +{ + using object_t = typename BasicJsonType::object_t; + + // macOS's is_constructible does not play well with nonesuch... + static constexpr bool value = + is_constructible::value && + is_constructible::value; +}; + +template +struct is_compatible_object_type + : is_compatible_object_type_impl {}; + +template +struct is_constructible_object_type_impl : std::false_type {}; + +template +struct is_constructible_object_type_impl < + BasicJsonType, ConstructibleObjectType, + enable_if_t < is_detected::value&& + is_detected::value >> +{ + using object_t = typename BasicJsonType::object_t; + + static constexpr bool value = + (is_default_constructible::value && + (std::is_move_assignable::value || + std::is_copy_assignable::value) && + (is_constructible::value && + std::is_same < + typename object_t::mapped_type, + typename ConstructibleObjectType::mapped_type >::value)) || + (has_from_json::value || + has_non_default_from_json < + BasicJsonType, + typename ConstructibleObjectType::mapped_type >::value); +}; + +template +struct is_constructible_object_type + : is_constructible_object_type_impl {}; + +template +struct is_compatible_string_type +{ + static constexpr auto value = + is_constructible::value; +}; + +template +struct is_constructible_string_type +{ + // launder type through decltype() to fix compilation failure on ICPC +#ifdef __INTEL_COMPILER + using laundered_type = decltype(std::declval()); +#else + using laundered_type = ConstructibleStringType; +#endif + + static constexpr auto value = + conjunction < + is_constructible, + is_detected_exact>::value; +}; + +template +struct is_compatible_array_type_impl : std::false_type {}; + +template +struct is_compatible_array_type_impl < + BasicJsonType, CompatibleArrayType, + enable_if_t < + is_detected::value&& + is_iterator_traits>>::value&& +// special case for types like std::filesystem::path whose iterator's value_type are themselves +// c.f. https://github.com/nlohmann/json/pull/3073 + !std::is_same>::value >> +{ + static constexpr bool value = + is_constructible>::value; +}; + +template +struct is_compatible_array_type + : is_compatible_array_type_impl {}; + +template +struct is_constructible_array_type_impl : std::false_type {}; + +template +struct is_constructible_array_type_impl < + BasicJsonType, ConstructibleArrayType, + enable_if_t::value >> + : std::true_type {}; + +template +struct is_constructible_array_type_impl < + BasicJsonType, ConstructibleArrayType, + enable_if_t < !std::is_same::value&& + !is_compatible_string_type::value&& + is_default_constructible::value&& +(std::is_move_assignable::value || + std::is_copy_assignable::value)&& +is_detected::value&& +is_iterator_traits>>::value&& +is_detected::value&& +// special case for types like std::filesystem::path whose iterator's value_type are themselves +// c.f. https://github.com/nlohmann/json/pull/3073 +!std::is_same>::value&& + is_complete_type < + detected_t>::value >> +{ + using value_type = range_value_t; + + static constexpr bool value = + std::is_same::value || + has_from_json::value || + has_non_default_from_json < + BasicJsonType, + value_type >::value; +}; + +template +struct is_constructible_array_type + : is_constructible_array_type_impl {}; + +template +struct is_compatible_integer_type_impl : std::false_type {}; + +template +struct is_compatible_integer_type_impl < + RealIntegerType, CompatibleNumberIntegerType, + enable_if_t < std::is_integral::value&& + std::is_integral::value&& + !std::is_same::value >> +{ + // is there an assert somewhere on overflows? + using RealLimits = std::numeric_limits; + using CompatibleLimits = std::numeric_limits; + + static constexpr auto value = + is_constructible::value && + CompatibleLimits::is_integer && + RealLimits::is_signed == CompatibleLimits::is_signed; +}; + +template +struct is_compatible_integer_type + : is_compatible_integer_type_impl {}; + +template +struct is_compatible_type_impl: std::false_type {}; + +template +struct is_compatible_type_impl < + BasicJsonType, CompatibleType, + enable_if_t::value >> +{ + static constexpr bool value = + has_to_json::value; +}; + +template +struct is_compatible_type + : is_compatible_type_impl {}; + +template +struct is_constructible_tuple : std::false_type {}; + +template +struct is_constructible_tuple> : conjunction...> {}; + +template +struct is_json_iterator_of : std::false_type {}; + +template +struct is_json_iterator_of : std::true_type {}; + +template +struct is_json_iterator_of : std::true_type +{}; + +// checks if a given type T is a template specialization of Primary +template