/*
 * Copyright 2022 GlobalFoundries PDK Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

  cell(gf180mcu_fd_sc_mcu7t5v0__nand2_4) {
    area : 35.123200 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&!A2" ;
      value : "0.00015088" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&A2" ;
      value : "0.000151795" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&!A2" ;
      value : "0.00031142" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&A2" ;
      value : "0.00026152" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "0.00031142" ;
    }

    pg_pin(VDD) {
      voltage_name : VDD ;
      pg_type : primary_power ;
    }

    pg_pin(VSS) {
      voltage_name : VSS ;
      pg_type : primary_ground ;
    }

    pin(A1) {
      capacitance : 0.01906 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 4 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.1652, 0.1651, 0.1639, 0.1631, 0.1631, 0.1629, 0.1632, 0.1631, \
                 0.1631, 0.1629");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.1072, -0.107, -0.1068, -0.1065, -0.1067, -0.1067, -0.107, -0.1069, \
                 -0.1069, -0.107");
        }
      }
    }

    pin(A2) {
      capacitance : 0.01935 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 4 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!A1" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("0.1629, 0.1547, 0.1481, 0.1458, 0.1452, 0.1452, 0.1452, 0.1451, \
                 0.1452, 0.1452");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          values("-0.1461, -0.1459, -0.1455, -0.1449, -0.145, -0.1447, -0.1451, \
                 -0.1451, -0.1448, -0.1448");
        }
      }
    }

    pin(ZN) {
      direction : output ;
      function : "((!A1)|(!A2))" ;
      max_capacitance : 0.8519 ;
      max_transition : 4 ;
      min_capacitance : 0.001 ;
      output_voltage : default ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        related_pin : "A1" ;
        when : "A2" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.006873, 0.02749, 0.06686, 0.1282, 0.2143, 0.3275, 0.4702, 0.6443, 0.8519");
          values("0.00756, 0.01004, 0.01382, 0.01603, 0.01729, 0.01764, 0.01797, 0.01824, 0.01831, 0.01837",\
                 "0.004166, 0.00652, 0.01109, 0.01427, 0.01588, 0.01683, 0.01737, 0.01769, 0.01798, 0.01812",\
                 "0.02511, 0.02387, 0.02161, 0.02031, 0.01979, 0.01931, 0.01923, 0.01901, 0.01917, 0.01916",\
                 "0.1048, 0.09619, 0.07717, 0.06067, 0.04844, 0.04018, 0.03441, 0.03016, 0.0274, 0.02585",\
                 "0.2576, 0.2405, 0.2003, 0.1584, 0.1247, 0.09934, 0.08065, 0.06685, 0.05653, 0.04898",\
                 "0.488, 0.4642, 0.4024, 0.3306, 0.2671, 0.2155, 0.1752, 0.1441, 0.1202, 0.1013",\
                 "0.8006, 0.7716, 0.6924, 0.589, 0.4899, 0.4054, 0.336, 0.2796, 0.2343, 0.198",\
                 "1.201, 1.167, 1.072, 0.9415, 0.8046, 0.6815, 0.5755, 0.4878, 0.4145, 0.3536",\
                 "1.693, 1.656, 1.548, 1.392, 1.22, 1.054, 0.9074, 0.7805, 0.6729, 0.5816",\
                 "2.283, 2.243, 2.123, 1.945, 1.739, 1.532, 1.341, 1.169, 1.022, 0.894");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.006873, 0.02749, 0.06686, 0.1282, 0.2143, 0.3275, 0.4702, 0.6443, 0.8519");
          values("0.4191, 0.4249, 0.4343, 0.4398, 0.4424, 0.445, 0.4503, 0.4545, 0.4574, 0.4679",\
                 "0.4163, 0.4208, 0.4296, 0.4383, 0.442, 0.446, 0.4513, 0.457, 0.4639, 0.4684",\
                 "0.4471, 0.4453, 0.4427, 0.4424, 0.4469, 0.4495, 0.4538, 0.46, 0.4619, 0.4719",\
                 "0.5457, 0.5351, 0.5138, 0.4934, 0.4809, 0.4735, 0.4703, 0.4705, 0.4759, 0.4799",\
                 "0.7235, 0.7048, 0.6596, 0.6156, 0.5756, 0.5465, 0.5278, 0.516, 0.5099, 0.5034",\
                 "0.9834, 0.96, 0.8951, 0.8187, 0.7526, 0.6925, 0.6458, 0.613, 0.5879, 0.5709",\
                 "1.332, 1.304, 1.224, 1.119, 1.015, 0.9255, 0.8468, 0.781, 0.7309, 0.6919",\
                 "1.775, 1.744, 1.653, 1.521, 1.38, 1.252, 1.141, 1.04, 0.9554, 0.8864",\
                 "2.318, 2.284, 2.184, 2.03, 1.855, 1.686, 1.536, 1.401, 1.276, 1.171",\
                 "2.967, 2.932, 2.822, 2.652, 2.445, 2.234, 2.039, 1.869, 1.704, 1.562");
        }
      }

      internal_power() {
        related_pin : "A2" ;
        when : "A1" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.006873, 0.02749, 0.06686, 0.1282, 0.2143, 0.3275, 0.4702, 0.6443, 0.8519");
          values("0.007752, 0.01024, 0.01408, 0.01631, 0.01726, 0.01775, 0.018, 0.01818, 0.01828, 0.01842",\
                 "0.0002769, 0.003537, 0.009455, 0.0133, 0.01554, 0.01653, 0.01732, 0.01772, 0.01784, 0.01802",\
                 "0.01012, 0.01085, 0.01264, 0.01456, 0.01604, 0.01682, 0.01734, 0.01764, 0.01793, 0.01812",\
                 "0.08324, 0.07667, 0.06274, 0.05099, 0.04162, 0.03542, 0.03115, 0.02814, 0.02566, 0.02413",\
                 "0.2377, 0.2224, 0.1861, 0.1489, 0.1185, 0.09557, 0.07828, 0.06543, 0.05584, 0.0486",\
                 "0.477, 0.4546, 0.3954, 0.3268, 0.2657, 0.2163, 0.1774, 0.1473, 0.1235, 0.1048",\
                 "0.8052, 0.7766, 0.6981, 0.5966, 0.499, 0.4153, 0.3467, 0.2907, 0.2455, 0.2089",\
                 "1.226, 1.193, 1.098, 0.9664, 0.8299, 0.7063, 0.6, 0.5114, 0.4375, 0.3759",\
                 "1.745, 1.708, 1.6, 1.442, 1.267, 1.1, 0.951, 0.8224, 0.7128, 0.6197",\
                 "2.368, 2.328, 2.207, 2.026, 1.816, 1.605, 1.409, 1.236, 1.084, 0.9533");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.006873, 0.02749, 0.06686, 0.1282, 0.2143, 0.3275, 0.4702, 0.6443, 0.8519");
          values("0.5676, 0.5682, 0.5715, 0.5743, 0.5742, 0.5783, 0.5826, 0.5903, 0.5957, 0.6052",\
                 "0.5634, 0.5643, 0.5662, 0.5705, 0.5729, 0.5743, 0.5821, 0.5868, 0.5932, 0.6037",\
                 "0.5952, 0.5915, 0.5845, 0.5805, 0.5792, 0.5793, 0.5851, 0.5893, 0.5967, 0.6037",\
                 "0.6973, 0.6866, 0.6628, 0.638, 0.6197, 0.6098, 0.6041, 0.6053, 0.6067, 0.6147",\
                 "0.8835, 0.8665, 0.8216, 0.7719, 0.7273, 0.6913, 0.6696, 0.6548, 0.6492, 0.6447",\
                 "1.16, 1.138, 1.077, 0.996, 0.9185, 0.8518, 0.8001, 0.7618, 0.7367, 0.7127",\
                 "1.531, 1.505, 1.431, 1.322, 1.208, 1.106, 1.018, 0.9458, 0.8872, 0.8482",\
                 "2.002, 1.975, 1.891, 1.761, 1.611, 1.466, 1.339, 1.226, 1.135, 1.056",\
                 "2.581, 2.552, 2.459, 2.313, 2.132, 1.945, 1.773, 1.618, 1.481, 1.366",\
                 "3.274, 3.243, 3.144, 2.983, 2.775, 2.55, 2.33, 2.13, 1.948, 1.789");
        }
      }

      timing() {
        related_pin : "A1" ;
        timing_sense : negative_unate ;
        timing_type : combinational ;

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.006873, 0.02749, 0.06686, 0.1282, 0.2143, 0.3275, 0.4702, 0.6443, 0.8519");
          values("0.05048, 0.06373, 0.1093, 0.1952, 0.3291, 0.516, 0.7624, 1.073, 1.451, 1.903",\
                 "0.05411, 0.06734, 0.113, 0.1991, 0.3328, 0.5201, 0.7664, 1.077, 1.455, 1.907",\
                 "0.06492, 0.08129, 0.1299, 0.2154, 0.3484, 0.5356, 0.7816, 1.092, 1.471, 1.922",\
                 "0.07217, 0.09356, 0.155, 0.2505, 0.3823, 0.568, 0.8131, 1.123, 1.501, 1.952",\
                 "0.07193, 0.09864, 0.1754, 0.2897, 0.438, 0.6233, 0.8663, 1.174, 1.551, 2.001",\
                 "0.06256, 0.09529, 0.1873, 0.3231, 0.4944, 0.7012, 0.9457, 1.251, 1.625, 2.074",\
                 "0.04371, 0.08193, 0.1898, 0.3471, 0.5443, 0.7767, 1.048, 1.357, 1.728, 2.173",\
                 "0.0147, 0.0584, 0.181, 0.361, 0.5848, 0.8457, 1.145, 1.484, 1.863, 2.304",\
                 "-0.0257, 0.0234, 0.1616, 0.3637, 0.6136, 0.9051, 1.235, 1.604, 2.017, 2.47",\
                 "-0.079, -0.0243, 0.1295, 0.3538, 0.631, 0.9529, 1.316, 1.717, 2.161, 2.651");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.006873, 0.02749, 0.06686, 0.1282, 0.2143, 0.3275, 0.4702, 0.6443, 0.8519");
          values("0.05243, 0.0683, 0.1221, 0.2223, 0.3773, 0.5941, 0.8793, 1.239, 1.679, 2.199",\
                 "0.05872, 0.07425, 0.1279, 0.2287, 0.3836, 0.601, 0.8862, 1.247, 1.686, 2.209",\
                 "0.08448, 0.1014, 0.1539, 0.2533, 0.4083, 0.6252, 0.9109, 1.271, 1.707, 2.233",\
                 "0.1225, 0.1445, 0.2075, 0.3077, 0.4594, 0.6747, 0.9584, 1.317, 1.756, 2.279",\
                 "0.1699, 0.1976, 0.2758, 0.3927, 0.5479, 0.759, 1.039, 1.396, 1.833, 2.354",\
                 "0.2261, 0.2605, 0.3554, 0.493, 0.6691, 0.8848, 1.161, 1.513, 1.946, 2.466",\
                 "0.2918, 0.3328, 0.4447, 0.607, 0.8064, 1.046, 1.328, 1.675, 2.103, 2.617",\
                 "0.3674, 0.4144, 0.546, 0.7321, 0.9597, 1.225, 1.533, 1.887, 2.309, 2.819",\
                 "0.4538, 0.5078, 0.6568, 0.8694, 1.125, 1.421, 1.757, 2.139, 2.568, 3.072",\
                 "0.5511, 0.6122, 0.7793, 1.018, 1.305, 1.633, 2, 2.41, 2.871, 3.381");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.006873, 0.02749, 0.06686, 0.1282, 0.2143, 0.3275, 0.4702, 0.6443, 0.8519");
          values("0.05567, 0.07768, 0.1547, 0.3004, 0.5305, 0.8478, 1.268, 1.797, 2.445, 3.214",\
                 "0.05545, 0.07744, 0.1547, 0.3004, 0.5282, 0.8478, 1.268, 1.798, 2.444, 3.213",\
                 "0.07356, 0.09412, 0.1584, 0.3007, 0.5283, 0.8481, 1.267, 1.797, 2.444, 3.213",\
                 "0.1072, 0.1297, 0.1994, 0.3201, 0.5293, 0.8482, 1.269, 1.798, 2.446, 3.214",\
                 "0.1536, 0.1816, 0.2607, 0.3875, 0.5727, 0.8563, 1.268, 1.798, 2.448, 3.215",\
                 "0.2088, 0.2439, 0.3387, 0.4779, 0.6701, 0.9274, 1.292, 1.799, 2.445, 3.216",\
                 "0.274, 0.3152, 0.4292, 0.5878, 0.7928, 1.057, 1.394, 1.848, 2.452, 3.217",\
                 "0.346, 0.3958, 0.5304, 0.7152, 0.9386, 1.214, 1.56, 1.983, 2.529, 3.238",\
                 "0.4276, 0.4852, 0.6412, 0.853, 1.107, 1.398, 1.755, 2.186, 2.702, 3.35",\
                 "0.5192, 0.5856, 0.7662, 1.008, 1.287, 1.608, 1.978, 2.418, 2.943, 3.557");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.006873, 0.02749, 0.06686, 0.1282, 0.2143, 0.3275, 0.4702, 0.6443, 0.8519");
          values("0.06493, 0.09131, 0.1839, 0.3599, 0.6337, 1.018, 1.525, 2.162, 2.945, 3.869",\
                 "0.06492, 0.0911, 0.1831, 0.3597, 0.633, 1.019, 1.524, 2.164, 2.943, 3.874",\
                 "0.08166, 0.1024, 0.1838, 0.359, 0.6337, 1.018, 1.525, 2.163, 2.941, 3.871",\
                 "0.1166, 0.1403, 0.2164, 0.3651, 0.6359, 1.018, 1.524, 2.163, 2.939, 3.867",\
                 "0.1636, 0.1932, 0.277, 0.4187, 0.6492, 1.017, 1.523, 2.161, 2.939, 3.871",\
                 "0.2189, 0.255, 0.3561, 0.5072, 0.725, 1.048, 1.531, 2.163, 2.94, 3.868",\
                 "0.2802, 0.325, 0.4466, 0.6164, 0.842, 1.148, 1.576, 2.172, 2.947, 3.866",\
                 "0.3472, 0.4008, 0.5444, 0.7432, 0.9852, 1.297, 1.696, 2.238, 2.954, 3.874",\
                 "0.4222, 0.4852, 0.6514, 0.8778, 1.15, 1.472, 1.88, 2.381, 3.048, 3.893",\
                 "0.5058, 0.5734, 0.7652, 1.026, 1.334, 1.676, 2.095, 2.598, 3.215, 4.005");
        }
      }

      timing() {
        related_pin : "A2" ;
        timing_sense : negative_unate ;
        timing_type : combinational ;

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.006873, 0.02749, 0.06686, 0.1282, 0.2143, 0.3275, 0.4702, 0.6443, 0.8519");
          values("0.06158, 0.07484, 0.1203, 0.2067, 0.3399, 0.5271, 0.7734, 1.084, 1.463, 1.914",\
                 "0.06367, 0.07704, 0.1229, 0.2092, 0.3429, 0.5302, 0.7768, 1.087, 1.466, 1.917",\
                 "0.0678, 0.08272, 0.1304, 0.2165, 0.3502, 0.5374, 0.7835, 1.094, 1.472, 1.924",\
                 "0.06798, 0.08678, 0.1419, 0.2329, 0.3659, 0.5521, 0.7977, 1.107, 1.486, 1.937",\
                 "0.05825, 0.08183, 0.1496, 0.2527, 0.3932, 0.5795, 0.8234, 1.131, 1.509, 1.959",\
                 "0.03643, 0.06476, 0.146, 0.2676, 0.4225, 0.6182, 0.8638, 1.169, 1.544, 1.993",\
                 "0.00149, 0.03422, 0.1294, 0.27, 0.4468, 0.6586, 0.915, 1.225, 1.597, 2.043",\
                 "-0.0483, -0.0106, 0.0975, 0.2582, 0.4585, 0.6936, 0.9668, 1.288, 1.667, 2.11",\
                 "-0.1143, -0.0717, 0.0504, 0.231, 0.4557, 0.7168, 1.014, 1.353, 1.744, 2.197",\
                 "-0.1977, -0.1506, -0.0147, 0.1859, 0.4351, 0.7241, 1.049, 1.413, 1.823, 2.288");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.006873, 0.02749, 0.06686, 0.1282, 0.2143, 0.3275, 0.4702, 0.6443, 0.8519");
          values("0.07055, 0.0859, 0.1386, 0.2384, 0.393, 0.6096, 0.8944, 1.255, 1.693, 2.215",\
                 "0.07649, 0.09193, 0.1448, 0.2446, 0.3995, 0.6155, 0.9014, 1.261, 1.7, 2.221",\
                 "0.1054, 0.1204, 0.1717, 0.2702, 0.4241, 0.6403, 0.9251, 1.284, 1.724, 2.247",\
                 "0.1538, 0.1722, 0.2294, 0.3262, 0.4772, 0.6914, 0.9743, 1.333, 1.771, 2.292",\
                 "0.2162, 0.239, 0.3072, 0.4167, 0.5674, 0.777, 1.057, 1.413, 1.849, 2.368",\
                 "0.2925, 0.3198, 0.4015, 0.5272, 0.695, 0.9061, 1.181, 1.532, 1.964, 2.482",\
                 "0.3831, 0.4154, 0.511, 0.6564, 0.8433, 1.074, 1.352, 1.697, 2.122, 2.635",\
                 "0.4881, 0.5262, 0.6364, 0.8025, 1.013, 1.265, 1.565, 1.912, 2.332, 2.839",\
                 "0.6106, 0.6535, 0.7783, 0.9661, 1.202, 1.48, 1.801, 2.174, 2.597, 3.097",\
                 "0.7498, 0.7976, 0.9386, 1.147, 1.41, 1.715, 2.063, 2.46, 2.911, 3.414");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.006873, 0.02749, 0.06686, 0.1282, 0.2143, 0.3275, 0.4702, 0.6443, 0.8519");
          values("0.05555, 0.0776, 0.1541, 0.3014, 0.5283, 0.8472, 1.268, 1.797, 2.445, 3.216",\
                 "0.05572, 0.07753, 0.1543, 0.3003, 0.5284, 0.8476, 1.268, 1.798, 2.447, 3.214",\
                 "0.06968, 0.08892, 0.1575, 0.3004, 0.5293, 0.8484, 1.268, 1.798, 2.445, 3.215",\
                 "0.1049, 0.1227, 0.1852, 0.3134, 0.5298, 0.8482, 1.27, 1.798, 2.446, 3.219",\
                 "0.1553, 0.1756, 0.2402, 0.3592, 0.5568, 0.8548, 1.269, 1.798, 2.445, 3.22",\
                 "0.2163, 0.2406, 0.3147, 0.4363, 0.6212, 0.8978, 1.287, 1.801, 2.445, 3.218",\
                 "0.2855, 0.3143, 0.4015, 0.5364, 0.7224, 0.9846, 1.347, 1.833, 2.453, 3.22",\
                 "0.3632, 0.3972, 0.4982, 0.6524, 0.8498, 1.108, 1.455, 1.913, 2.502, 3.236",\
                 "0.4488, 0.489, 0.6058, 0.7796, 0.9976, 1.266, 1.606, 2.045, 2.606, 3.304",\
                 "0.5422, 0.589, 0.7236, 0.9208, 1.16, 1.45, 1.793, 2.223, 2.761, 3.43");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04747, 0.1439, 0.328, 0.6149, 1.017, 1.547, 2.214, 3.029, 4");
          index_2("0.001, 0.006873, 0.02749, 0.06686, 0.1282, 0.2143, 0.3275, 0.4702, 0.6443, 0.8519");
          values("0.09751, 0.1239, 0.217, 0.3944, 0.6678, 1.053, 1.56, 2.198, 2.974, 3.902",\
                 "0.09741, 0.124, 0.2167, 0.394, 0.6684, 1.053, 1.56, 2.197, 2.975, 3.902",\
                 "0.107, 0.1295, 0.2172, 0.3939, 0.6686, 1.053, 1.559, 2.197, 2.974, 3.9",\
                 "0.1437, 0.1665, 0.2422, 0.3971, 0.6683, 1.053, 1.559, 2.197, 2.974, 3.901",\
                 "0.1929, 0.2199, 0.3017, 0.4444, 0.6808, 1.053, 1.559, 2.196, 2.976, 3.902",\
                 "0.2511, 0.2843, 0.3793, 0.5292, 0.7496, 1.079, 1.56, 2.196, 2.974, 3.901",\
                 "0.3178, 0.3574, 0.4694, 0.635, 0.862, 1.17, 1.602, 2.201, 2.972, 3.9",\
                 "0.3916, 0.4386, 0.5698, 0.759, 0.9988, 1.313, 1.716, 2.262, 2.986, 3.899",\
                 "0.4716, 0.5278, 0.6784, 0.8966, 1.158, 1.482, 1.891, 2.4, 3.068, 3.921",\
                 "0.5574, 0.6234, 0.799, 1.042, 1.335, 1.678, 2.093, 2.605, 3.231, 4.03");
        }
      }
    }
  }

