/*
 * 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__nor2_4) {
    area : 39.513600 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&!A2" ;
      value : "3.924954e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&A2" ;
      value : "4.256802e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&!A2" ;
      value : "2.454012e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&A2" ;
      value : "2.454012e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "4.256802e-05" ;
    }

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

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

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

      internal_power() {
        when : "A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.01597, 0.01596, 0.01591, 0.01591, 0.0159, 0.01592, 0.0159, 0.0159, \
                  0.01586, 0.01583");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.008212, -0.008239, -0.008237, -0.00824, -0.008253, -0.00827, \
                  -0.008268, -0.008265, -0.008274, -0.008273");
        }
      }
    }

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

      internal_power() {
        when : "A1" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("0.02156, 0.02157, 0.02155, 0.02156, 0.02155, 0.02162, 0.02162, \
                  0.02159, 0.02161, 0.02161");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          values("-0.01882, -0.0198, -0.02041, -0.02071, -0.02084, -0.02097, -0.02103, \
                  -0.02108, -0.02111, -0.02115");
        }
      }
    }

    pin(ZN) {
      direction : output ;
      function : "((!A1)&(!A2))" ;
      max_capacitance : 0.4794 ;
      max_transition : 6.8 ;
      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.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.004302, 0.01589, 0.03803, 0.07251, 0.1209, 0.1846, 0.2648, 0.3627, 0.4794");
          values("-0.001603, -0.0014, -0.001132, -0.0009851, -0.000895, -0.0008543, -0.0008292, -0.0008222, -0.0008043, -0.0007965",\
                 "-0.002181, -0.001846, -0.001147, -0.0007056, -0.0004171, -0.0002808, -0.000193, -0.0001274, -9.241e-05, -7.053e-05",\
                 "-0.003385, -0.002959, -0.001977, -0.001045, -0.0004051, -1.958e-05, 0.0002318, 0.0003787, 0.0005056, 0.0005528",\
                 "-0.003511, -0.003327, -0.002619, -0.001679, -0.0008739, -0.0003004, 9.442e-05, 0.0003674, 0.0005253, 0.000641",\
                 "-0.001822, -0.0019, -0.001889, -0.001483, -0.0008653, -0.0003499, 1.589e-05, 0.0002863, 0.0005006, 0.0006437",\
                 "0.002098, 0.001665, 0.0009106, 0.0003597, 0.000214, 0.0003309, 0.0005515, 0.0007066, 0.0008043, 0.0008871",\
                 "0.008105, 0.007454, 0.005877, 0.004245, 0.003148, 0.002451, 0.002145, 0.001963, 0.001777, 0.001723",\
                 "0.01643, 0.01557, 0.01314, 0.01038, 0.008047, 0.006372, 0.005186, 0.004442, 0.003832, 0.003398",\
                 "0.02708, 0.02598, 0.02277, 0.01883, 0.0152, 0.01236, 0.01012, 0.008429, 0.007203, 0.006274",\
                 "0.04014, 0.03879, 0.03494, 0.0298, 0.02478, 0.02054, 0.01709, 0.01436, 0.01222, 0.01048");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.004302, 0.01589, 0.03803, 0.07251, 0.1209, 0.1846, 0.2648, 0.3627, 0.4794");
          values("0.06129, 0.06158, 0.06219, 0.06258, 0.0629, 0.06314, 0.06347, 0.0638, 0.06418, 0.06481",\
                 "0.0596, 0.06002, 0.06089, 0.06171, 0.06231, 0.06276, 0.06318, 0.06368, 0.06408, 0.06459",\
                 "0.05831, 0.05855, 0.05921, 0.06013, 0.06114, 0.06185, 0.06256, 0.06315, 0.06372, 0.06432",\
                 "0.05923, 0.0592, 0.0592, 0.05949, 0.06019, 0.06112, 0.06179, 0.06248, 0.06319, 0.06408",\
                 "0.06185, 0.06157, 0.06111, 0.06066, 0.06057, 0.0608, 0.06155, 0.06204, 0.06275, 0.06352",\
                 "0.06651, 0.06596, 0.06471, 0.06343, 0.06261, 0.06213, 0.06213, 0.0626, 0.06303, 0.06344",\
                 "0.07314, 0.07237, 0.07043, 0.06807, 0.06651, 0.06522, 0.06446, 0.0642, 0.06423, 0.06517",\
                 "0.08214, 0.08108, 0.07835, 0.07509, 0.07211, 0.07017, 0.06833, 0.06723, 0.06631, 0.06677",\
                 "0.09372, 0.09217, 0.08846, 0.08418, 0.08011, 0.07672, 0.07446, 0.0721, 0.07052, 0.07001",\
                 "0.108, 0.1062, 0.1014, 0.09594, 0.09052, 0.08577, 0.08217, 0.07939, 0.07654, 0.0756");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.004302, 0.01589, 0.03803, 0.07251, 0.1209, 0.1846, 0.2648, 0.3627, 0.4794");
          values("0.0114, 0.0114, 0.01144, 0.01147, 0.01152, 0.01151, 0.01151, 0.0115, 0.01151, 0.01151",\
                 "0.01041, 0.01043, 0.01047, 0.01055, 0.01064, 0.01067, 0.01066, 0.01067, 0.01068, 0.01069",\
                 "0.008935, 0.009037, 0.009246, 0.00946, 0.009548, 0.009653, 0.009719, 0.009782, 0.009788, 0.009789",\
                 "0.008448, 0.008505, 0.008635, 0.008875, 0.00906, 0.009214, 0.009265, 0.009391, 0.009415, 0.009453",\
                 "0.009865, 0.009741, 0.009566, 0.009386, 0.009386, 0.009374, 0.009413, 0.009417, 0.009399, 0.009418",\
                 "0.01346, 0.01321, 0.01238, 0.01153, 0.01091, 0.01051, 0.01025, 0.01005, 0.009911, 0.009809",\
                 "0.01951, 0.01901, 0.0175, 0.0158, 0.01423, 0.01315, 0.01231, 0.01167, 0.01118, 0.01087",\
                 "0.028, 0.02728, 0.02517, 0.02243, 0.01975, 0.01759, 0.01592, 0.01457, 0.01361, 0.01284",\
                 "0.03905, 0.0382, 0.03548, 0.03162, 0.02769, 0.02424, 0.02148, 0.01921, 0.01745, 0.01615",\
                 "0.05286, 0.05174, 0.04841, 0.04349, 0.03827, 0.03343, 0.02924, 0.02586, 0.02323, 0.02101");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.004302, 0.01589, 0.03803, 0.07251, 0.1209, 0.1846, 0.2648, 0.3627, 0.4794");
          values("0.07529, 0.07553, 0.0758, 0.07612, 0.07637, 0.0766, 0.07692, 0.07731, 0.07772, 0.07841",\
                 "0.07398, 0.07429, 0.07505, 0.07557, 0.07603, 0.07648, 0.0768, 0.07725, 0.07768, 0.07823",\
                 "0.07261, 0.07283, 0.07347, 0.07434, 0.07504, 0.07589, 0.07625, 0.07689, 0.07748, 0.07798",\
                 "0.07217, 0.07229, 0.07264, 0.07327, 0.07405, 0.07488, 0.07579, 0.07636, 0.07703, 0.07752",\
                 "0.07274, 0.07276, 0.07287, 0.07315, 0.07356, 0.07425, 0.07494, 0.07568, 0.07641, 0.07715",\
                 "0.07549, 0.07529, 0.07466, 0.07438, 0.07447, 0.0746, 0.07508, 0.07558, 0.07655, 0.0771",\
                 "0.08109, 0.08048, 0.07904, 0.07761, 0.07678, 0.07658, 0.07634, 0.07646, 0.07695, 0.07761",\
                 "0.08999, 0.08895, 0.08639, 0.08369, 0.0814, 0.08033, 0.07951, 0.07887, 0.07849, 0.07904",\
                 "0.1021, 0.1006, 0.09675, 0.09266, 0.08888, 0.08615, 0.08454, 0.08325, 0.08204, 0.08158",\
                 "0.1172, 0.1153, 0.1104, 0.1045, 0.09934, 0.0947, 0.09149, 0.08974, 0.08756, 0.0867");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.004302, 0.01589, 0.03803, 0.07251, 0.1209, 0.1846, 0.2648, 0.3627, 0.4794");
          values("0.05659, 0.06546, 0.09618, 0.1542, 0.2444, 0.3708, 0.5375, 0.7466, 1.002, 1.307",\
                 "0.07049, 0.07958, 0.1107, 0.1692, 0.2597, 0.3863, 0.5527, 0.7625, 1.018, 1.323",\
                 "0.104, 0.1182, 0.1591, 0.2205, 0.3112, 0.438, 0.6048, 0.8144, 1.07, 1.375",\
                 "0.1235, 0.1449, 0.2078, 0.2991, 0.4079, 0.5364, 0.7027, 0.9125, 1.169, 1.473",\
                 "0.125, 0.1538, 0.2384, 0.3629, 0.5124, 0.6776, 0.8565, 1.066, 1.322, 1.627",\
                 "0.1075, 0.1434, 0.2493, 0.4068, 0.5972, 0.8092, 1.037, 1.278, 1.539, 1.842",\
                 "0.0688, 0.1124, 0.2397, 0.4293, 0.661, 0.9205, 1.2, 1.496, 1.804, 2.127",\
                 "0.0071, 0.058, 0.2071, 0.4296, 0.7007, 1.008, 1.34, 1.692, 2.059, 2.441",\
                 "-0.0803, -0.0215, 0.1504, 0.4056, 0.7175, 1.07, 1.455, 1.864, 2.292, 2.737",\
                 "-0.1951, -0.1281, 0.0676, 0.3554, 0.7085, 1.107, 1.544, 2.01, 2.499, 3.007");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.004302, 0.01589, 0.03803, 0.07251, 0.1209, 0.1846, 0.2648, 0.3627, 0.4794");
          values("0.1413, 0.1691, 0.2641, 0.4425, 0.719, 1.106, 1.616, 2.257, 3.04, 3.972",\
                 "0.1497, 0.1777, 0.2738, 0.4542, 0.7318, 1.119, 1.629, 2.271, 3.054, 3.99",\
                 "0.201, 0.228, 0.3232, 0.5038, 0.783, 1.172, 1.682, 2.327, 3.109, 4.042",\
                 "0.2912, 0.3263, 0.4314, 0.61, 0.8878, 1.278, 1.788, 2.431, 3.216, 4.151",\
                 "0.3954, 0.4401, 0.5753, 0.7818, 1.059, 1.446, 1.956, 2.6, 3.385, 4.319",\
                 "0.5177, 0.5706, 0.7334, 0.9856, 1.302, 1.69, 2.198, 2.838, 3.622, 4.555",\
                 "0.663, 0.7235, 0.9096, 1.205, 1.578, 2.011, 2.521, 3.16, 3.94, 4.876",\
                 "0.8326, 0.9002, 1.11, 1.442, 1.87, 2.371, 2.926, 3.567, 4.345, 5.277",\
                 "1.028, 1.104, 1.336, 1.702, 2.182, 2.747, 3.377, 4.063, 4.844, 5.772",\
                 "1.249, 1.334, 1.589, 1.991, 2.515, 3.141, 3.845, 4.613, 5.438, 6.368");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.004302, 0.01589, 0.03803, 0.07251, 0.1209, 0.1846, 0.2648, 0.3627, 0.4794");
          values("0.05768, 0.07255, 0.1237, 0.2218, 0.3749, 0.5905, 0.8739, 1.229, 1.662, 2.184",\
                 "0.05758, 0.0721, 0.1238, 0.222, 0.3748, 0.5907, 0.8732, 1.23, 1.666, 2.185",\
                 "0.09472, 0.1075, 0.1455, 0.2252, 0.3747, 0.59, 0.8732, 1.229, 1.664, 2.183",\
                 "0.1501, 0.1698, 0.2261, 0.3076, 0.4142, 0.5967, 0.8709, 1.228, 1.664, 2.18",\
                 "0.2121, 0.2383, 0.3157, 0.4268, 0.5589, 0.7082, 0.918, 1.235, 1.663, 2.182",\
                 "0.2826, 0.3158, 0.4132, 0.5546, 0.7238, 0.9104, 1.114, 1.357, 1.708, 2.187",\
                 "0.363, 0.4018, 0.5172, 0.69, 0.8988, 1.127, 1.374, 1.635, 1.926, 2.311",\
                 "0.4518, 0.4984, 0.632, 0.8334, 1.083, 1.355, 1.651, 1.958, 2.284, 2.627",\
                 "0.5524, 0.605, 0.7568, 0.986, 1.27, 1.591, 1.934, 2.294, 2.669, 3.063",\
                 "0.6606, 0.7212, 0.8936, 1.151, 1.469, 1.831, 2.227, 2.644, 3.077, 3.521");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.004302, 0.01589, 0.03803, 0.07251, 0.1209, 0.1846, 0.2648, 0.3627, 0.4794");
          values("0.1857, 0.2311, 0.3901, 0.6925, 1.16, 1.818, 2.682, 3.769, 5.1, 6.684",\
                 "0.1857, 0.2311, 0.389, 0.6914, 1.161, 1.816, 2.681, 3.771, 5.1, 6.684",\
                 "0.1899, 0.2314, 0.389, 0.6904, 1.162, 1.817, 2.682, 3.771, 5.1, 6.687",\
                 "0.2532, 0.2918, 0.4134, 0.6916, 1.159, 1.82, 2.681, 3.771, 5.098, 6.687",\
                 "0.3264, 0.3748, 0.5192, 0.7502, 1.165, 1.817, 2.685, 3.772, 5.103, 6.691",\
                 "0.4, 0.459, 0.6372, 0.9042, 1.258, 1.831, 2.682, 3.776, 5.102, 6.688",\
                 "0.4796, 0.5462, 0.755, 1.073, 1.466, 1.96, 2.711, 3.773, 5.108, 6.696",\
                 "0.5688, 0.6424, 0.8712, 1.242, 1.697, 2.217, 2.872, 3.819, 5.107, 6.692",\
                 "0.668, 0.7484, 0.9958, 1.407, 1.93, 2.52, 3.179, 4.016, 5.174, 6.7",\
                 "0.7776, 0.8628, 1.133, 1.586, 2.157, 2.83, 3.559, 4.368, 5.404, 6.786");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.004302, 0.01589, 0.03803, 0.07251, 0.1209, 0.1846, 0.2648, 0.3627, 0.4794");
          values("0.07397, 0.08385, 0.117, 0.1777, 0.2697, 0.3973, 0.5644, 0.7744, 1.03, 1.335",\
                 "0.08772, 0.09756, 0.1307, 0.1913, 0.2833, 0.411, 0.5781, 0.788, 1.044, 1.349",\
                 "0.1332, 0.1452, 0.1814, 0.2417, 0.3336, 0.4613, 0.6285, 0.8384, 1.094, 1.399",\
                 "0.1734, 0.1914, 0.2458, 0.3288, 0.4317, 0.5597, 0.7267, 0.9366, 1.192, 1.497",\
                 "0.1968, 0.2209, 0.2942, 0.4069, 0.5465, 0.7055, 0.8808, 1.091, 1.346, 1.651",\
                 "0.2026, 0.2323, 0.3234, 0.4659, 0.6441, 0.8469, 1.068, 1.304, 1.564, 1.868",\
                 "0.1889, 0.2245, 0.3336, 0.5044, 0.7207, 0.9688, 1.24, 1.529, 1.833, 2.153",\
                 "0.1546, 0.1962, 0.3231, 0.5226, 0.7749, 1.068, 1.39, 1.733, 2.094, 2.472",\
                 "0.099, 0.1463, 0.2906, 0.5186, 0.8073, 1.143, 1.515, 1.914, 2.334, 2.773",\
                 "0.0209, 0.0738, 0.2354, 0.491, 0.8165, 1.194, 1.616, 2.069, 2.55, 3.051");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.004302, 0.01589, 0.03803, 0.07251, 0.1209, 0.1846, 0.2648, 0.3627, 0.4794");
          values("0.1809, 0.2081, 0.3024, 0.4802, 0.7565, 1.144, 1.653, 2.297, 3.077, 4.015",\
                 "0.1941, 0.2218, 0.3174, 0.4966, 0.7735, 1.162, 1.672, 2.315, 3.096, 4.029",\
                 "0.2445, 0.2718, 0.3672, 0.5478, 0.8256, 1.215, 1.725, 2.367, 3.152, 4.084",\
                 "0.3185, 0.3509, 0.4541, 0.6344, 0.9129, 1.302, 1.813, 2.456, 3.24, 4.174",\
                 "0.4034, 0.4418, 0.5632, 0.7644, 1.046, 1.435, 1.946, 2.59, 3.373, 4.308",\
                 "0.5038, 0.5491, 0.6895, 0.9183, 1.229, 1.624, 2.134, 2.777, 3.563, 4.498",\
                 "0.6252, 0.6776, 0.8373, 1.093, 1.438, 1.866, 2.385, 3.026, 3.81, 4.744",\
                 "0.7706, 0.8303, 1.01, 1.294, 1.671, 2.138, 2.693, 3.344, 4.126, 5.059",\
                 "0.9413, 1.008, 1.209, 1.522, 1.932, 2.436, 3.033, 3.724, 4.516, 5.447",\
                 "1.136, 1.21, 1.433, 1.776, 2.221, 2.763, 3.401, 4.137, 4.971, 5.913");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.004302, 0.01589, 0.03803, 0.07251, 0.1209, 0.1846, 0.2648, 0.3627, 0.4794");
          values("0.07953, 0.09478, 0.1479, 0.2457, 0.3984, 0.6131, 0.8946, 1.249, 1.683, 2.2",\
                 "0.07818, 0.09414, 0.1471, 0.2456, 0.3991, 0.6126, 0.8937, 1.25, 1.683, 2.2",\
                 "0.1041, 0.1167, 0.1566, 0.2461, 0.3984, 0.6125, 0.8944, 1.249, 1.683, 2.2",\
                 "0.1617, 0.1806, 0.2345, 0.3156, 0.4272, 0.6161, 0.8941, 1.249, 1.682, 2.2",\
                 "0.2256, 0.251, 0.3255, 0.4345, 0.5652, 0.7164, 0.934, 1.255, 1.683, 2.199",\
                 "0.295, 0.3272, 0.4238, 0.5626, 0.7308, 0.9168, 1.12, 1.369, 1.726, 2.207",\
                 "0.37, 0.4094, 0.525, 0.6968, 0.9046, 1.136, 1.38, 1.641, 1.935, 2.327",\
                 "0.45, 0.497, 0.6338, 0.8358, 1.084, 1.36, 1.653, 1.962, 2.288, 2.635",\
                 "0.537, 0.591, 0.7498, 0.9844, 1.269, 1.594, 1.938, 2.298, 2.674, 3.066",\
                 "0.6328, 0.6938, 0.8724, 1.139, 1.464, 1.831, 2.226, 2.645, 3.076, 3.522");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.0668, 0.2311, 0.5448, 1.033, 1.719, 2.622, 3.758, 5.146, 6.8");
          index_2("0.001, 0.004302, 0.01589, 0.03803, 0.07251, 0.1209, 0.1846, 0.2648, 0.3627, 0.4794");
          values("0.1868, 0.2318, 0.3891, 0.6914, 1.161, 1.817, 2.68, 3.77, 5.102, 6.692",\
                 "0.1869, 0.2316, 0.3898, 0.6908, 1.16, 1.818, 2.681, 3.771, 5.102, 6.681",\
                 "0.1905, 0.2335, 0.3896, 0.6913, 1.159, 1.818, 2.682, 3.771, 5.105, 6.688",\
                 "0.2318, 0.2727, 0.4085, 0.6917, 1.16, 1.817, 2.685, 3.771, 5.104, 6.686",\
                 "0.2858, 0.332, 0.4786, 0.7378, 1.168, 1.818, 2.68, 3.771, 5.103, 6.688",\
                 "0.3542, 0.4018, 0.56, 0.8386, 1.241, 1.837, 2.683, 3.773, 5.112, 6.69",\
                 "0.4364, 0.4856, 0.6524, 0.9498, 1.375, 1.937, 2.718, 3.774, 5.107, 6.698",\
                 "0.53, 0.5834, 0.7578, 1.07, 1.52, 2.107, 2.844, 3.83, 5.112, 6.692",\
                 "0.6304, 0.6888, 0.876, 1.201, 1.674, 2.29, 3.051, 3.982, 5.188, 6.705",\
                 "0.7402, 0.8024, 1.004, 1.347, 1.842, 2.485, 3.283, 4.228, 5.366, 6.805");
        }
      }
    }
  }

