{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import warnings\n", "\n", "warnings.filterwarnings(\"ignore\")" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "# Introduction to protein functionality and structure design\n", "*Copyright (c) 2022 Institute for Quantum Computing, Baidu Inc. All Rights Reserved.*\n", "\n", "Proteins are important structural and functional molecules in biological organisms. They form long chains by assembling amino acids and realize specific functionality through the spatial structure of amino acid chains. The spatial structure of proteins refers to the conformation of amino acid chains in three-dimensional space. This conformation can be determined by X-ray diffraction, nuclear magnetic resonance, or other methods. Studies have shown that the spatial structure of proteins is closely related to their functionalities. For example, as an important class of proteins, enzymes determine their interaction with substrates through their spatial structure, thus realizing the catalytic effect of chemical reactions. In addition, the spatial structure of proteins can be controlled by changing the amino acid sequence to regulate their functionality.\n", "\n", "Proteins produce different spatial structures in different folding modes, it is important to study protein folding in order to predict protein behaviors. Due to the high complexity and non-linearity appearing in the protein structures, it's inefficient to solve protein folding problems via classical computation. Quantum computation can quickly solve complex non-linear optimization problems based on the principles of quantum mechanics, and is generally believed to be of great help in future research on protein folding." ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## Using quantum computation method to simulate the protein folding\n", "### Lattice model\n", "In protein structure research, a common method is the lattice model \\[1\\], which divides the amino acid chain in the protein into a series of lattice units, each of which includes several amino acids. By analyzing the interaction between lattice units, we can infer the spatial structure of the protein. The lattice model can help us better understand the structure and function of proteins, and provide an important theoretical basis for drug design and disease treatment.\n", "![](lattice_model_en.jpg)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Protein with 7 nodes and 6 edges\n" ] } ], "source": [ "from paddle_quantum.biocomputing import Protein\n", "\n", "protein = Protein(\"APRLRFY\")\n", "print(protein)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "With the `biocomputing` module in `paddle_quantum`, we can easily construct a protein., the above code has built an amino acid chain contains 7 amino acids.\n", "\n", "Starting from the lattice model, we can obtain a protein Hamiltonian \\[2\\] based on the interactions between lattice points. We can then construct a variational quantum algorithm (VQE) based on this Hamiltonian to solve for the stable structure (the structure with the lowest energy) of the protein molecule." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "327.0085 I\n", "-47.5 Z1, Z3\n", "65.0 Z1, Z5\n", "-50.0 Z1, Z7\n", "52.5 Z1, Z9\n", "-47.5 Z0, Z2\n", "65.0 Z0, Z4\n", "-50.0 Z0, Z6\n", "52.5 Z0, Z8\n", "-47.5 Z0, Z1, Z2, Z3\n", "65.0 Z0, Z1, Z4, Z5\n", "-50.0 Z0, Z1, Z6, Z7\n", "52.5 Z0, Z1, Z8, Z9\n", "-65.0 Z3, Z5\n", "92.5 Z3, Z7\n", "-60.0 Z3, Z9\n", "-65.0 Z2, Z4\n", "92.5 Z2, Z6\n", "-60.0 Z2, Z8\n", "-65.0 Z2, Z3, Z4, Z5\n", "92.5 Z2, Z3, Z6, Z7\n", "-60.0 Z2, Z3, Z8, Z9\n", "-72.5 Z5, Z7\n", "92.5 Z5, Z9\n", "-72.5 Z4, Z6\n", "92.5 Z4, Z8\n", "-72.5 Z4, Z5, Z6, Z7\n", "92.5 Z4, Z5, Z8, Z9\n", "-65.0 Z7, Z9\n", "-65.0 Z6, Z8\n", "-65.0 Z6, Z7, Z8, Z9\n", "-157.168 Z12\n", "30.0 Z1, Z3, Z12\n", "-40.0 Z1, Z5, Z12\n", "30.0 Z1, Z7, Z12\n", "-27.5 Z1, Z9, Z12\n", "30.0 Z0, Z2, Z12\n", "-40.0 Z0, Z4, Z12\n", "30.0 Z0, Z6, Z12\n", "-27.5 Z0, Z8, Z12\n", "30.0 Z0, Z1, Z2, Z3, Z12\n", "-40.0 Z0, Z1, Z4, Z5, Z12\n", "30.0 Z0, Z1, Z6, Z7, Z12\n", "-27.5 Z0, Z1, Z8, Z9, Z12\n", "37.5 Z3, Z5, Z12\n", "-52.5 Z3, Z7, Z12\n", "30.0 Z3, Z9, Z12\n", "37.5 Z2, Z4, Z12\n", "-52.5 Z2, Z6, Z12\n", "30.0 Z2, Z8, Z12\n", "37.5 Z2, Z3, Z4, Z5, Z12\n", "-52.5 Z2, Z3, Z6, Z7, Z12\n", "30.0 Z2, Z3, Z8, Z9, Z12\n", "37.5 Z5, Z7, Z12\n", "-40.0 Z5, Z9, Z12\n", "37.5 Z4, Z6, Z12\n", "-40.0 Z4, Z8, Z12\n", "37.5 Z4, Z5, Z6, Z7, Z12\n", "-40.0 Z4, Z5, Z8, Z9, Z12\n", "30.0 Z7, Z9, Z12\n", "30.0 Z6, Z8, Z12\n", "30.0 Z6, Z7, Z8, Z9, Z12\n", "-12.5 Z2, Z3, Z5, Z6\n", "-10.0 Z2, Z3, Z5, Z8\n", "-12.5 Z2, Z5, Z6, Z7\n", "-10.0 Z2, Z5, Z8, Z9\n", "-12.5 Z3, Z4, Z5, Z6\n", "-10.0 Z3, Z4, Z5, Z8\n", "-12.5 Z3, Z4, Z6, Z7\n", "-10.0 Z3, Z4, Z8, Z9\n", "30.0 Z3, Z5, Z7, Z9\n", "10.0 Z3, Z5, Z6, Z8\n", "10.0 Z3, Z5, Z6, Z7, Z8, Z9\n", "-12.5 Z2, Z3, Z4, Z7\n", "-10.0 Z2, Z3, Z7, Z8\n", "-12.5 Z2, Z4, Z5, Z7\n", "-10.0 Z2, Z7, Z8, Z9\n", "10.0 Z3, Z4, Z7, Z8\n", "10.0 Z3, Z4, Z5, Z7, Z8, Z9\n", "-10.0 Z3, Z6, Z7, Z8\n", "-10.0 Z3, Z6, Z8, Z9\n", "-10.0 Z2, Z3, Z4, Z9\n", "-10.0 Z2, Z3, Z6, Z9\n", "-10.0 Z2, Z4, Z5, Z9\n", "-10.0 Z2, Z6, Z7, Z9\n", "10.0 Z3, Z4, Z6, Z9\n", "10.0 Z3, Z4, Z5, Z6, Z7, Z9\n", "10.0 Z2, Z4, Z7, Z9\n", "30.0 Z2, Z4, Z6, Z8\n", "10.0 Z2, Z4, Z6, Z7, Z8, Z9\n", "10.0 Z2, Z5, Z6, Z9\n", "10.0 Z2, Z4, Z5, Z6, Z8, Z9\n", "10.0 Z2, Z5, Z7, Z8\n", "10.0 Z2, Z4, Z5, Z6, Z7, Z8\n", "10.0 Z2, Z3, Z4, Z5, Z7, Z9\n", "10.0 Z2, Z3, Z4, Z5, Z6, Z8\n", "30.0 Z2, Z3, Z4, Z5, Z6, Z7, Z8, Z9\n", "10.0 Z2, Z3, Z5, Z6, Z7, Z9\n", "10.0 Z2, Z3, Z4, Z6, Z7, Z8\n", "10.0 Z2, Z3, Z5, Z7, Z8, Z9\n", "10.0 Z2, Z3, Z4, Z6, Z8, Z9\n", "-12.5 Z4, Z5, Z7, Z8\n", "-12.5 Z4, Z7, Z8, Z9\n", "-12.5 Z5, Z6, Z7, Z8\n", "-12.5 Z5, Z6, Z8, Z9\n", "-12.5 Z4, Z5, Z6, Z9\n", "-12.5 Z4, Z6, Z7, Z9\n", "7.5 Z2, Z3, Z5, Z6, Z12\n", "5.0 Z2, Z3, Z5, Z8, Z12\n", "7.5 Z2, Z5, Z6, Z7, Z12\n", "5.0 Z2, Z5, Z8, Z9, Z12\n", "7.5 Z3, Z4, Z5, Z6, Z12\n", "5.0 Z3, Z4, Z5, Z8, Z12\n", "7.5 Z3, Z4, Z6, Z7, Z12\n", "5.0 Z3, Z4, Z8, Z9, Z12\n", "-15.0 Z3, Z5, Z7, Z9, Z12\n", "-5.0 Z3, Z5, Z6, Z8, Z12\n", "-5.0 Z3, Z5, Z6, Z7, Z8, Z9, Z12\n", "7.5 Z2, Z3, Z4, Z7, Z12\n", "5.0 Z2, Z3, Z7, Z8, Z12\n", "7.5 Z2, Z4, Z5, Z7, Z12\n", "5.0 Z2, Z7, Z8, Z9, Z12\n", "-5.0 Z3, Z4, Z7, Z8, Z12\n", "-5.0 Z3, Z4, Z5, Z7, Z8, Z9, Z12\n", "5.0 Z3, Z6, Z7, Z8, Z12\n", "5.0 Z3, Z6, Z8, Z9, Z12\n", "5.0 Z2, Z3, Z4, Z9, Z12\n", "5.0 Z2, Z3, Z6, Z9, Z12\n", "5.0 Z2, Z4, Z5, Z9, Z12\n", "5.0 Z2, Z6, Z7, Z9, Z12\n", "-5.0 Z3, Z4, Z6, Z9, Z12\n", "-5.0 Z3, Z4, Z5, Z6, Z7, Z9, Z12\n", "-5.0 Z2, Z4, Z7, Z9, Z12\n", "-15.0 Z2, Z4, Z6, Z8, Z12\n", "-5.0 Z2, Z4, Z6, Z7, Z8, Z9, Z12\n", "-5.0 Z2, Z5, Z6, Z9, Z12\n", "-5.0 Z2, Z4, Z5, Z6, Z8, Z9, Z12\n", "-5.0 Z2, Z5, Z7, Z8, Z12\n", "-5.0 Z2, Z4, Z5, Z6, Z7, Z8, Z12\n", "-5.0 Z2, Z3, Z4, Z5, Z7, Z9, Z12\n", "-5.0 Z2, Z3, Z4, Z5, Z6, Z8, Z12\n", "-15.0 Z2, Z3, Z4, Z5, Z6, Z7, Z8, Z9, Z12\n", "-5.0 Z2, Z3, Z5, Z6, Z7, Z9, Z12\n", "-5.0 Z2, Z3, Z4, Z6, Z7, Z8, Z12\n", "-5.0 Z2, Z3, Z5, Z7, Z8, Z9, Z12\n", "-5.0 Z2, Z3, Z4, Z6, Z8, Z9, Z12\n", "5.0 Z4, Z5, Z7, Z8, Z12\n", "5.0 Z4, Z7, Z8, Z9, Z12\n", "5.0 Z5, Z6, Z7, Z8, Z12\n", "5.0 Z5, Z6, Z8, Z9, Z12\n", "5.0 Z4, Z5, Z6, Z9, Z12\n", "5.0 Z4, Z6, Z7, Z9, Z12\n", "-7.5 Z0, Z1, Z3, Z4\n", "-7.5 Z0, Z1, Z3, Z6\n", "-7.5 Z0, Z3, Z4, Z5\n", "-7.5 Z0, Z3, Z6, Z7\n", "-7.5 Z1, Z2, Z3, Z4\n", "-7.5 Z1, Z2, Z3, Z6\n", "-7.5 Z1, Z2, Z4, Z5\n", "-7.5 Z1, Z2, Z6, Z7\n", "22.5 Z1, Z3, Z5, Z7\n", "7.5 Z1, Z3, Z4, Z6\n", "7.5 Z1, Z3, Z4, Z5, Z6, Z7\n", "-7.5 Z0, Z1, Z2, Z5\n", "-7.5 Z0, Z1, Z5, Z6\n", "-7.5 Z0, Z2, Z3, Z5\n", "-7.5 Z0, Z5, Z6, Z7\n", "7.5 Z1, Z2, Z5, Z6\n", "7.5 Z1, Z2, Z3, Z5, Z6, Z7\n", "-7.5 Z1, Z4, Z5, Z6\n", "-7.5 Z1, Z4, Z6, Z7\n", "-7.5 Z0, Z1, Z2, Z7\n", "-7.5 Z0, Z1, Z4, Z7\n", "-7.5 Z0, Z2, Z3, Z7\n", "-7.5 Z0, Z4, Z5, Z7\n", "7.5 Z1, Z2, Z4, Z7\n", "7.5 Z1, Z2, Z3, Z4, Z5, Z7\n", "7.5 Z0, Z2, Z5, Z7\n", "22.5 Z0, Z2, Z4, Z6\n", "7.5 Z0, Z2, Z4, Z5, Z6, Z7\n", "7.5 Z0, Z3, Z4, Z7\n", "7.5 Z0, Z2, Z3, Z4, Z6, Z7\n", "7.5 Z0, Z3, Z5, Z6\n", "7.5 Z0, Z2, Z3, Z4, Z5, Z6\n", "7.5 Z0, Z1, Z2, Z3, Z5, Z7\n", "7.5 Z0, Z1, Z2, Z3, Z4, Z6\n", "22.5 Z0, Z1, Z2, Z3, Z4, Z5, Z6, Z7\n", "7.5 Z0, Z1, Z3, Z4, Z5, Z7\n", "7.5 Z0, Z1, Z2, Z4, Z5, Z6\n", "7.5 Z0, Z1, Z3, Z5, Z6, Z7\n", "7.5 Z0, Z1, Z2, Z4, Z6, Z7\n", "5.0 Z0, Z1, Z3, Z4, Z12\n", "5.0 Z0, Z1, Z3, Z6, Z12\n", "5.0 Z0, Z3, Z4, Z5, Z12\n", "5.0 Z0, Z3, Z6, Z7, Z12\n", "5.0 Z1, Z2, Z3, Z4, Z12\n", "5.0 Z1, Z2, Z3, Z6, Z12\n", "5.0 Z1, Z2, Z4, Z5, Z12\n", "5.0 Z1, Z2, Z6, Z7, Z12\n", "-15.0 Z1, Z3, Z5, Z7, Z12\n", "-5.0 Z1, Z3, Z4, Z6, Z12\n", "-5.0 Z1, Z3, Z4, Z5, Z6, Z7, Z12\n", "5.0 Z0, Z1, Z2, Z5, Z12\n", "5.0 Z0, Z1, Z5, Z6, Z12\n", "5.0 Z0, Z2, Z3, Z5, Z12\n", "5.0 Z0, Z5, Z6, Z7, Z12\n", "-5.0 Z1, Z2, Z5, Z6, Z12\n", "-5.0 Z1, Z2, Z3, Z5, Z6, Z7, Z12\n", "5.0 Z1, Z4, Z5, Z6, Z12\n", "5.0 Z1, Z4, Z6, Z7, Z12\n", "5.0 Z0, Z1, Z2, Z7, Z12\n", "5.0 Z0, Z1, Z4, Z7, Z12\n", "5.0 Z0, Z2, Z3, Z7, Z12\n", "5.0 Z0, Z4, Z5, Z7, Z12\n", "-5.0 Z1, Z2, Z4, Z7, Z12\n", "-5.0 Z1, Z2, Z3, Z4, Z5, Z7, Z12\n", "-5.0 Z0, Z2, Z5, Z7, Z12\n", "-15.0 Z0, Z2, Z4, Z6, Z12\n", "-5.0 Z0, Z2, Z4, Z5, Z6, Z7, Z12\n", "-5.0 Z0, Z3, Z4, Z7, Z12\n", "-5.0 Z0, Z2, Z3, Z4, Z6, Z7, Z12\n", "-5.0 Z0, Z3, Z5, Z6, Z12\n", "-5.0 Z0, Z2, Z3, Z4, Z5, Z6, Z12\n", "-5.0 Z0, Z1, Z2, Z3, Z5, Z7, Z12\n", "-5.0 Z0, Z1, Z2, Z3, Z4, Z6, Z12\n", "-15.0 Z0, Z1, Z2, Z3, Z4, Z5, Z6, Z7, Z12\n", "-5.0 Z0, Z1, Z3, Z4, Z5, Z7, Z12\n", "-5.0 Z0, Z1, Z2, Z4, Z5, Z6, Z12\n", "-5.0 Z0, Z1, Z3, Z5, Z6, Z7, Z12\n", "-5.0 Z0, Z1, Z2, Z4, Z6, Z7, Z12\n", "-40.0 Z1, Z11\n", "-40.0 Z0, Z10\n", "-40.0 Z0, Z1, Z10, Z11\n", "52.5 Z3, Z11\n", "52.5 Z2, Z10\n", "52.5 Z2, Z3, Z10, Z11\n", "-50.0 Z5, Z11\n", "-50.0 Z4, Z10\n", "-50.0 Z4, Z5, Z10, Z11\n", "65.0 Z7, Z11\n", "65.0 Z6, Z10\n", "65.0 Z6, Z7, Z10, Z11\n", "-47.5 Z9, Z11\n", "-47.5 Z8, Z10\n", "-47.5 Z8, Z9, Z10, Z11\n", "-5.0 Z0, Z1, Z3, Z8\n", "-5.0 Z0, Z1, Z3, Z10\n", "-5.0 Z0, Z3, Z8, Z9\n", "-5.0 Z0, Z3, Z10, Z11\n", "-5.0 Z1, Z2, Z3, Z8\n", "-5.0 Z1, Z2, Z3, Z10\n", "-5.0 Z1, Z2, Z8, Z9\n", "-5.0 Z1, Z2, Z10, Z11\n", "-15.0 Z1, Z3, Z5, Z9\n", "15.0 Z1, Z3, Z5, Z11\n", "-5.0 Z1, Z3, Z4, Z8\n", "5.0 Z1, Z3, Z4, Z10\n", "-5.0 Z1, Z3, Z4, Z5, Z8, Z9\n", "5.0 Z1, Z3, Z4, Z5, Z10, Z11\n", "15.0 Z1, Z3, Z7, Z9\n", "-15.0 Z1, Z3, Z7, Z11\n", "5.0 Z1, Z3, Z6, Z8\n", "-5.0 Z1, Z3, Z6, Z10\n", "5.0 Z1, Z3, Z6, Z7, Z8, Z9\n", "-5.0 Z1, Z3, Z6, Z7, Z10, Z11\n", "15.0 Z1, Z3, Z9, Z11\n", "5.0 Z1, Z3, Z8, Z10\n", "5.0 Z1, Z3, Z8, Z9, Z10, Z11\n", "15.0 Z0, Z1, Z5, Z8\n", "-5.0 Z0, Z1, Z5, Z10\n", "15.0 Z0, Z5, Z8, Z9\n", "-5.0 Z0, Z5, Z10, Z11\n", "-5.0 Z1, Z2, Z5, Z8\n", "5.0 Z1, Z2, Z5, Z10\n", "-5.0 Z1, Z2, Z3, Z5, Z8, Z9\n", "5.0 Z1, Z2, Z3, Z5, Z10, Z11\n", "15.0 Z1, Z4, Z5, Z8\n", "-5.0 Z1, Z4, Z5, Z10\n", "15.0 Z1, Z4, Z8, Z9\n", "-5.0 Z1, Z4, Z10, Z11\n", "-15.0 Z1, Z5, Z7, Z9\n", "15.0 Z1, Z5, Z7, Z11\n", "-5.0 Z1, Z5, Z6, Z8\n", "5.0 Z1, Z5, Z6, Z10\n", "-5.0 Z1, Z5, Z6, Z7, Z8, Z9\n", "5.0 Z1, Z5, Z6, Z7, Z10, Z11\n", "-15.0 Z1, Z5, Z9, Z11\n", "-5.0 Z1, Z5, Z8, Z10\n", "-5.0 Z1, Z5, Z8, Z9, Z10, Z11\n", "-5.0 Z0, Z1, Z7, Z8\n", "-5.0 Z0, Z1, Z7, Z10\n", "-5.0 Z0, Z7, Z8, Z9\n", "-5.0 Z0, Z7, Z10, Z11\n", "5.0 Z1, Z2, Z7, Z8\n", "-5.0 Z1, Z2, Z7, Z10\n", "5.0 Z1, Z2, Z3, Z7, Z8, Z9\n", "-5.0 Z1, Z2, Z3, Z7, Z10, Z11\n", "-5.0 Z1, Z4, Z7, Z8\n", "5.0 Z1, Z4, Z7, Z10\n", "-5.0 Z1, Z4, Z5, Z7, Z8, Z9\n", "5.0 Z1, Z4, Z5, Z7, Z10, Z11\n", "-5.0 Z1, Z6, Z7, Z8\n", "-5.0 Z1, Z6, Z7, Z10\n", "-5.0 Z1, Z6, Z8, Z9\n", "-5.0 Z1, Z6, Z10, Z11\n", "15.0 Z1, Z7, Z9, Z11\n", "5.0 Z1, Z7, Z8, Z10\n", "5.0 Z1, Z7, Z8, Z9, Z10, Z11\n", "-5.0 Z0, Z1, Z2, Z9\n", "15.0 Z0, Z1, Z4, Z9\n", "-5.0 Z0, Z1, Z6, Z9\n", "-5.0 Z0, Z1, Z9, Z10\n", "-5.0 Z0, Z2, Z3, Z9\n", "15.0 Z0, Z4, Z5, Z9\n", "-5.0 Z0, Z6, Z7, Z9\n", "-5.0 Z0, Z9, Z10, Z11\n", "-5.0 Z1, Z2, Z4, Z9\n", "5.0 Z1, Z2, Z6, Z9\n", "5.0 Z1, Z2, Z9, Z10\n", "-5.0 Z1, Z2, Z3, Z4, Z5, Z9\n", "5.0 Z1, Z2, Z3, Z6, Z7, Z9\n", "5.0 Z1, Z2, Z3, Z9, Z10, Z11\n", "-5.0 Z1, Z4, Z6, Z9\n", "-5.0 Z1, Z4, Z9, Z10\n", "-5.0 Z1, Z4, Z5, Z6, Z7, Z9\n", "-5.0 Z1, Z4, Z5, Z9, Z10, Z11\n", "5.0 Z1, Z6, Z9, Z10\n", "5.0 Z1, Z6, Z7, Z9, Z10, Z11\n", "-5.0 Z1, Z8, Z9, Z10\n", "-5.0 Z1, Z8, Z10, Z11\n", "-5.0 Z0, Z1, Z2, Z11\n", "-5.0 Z0, Z1, Z4, Z11\n", "-5.0 Z0, Z1, Z6, Z11\n", "-5.0 Z0, Z1, Z8, Z11\n", "-5.0 Z0, Z2, Z3, Z11\n", "-5.0 Z0, Z4, Z5, Z11\n", "-5.0 Z0, Z6, Z7, Z11\n", "-5.0 Z0, Z8, Z9, Z11\n", "5.0 Z1, Z2, Z4, Z11\n", "-5.0 Z1, Z2, Z6, Z11\n", "5.0 Z1, Z2, Z8, Z11\n", "5.0 Z1, Z2, Z3, Z4, Z5, Z11\n", "-5.0 Z1, Z2, Z3, Z6, Z7, Z11\n", "5.0 Z1, Z2, Z3, Z8, Z9, Z11\n", "5.0 Z1, Z4, Z6, Z11\n", "-5.0 Z1, Z4, Z8, Z11\n", "5.0 Z1, Z4, Z5, Z6, Z7, Z11\n", "-5.0 Z1, Z4, Z5, Z8, Z9, Z11\n", "5.0 Z1, Z6, Z8, Z11\n", "5.0 Z1, Z6, Z7, Z8, Z9, Z11\n", "-5.0 Z0, Z2, Z5, Z9\n", "5.0 Z0, Z2, Z5, Z11\n", "-15.0 Z0, Z2, Z4, Z8\n", "15.0 Z0, Z2, Z4, Z10\n", "-5.0 Z0, Z2, Z4, Z5, Z8, Z9\n", "5.0 Z0, Z2, Z4, Z5, Z10, Z11\n", "5.0 Z0, Z2, Z7, Z9\n", "-5.0 Z0, Z2, Z7, Z11\n", "15.0 Z0, Z2, Z6, Z8\n", "-15.0 Z0, Z2, Z6, Z10\n", "5.0 Z0, Z2, Z6, Z7, Z8, Z9\n", "-5.0 Z0, Z2, Z6, Z7, Z10, Z11\n", "5.0 Z0, Z2, Z9, Z11\n", "15.0 Z0, Z2, Z8, Z10\n", "5.0 Z0, Z2, Z8, Z9, Z10, Z11\n", "-5.0 Z0, Z3, Z4, Z9\n", "5.0 Z0, Z3, Z4, Z11\n", "-5.0 Z0, Z2, Z3, Z4, Z8, Z9\n", "5.0 Z0, Z2, Z3, Z4, Z10, Z11\n", "-5.0 Z0, Z4, Z7, Z9\n", "5.0 Z0, Z4, Z7, Z11\n", "-15.0 Z0, Z4, Z6, Z8\n", "15.0 Z0, Z4, Z6, Z10\n", "-5.0 Z0, Z4, Z6, Z7, Z8, Z9\n", "5.0 Z0, Z4, Z6, Z7, Z10, Z11\n", "-5.0 Z0, Z4, Z9, Z11\n", "-15.0 Z0, Z4, Z8, Z10\n", "-5.0 Z0, Z4, Z8, Z9, Z10, Z11\n", "5.0 Z0, Z3, Z6, Z9\n", "-5.0 Z0, Z3, Z6, Z11\n", "5.0 Z0, Z2, Z3, Z6, Z8, Z9\n", "-5.0 Z0, Z2, Z3, Z6, Z10, Z11\n", "-5.0 Z0, Z5, Z6, Z9\n", "5.0 Z0, Z5, Z6, Z11\n", "-5.0 Z0, Z4, Z5, Z6, Z8, Z9\n", "5.0 Z0, Z4, Z5, Z6, Z10, Z11\n", "5.0 Z0, Z6, Z9, Z11\n", "15.0 Z0, Z6, Z8, Z10\n", "5.0 Z0, Z6, Z8, Z9, Z10, Z11\n", "-5.0 Z0, Z3, Z5, Z8\n", "5.0 Z0, Z3, Z7, Z8\n", "5.0 Z0, Z3, Z8, Z11\n", "-5.0 Z0, Z2, Z3, Z4, Z5, Z8\n", "5.0 Z0, Z2, Z3, Z6, Z7, Z8\n", "5.0 Z0, Z2, Z3, Z8, Z10, Z11\n", "-5.0 Z0, Z5, Z7, Z8\n", "-5.0 Z0, Z5, Z8, Z11\n", "-5.0 Z0, Z4, Z5, Z6, Z7, Z8\n", "-5.0 Z0, Z4, Z5, Z8, Z10, Z11\n", "5.0 Z0, Z7, Z8, Z11\n", "5.0 Z0, Z6, Z7, Z8, Z10, Z11\n", "5.0 Z0, Z3, Z5, Z10\n", "-5.0 Z0, Z3, Z7, Z10\n", "5.0 Z0, Z3, Z9, Z10\n", "5.0 Z0, Z2, Z3, Z4, Z5, Z10\n", "-5.0 Z0, Z2, Z3, Z6, Z7, Z10\n", "5.0 Z0, Z2, Z3, Z8, Z9, Z10\n", "5.0 Z0, Z5, Z7, Z10\n", "-5.0 Z0, Z5, Z9, Z10\n", "5.0 Z0, Z4, Z5, Z6, Z7, Z10\n", "-5.0 Z0, Z4, Z5, Z8, Z9, Z10\n", "5.0 Z0, Z7, Z9, Z10\n", "5.0 Z0, Z6, Z7, Z8, Z9, Z10\n", "-5.0 Z0, Z1, Z2, Z3, Z5, Z9\n", "5.0 Z0, Z1, Z2, Z3, Z5, Z11\n", "-5.0 Z0, Z1, Z2, Z3, Z4, Z8\n", "5.0 Z0, Z1, Z2, Z3, Z4, Z10\n", "-15.0 Z0, Z1, Z2, Z3, Z4, Z5, Z8, Z9\n", "15.0 Z0, Z1, Z2, Z3, Z4, Z5, Z10, Z11\n", "5.0 Z0, Z1, Z2, Z3, Z7, Z9\n", "-5.0 Z0, Z1, Z2, Z3, Z7, Z11\n", "5.0 Z0, Z1, Z2, Z3, Z6, Z8\n", "-5.0 Z0, Z1, Z2, Z3, Z6, Z10\n", "15.0 Z0, Z1, Z2, Z3, Z6, Z7, Z8, Z9\n", "-15.0 Z0, Z1, Z2, Z3, Z6, Z7, Z10, Z11\n", "5.0 Z0, Z1, Z2, Z3, Z9, Z11\n", "5.0 Z0, Z1, Z2, Z3, Z8, Z10\n", "15.0 Z0, Z1, Z2, Z3, Z8, Z9, Z10, Z11\n", "-5.0 Z0, Z1, Z3, Z4, Z5, Z9\n", "5.0 Z0, Z1, Z3, Z4, Z5, Z11\n", "-5.0 Z0, Z1, Z2, Z4, Z5, Z8\n", "5.0 Z0, Z1, Z2, Z4, Z5, Z10\n", "-5.0 Z0, Z1, Z4, Z5, Z7, Z9\n", "5.0 Z0, Z1, Z4, Z5, Z7, Z11\n", "-5.0 Z0, Z1, Z4, Z5, Z6, Z8\n", "5.0 Z0, Z1, Z4, Z5, Z6, Z10\n", "-15.0 Z0, Z1, Z4, Z5, Z6, Z7, Z8, Z9\n", "15.0 Z0, Z1, Z4, Z5, Z6, Z7, Z10, Z11\n", "-5.0 Z0, Z1, Z4, Z5, Z9, Z11\n", "-5.0 Z0, Z1, Z4, Z5, Z8, Z10\n", "-15.0 Z0, Z1, Z4, Z5, Z8, Z9, Z10, Z11\n", "5.0 Z0, Z1, Z3, Z6, Z7, Z9\n", "-5.0 Z0, Z1, Z3, Z6, Z7, Z11\n", "5.0 Z0, Z1, Z2, Z6, Z7, Z8\n", "-5.0 Z0, Z1, Z2, Z6, Z7, Z10\n", "-5.0 Z0, Z1, Z5, Z6, Z7, Z9\n", "5.0 Z0, Z1, Z5, Z6, Z7, Z11\n", "-5.0 Z0, Z1, Z4, Z6, Z7, Z8\n", "5.0 Z0, Z1, Z4, Z6, Z7, Z10\n", "5.0 Z0, Z1, Z6, Z7, Z9, Z11\n", "5.0 Z0, Z1, Z6, Z7, Z8, Z10\n", "15.0 Z0, Z1, Z6, Z7, Z8, Z9, Z10, Z11\n", "-5.0 Z0, Z1, Z3, Z5, Z8, Z9\n", "5.0 Z0, Z1, Z3, Z7, Z8, Z9\n", "5.0 Z0, Z1, Z3, Z8, Z9, Z11\n", "-5.0 Z0, Z1, Z2, Z4, Z8, Z9\n", "5.0 Z0, Z1, Z2, Z6, Z8, Z9\n", "5.0 Z0, Z1, Z2, Z8, Z9, Z10\n", "-5.0 Z0, Z1, Z5, Z7, Z8, Z9\n", "-5.0 Z0, Z1, Z5, Z8, Z9, Z11\n", "-5.0 Z0, Z1, Z4, Z6, Z8, Z9\n", "-5.0 Z0, Z1, Z4, Z8, Z9, Z10\n", "5.0 Z0, Z1, Z7, Z8, Z9, Z11\n", "5.0 Z0, Z1, Z6, Z8, Z9, Z10\n", "5.0 Z0, Z1, Z3, Z5, Z10, Z11\n", "-5.0 Z0, Z1, Z3, Z7, Z10, Z11\n", "5.0 Z0, Z1, Z3, Z9, Z10, Z11\n", "5.0 Z0, Z1, Z2, Z4, Z10, Z11\n", "-5.0 Z0, Z1, Z2, Z6, Z10, Z11\n", "5.0 Z0, Z1, Z2, Z8, Z10, Z11\n", "5.0 Z0, Z1, Z5, Z7, Z10, Z11\n", "-5.0 Z0, Z1, Z5, Z9, Z10, Z11\n", "5.0 Z0, Z1, Z4, Z6, Z10, Z11\n", "-5.0 Z0, Z1, Z4, Z8, Z10, Z11\n", "5.0 Z0, Z1, Z7, Z9, Z10, Z11\n", "5.0 Z0, Z1, Z6, Z8, Z10, Z11\n", "-5.0 Z2, Z3, Z5, Z10\n", "-5.0 Z2, Z5, Z10, Z11\n", "-5.0 Z3, Z4, Z5, Z10\n", "-5.0 Z3, Z4, Z10, Z11\n", "-15.0 Z3, Z5, Z7, Z11\n", "-5.0 Z3, Z5, Z6, Z10\n", "-5.0 Z3, Z5, Z6, Z7, Z10, Z11\n", "15.0 Z3, Z5, Z9, Z11\n", "5.0 Z3, Z5, Z8, Z10\n", "5.0 Z3, Z5, Z8, Z9, Z10, Z11\n", "15.0 Z2, Z3, Z7, Z10\n", "15.0 Z2, Z7, Z10, Z11\n", "-5.0 Z3, Z4, Z7, Z10\n", "-5.0 Z3, Z4, Z5, Z7, Z10, Z11\n", "15.0 Z3, Z6, Z7, Z10\n", "15.0 Z3, Z6, Z10, Z11\n", "-15.0 Z3, Z7, Z9, Z11\n", "-5.0 Z3, Z7, Z8, Z10\n", "-5.0 Z3, Z7, Z8, Z9, Z10, Z11\n", "-5.0 Z2, Z3, Z9, Z10\n", "-5.0 Z2, Z9, Z10, Z11\n", "5.0 Z3, Z4, Z9, Z10\n", "5.0 Z3, Z4, Z5, Z9, Z10, Z11\n", "-5.0 Z3, Z6, Z9, Z10\n", "-5.0 Z3, Z6, Z7, Z9, Z10, Z11\n", "-5.0 Z3, Z8, Z9, Z10\n", "-5.0 Z3, Z8, Z10, Z11\n", "-5.0 Z2, Z3, Z4, Z11\n", "15.0 Z2, Z3, Z6, Z11\n", "-5.0 Z2, Z3, Z8, Z11\n", "-5.0 Z2, Z4, Z5, Z11\n", "15.0 Z2, Z6, Z7, Z11\n", "-5.0 Z2, Z8, Z9, Z11\n", "-5.0 Z3, Z4, Z6, Z11\n", "5.0 Z3, Z4, Z8, Z11\n", "-5.0 Z3, Z4, Z5, Z6, Z7, Z11\n", "5.0 Z3, Z4, Z5, Z8, Z9, Z11\n", "-5.0 Z3, Z6, Z8, Z11\n", "-5.0 Z3, Z6, Z7, Z8, Z9, Z11\n", "-5.0 Z2, Z4, Z7, Z11\n", "-15.0 Z2, Z4, Z6, Z10\n", "-5.0 Z2, Z4, Z6, Z7, Z10, Z11\n", "5.0 Z2, Z4, Z9, Z11\n", "15.0 Z2, Z4, Z8, Z10\n", "5.0 Z2, Z4, Z8, Z9, Z10, Z11\n", "-5.0 Z2, Z5, Z6, Z11\n", "-5.0 Z2, Z4, Z5, Z6, Z10, Z11\n", "-5.0 Z2, Z6, Z9, Z11\n", "-15.0 Z2, Z6, Z8, Z10\n", "-5.0 Z2, Z6, Z8, Z9, Z10, Z11\n", "5.0 Z2, Z5, Z8, Z11\n", "5.0 Z2, Z4, Z5, Z8, Z10, Z11\n", "-5.0 Z2, Z7, Z8, Z11\n", "-5.0 Z2, Z6, Z7, Z8, Z10, Z11\n", "-5.0 Z2, Z5, Z7, Z10\n", "5.0 Z2, Z5, Z9, Z10\n", "-5.0 Z2, Z4, Z5, Z6, Z7, Z10\n", "5.0 Z2, Z4, Z5, Z8, Z9, Z10\n", "-5.0 Z2, Z7, Z9, Z10\n", "-5.0 Z2, Z6, Z7, Z8, Z9, Z10\n", "-5.0 Z2, Z3, Z4, Z5, Z7, Z11\n", "-5.0 Z2, Z3, Z4, Z5, Z6, Z10\n", "-15.0 Z2, Z3, Z4, Z5, Z6, Z7, Z10, Z11\n", "5.0 Z2, Z3, Z4, Z5, Z9, Z11\n", "5.0 Z2, Z3, Z4, Z5, Z8, Z10\n", "15.0 Z2, Z3, Z4, Z5, Z8, Z9, Z10, Z11\n", "-5.0 Z2, Z3, Z5, Z6, Z7, Z11\n", "-5.0 Z2, Z3, Z4, Z6, Z7, Z10\n", "-5.0 Z2, Z3, Z6, Z7, Z9, Z11\n", "-5.0 Z2, Z3, Z6, Z7, Z8, Z10\n", "-15.0 Z2, Z3, Z6, Z7, Z8, Z9, Z10, Z11\n", "5.0 Z2, Z3, Z5, Z8, Z9, Z11\n", "5.0 Z2, Z3, Z4, Z8, Z9, Z10\n", "-5.0 Z2, Z3, Z7, Z8, Z9, Z11\n", "-5.0 Z2, Z3, Z6, Z8, Z9, Z10\n", "-5.0 Z2, Z3, Z5, Z7, Z10, Z11\n", "5.0 Z2, Z3, Z5, Z9, Z10, Z11\n", "-5.0 Z2, Z3, Z4, Z6, Z10, Z11\n", "5.0 Z2, Z3, Z4, Z8, Z10, Z11\n", "-5.0 Z2, Z3, Z7, Z9, Z10, Z11\n", "-5.0 Z2, Z3, Z6, Z8, Z10, Z11\n", "-7.5 Z4, Z5, Z7, Z10\n", "-7.5 Z4, Z7, Z10, Z11\n", "-7.5 Z5, Z6, Z7, Z10\n", "-7.5 Z5, Z6, Z10, Z11\n", "22.5 Z5, Z7, Z9, Z11\n", "7.5 Z5, Z7, Z8, Z10\n", "7.5 Z5, Z7, Z8, Z9, Z10, Z11\n", "-7.5 Z4, Z5, Z9, Z10\n", "-7.5 Z4, Z9, Z10, Z11\n", "7.5 Z5, Z6, Z9, Z10\n", "7.5 Z5, Z6, Z7, Z9, Z10, Z11\n", "-7.5 Z5, Z8, Z9, Z10\n", "-7.5 Z5, Z8, Z10, Z11\n", "-7.5 Z4, Z5, Z6, Z11\n", "-7.5 Z4, Z5, Z8, Z11\n", "-7.5 Z4, Z6, Z7, Z11\n", "-7.5 Z4, Z8, Z9, Z11\n", "7.5 Z5, Z6, Z8, Z11\n", "7.5 Z5, Z6, Z7, Z8, Z9, Z11\n", "7.5 Z4, Z6, Z9, Z11\n", "22.5 Z4, Z6, Z8, Z10\n", "7.5 Z4, Z6, Z8, Z9, Z10, Z11\n", "7.5 Z4, Z7, Z8, Z11\n", "7.5 Z4, Z6, Z7, Z8, Z10, Z11\n", "7.5 Z4, Z7, Z9, Z10\n", "7.5 Z4, Z6, Z7, Z8, Z9, Z10\n", "7.5 Z4, Z5, Z6, Z7, Z9, Z11\n", "7.5 Z4, Z5, Z6, Z7, Z8, Z10\n", "22.5 Z4, Z5, Z6, Z7, Z8, Z9, Z10, Z11\n", "7.5 Z4, Z5, Z7, Z8, Z9, Z11\n", "7.5 Z4, Z5, Z6, Z8, Z9, Z10\n", "7.5 Z4, Z5, Z7, Z9, Z10, Z11\n", "7.5 Z4, Z5, Z6, Z8, Z10, Z11\n", "-7.5 Z6, Z7, Z9, Z10\n", "-7.5 Z6, Z9, Z10, Z11\n", "-7.5 Z7, Z8, Z9, Z10\n", "-7.5 Z7, Z8, Z10, Z11\n", "-7.5 Z6, Z7, Z8, Z11\n", "-7.5 Z6, Z8, Z9, Z11\n", "20.0 Z1, Z11, Z12\n", "20.0 Z0, Z10, Z12\n", "20.0 Z0, Z1, Z10, Z11, Z12\n", "-25.0 Z3, Z11, Z12\n", "-25.0 Z2, Z10, Z12\n", "-25.0 Z2, Z3, Z10, Z11, Z12\n", "20.0 Z5, Z11, Z12\n", "20.0 Z4, Z10, Z12\n", "20.0 Z4, Z5, Z10, Z11, Z12\n", "-25.0 Z7, Z11, Z12\n", "-25.0 Z6, Z10, Z12\n", "-25.0 Z6, Z7, Z10, Z11, Z12\n", "20.0 Z9, Z11, Z12\n", "20.0 Z8, Z10, Z12\n", "20.0 Z8, Z9, Z10, Z11, Z12\n", "2.5 Z0, Z1, Z3, Z8, Z12\n", "2.5 Z0, Z1, Z3, Z10, Z12\n", "2.5 Z0, Z3, Z8, Z9, Z12\n", "2.5 Z0, Z3, Z10, Z11, Z12\n", "2.5 Z1, Z2, Z3, Z8, Z12\n", "2.5 Z1, Z2, Z3, Z10, Z12\n", "2.5 Z1, Z2, Z8, Z9, Z12\n", "2.5 Z1, Z2, Z10, Z11, Z12\n", "7.5 Z1, Z3, Z5, Z9, Z12\n", "-7.5 Z1, Z3, Z5, Z11, Z12\n", "2.5 Z1, Z3, Z4, Z8, Z12\n", "-2.5 Z1, Z3, Z4, Z10, Z12\n", "2.5 Z1, Z3, Z4, Z5, Z8, Z9, Z12\n", "-2.5 Z1, Z3, Z4, Z5, Z10, Z11, Z12\n", "-7.5 Z1, Z3, Z7, Z9, Z12\n", "7.5 Z1, Z3, Z7, Z11, Z12\n", "-2.5 Z1, Z3, Z6, Z8, Z12\n", "2.5 Z1, Z3, Z6, Z10, Z12\n", "-2.5 Z1, Z3, Z6, Z7, Z8, Z9, Z12\n", "2.5 Z1, Z3, Z6, Z7, Z10, Z11, Z12\n", "-7.5 Z1, Z3, Z9, Z11, Z12\n", "-2.5 Z1, Z3, Z8, Z10, Z12\n", "-2.5 Z1, Z3, Z8, Z9, Z10, Z11, Z12\n", "-7.5 Z0, Z1, Z5, Z8, Z12\n", "2.5 Z0, Z1, Z5, Z10, Z12\n", "-7.5 Z0, Z5, Z8, Z9, Z12\n", "2.5 Z0, Z5, Z10, Z11, Z12\n", "2.5 Z1, Z2, Z5, Z8, Z12\n", "-2.5 Z1, Z2, Z5, Z10, Z12\n", "2.5 Z1, Z2, Z3, Z5, Z8, Z9, Z12\n", "-2.5 Z1, Z2, Z3, Z5, Z10, Z11, Z12\n", "-7.5 Z1, Z4, Z5, Z8, Z12\n", "2.5 Z1, Z4, Z5, Z10, Z12\n", "-7.5 Z1, Z4, Z8, Z9, Z12\n", "2.5 Z1, Z4, Z10, Z11, Z12\n", "7.5 Z1, Z5, Z7, Z9, Z12\n", "-7.5 Z1, Z5, Z7, Z11, Z12\n", "2.5 Z1, Z5, Z6, Z8, Z12\n", "-2.5 Z1, Z5, Z6, Z10, Z12\n", "2.5 Z1, Z5, Z6, Z7, Z8, Z9, Z12\n", "-2.5 Z1, Z5, Z6, Z7, Z10, Z11, Z12\n", "7.5 Z1, Z5, Z9, Z11, Z12\n", "2.5 Z1, Z5, Z8, Z10, Z12\n", "2.5 Z1, Z5, Z8, Z9, Z10, Z11, Z12\n", "2.5 Z0, Z1, Z7, Z8, Z12\n", "2.5 Z0, Z1, Z7, Z10, Z12\n", "2.5 Z0, Z7, Z8, Z9, Z12\n", "2.5 Z0, Z7, Z10, Z11, Z12\n", "-2.5 Z1, Z2, Z7, Z8, Z12\n", "2.5 Z1, Z2, Z7, Z10, Z12\n", "-2.5 Z1, Z2, Z3, Z7, Z8, Z9, Z12\n", "2.5 Z1, Z2, Z3, Z7, Z10, Z11, Z12\n", "2.5 Z1, Z4, Z7, Z8, Z12\n", "-2.5 Z1, Z4, Z7, Z10, Z12\n", "2.5 Z1, Z4, Z5, Z7, Z8, Z9, Z12\n", "-2.5 Z1, Z4, Z5, Z7, Z10, Z11, Z12\n", "2.5 Z1, Z6, Z7, Z8, Z12\n", "2.5 Z1, Z6, Z7, Z10, Z12\n", "2.5 Z1, Z6, Z8, Z9, Z12\n", "2.5 Z1, Z6, Z10, Z11, Z12\n", "-7.5 Z1, Z7, Z9, Z11, Z12\n", "-2.5 Z1, Z7, Z8, Z10, Z12\n", "-2.5 Z1, Z7, Z8, Z9, Z10, Z11, Z12\n", "2.5 Z0, Z1, Z2, Z9, Z12\n", "-7.5 Z0, Z1, Z4, Z9, Z12\n", "2.5 Z0, Z1, Z6, Z9, Z12\n", "2.5 Z0, Z1, Z9, Z10, Z12\n", "2.5 Z0, Z2, Z3, Z9, Z12\n", "-7.5 Z0, Z4, Z5, Z9, Z12\n", "2.5 Z0, Z6, Z7, Z9, Z12\n", "2.5 Z0, Z9, Z10, Z11, Z12\n", "2.5 Z1, Z2, Z4, Z9, Z12\n", "-2.5 Z1, Z2, Z6, Z9, Z12\n", "-2.5 Z1, Z2, Z9, Z10, Z12\n", "2.5 Z1, Z2, Z3, Z4, Z5, Z9, Z12\n", "-2.5 Z1, Z2, Z3, Z6, Z7, Z9, Z12\n", "-2.5 Z1, Z2, Z3, Z9, Z10, Z11, Z12\n", "2.5 Z1, Z4, Z6, Z9, Z12\n", "2.5 Z1, Z4, Z9, Z10, Z12\n", "2.5 Z1, Z4, Z5, Z6, Z7, Z9, Z12\n", "2.5 Z1, Z4, Z5, Z9, Z10, Z11, Z12\n", "-2.5 Z1, Z6, Z9, Z10, Z12\n", "-2.5 Z1, Z6, Z7, Z9, Z10, Z11, Z12\n", "2.5 Z1, Z8, Z9, Z10, Z12\n", "2.5 Z1, Z8, Z10, Z11, Z12\n", "2.5 Z0, Z1, Z2, Z11, Z12\n", "2.5 Z0, Z1, Z4, Z11, Z12\n", "2.5 Z0, Z1, Z6, Z11, Z12\n", "2.5 Z0, Z1, Z8, Z11, Z12\n", "2.5 Z0, Z2, Z3, Z11, Z12\n", "2.5 Z0, Z4, Z5, Z11, Z12\n", "2.5 Z0, Z6, Z7, Z11, Z12\n", "2.5 Z0, Z8, Z9, Z11, Z12\n", "-2.5 Z1, Z2, Z4, Z11, Z12\n", "2.5 Z1, Z2, Z6, Z11, Z12\n", "-2.5 Z1, Z2, Z8, Z11, Z12\n", "-2.5 Z1, Z2, Z3, Z4, Z5, Z11, Z12\n", "2.5 Z1, Z2, Z3, Z6, Z7, Z11, Z12\n", "-2.5 Z1, Z2, Z3, Z8, Z9, Z11, Z12\n", "-2.5 Z1, Z4, Z6, Z11, Z12\n", "2.5 Z1, Z4, Z8, Z11, Z12\n", "-2.5 Z1, Z4, Z5, Z6, Z7, Z11, Z12\n", "2.5 Z1, Z4, Z5, Z8, Z9, Z11, Z12\n", "-2.5 Z1, Z6, Z8, Z11, Z12\n", "-2.5 Z1, Z6, Z7, Z8, Z9, Z11, Z12\n", "2.5 Z0, Z2, Z5, Z9, Z12\n", "-2.5 Z0, Z2, Z5, Z11, Z12\n", "7.5 Z0, Z2, Z4, Z8, Z12\n", "-7.5 Z0, Z2, Z4, Z10, Z12\n", "2.5 Z0, Z2, Z4, Z5, Z8, Z9, Z12\n", "-2.5 Z0, Z2, Z4, Z5, Z10, Z11, Z12\n", "-2.5 Z0, Z2, Z7, Z9, Z12\n", "2.5 Z0, Z2, Z7, Z11, Z12\n", "-7.5 Z0, Z2, Z6, Z8, Z12\n", "7.5 Z0, Z2, Z6, Z10, Z12\n", "-2.5 Z0, Z2, Z6, Z7, Z8, Z9, Z12\n", "2.5 Z0, Z2, Z6, Z7, Z10, Z11, Z12\n", "-2.5 Z0, Z2, Z9, Z11, Z12\n", "-7.5 Z0, Z2, Z8, Z10, Z12\n", "-2.5 Z0, Z2, Z8, Z9, Z10, Z11, Z12\n", "2.5 Z0, Z3, Z4, Z9, Z12\n", "-2.5 Z0, Z3, Z4, Z11, Z12\n", "2.5 Z0, Z2, Z3, Z4, Z8, Z9, Z12\n", "-2.5 Z0, Z2, Z3, Z4, Z10, Z11, Z12\n", "2.5 Z0, Z4, Z7, Z9, Z12\n", "-2.5 Z0, Z4, Z7, Z11, Z12\n", "7.5 Z0, Z4, Z6, Z8, Z12\n", "-7.5 Z0, Z4, Z6, Z10, Z12\n", "2.5 Z0, Z4, Z6, Z7, Z8, Z9, Z12\n", "-2.5 Z0, Z4, Z6, Z7, Z10, Z11, Z12\n", "2.5 Z0, Z4, Z9, Z11, Z12\n", "7.5 Z0, Z4, Z8, Z10, Z12\n", "2.5 Z0, Z4, Z8, Z9, Z10, Z11, Z12\n", "-2.5 Z0, Z3, Z6, Z9, Z12\n", "2.5 Z0, Z3, Z6, Z11, Z12\n", "-2.5 Z0, Z2, Z3, Z6, Z8, Z9, Z12\n", "2.5 Z0, Z2, Z3, Z6, Z10, Z11, Z12\n", "2.5 Z0, Z5, Z6, Z9, Z12\n", "-2.5 Z0, Z5, Z6, Z11, Z12\n", "2.5 Z0, Z4, Z5, Z6, Z8, Z9, Z12\n", "-2.5 Z0, Z4, Z5, Z6, Z10, Z11, Z12\n", "-2.5 Z0, Z6, Z9, Z11, Z12\n", "-7.5 Z0, Z6, Z8, Z10, Z12\n", "-2.5 Z0, Z6, Z8, Z9, Z10, Z11, Z12\n", "2.5 Z0, Z3, Z5, Z8, Z12\n", "-2.5 Z0, Z3, Z7, Z8, Z12\n", "-2.5 Z0, Z3, Z8, Z11, Z12\n", "2.5 Z0, Z2, Z3, Z4, Z5, Z8, Z12\n", "-2.5 Z0, Z2, Z3, Z6, Z7, Z8, Z12\n", "-2.5 Z0, Z2, Z3, Z8, Z10, Z11, Z12\n", "2.5 Z0, Z5, Z7, Z8, Z12\n", "2.5 Z0, Z5, Z8, Z11, Z12\n", "2.5 Z0, Z4, Z5, Z6, Z7, Z8, Z12\n", "2.5 Z0, Z4, Z5, Z8, Z10, Z11, Z12\n", "-2.5 Z0, Z7, Z8, Z11, Z12\n", "-2.5 Z0, Z6, Z7, Z8, Z10, Z11, Z12\n", "-2.5 Z0, Z3, Z5, Z10, Z12\n", "2.5 Z0, Z3, Z7, Z10, Z12\n", "-2.5 Z0, Z3, Z9, Z10, Z12\n", "-2.5 Z0, Z2, Z3, Z4, Z5, Z10, Z12\n", "2.5 Z0, Z2, Z3, Z6, Z7, Z10, Z12\n", "-2.5 Z0, Z2, Z3, Z8, Z9, Z10, Z12\n", "-2.5 Z0, Z5, Z7, Z10, Z12\n", "2.5 Z0, Z5, Z9, Z10, Z12\n", "-2.5 Z0, Z4, Z5, Z6, Z7, Z10, Z12\n", "2.5 Z0, Z4, Z5, Z8, Z9, Z10, Z12\n", "-2.5 Z0, Z7, Z9, Z10, Z12\n", "-2.5 Z0, Z6, Z7, Z8, Z9, Z10, Z12\n", "2.5 Z0, Z1, Z2, Z3, Z5, Z9, Z12\n", "-2.5 Z0, Z1, Z2, Z3, Z5, Z11, Z12\n", "2.5 Z0, Z1, Z2, Z3, Z4, Z8, Z12\n", "-2.5 Z0, Z1, Z2, Z3, Z4, Z10, Z12\n", "7.5 Z0, Z1, Z2, Z3, Z4, Z5, Z8, Z9, Z12\n", "-7.5 Z0, Z1, Z2, Z3, Z4, Z5, Z10, Z11, Z12\n", "-2.5 Z0, Z1, Z2, Z3, Z7, Z9, Z12\n", "2.5 Z0, Z1, Z2, Z3, Z7, Z11, Z12\n", "-2.5 Z0, Z1, Z2, Z3, Z6, Z8, Z12\n", "2.5 Z0, Z1, Z2, Z3, Z6, Z10, Z12\n", "-7.5 Z0, Z1, Z2, Z3, Z6, Z7, Z8, Z9, Z12\n", "7.5 Z0, Z1, Z2, Z3, Z6, Z7, Z10, Z11, Z12\n", "-2.5 Z0, Z1, Z2, Z3, Z9, Z11, Z12\n", "-2.5 Z0, Z1, Z2, Z3, Z8, Z10, Z12\n", "-7.5 Z0, Z1, Z2, Z3, Z8, Z9, Z10, Z11, Z12\n", "2.5 Z0, Z1, Z3, Z4, Z5, Z9, Z12\n", "-2.5 Z0, Z1, Z3, Z4, Z5, Z11, Z12\n", "2.5 Z0, Z1, Z2, Z4, Z5, Z8, Z12\n", "-2.5 Z0, Z1, Z2, Z4, Z5, Z10, Z12\n", "2.5 Z0, Z1, Z4, Z5, Z7, Z9, Z12\n", "-2.5 Z0, Z1, Z4, Z5, Z7, Z11, Z12\n", "2.5 Z0, Z1, Z4, Z5, Z6, Z8, Z12\n", "-2.5 Z0, Z1, Z4, Z5, Z6, Z10, Z12\n", "7.5 Z0, Z1, Z4, Z5, Z6, Z7, Z8, Z9, Z12\n", "-7.5 Z0, Z1, Z4, Z5, Z6, Z7, Z10, Z11, Z12\n", "2.5 Z0, Z1, Z4, Z5, Z9, Z11, Z12\n", "2.5 Z0, Z1, Z4, Z5, Z8, Z10, Z12\n", "7.5 Z0, Z1, Z4, Z5, Z8, Z9, Z10, Z11, Z12\n", "-2.5 Z0, Z1, Z3, Z6, Z7, Z9, Z12\n", "2.5 Z0, Z1, Z3, Z6, Z7, Z11, Z12\n", "-2.5 Z0, Z1, Z2, Z6, Z7, Z8, Z12\n", "2.5 Z0, Z1, Z2, Z6, Z7, Z10, Z12\n", "2.5 Z0, Z1, Z5, Z6, Z7, Z9, Z12\n", "-2.5 Z0, Z1, Z5, Z6, Z7, Z11, Z12\n", "2.5 Z0, Z1, Z4, Z6, Z7, Z8, Z12\n", "-2.5 Z0, Z1, Z4, Z6, Z7, Z10, Z12\n", "-2.5 Z0, Z1, Z6, Z7, Z9, Z11, Z12\n", "-2.5 Z0, Z1, Z6, Z7, Z8, Z10, Z12\n", "-7.5 Z0, Z1, Z6, Z7, Z8, Z9, Z10, Z11, Z12\n", "2.5 Z0, Z1, Z3, Z5, Z8, Z9, Z12\n", "-2.5 Z0, Z1, Z3, Z7, Z8, Z9, Z12\n", "-2.5 Z0, Z1, Z3, Z8, Z9, Z11, Z12\n", "2.5 Z0, Z1, Z2, Z4, Z8, Z9, Z12\n", "-2.5 Z0, Z1, Z2, Z6, Z8, Z9, Z12\n", "-2.5 Z0, Z1, Z2, Z8, Z9, Z10, Z12\n", "2.5 Z0, Z1, Z5, Z7, Z8, Z9, Z12\n", "2.5 Z0, Z1, Z5, Z8, Z9, Z11, Z12\n", "2.5 Z0, Z1, Z4, Z6, Z8, Z9, Z12\n", "2.5 Z0, Z1, Z4, Z8, Z9, Z10, Z12\n", "-2.5 Z0, Z1, Z7, Z8, Z9, Z11, Z12\n", "-2.5 Z0, Z1, Z6, Z8, Z9, Z10, Z12\n", "-2.5 Z0, Z1, Z3, Z5, Z10, Z11, Z12\n", "2.5 Z0, Z1, Z3, Z7, Z10, Z11, Z12\n", "-2.5 Z0, Z1, Z3, Z9, Z10, Z11, Z12\n", "-2.5 Z0, Z1, Z2, Z4, Z10, Z11, Z12\n", "2.5 Z0, Z1, Z2, Z6, Z10, Z11, Z12\n", "-2.5 Z0, Z1, Z2, Z8, Z10, Z11, Z12\n", "-2.5 Z0, Z1, Z5, Z7, Z10, Z11, Z12\n", "2.5 Z0, Z1, Z5, Z9, Z10, Z11, Z12\n", "-2.5 Z0, Z1, Z4, Z6, Z10, Z11, Z12\n", "2.5 Z0, Z1, Z4, Z8, Z10, Z11, Z12\n", "-2.5 Z0, Z1, Z7, Z9, Z10, Z11, Z12\n", "-2.5 Z0, Z1, Z6, Z8, Z10, Z11, Z12\n", "2.5 Z2, Z3, Z5, Z10, Z12\n", "2.5 Z2, Z5, Z10, Z11, Z12\n", "2.5 Z3, Z4, Z5, Z10, Z12\n", "2.5 Z3, Z4, Z10, Z11, Z12\n", "7.5 Z3, Z5, Z7, Z11, Z12\n", "2.5 Z3, Z5, Z6, Z10, Z12\n", "2.5 Z3, Z5, Z6, Z7, Z10, Z11, Z12\n", "-7.5 Z3, Z5, Z9, Z11, Z12\n", "-2.5 Z3, Z5, Z8, Z10, Z12\n", "-2.5 Z3, Z5, Z8, Z9, Z10, Z11, Z12\n", "-7.5 Z2, Z3, Z7, Z10, Z12\n", "-7.5 Z2, Z7, Z10, Z11, Z12\n", "2.5 Z3, Z4, Z7, Z10, Z12\n", "2.5 Z3, Z4, Z5, Z7, Z10, Z11, Z12\n", "-7.5 Z3, Z6, Z7, Z10, Z12\n", "-7.5 Z3, Z6, Z10, Z11, Z12\n", "7.5 Z3, Z7, Z9, Z11, Z12\n", "2.5 Z3, Z7, Z8, Z10, Z12\n", "2.5 Z3, Z7, Z8, Z9, Z10, Z11, Z12\n", "2.5 Z2, Z3, Z9, Z10, Z12\n", "2.5 Z2, Z9, Z10, Z11, Z12\n", "-2.5 Z3, Z4, Z9, Z10, Z12\n", "-2.5 Z3, Z4, Z5, Z9, Z10, Z11, Z12\n", "2.5 Z3, Z6, Z9, Z10, Z12\n", "2.5 Z3, Z6, Z7, Z9, Z10, Z11, Z12\n", "2.5 Z3, Z8, Z9, Z10, Z12\n", "2.5 Z3, Z8, Z10, Z11, Z12\n", "2.5 Z2, Z3, Z4, Z11, Z12\n", "-7.5 Z2, Z3, Z6, Z11, Z12\n", "2.5 Z2, Z3, Z8, Z11, Z12\n", "2.5 Z2, Z4, Z5, Z11, Z12\n", "-7.5 Z2, Z6, Z7, Z11, Z12\n", "2.5 Z2, Z8, Z9, Z11, Z12\n", "2.5 Z3, Z4, Z6, Z11, Z12\n", "-2.5 Z3, Z4, Z8, Z11, Z12\n", "2.5 Z3, Z4, Z5, Z6, Z7, Z11, Z12\n", "-2.5 Z3, Z4, Z5, Z8, Z9, Z11, Z12\n", "2.5 Z3, Z6, Z8, Z11, Z12\n", "2.5 Z3, Z6, Z7, Z8, Z9, Z11, Z12\n", "2.5 Z2, Z4, Z7, Z11, Z12\n", "7.5 Z2, Z4, Z6, Z10, Z12\n", "2.5 Z2, Z4, Z6, Z7, Z10, Z11, Z12\n", "-2.5 Z2, Z4, Z9, Z11, Z12\n", "-7.5 Z2, Z4, Z8, Z10, Z12\n", "-2.5 Z2, Z4, Z8, Z9, Z10, Z11, Z12\n", "2.5 Z2, Z5, Z6, Z11, Z12\n", "2.5 Z2, Z4, Z5, Z6, Z10, Z11, Z12\n", "2.5 Z2, Z6, Z9, Z11, Z12\n", "7.5 Z2, Z6, Z8, Z10, Z12\n", "2.5 Z2, Z6, Z8, Z9, Z10, Z11, Z12\n", "-2.5 Z2, Z5, Z8, Z11, Z12\n", "-2.5 Z2, Z4, Z5, Z8, Z10, Z11, Z12\n", "2.5 Z2, Z7, Z8, Z11, Z12\n", "2.5 Z2, Z6, Z7, Z8, Z10, Z11, Z12\n", "2.5 Z2, Z5, Z7, Z10, Z12\n", "-2.5 Z2, Z5, Z9, Z10, Z12\n", "2.5 Z2, Z4, Z5, Z6, Z7, Z10, Z12\n", "-2.5 Z2, Z4, Z5, Z8, Z9, Z10, Z12\n", "2.5 Z2, Z7, Z9, Z10, Z12\n", "2.5 Z2, Z6, Z7, Z8, Z9, Z10, Z12\n", "2.5 Z2, Z3, Z4, Z5, Z7, Z11, Z12\n", "2.5 Z2, Z3, Z4, Z5, Z6, Z10, Z12\n", "7.5 Z2, Z3, Z4, Z5, Z6, Z7, Z10, Z11, Z12\n", "-2.5 Z2, Z3, Z4, Z5, Z9, Z11, Z12\n", "-2.5 Z2, Z3, Z4, Z5, Z8, Z10, Z12\n", "-7.5 Z2, Z3, Z4, Z5, Z8, Z9, Z10, Z11, Z12\n", "2.5 Z2, Z3, Z5, Z6, Z7, Z11, Z12\n", "2.5 Z2, Z3, Z4, Z6, Z7, Z10, Z12\n", "2.5 Z2, Z3, Z6, Z7, Z9, Z11, Z12\n", "2.5 Z2, Z3, Z6, Z7, Z8, Z10, Z12\n", "7.5 Z2, Z3, Z6, Z7, Z8, Z9, Z10, Z11, Z12\n", "-2.5 Z2, Z3, Z5, Z8, Z9, Z11, Z12\n", "-2.5 Z2, Z3, Z4, Z8, Z9, Z10, Z12\n", "2.5 Z2, Z3, Z7, Z8, Z9, Z11, Z12\n", "2.5 Z2, Z3, Z6, Z8, Z9, Z10, Z12\n", "2.5 Z2, Z3, Z5, Z7, Z10, Z11, Z12\n", "-2.5 Z2, Z3, Z5, Z9, Z10, Z11, Z12\n", "2.5 Z2, Z3, Z4, Z6, Z10, Z11, Z12\n", "-2.5 Z2, Z3, Z4, Z8, Z10, Z11, Z12\n", "2.5 Z2, Z3, Z7, Z9, Z10, Z11, Z12\n", "2.5 Z2, Z3, Z6, Z8, Z10, Z11, Z12\n", "2.5 Z4, Z5, Z7, Z10, Z12\n", "2.5 Z4, Z7, Z10, Z11, Z12\n", "2.5 Z5, Z6, Z7, Z10, Z12\n", "2.5 Z5, Z6, Z10, Z11, Z12\n", "-7.5 Z5, Z7, Z9, Z11, Z12\n", "-2.5 Z5, Z7, Z8, Z10, Z12\n", "-2.5 Z5, Z7, Z8, Z9, Z10, Z11, Z12\n", "2.5 Z4, Z5, Z9, Z10, Z12\n", "2.5 Z4, Z9, Z10, Z11, Z12\n", "-2.5 Z5, Z6, Z9, Z10, Z12\n", "-2.5 Z5, Z6, Z7, Z9, Z10, Z11, Z12\n", "2.5 Z5, Z8, Z9, Z10, Z12\n", "2.5 Z5, Z8, Z10, Z11, Z12\n", "2.5 Z4, Z5, Z6, Z11, Z12\n", "2.5 Z4, Z5, Z8, Z11, Z12\n", "2.5 Z4, Z6, Z7, Z11, Z12\n", "2.5 Z4, Z8, Z9, Z11, Z12\n", "-2.5 Z5, Z6, Z8, Z11, Z12\n", "-2.5 Z5, Z6, Z7, Z8, Z9, Z11, Z12\n", "-2.5 Z4, Z6, Z9, Z11, Z12\n", "-7.5 Z4, Z6, Z8, Z10, Z12\n", "-2.5 Z4, Z6, Z8, Z9, Z10, Z11, Z12\n", "-2.5 Z4, Z7, Z8, Z11, Z12\n", "-2.5 Z4, Z6, Z7, Z8, Z10, Z11, Z12\n", "-2.5 Z4, Z7, Z9, Z10, Z12\n", "-2.5 Z4, Z6, Z7, Z8, Z9, Z10, Z12\n", "-2.5 Z4, Z5, Z6, Z7, Z9, Z11, Z12\n", "-2.5 Z4, Z5, Z6, Z7, Z8, Z10, Z12\n", "-7.5 Z4, Z5, Z6, Z7, Z8, Z9, Z10, Z11, Z12\n", "-2.5 Z4, Z5, Z7, Z8, Z9, Z11, Z12\n", "-2.5 Z4, Z5, Z6, Z8, Z9, Z10, Z12\n", "-2.5 Z4, Z5, Z7, Z9, Z10, Z11, Z12\n", "-2.5 Z4, Z5, Z6, Z8, Z10, Z11, Z12\n", "2.5 Z6, Z7, Z9, Z10, Z12\n", "2.5 Z6, Z9, Z10, Z11, Z12\n", "2.5 Z7, Z8, Z9, Z10, Z12\n", "2.5 Z7, Z8, Z10, Z11, Z12\n", "2.5 Z6, Z7, Z8, Z11, Z12\n", "2.5 Z6, Z8, Z9, Z11, Z12\n", "-157.34050000000002 Z13\n", "30.0 Z3, Z5, Z13\n", "-40.0 Z3, Z7, Z13\n", "30.0 Z3, Z9, Z13\n", "-27.5 Z3, Z11, Z13\n", "30.0 Z2, Z4, Z13\n", "-40.0 Z2, Z6, Z13\n", "30.0 Z2, Z8, Z13\n", "-27.5 Z2, Z10, Z13\n", "30.0 Z2, Z3, Z4, Z5, Z13\n", "-40.0 Z2, Z3, Z6, Z7, Z13\n", "30.0 Z2, Z3, Z8, Z9, Z13\n", "-27.5 Z2, Z3, Z10, Z11, Z13\n", "37.5 Z5, Z7, Z13\n", "-52.5 Z5, Z9, Z13\n", "30.0 Z5, Z11, Z13\n", "37.5 Z4, Z6, Z13\n", "-52.5 Z4, Z8, Z13\n", "30.0 Z4, Z10, Z13\n", "37.5 Z4, Z5, Z6, Z7, Z13\n", "-52.5 Z4, Z5, Z8, Z9, Z13\n", "30.0 Z4, Z5, Z10, Z11, Z13\n", "37.5 Z7, Z9, Z13\n", "-40.0 Z7, Z11, Z13\n", "37.5 Z6, Z8, Z13\n", "-40.0 Z6, Z10, Z13\n", "37.5 Z6, Z7, Z8, Z9, Z13\n", "-40.0 Z6, Z7, Z10, Z11, Z13\n", "30.0 Z9, Z11, Z13\n", "30.0 Z8, Z10, Z13\n", "30.0 Z8, Z9, Z10, Z11, Z13\n", "20.0 Z1, Z3, Z13\n", "-25.0 Z1, Z5, Z13\n", "20.0 Z1, Z7, Z13\n", "-25.0 Z1, Z9, Z13\n", "20.0 Z1, Z11, Z13\n", "20.0 Z0, Z2, Z13\n", "-25.0 Z0, Z4, Z13\n", "20.0 Z0, Z6, Z13\n", "-25.0 Z0, Z8, Z13\n", "20.0 Z0, Z10, Z13\n", "20.0 Z0, Z1, Z2, Z3, Z13\n", "-25.0 Z0, Z1, Z4, Z5, Z13\n", "20.0 Z0, Z1, Z6, Z7, Z13\n", "-25.0 Z0, Z1, Z8, Z9, Z13\n", "20.0 Z0, Z1, Z10, Z11, Z13\n", "2.5 Z0, Z1, Z3, Z4, Z13\n", "2.5 Z0, Z1, Z3, Z6, Z13\n", "2.5 Z0, Z1, Z3, Z8, Z13\n", "2.5 Z0, Z1, Z3, Z10, Z13\n", "2.5 Z0, Z3, Z4, Z5, Z13\n", "2.5 Z0, Z3, Z6, Z7, Z13\n", "2.5 Z0, Z3, Z8, Z9, Z13\n", "2.5 Z0, Z3, Z10, Z11, Z13\n", "2.5 Z1, Z2, Z3, Z4, Z13\n", "2.5 Z1, Z2, Z3, Z6, Z13\n", "2.5 Z1, Z2, Z3, Z8, Z13\n", "2.5 Z1, Z2, Z3, Z10, Z13\n", "2.5 Z1, Z2, Z4, Z5, Z13\n", "2.5 Z1, Z2, Z6, Z7, Z13\n", "2.5 Z1, Z2, Z8, Z9, Z13\n", "2.5 Z1, Z2, Z10, Z11, Z13\n", "-7.5 Z1, Z3, Z5, Z7, Z13\n", "7.5 Z1, Z3, Z5, Z9, Z13\n", "-7.5 Z1, Z3, Z5, Z11, Z13\n", "-2.5 Z1, Z3, Z4, Z6, Z13\n", "2.5 Z1, Z3, Z4, Z8, Z13\n", "-2.5 Z1, Z3, Z4, Z10, Z13\n", "-2.5 Z1, Z3, Z4, Z5, Z6, Z7, Z13\n", "2.5 Z1, Z3, Z4, Z5, Z8, Z9, Z13\n", "-2.5 Z1, Z3, Z4, Z5, Z10, Z11, Z13\n", "-7.5 Z1, Z3, Z7, Z9, Z13\n", "7.5 Z1, Z3, Z7, Z11, Z13\n", "-2.5 Z1, Z3, Z6, Z8, Z13\n", "2.5 Z1, Z3, Z6, Z10, Z13\n", "-2.5 Z1, Z3, Z6, Z7, Z8, Z9, Z13\n", "2.5 Z1, Z3, Z6, Z7, Z10, Z11, Z13\n", "-7.5 Z1, Z3, Z9, Z11, Z13\n", "-2.5 Z1, Z3, Z8, Z10, Z13\n", "-2.5 Z1, Z3, Z8, Z9, Z10, Z11, Z13\n", "2.5 Z0, Z1, Z2, Z5, Z13\n", "2.5 Z0, Z1, Z5, Z6, Z13\n", "-7.5 Z0, Z1, Z5, Z8, Z13\n", "2.5 Z0, Z1, Z5, Z10, Z13\n", "2.5 Z0, Z2, Z3, Z5, Z13\n", "2.5 Z0, Z5, Z6, Z7, Z13\n", "-7.5 Z0, Z5, Z8, Z9, Z13\n", "2.5 Z0, Z5, Z10, Z11, Z13\n", "-2.5 Z1, Z2, Z5, Z6, Z13\n", "2.5 Z1, Z2, Z5, Z8, Z13\n", "-2.5 Z1, Z2, Z5, Z10, Z13\n", "-2.5 Z1, Z2, Z3, Z5, Z6, Z7, Z13\n", "2.5 Z1, Z2, Z3, Z5, Z8, Z9, Z13\n", "-2.5 Z1, Z2, Z3, Z5, Z10, Z11, Z13\n", "2.5 Z1, Z4, Z5, Z6, Z13\n", "-7.5 Z1, Z4, Z5, Z8, Z13\n", "2.5 Z1, Z4, Z5, Z10, Z13\n", "2.5 Z1, Z4, Z6, Z7, Z13\n", "-7.5 Z1, Z4, Z8, Z9, Z13\n", "2.5 Z1, Z4, Z10, Z11, Z13\n", "7.5 Z1, Z5, Z7, Z9, Z13\n", "-7.5 Z1, Z5, Z7, Z11, Z13\n", "2.5 Z1, Z5, Z6, Z8, Z13\n", "-2.5 Z1, Z5, Z6, Z10, Z13\n", "2.5 Z1, Z5, Z6, Z7, Z8, Z9, Z13\n", "-2.5 Z1, Z5, Z6, Z7, Z10, Z11, Z13\n", "7.5 Z1, Z5, Z9, Z11, Z13\n", "2.5 Z1, Z5, Z8, Z10, Z13\n", "2.5 Z1, Z5, Z8, Z9, Z10, Z11, Z13\n", "2.5 Z0, Z1, Z2, Z7, Z13\n", "2.5 Z0, Z1, Z4, Z7, Z13\n", "2.5 Z0, Z1, Z7, Z8, Z13\n", "2.5 Z0, Z1, Z7, Z10, Z13\n", "2.5 Z0, Z2, Z3, Z7, Z13\n", "2.5 Z0, Z4, Z5, Z7, Z13\n", "2.5 Z0, Z7, Z8, Z9, Z13\n", "2.5 Z0, Z7, Z10, Z11, Z13\n", "-2.5 Z1, Z2, Z4, Z7, Z13\n", "-2.5 Z1, Z2, Z7, Z8, Z13\n", "2.5 Z1, Z2, Z7, Z10, Z13\n", "-2.5 Z1, Z2, Z3, Z4, Z5, Z7, Z13\n", "-2.5 Z1, Z2, Z3, Z7, Z8, Z9, Z13\n", "2.5 Z1, Z2, Z3, Z7, Z10, Z11, Z13\n", "2.5 Z1, Z4, Z7, Z8, Z13\n", "-2.5 Z1, Z4, Z7, Z10, Z13\n", "2.5 Z1, Z4, Z5, Z7, Z8, Z9, Z13\n", "-2.5 Z1, Z4, Z5, Z7, Z10, Z11, Z13\n", "2.5 Z1, Z6, Z7, Z8, Z13\n", "2.5 Z1, Z6, Z7, Z10, Z13\n", "2.5 Z1, Z6, Z8, Z9, Z13\n", "2.5 Z1, Z6, Z10, Z11, Z13\n", "-7.5 Z1, Z7, Z9, Z11, Z13\n", "-2.5 Z1, Z7, Z8, Z10, Z13\n", "-2.5 Z1, Z7, Z8, Z9, Z10, Z11, Z13\n", "2.5 Z0, Z1, Z2, Z9, Z13\n", "-7.5 Z0, Z1, Z4, Z9, Z13\n", "2.5 Z0, Z1, Z6, Z9, Z13\n", "2.5 Z0, Z1, Z9, Z10, Z13\n", "2.5 Z0, Z2, Z3, Z9, Z13\n", "-7.5 Z0, Z4, Z5, Z9, Z13\n", "2.5 Z0, Z6, Z7, Z9, Z13\n", "2.5 Z0, Z9, Z10, Z11, Z13\n", "2.5 Z1, Z2, Z4, Z9, Z13\n", "-2.5 Z1, Z2, Z6, Z9, Z13\n", "-2.5 Z1, Z2, Z9, Z10, Z13\n", "2.5 Z1, Z2, Z3, Z4, Z5, Z9, Z13\n", "-2.5 Z1, Z2, Z3, Z6, Z7, Z9, Z13\n", "-2.5 Z1, Z2, Z3, Z9, Z10, Z11, Z13\n", "2.5 Z1, Z4, Z6, Z9, Z13\n", "2.5 Z1, Z4, Z9, Z10, Z13\n", "2.5 Z1, Z4, Z5, Z6, Z7, Z9, Z13\n", "2.5 Z1, Z4, Z5, Z9, Z10, Z11, Z13\n", "-2.5 Z1, Z6, Z9, Z10, Z13\n", "-2.5 Z1, Z6, Z7, Z9, Z10, Z11, Z13\n", "2.5 Z1, Z8, Z9, Z10, Z13\n", "2.5 Z1, Z8, Z10, Z11, Z13\n", "2.5 Z0, Z1, Z2, Z11, Z13\n", "2.5 Z0, Z1, Z4, Z11, Z13\n", "2.5 Z0, Z1, Z6, Z11, Z13\n", "2.5 Z0, Z1, Z8, Z11, Z13\n", "2.5 Z0, Z2, Z3, Z11, Z13\n", "2.5 Z0, Z4, Z5, Z11, Z13\n", "2.5 Z0, Z6, Z7, Z11, Z13\n", "2.5 Z0, Z8, Z9, Z11, Z13\n", "-2.5 Z1, Z2, Z4, Z11, Z13\n", "2.5 Z1, Z2, Z6, Z11, Z13\n", "-2.5 Z1, Z2, Z8, Z11, Z13\n", "-2.5 Z1, Z2, Z3, Z4, Z5, Z11, Z13\n", "2.5 Z1, Z2, Z3, Z6, Z7, Z11, Z13\n", "-2.5 Z1, Z2, Z3, Z8, Z9, Z11, Z13\n", "-2.5 Z1, Z4, Z6, Z11, Z13\n", "2.5 Z1, Z4, Z8, Z11, Z13\n", "-2.5 Z1, Z4, Z5, Z6, Z7, Z11, Z13\n", "2.5 Z1, Z4, Z5, Z8, Z9, Z11, Z13\n", "-2.5 Z1, Z6, Z8, Z11, Z13\n", "-2.5 Z1, Z6, Z7, Z8, Z9, Z11, Z13\n", "-2.5 Z0, Z2, Z5, Z7, Z13\n", "2.5 Z0, Z2, Z5, Z9, Z13\n", "-2.5 Z0, Z2, Z5, Z11, Z13\n", "-7.5 Z0, Z2, Z4, Z6, Z13\n", "7.5 Z0, Z2, Z4, Z8, Z13\n", "-7.5 Z0, Z2, Z4, Z10, Z13\n", "-2.5 Z0, Z2, Z4, Z5, Z6, Z7, Z13\n", "2.5 Z0, Z2, Z4, Z5, Z8, Z9, Z13\n", "-2.5 Z0, Z2, Z4, Z5, Z10, Z11, Z13\n", "-2.5 Z0, Z2, Z7, Z9, Z13\n", "2.5 Z0, Z2, Z7, Z11, Z13\n", "-7.5 Z0, Z2, Z6, Z8, Z13\n", "7.5 Z0, Z2, Z6, Z10, Z13\n", "-2.5 Z0, Z2, Z6, Z7, Z8, Z9, Z13\n", "2.5 Z0, Z2, Z6, Z7, Z10, Z11, Z13\n", "-2.5 Z0, Z2, Z9, Z11, Z13\n", "-7.5 Z0, Z2, Z8, Z10, Z13\n", "-2.5 Z0, Z2, Z8, Z9, Z10, Z11, Z13\n", "-2.5 Z0, Z3, Z4, Z7, Z13\n", "2.5 Z0, Z3, Z4, Z9, Z13\n", "-2.5 Z0, Z3, Z4, Z11, Z13\n", "-2.5 Z0, Z2, Z3, Z4, Z6, Z7, Z13\n", "2.5 Z0, Z2, Z3, Z4, Z8, Z9, Z13\n", "-2.5 Z0, Z2, Z3, Z4, Z10, Z11, Z13\n", "2.5 Z0, Z4, Z7, Z9, Z13\n", "-2.5 Z0, Z4, Z7, Z11, Z13\n", "7.5 Z0, Z4, Z6, Z8, Z13\n", "-7.5 Z0, Z4, Z6, Z10, Z13\n", "2.5 Z0, Z4, Z6, Z7, Z8, Z9, Z13\n", "-2.5 Z0, Z4, Z6, Z7, Z10, Z11, Z13\n", "2.5 Z0, Z4, Z9, Z11, Z13\n", "7.5 Z0, Z4, Z8, Z10, Z13\n", "2.5 Z0, Z4, Z8, Z9, Z10, Z11, Z13\n", "-2.5 Z0, Z3, Z5, Z6, Z13\n", "-2.5 Z0, Z3, Z6, Z9, Z13\n", "2.5 Z0, Z3, Z6, Z11, Z13\n", "-2.5 Z0, Z2, Z3, Z4, Z5, Z6, Z13\n", "-2.5 Z0, Z2, Z3, Z6, Z8, Z9, Z13\n", "2.5 Z0, Z2, Z3, Z6, Z10, Z11, Z13\n", "2.5 Z0, Z5, Z6, Z9, Z13\n", "-2.5 Z0, Z5, Z6, Z11, Z13\n", "2.5 Z0, Z4, Z5, Z6, Z8, Z9, Z13\n", "-2.5 Z0, Z4, Z5, Z6, Z10, Z11, Z13\n", "-2.5 Z0, Z6, Z9, Z11, Z13\n", "-7.5 Z0, Z6, Z8, Z10, Z13\n", "-2.5 Z0, Z6, Z8, Z9, Z10, Z11, Z13\n", "2.5 Z0, Z3, Z5, Z8, Z13\n", "-2.5 Z0, Z3, Z7, Z8, Z13\n", "-2.5 Z0, Z3, Z8, Z11, Z13\n", "2.5 Z0, Z2, Z3, Z4, Z5, Z8, Z13\n", "-2.5 Z0, Z2, Z3, Z6, Z7, Z8, Z13\n", "-2.5 Z0, Z2, Z3, Z8, Z10, Z11, Z13\n", "2.5 Z0, Z5, Z7, Z8, Z13\n", "2.5 Z0, Z5, Z8, Z11, Z13\n", "2.5 Z0, Z4, Z5, Z6, Z7, Z8, Z13\n", "2.5 Z0, Z4, Z5, Z8, Z10, Z11, Z13\n", "-2.5 Z0, Z7, Z8, Z11, Z13\n", "-2.5 Z0, Z6, Z7, Z8, Z10, Z11, Z13\n", "-2.5 Z0, Z3, Z5, Z10, Z13\n", "2.5 Z0, Z3, Z7, Z10, Z13\n", "-2.5 Z0, Z3, Z9, Z10, Z13\n", "-2.5 Z0, Z2, Z3, Z4, Z5, Z10, Z13\n", "2.5 Z0, Z2, Z3, Z6, Z7, Z10, Z13\n", "-2.5 Z0, Z2, Z3, Z8, Z9, Z10, Z13\n", "-2.5 Z0, Z5, Z7, Z10, Z13\n", "2.5 Z0, Z5, Z9, Z10, Z13\n", "-2.5 Z0, Z4, Z5, Z6, Z7, Z10, Z13\n", "2.5 Z0, Z4, Z5, Z8, Z9, Z10, Z13\n", "-2.5 Z0, Z7, Z9, Z10, Z13\n", "-2.5 Z0, Z6, Z7, Z8, Z9, Z10, Z13\n", "-2.5 Z0, Z1, Z2, Z3, Z5, Z7, Z13\n", "2.5 Z0, Z1, Z2, Z3, Z5, Z9, Z13\n", "-2.5 Z0, Z1, Z2, Z3, Z5, Z11, Z13\n", "-2.5 Z0, Z1, Z2, Z3, Z4, Z6, Z13\n", "2.5 Z0, Z1, Z2, Z3, Z4, Z8, Z13\n", "-2.5 Z0, Z1, Z2, Z3, Z4, Z10, Z13\n", "-7.5 Z0, Z1, Z2, Z3, Z4, Z5, Z6, Z7, Z13\n", "7.5 Z0, Z1, Z2, Z3, Z4, Z5, Z8, Z9, Z13\n", "-7.5 Z0, Z1, Z2, Z3, Z4, Z5, Z10, Z11, Z13\n", "-2.5 Z0, Z1, Z2, Z3, Z7, Z9, Z13\n", "2.5 Z0, Z1, Z2, Z3, Z7, Z11, Z13\n", "-2.5 Z0, Z1, Z2, Z3, Z6, Z8, Z13\n", "2.5 Z0, Z1, Z2, Z3, Z6, Z10, Z13\n", "-7.5 Z0, Z1, Z2, Z3, Z6, Z7, Z8, Z9, Z13\n", "7.5 Z0, Z1, Z2, Z3, Z6, Z7, Z10, Z11, Z13\n", "-2.5 Z0, Z1, Z2, Z3, Z9, Z11, Z13\n", "-2.5 Z0, Z1, Z2, Z3, Z8, Z10, Z13\n", "-7.5 Z0, Z1, Z2, Z3, Z8, Z9, Z10, Z11, Z13\n", "-2.5 Z0, Z1, Z3, Z4, Z5, Z7, Z13\n", "2.5 Z0, Z1, Z3, Z4, Z5, Z9, Z13\n", "-2.5 Z0, Z1, Z3, Z4, Z5, Z11, Z13\n", "-2.5 Z0, Z1, Z2, Z4, Z5, Z6, Z13\n", "2.5 Z0, Z1, Z2, Z4, Z5, Z8, Z13\n", "-2.5 Z0, Z1, Z2, Z4, Z5, Z10, Z13\n", "2.5 Z0, Z1, Z4, Z5, Z7, Z9, Z13\n", "-2.5 Z0, Z1, Z4, Z5, Z7, Z11, Z13\n", "2.5 Z0, Z1, Z4, Z5, Z6, Z8, Z13\n", "-2.5 Z0, Z1, Z4, Z5, Z6, Z10, Z13\n", "7.5 Z0, Z1, Z4, Z5, Z6, Z7, Z8, Z9, Z13\n", "-7.5 Z0, Z1, Z4, Z5, Z6, Z7, Z10, Z11, Z13\n", "2.5 Z0, Z1, Z4, Z5, Z9, Z11, Z13\n", "2.5 Z0, Z1, Z4, Z5, Z8, Z10, Z13\n", "7.5 Z0, Z1, Z4, Z5, Z8, Z9, Z10, Z11, Z13\n", "-2.5 Z0, Z1, Z3, Z5, Z6, Z7, Z13\n", "-2.5 Z0, Z1, Z3, Z6, Z7, Z9, Z13\n", "2.5 Z0, Z1, Z3, Z6, Z7, Z11, Z13\n", "-2.5 Z0, Z1, Z2, Z4, Z6, Z7, Z13\n", "-2.5 Z0, Z1, Z2, Z6, Z7, Z8, Z13\n", "2.5 Z0, Z1, Z2, Z6, Z7, Z10, Z13\n", "2.5 Z0, Z1, Z5, Z6, Z7, Z9, Z13\n", "-2.5 Z0, Z1, Z5, Z6, Z7, Z11, Z13\n", "2.5 Z0, Z1, Z4, Z6, Z7, Z8, Z13\n", "-2.5 Z0, Z1, Z4, Z6, Z7, Z10, Z13\n", "-2.5 Z0, Z1, Z6, Z7, Z9, Z11, Z13\n", "-2.5 Z0, Z1, Z6, Z7, Z8, Z10, Z13\n", "-7.5 Z0, Z1, Z6, Z7, Z8, Z9, Z10, Z11, Z13\n", "2.5 Z0, Z1, Z3, Z5, Z8, Z9, Z13\n", "-2.5 Z0, Z1, Z3, Z7, Z8, Z9, Z13\n", "-2.5 Z0, Z1, Z3, Z8, Z9, Z11, Z13\n", "2.5 Z0, Z1, Z2, Z4, Z8, Z9, Z13\n", "-2.5 Z0, Z1, Z2, Z6, Z8, Z9, Z13\n", "-2.5 Z0, Z1, Z2, Z8, Z9, Z10, Z13\n", "2.5 Z0, Z1, Z5, Z7, Z8, Z9, Z13\n", "2.5 Z0, Z1, Z5, Z8, Z9, Z11, Z13\n", "2.5 Z0, Z1, Z4, Z6, Z8, Z9, Z13\n", "2.5 Z0, Z1, Z4, Z8, Z9, Z10, Z13\n", "-2.5 Z0, Z1, Z7, Z8, Z9, Z11, Z13\n", "-2.5 Z0, Z1, Z6, Z8, Z9, Z10, Z13\n", "-2.5 Z0, Z1, Z3, Z5, Z10, Z11, Z13\n", "2.5 Z0, Z1, Z3, Z7, Z10, Z11, Z13\n", "-2.5 Z0, Z1, Z3, Z9, Z10, Z11, Z13\n", "-2.5 Z0, Z1, Z2, Z4, Z10, Z11, Z13\n", "2.5 Z0, Z1, Z2, Z6, Z10, Z11, Z13\n", "-2.5 Z0, Z1, Z2, Z8, Z10, Z11, Z13\n", "-2.5 Z0, Z1, Z5, Z7, Z10, Z11, Z13\n", "2.5 Z0, Z1, Z5, Z9, Z10, Z11, Z13\n", "-2.5 Z0, Z1, Z4, Z6, Z10, Z11, Z13\n", "2.5 Z0, Z1, Z4, Z8, Z10, Z11, Z13\n", "-2.5 Z0, Z1, Z7, Z9, Z10, Z11, Z13\n", "-2.5 Z0, Z1, Z6, Z8, Z10, Z11, Z13\n", "5.0 Z2, Z3, Z5, Z6, Z13\n", "5.0 Z2, Z3, Z5, Z8, Z13\n", "2.5 Z2, Z3, Z5, Z10, Z13\n", "5.0 Z2, Z5, Z6, Z7, Z13\n", "5.0 Z2, Z5, Z8, Z9, Z13\n", "2.5 Z2, Z5, Z10, Z11, Z13\n", "5.0 Z3, Z4, Z5, Z6, Z13\n", "5.0 Z3, Z4, Z5, Z8, Z13\n", "2.5 Z3, Z4, Z5, Z10, Z13\n", "5.0 Z3, Z4, Z6, Z7, Z13\n", "5.0 Z3, Z4, Z8, Z9, Z13\n", "2.5 Z3, Z4, Z10, Z11, Z13\n", "-15.0 Z3, Z5, Z7, Z9, Z13\n", "7.5 Z3, Z5, Z7, Z11, Z13\n", "-5.0 Z3, Z5, Z6, Z8, Z13\n", "2.5 Z3, Z5, Z6, Z10, Z13\n", "-5.0 Z3, Z5, Z6, Z7, Z8, Z9, Z13\n", "2.5 Z3, Z5, Z6, Z7, Z10, Z11, Z13\n", "-7.5 Z3, Z5, Z9, Z11, Z13\n", "-2.5 Z3, Z5, Z8, Z10, Z13\n", "-2.5 Z3, Z5, Z8, Z9, Z10, Z11, Z13\n", "5.0 Z2, Z3, Z4, Z7, Z13\n", "5.0 Z2, Z3, Z7, Z8, Z13\n", "-7.5 Z2, Z3, Z7, Z10, Z13\n", "5.0 Z2, Z4, Z5, Z7, Z13\n", "5.0 Z2, Z7, Z8, Z9, Z13\n", "-7.5 Z2, Z7, Z10, Z11, Z13\n", "-5.0 Z3, Z4, Z7, Z8, Z13\n", "2.5 Z3, Z4, Z7, Z10, Z13\n", "-5.0 Z3, Z4, Z5, Z7, Z8, Z9, Z13\n", "2.5 Z3, Z4, Z5, Z7, Z10, Z11, Z13\n", "5.0 Z3, Z6, Z7, Z8, Z13\n", "-7.5 Z3, Z6, Z7, Z10, Z13\n", "5.0 Z3, Z6, Z8, Z9, Z13\n", "-7.5 Z3, Z6, Z10, Z11, Z13\n", "7.5 Z3, Z7, Z9, Z11, Z13\n", "2.5 Z3, Z7, Z8, Z10, Z13\n", "2.5 Z3, Z7, Z8, Z9, Z10, Z11, Z13\n", "5.0 Z2, Z3, Z4, Z9, Z13\n", "5.0 Z2, Z3, Z6, Z9, Z13\n", "2.5 Z2, Z3, Z9, Z10, Z13\n", "5.0 Z2, Z4, Z5, Z9, Z13\n", "5.0 Z2, Z6, Z7, Z9, Z13\n", "2.5 Z2, Z9, Z10, Z11, Z13\n", "-5.0 Z3, Z4, Z6, Z9, Z13\n", "-2.5 Z3, Z4, Z9, Z10, Z13\n", "-5.0 Z3, Z4, Z5, Z6, Z7, Z9, Z13\n", "-2.5 Z3, Z4, Z5, Z9, Z10, Z11, Z13\n", "2.5 Z3, Z6, Z9, Z10, Z13\n", "2.5 Z3, Z6, Z7, Z9, Z10, Z11, Z13\n", "2.5 Z3, Z8, Z9, Z10, Z13\n", "2.5 Z3, Z8, Z10, Z11, Z13\n", "2.5 Z2, Z3, Z4, Z11, Z13\n", "-7.5 Z2, Z3, Z6, Z11, Z13\n", "2.5 Z2, Z3, Z8, Z11, Z13\n", "2.5 Z2, Z4, Z5, Z11, Z13\n", "-7.5 Z2, Z6, Z7, Z11, Z13\n", "2.5 Z2, Z8, Z9, Z11, Z13\n", "2.5 Z3, Z4, Z6, Z11, Z13\n", "-2.5 Z3, Z4, Z8, Z11, Z13\n", "2.5 Z3, Z4, Z5, Z6, Z7, Z11, Z13\n", "-2.5 Z3, Z4, Z5, Z8, Z9, Z11, Z13\n", "2.5 Z3, Z6, Z8, Z11, Z13\n", "2.5 Z3, Z6, Z7, Z8, Z9, Z11, Z13\n", "-5.0 Z2, Z4, Z7, Z9, Z13\n", "2.5 Z2, Z4, Z7, Z11, Z13\n", "-15.0 Z2, Z4, Z6, Z8, Z13\n", "7.5 Z2, Z4, Z6, Z10, Z13\n", "-5.0 Z2, Z4, Z6, Z7, Z8, Z9, Z13\n", "2.5 Z2, Z4, Z6, Z7, Z10, Z11, Z13\n", "-2.5 Z2, Z4, Z9, Z11, Z13\n", "-7.5 Z2, Z4, Z8, Z10, Z13\n", "-2.5 Z2, Z4, Z8, Z9, Z10, Z11, Z13\n", "-5.0 Z2, Z5, Z6, Z9, Z13\n", "2.5 Z2, Z5, Z6, Z11, Z13\n", "-5.0 Z2, Z4, Z5, Z6, Z8, Z9, Z13\n", "2.5 Z2, Z4, Z5, Z6, Z10, Z11, Z13\n", "2.5 Z2, Z6, Z9, Z11, Z13\n", "7.5 Z2, Z6, Z8, Z10, Z13\n", "2.5 Z2, Z6, Z8, Z9, Z10, Z11, Z13\n", "-5.0 Z2, Z5, Z7, Z8, Z13\n", "-2.5 Z2, Z5, Z8, Z11, Z13\n", "-5.0 Z2, Z4, Z5, Z6, Z7, Z8, Z13\n", "-2.5 Z2, Z4, Z5, Z8, Z10, Z11, Z13\n", "2.5 Z2, Z7, Z8, Z11, Z13\n", "2.5 Z2, Z6, Z7, Z8, Z10, Z11, Z13\n", "2.5 Z2, Z5, Z7, Z10, Z13\n", "-2.5 Z2, Z5, Z9, Z10, Z13\n", "2.5 Z2, Z4, Z5, Z6, Z7, Z10, Z13\n", "-2.5 Z2, Z4, Z5, Z8, Z9, Z10, Z13\n", "2.5 Z2, Z7, Z9, Z10, Z13\n", "2.5 Z2, Z6, Z7, Z8, Z9, Z10, Z13\n", "-5.0 Z2, Z3, Z4, Z5, Z7, Z9, Z13\n", "2.5 Z2, Z3, Z4, Z5, Z7, Z11, Z13\n", "-5.0 Z2, Z3, Z4, Z5, Z6, Z8, Z13\n", "2.5 Z2, Z3, Z4, Z5, Z6, Z10, Z13\n", "-15.0 Z2, Z3, Z4, Z5, Z6, Z7, Z8, Z9, Z13\n", "7.5 Z2, Z3, Z4, Z5, Z6, Z7, Z10, Z11, Z13\n", "-2.5 Z2, Z3, Z4, Z5, Z9, Z11, Z13\n", "-2.5 Z2, Z3, Z4, Z5, Z8, Z10, Z13\n", "-7.5 Z2, Z3, Z4, Z5, Z8, Z9, Z10, Z11, Z13\n", "-5.0 Z2, Z3, Z5, Z6, Z7, Z9, Z13\n", "2.5 Z2, Z3, Z5, Z6, Z7, Z11, Z13\n", "-5.0 Z2, Z3, Z4, Z6, Z7, Z8, Z13\n", "2.5 Z2, Z3, Z4, Z6, Z7, Z10, Z13\n", "2.5 Z2, Z3, Z6, Z7, Z9, Z11, Z13\n", "2.5 Z2, Z3, Z6, Z7, Z8, Z10, Z13\n", "7.5 Z2, Z3, Z6, Z7, Z8, Z9, Z10, Z11, Z13\n", "-5.0 Z2, Z3, Z5, Z7, Z8, Z9, Z13\n", "-2.5 Z2, Z3, Z5, Z8, Z9, Z11, Z13\n", "-5.0 Z2, Z3, Z4, Z6, Z8, Z9, Z13\n", "-2.5 Z2, Z3, Z4, Z8, Z9, Z10, Z13\n", "2.5 Z2, Z3, Z7, Z8, Z9, Z11, Z13\n", "2.5 Z2, Z3, Z6, Z8, Z9, Z10, Z13\n", "2.5 Z2, Z3, Z5, Z7, Z10, Z11, Z13\n", "-2.5 Z2, Z3, Z5, Z9, Z10, Z11, Z13\n", "2.5 Z2, Z3, Z4, Z6, Z10, Z11, Z13\n", "-2.5 Z2, Z3, Z4, Z8, Z10, Z11, Z13\n", "2.5 Z2, Z3, Z7, Z9, Z10, Z11, Z13\n", "2.5 Z2, Z3, Z6, Z8, Z10, Z11, Z13\n", "7.5 Z4, Z5, Z7, Z8, Z13\n", "5.0 Z4, Z5, Z7, Z10, Z13\n", "7.5 Z4, Z7, Z8, Z9, Z13\n", "5.0 Z4, Z7, Z10, Z11, Z13\n", "7.5 Z5, Z6, Z7, Z8, Z13\n", "5.0 Z5, Z6, Z7, Z10, Z13\n", "7.5 Z5, Z6, Z8, Z9, Z13\n", "5.0 Z5, Z6, Z10, Z11, Z13\n", "-15.0 Z5, Z7, Z9, Z11, Z13\n", "-5.0 Z5, Z7, Z8, Z10, Z13\n", "-5.0 Z5, Z7, Z8, Z9, Z10, Z11, Z13\n", "7.5 Z4, Z5, Z6, Z9, Z13\n", "5.0 Z4, Z5, Z9, Z10, Z13\n", "7.5 Z4, Z6, Z7, Z9, Z13\n", "5.0 Z4, Z9, Z10, Z11, Z13\n", "-5.0 Z5, Z6, Z9, Z10, Z13\n", "-5.0 Z5, Z6, Z7, Z9, Z10, Z11, Z13\n", "5.0 Z5, Z8, Z9, Z10, Z13\n", "5.0 Z5, Z8, Z10, Z11, Z13\n", "5.0 Z4, Z5, Z6, Z11, Z13\n", "5.0 Z4, Z5, Z8, Z11, Z13\n", "5.0 Z4, Z6, Z7, Z11, Z13\n", "5.0 Z4, Z8, Z9, Z11, Z13\n", "-5.0 Z5, Z6, Z8, Z11, Z13\n", "-5.0 Z5, Z6, Z7, Z8, Z9, Z11, Z13\n", "-5.0 Z4, Z6, Z9, Z11, Z13\n", "-15.0 Z4, Z6, Z8, Z10, Z13\n", "-5.0 Z4, Z6, Z8, Z9, Z10, Z11, Z13\n", "-5.0 Z4, Z7, Z8, Z11, Z13\n", "-5.0 Z4, Z6, Z7, Z8, Z10, Z11, Z13\n", "-5.0 Z4, Z7, Z9, Z10, Z13\n", "-5.0 Z4, Z6, Z7, Z8, Z9, Z10, Z13\n", "-5.0 Z4, Z5, Z6, Z7, Z9, Z11, Z13\n", "-5.0 Z4, Z5, Z6, Z7, Z8, Z10, Z13\n", "-15.0 Z4, Z5, Z6, Z7, Z8, Z9, Z10, Z11, Z13\n", "-5.0 Z4, Z5, Z7, Z8, Z9, Z11, Z13\n", "-5.0 Z4, Z5, Z6, Z8, Z9, Z10, Z13\n", "-5.0 Z4, Z5, Z7, Z9, Z10, Z11, Z13\n", "-5.0 Z4, Z5, Z6, Z8, Z10, Z11, Z13\n", "5.0 Z6, Z7, Z9, Z10, Z13\n", "5.0 Z6, Z9, Z10, Z11, Z13\n", "5.0 Z7, Z8, Z9, Z10, Z13\n", "5.0 Z7, Z8, Z10, Z11, Z13\n", "5.0 Z6, Z7, Z8, Z11, Z13\n", "5.0 Z6, Z8, Z9, Z11, Z13\n" ] } ], "source": [ "# lambda0 and lambda1 are two parameters used in constraining the spatial structure of protein.\n", "h = protein.get_protein_hamiltonian(lambda0=10.0, lambda1=10.0)\n", "print(h)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "### Variational quantum circuit\n", "Users can use variational quantum algorithm (VQA) to solve protein folding problem, the variational quantum circuit is shown below" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from folding_protein import circuit\n", "\n", "# The following code builds a 4-qubit parameterized circuit that contains two circuit blocks (NOTE: one circuit block contains a layer of RY and a layer of CNOT).\n", "cir = circuit(4, 2)\n", "cir.plot()" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## How to use\n", "Users can customize their task via a configuration file `config.toml`, the user defined settings are listed below.\n", "```toml\n", "# The configuration file for protein folding problem\n", "\n", "# The amino acides consists in protein. \n", "amino_acids = [\"A\", \"P\", \"R\", \"L\", \"R\", \"F\", \"Y\"]\n", "# Pair of indices indicates the potentially interact amino acide pair.\n", "possible_contactions = [[0, 5], [1, 6]]\n", "# Depth of the quantum circuit used in VQE\n", "depth = 1\n", "# Number of VQE iterations\n", "num_iterations = 200\n", "# The condition for VQE convergence\n", "tol = 1e-3\n", "# The number of steps between two consecutive loss records\n", "save_every = 10\n", "# learning rate for the optimizer\n", "learning_rate = 0.5\n", "```\n", "In order to obtained the 3D structure of the amino acid sequence, user can run\n", "```shell\n", "python folding_protein.py --config config.toml\n", "```\n", "in terminal, the program will save the figure automatically after the computation.\n", "\n", "![](APRLRFY_3d_structure.jpg)\n" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## References \n", "\\[1\\] Pande, Vijay S., and Daniel S. Rokhsar. \"Folding pathway of a lattice model for proteins.\" Proceedings of the National Academy of Sciences 96.4 (1999): 1273-1278.\n", "\n", "\\[2\\] Robert, Anton, et al. \"Resource-efficient quantum algorithm for protein folding.\" npj Quantum Information 7.1 (2021): 1-5." ] }, { "cell_type": "markdown", "metadata": {}, "source": [] } ], "metadata": { "kernelspec": { "display_name": "modellib", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.15 (default, Nov 10 2022, 12:46:26) \n[Clang 14.0.6 ]" }, "orig_nbformat": 4, "vscode": { "interpreter": { "hash": "8f24120f890011f53feb4ed62c47961d8565ec1de8b7cb23548c15bd6da8f2d2" } } }, "nbformat": 4, "nbformat_minor": 2 }