/*
 * 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__and2_1) {
    area : 17.561600 ;

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

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

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

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

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

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

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

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

      internal_power() {
        when : "!A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.01171, 0.01168, 0.01167, 0.01161, 0.01162, 0.01162, 0.01162, \
                  0.01162, 0.01162, 0.01161");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("-0.00703, -0.007024, -0.007022, -0.007027, -0.007043, -0.007062, \
                  -0.007056, -0.007069, -0.007083, -0.007099");
        }
      }
    }

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

      internal_power() {
        when : "!A1" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("0.01212, 0.01127, 0.01087, 0.01072, 0.01064, 0.01063, 0.01059, \
                  0.01056, 0.01056, 0.01055");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          values("-0.0105, -0.0105, -0.01047, -0.01046, -0.01045, -0.01046, -0.01048, \
                  -0.01047, -0.01048, -0.01048");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1&A2)" ;
      max_capacitance : 0.3589 ;
      max_transition : 7.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.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.00347, 0.01214, 0.0287, 0.0545, 0.0907, 0.1383, 0.1983, 0.2716, 0.3589");
          values("0.09895, 0.0972, 0.09489, 0.09353, 0.09278, 0.09228, 0.09194, 0.09178, 0.09164, 0.09155",\
                 "0.09884, 0.09706, 0.09487, 0.09343, 0.09249, 0.09214, 0.09182, 0.09162, 0.09151, 0.09142",\
                 "0.1021, 0.1002, 0.0976, 0.0961, 0.09517, 0.0946, 0.09431, 0.09411, 0.09396, 0.09385",\
                 "0.118, 0.1153, 0.1108, 0.1077, 0.106, 0.105, 0.1044, 0.104, 0.1037, 0.1035",\
                 "0.1472, 0.1433, 0.136, 0.1307, 0.1274, 0.1253, 0.1241, 0.1232, 0.1227, 0.1223",\
                 "0.1894, 0.1845, 0.1743, 0.166, 0.1605, 0.157, 0.1547, 0.1532, 0.1522, 0.1515",\
                 "0.2447, 0.2389, 0.2259, 0.2144, 0.2062, 0.2008, 0.1972, 0.1947, 0.193, 0.1918",\
                 "0.3136, 0.307, 0.2916, 0.2765, 0.2654, 0.2576, 0.2521, 0.2484, 0.2458, 0.2439",\
                 "0.3964, 0.3892, 0.3716, 0.3531, 0.3385, 0.328, 0.3206, 0.3153, 0.3115, 0.3087",\
                 "0.4938, 0.4861, 0.4664, 0.4447, 0.4267, 0.4132, 0.4032, 0.396, 0.3907, 0.3869");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.00347, 0.01214, 0.0287, 0.0545, 0.0907, 0.1383, 0.1983, 0.2716, 0.3589");
          values("0.06248, 0.06058, 0.05792, 0.05637, 0.05562, 0.05493, 0.05424, 0.05415, 0.05373, 0.05492",\
                 "0.06234, 0.06026, 0.05766, 0.05619, 0.05536, 0.05454, 0.05399, 0.05389, 0.05351, 0.05384",\
                 "0.06529, 0.06321, 0.06016, 0.0582, 0.05724, 0.05645, 0.05608, 0.05512, 0.05535, 0.0559",\
                 "0.07829, 0.07564, 0.07106, 0.06778, 0.06609, 0.06483, 0.06385, 0.06358, 0.06312, 0.06371",\
                 "0.1022, 0.09872, 0.09284, 0.08772, 0.08413, 0.08201, 0.08059, 0.07974, 0.07893, 0.08043",\
                 "0.1378, 0.1334, 0.1255, 0.119, 0.1134, 0.1094, 0.1071, 0.1054, 0.1041, 0.1052",\
                 "0.1854, 0.18, 0.1701, 0.1612, 0.1541, 0.1487, 0.1442, 0.1409, 0.1396, 0.1414",\
                 "0.2451, 0.2392, 0.2268, 0.2157, 0.2066, 0.1998, 0.1937, 0.1889, 0.1853, 0.1884",\
                 "0.3175, 0.3106, 0.2962, 0.2827, 0.2716, 0.2625, 0.2557, 0.2494, 0.2451, 0.2475",\
                 "0.4031, 0.3956, 0.3793, 0.3632, 0.3494, 0.3388, 0.3296, 0.3226, 0.3171, 0.3202");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.00347, 0.01214, 0.0287, 0.0545, 0.0907, 0.1383, 0.1983, 0.2716, 0.3589");
          values("0.1114, 0.1093, 0.1063, 0.1044, 0.1033, 0.1026, 0.1022, 0.1019, 0.1017, 0.1016",\
                 "0.1111, 0.1092, 0.1061, 0.1042, 0.1031, 0.1024, 0.102, 0.1017, 0.1015, 0.1014",\
                 "0.1147, 0.1125, 0.1092, 0.1071, 0.1059, 0.1052, 0.1047, 0.1045, 0.1043, 0.1041",\
                 "0.1312, 0.1283, 0.1232, 0.1197, 0.1177, 0.1164, 0.1156, 0.1151, 0.1148, 0.1146",\
                 "0.1627, 0.1586, 0.1507, 0.1448, 0.141, 0.1386, 0.1373, 0.1363, 0.1356, 0.1352",\
                 "0.2082, 0.2033, 0.1924, 0.1835, 0.1773, 0.1733, 0.1706, 0.1689, 0.1677, 0.1669",\
                 "0.2683, 0.2623, 0.2489, 0.2364, 0.2273, 0.2212, 0.217, 0.2141, 0.2121, 0.2107",\
                 "0.343, 0.3363, 0.3204, 0.3042, 0.2919, 0.283, 0.2769, 0.2727, 0.2696, 0.2674",\
                 "0.4332, 0.4259, 0.4077, 0.3879, 0.372, 0.3601, 0.3515, 0.3454, 0.341, 0.3378",\
                 "0.5394, 0.5317, 0.5114, 0.4882, 0.4685, 0.4533, 0.4419, 0.4335, 0.4274, 0.4229");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.00347, 0.01214, 0.0287, 0.0545, 0.0907, 0.1383, 0.1983, 0.2716, 0.3589");
          values("0.06257, 0.06058, 0.05795, 0.05647, 0.05562, 0.05486, 0.05424, 0.05415, 0.05373, 0.05492",\
                 "0.0622, 0.06021, 0.05751, 0.05601, 0.055, 0.0545, 0.05406, 0.05375, 0.05337, 0.05348",\
                 "0.06425, 0.06221, 0.05925, 0.05737, 0.05641, 0.05573, 0.055, 0.05487, 0.05448, 0.05482",\
                 "0.07621, 0.07365, 0.06927, 0.06637, 0.0648, 0.06357, 0.06303, 0.06199, 0.06186, 0.06335",\
                 "0.1001, 0.09674, 0.09103, 0.08643, 0.08305, 0.08118, 0.07962, 0.07917, 0.07842, 0.08007",\
                 "0.1365, 0.1323, 0.1245, 0.1183, 0.1133, 0.1098, 0.1073, 0.1059, 0.1048, 0.1053",\
                 "0.1856, 0.1805, 0.1707, 0.1623, 0.1554, 0.1507, 0.1465, 0.1432, 0.1421, 0.1437",\
                 "0.2474, 0.2417, 0.2297, 0.2189, 0.2103, 0.2041, 0.1985, 0.1943, 0.1903, 0.1936",\
                 "0.3226, 0.3163, 0.3023, 0.289, 0.2783, 0.2699, 0.263, 0.258, 0.2528, 0.2554",\
                 "0.4119, 0.405, 0.389, 0.3732, 0.36, 0.3498, 0.3412, 0.3348, 0.3288, 0.3324");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.00347, 0.01214, 0.0287, 0.0545, 0.0907, 0.1383, 0.1983, 0.2716, 0.3589");
          values("0.2158, 0.2429, 0.319, 0.4393, 0.6116, 0.8488, 1.16, 1.553, 2.033, 2.604",\
                 "0.2285, 0.2556, 0.3316, 0.452, 0.6244, 0.8613, 1.173, 1.566, 2.045, 2.617",\
                 "0.2815, 0.3085, 0.3843, 0.5046, 0.6769, 0.9141, 1.225, 1.618, 2.098, 2.669",\
                 "0.376, 0.4041, 0.4817, 0.6027, 0.7747, 1.011, 1.323, 1.715, 2.194, 2.766",\
                 "0.4908, 0.5221, 0.6051, 0.7309, 0.9052, 1.141, 1.451, 1.843, 2.322, 2.893",\
                 "0.6215, 0.6562, 0.7469, 0.8802, 1.061, 1.299, 1.609, 1.999, 2.478, 3.048",\
                 "0.7683, 0.8066, 0.9059, 1.048, 1.237, 1.483, 1.796, 2.187, 2.664, 3.234",\
                 "0.9323, 0.974, 1.082, 1.234, 1.432, 1.688, 2.01, 2.407, 2.885, 3.454",\
                 "1.114, 1.159, 1.277, 1.439, 1.647, 1.911, 2.244, 2.653, 3.14, 3.712",\
                 "1.315, 1.363, 1.49, 1.664, 1.881, 2.155, 2.498, 2.919, 3.42, 4.003");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.00347, 0.01214, 0.0287, 0.0545, 0.0907, 0.1383, 0.1983, 0.2716, 0.3589");
          values("0.2652, 0.2989, 0.4035, 0.5896, 0.8757, 1.278, 1.807, 2.474, 3.288, 4.259",\
                 "0.2722, 0.3057, 0.4101, 0.5964, 0.8822, 1.284, 1.813, 2.481, 3.295, 4.265",\
                 "0.3036, 0.3368, 0.4409, 0.6262, 0.9123, 1.314, 1.843, 2.509, 3.324, 4.295",\
                 "0.3503, 0.3841, 0.4879, 0.6722, 0.9566, 1.357, 1.886, 2.553, 3.367, 4.338",\
                 "0.3909, 0.4257, 0.5308, 0.7147, 0.998, 1.398, 1.925, 2.591, 3.405, 4.375",\
                 "0.4178, 0.455, 0.5632, 0.7497, 1.033, 1.431, 1.956, 2.621, 3.434, 4.404",\
                 "0.428, 0.4675, 0.58, 0.7707, 1.058, 1.458, 1.982, 2.645, 3.456, 4.426",\
                 "0.4185, 0.4613, 0.5786, 0.7735, 1.066, 1.473, 2.001, 2.663, 3.473, 4.44",\
                 "0.3875, 0.4333, 0.5573, 0.757, 1.055, 1.469, 2.006, 2.673, 3.483, 4.448",\
                 "0.3349, 0.3834, 0.5145, 0.7189, 1.022, 1.442, 1.989, 2.667, 3.484, 4.449");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.00347, 0.01214, 0.0287, 0.0545, 0.0907, 0.1383, 0.1983, 0.2716, 0.3589");
          values("0.09548, 0.1249, 0.2173, 0.3873, 0.663, 1.065, 1.6, 2.275, 3.099, 4.084",\
                 "0.09548, 0.1249, 0.2172, 0.3872, 0.663, 1.064, 1.6, 2.274, 3.1, 4.084",\
                 "0.09668, 0.1262, 0.2182, 0.3878, 0.6633, 1.064, 1.6, 2.274, 3.1, 4.084",\
                 "0.1116, 0.141, 0.2281, 0.3932, 0.665, 1.064, 1.599, 2.274, 3.1, 4.082",\
                 "0.1384, 0.1678, 0.2536, 0.4122, 0.6734, 1.067, 1.6, 2.275, 3.1, 4.084",\
                 "0.1704, 0.2018, 0.2884, 0.445, 0.6986, 1.079, 1.602, 2.275, 3.1, 4.083",\
                 "0.205, 0.2396, 0.3292, 0.4854, 0.7392, 1.112, 1.621, 2.28, 3.099, 4.081",\
                 "0.2422, 0.2806, 0.375, 0.5292, 0.7848, 1.161, 1.668, 2.313, 3.111, 4.084",\
                 "0.281, 0.3238, 0.426, 0.5796, 0.834, 1.215, 1.73, 2.375, 3.159, 4.108",\
                 "0.3202, 0.3668, 0.4784, 0.6366, 0.887, 1.271, 1.795, 2.453, 3.24, 4.172");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.00347, 0.01214, 0.0287, 0.0545, 0.0907, 0.1383, 0.1983, 0.2716, 0.3589");
          values("0.1233, 0.1704, 0.3352, 0.6598, 1.183, 1.92, 2.891, 4.114, 5.608, 7.386",\
                 "0.1237, 0.1694, 0.3351, 0.6596, 1.183, 1.92, 2.892, 4.113, 5.607, 7.391",\
                 "0.1237, 0.1706, 0.3352, 0.66, 1.182, 1.921, 2.891, 4.115, 5.608, 7.39",\
                 "0.1319, 0.1779, 0.3404, 0.6617, 1.183, 1.92, 2.892, 4.114, 5.607, 7.39",\
                 "0.146, 0.1906, 0.3502, 0.6672, 1.183, 1.921, 2.89, 4.113, 5.607, 7.386",\
                 "0.1646, 0.2094, 0.3674, 0.682, 1.191, 1.922, 2.89, 4.111, 5.608, 7.39",\
                 "0.187, 0.2318, 0.3886, 0.705, 1.213, 1.934, 2.893, 4.115, 5.607, 7.38",\
                 "0.2116, 0.2594, 0.4126, 0.7312, 1.244, 1.968, 2.911, 4.117, 5.609, 7.382",\
                 "0.2396, 0.2866, 0.4408, 0.7576, 1.279, 2.01, 2.958, 4.145, 5.614, 7.387",\
                 "0.2678, 0.3176, 0.4722, 0.786, 1.313, 2.058, 3.017, 4.203, 5.651, 7.398");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.00347, 0.01214, 0.0287, 0.0545, 0.0907, 0.1383, 0.1983, 0.2716, 0.3589");
          values("0.2355, 0.2641, 0.3424, 0.4642, 0.6371, 0.8743, 1.186, 1.578, 2.058, 2.629",\
                 "0.248, 0.2765, 0.3548, 0.4767, 0.6495, 0.8867, 1.198, 1.591, 2.07, 2.642",\
                 "0.3026, 0.331, 0.4089, 0.5306, 0.7034, 0.9407, 1.252, 1.645, 2.124, 2.695",\
                 "0.406, 0.4354, 0.5144, 0.6364, 0.8088, 1.045, 1.357, 1.749, 2.227, 2.799",\
                 "0.5388, 0.5707, 0.6555, 0.7813, 0.9552, 1.191, 1.501, 1.893, 2.372, 2.943",\
                 "0.6966, 0.7323, 0.8242, 0.9574, 1.136, 1.373, 1.683, 2.073, 2.551, 3.121",\
                 "0.8808, 0.9199, 1.021, 1.163, 1.349, 1.592, 1.903, 2.293, 2.77, 3.34",\
                 "1.093, 1.135, 1.245, 1.397, 1.592, 1.844, 2.162, 2.556, 3.033, 3.601",\
                 "1.334, 1.38, 1.5, 1.663, 1.867, 2.127, 2.456, 2.858, 3.34, 3.91",\
                 "1.608, 1.658, 1.787, 1.961, 2.175, 2.444, 2.782, 3.196, 3.69, 4.266");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.00347, 0.01214, 0.0287, 0.0545, 0.0907, 0.1383, 0.1983, 0.2716, 0.3589");
          values("0.2788, 0.3123, 0.4171, 0.6031, 0.8893, 1.291, 1.82, 2.487, 3.302, 4.273",\
                 "0.2831, 0.3167, 0.4213, 0.6074, 0.8935, 1.295, 1.825, 2.491, 3.306, 4.276",\
                 "0.2971, 0.3305, 0.4346, 0.6202, 0.9061, 1.308, 1.837, 2.504, 3.318, 4.288",\
                 "0.3209, 0.3548, 0.4591, 0.6438, 0.9288, 1.33, 1.859, 2.525, 3.339, 4.31",\
                 "0.3361, 0.3719, 0.4785, 0.6638, 0.9473, 1.347, 1.874, 2.541, 3.355, 4.325",\
                 "0.3307, 0.3688, 0.4799, 0.67, 0.9554, 1.354, 1.88, 2.545, 3.358, 4.327",\
                 "0.2999, 0.3409, 0.4573, 0.6528, 0.9447, 1.347, 1.873, 2.536, 3.348, 4.317",\
                 "0.2412, 0.2849, 0.4071, 0.6087, 0.9083, 1.32, 1.852, 2.515, 3.326, 4.293",\
                 "0.1524, 0.1989, 0.3269, 0.5343, 0.8409, 1.262, 1.806, 2.478, 3.289, 4.255",\
                 "0.0298, 0.0798, 0.2149, 0.4279, 0.7409, 1.172, 1.729, 2.414, 3.236, 4.204");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.00347, 0.01214, 0.0287, 0.0545, 0.0907, 0.1383, 0.1983, 0.2716, 0.3589");
          values("0.1034, 0.1334, 0.2235, 0.3911, 0.6648, 1.065, 1.6, 2.275, 3.099, 4.082",\
                 "0.1035, 0.1334, 0.2236, 0.3912, 0.6645, 1.065, 1.599, 2.275, 3.099, 4.082",\
                 "0.1039, 0.1342, 0.2247, 0.3917, 0.6651, 1.066, 1.6, 2.275, 3.099, 4.083",\
                 "0.1178, 0.1469, 0.233, 0.396, 0.6662, 1.066, 1.6, 2.275, 3.1, 4.082",\
                 "0.1444, 0.1736, 0.2576, 0.413, 0.6748, 1.068, 1.6, 2.274, 3.1, 4.082",\
                 "0.1764, 0.2082, 0.2924, 0.4436, 0.6956, 1.077, 1.603, 2.276, 3.099, 4.081",\
                 "0.212, 0.2468, 0.3354, 0.484, 0.7326, 1.104, 1.615, 2.279, 3.101, 4.081",\
                 "0.2502, 0.2892, 0.3824, 0.5296, 0.7776, 1.149, 1.653, 2.301, 3.108, 4.082",\
                 "0.2916, 0.3344, 0.4354, 0.5818, 0.8272, 1.202, 1.71, 2.351, 3.141, 4.099",\
                 "0.335, 0.3824, 0.4926, 0.641, 0.8814, 1.257, 1.772, 2.423, 3.206, 4.143");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07094, 0.2497, 0.5912, 1.123, 1.87, 2.852, 4.089, 5.6, 7.4");
          index_2("0.001, 0.00347, 0.01214, 0.0287, 0.0545, 0.0907, 0.1383, 0.1983, 0.2716, 0.3589");
          values("0.1237, 0.1705, 0.3348, 0.6592, 1.182, 1.92, 2.891, 4.113, 5.607, 7.387",\
                 "0.1238, 0.1705, 0.3352, 0.659, 1.182, 1.92, 2.889, 4.114, 5.608, 7.391",\
                 "0.1237, 0.1707, 0.3352, 0.6592, 1.182, 1.918, 2.891, 4.112, 5.606, 7.391",\
                 "0.1316, 0.1779, 0.3396, 0.6613, 1.183, 1.918, 2.891, 4.115, 5.609, 7.389",\
                 "0.1461, 0.192, 0.3526, 0.6674, 1.182, 1.921, 2.891, 4.114, 5.606, 7.387",\
                 "0.1652, 0.2118, 0.3722, 0.6876, 1.193, 1.922, 2.89, 4.111, 5.608, 7.39",\
                 "0.1872, 0.2352, 0.3954, 0.7154, 1.223, 1.939, 2.893, 4.114, 5.601, 7.381",\
                 "0.2102, 0.2604, 0.422, 0.745, 1.262, 1.982, 2.919, 4.12, 5.607, 7.38",\
                 "0.2344, 0.2874, 0.4496, 0.7758, 1.302, 2.035, 2.977, 4.158, 5.617, 7.385",\
                 "0.2626, 0.3166, 0.4832, 0.8074, 1.343, 2.091, 3.049, 4.231, 5.668, 7.407");
        }
      }
    }
  }

