/*
 * 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_2) {
    area : 19.756800 ;

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

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

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

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

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "8.65116e-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.004416 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 5.2 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.02003, 0.02, 0.01992, 0.01987, 0.01988, 0.01992, 0.01992, 0.01994, \
                  0.0199, 0.01991");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("-0.01253, -0.01253, -0.01252, -0.01254, -0.01253, -0.01256, -0.01258, \
                  -0.01259, -0.0126, -0.01262");
        }
      }
    }

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

      internal_power() {
        when : "!A1" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("0.01915, 0.01812, 0.01757, 0.01754, 0.01754, 0.01755, 0.01756, \
                  0.01759, 0.01755, 0.01758");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          values("-0.01758, -0.01754, -0.01751, -0.01747, -0.01747, -0.01749, -0.0175, \
                  -0.01751, -0.01751, -0.01753");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1&A2)" ;
      max_capacitance : 0.7107 ;
      max_transition : 5.2 ;
      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.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.005898, 0.02309, 0.05593, 0.1071, 0.1789, 0.2733, 0.3923, 0.5375, 0.7107");
          values("0.1617, 0.1574, 0.1536, 0.1522, 0.1513, 0.1507, 0.1505, 0.1503, 0.1503, 0.1502",\
                 "0.1609, 0.1564, 0.1526, 0.1515, 0.1504, 0.1499, 0.1497, 0.1496, 0.1495, 0.1494",\
                 "0.1645, 0.1599, 0.1554, 0.1535, 0.1529, 0.1523, 0.1521, 0.152, 0.1519, 0.1518",\
                 "0.1862, 0.1797, 0.1719, 0.1679, 0.166, 0.1651, 0.1645, 0.1642, 0.164, 0.1639",\
                 "0.2242, 0.2157, 0.2038, 0.197, 0.1929, 0.191, 0.1897, 0.1889, 0.1886, 0.1882",\
                 "0.28, 0.2694, 0.2525, 0.2418, 0.2353, 0.2314, 0.2288, 0.2276, 0.2267, 0.2262",\
                 "0.3526, 0.3405, 0.3186, 0.3031, 0.2935, 0.2873, 0.2837, 0.2811, 0.2795, 0.2784",\
                 "0.4429, 0.4295, 0.4026, 0.3826, 0.369, 0.3604, 0.3547, 0.3509, 0.3485, 0.3467",\
                 "0.5509, 0.5366, 0.5054, 0.4799, 0.4626, 0.4506, 0.4428, 0.4372, 0.4338, 0.4312",\
                 "0.6776, 0.6622, 0.6276, 0.5969, 0.575, 0.5595, 0.5489, 0.5414, 0.5366, 0.5329");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.005898, 0.02309, 0.05593, 0.1071, 0.1789, 0.2733, 0.3923, 0.5375, 0.7107");
          values("0.09437, 0.09143, 0.08859, 0.08822, 0.089, 0.08987, 0.09151, 0.09351, 0.09567, 0.09758",\
                 "0.09396, 0.09085, 0.08801, 0.08775, 0.08817, 0.08951, 0.09151, 0.09243, 0.09603, 0.09758",\
                 "0.09823, 0.09493, 0.09122, 0.08995, 0.09023, 0.09091, 0.09367, 0.09567, 0.09675, 0.1005",\
                 "0.1161, 0.1114, 0.1059, 0.1024, 0.1013, 0.1016, 0.1023, 0.1058, 0.1076, 0.1091",\
                 "0.1481, 0.1419, 0.1326, 0.1281, 0.1246, 0.123, 0.1243, 0.1256, 0.1281, 0.13",\
                 "0.1955, 0.1871, 0.1752, 0.166, 0.1631, 0.1599, 0.1588, 0.1598, 0.1598, 0.1631",\
                 "0.2585, 0.248, 0.2325, 0.2202, 0.2135, 0.2104, 0.2085, 0.2069, 0.2066, 0.2074",\
                 "0.3375, 0.3248, 0.3062, 0.2907, 0.2796, 0.273, 0.2726, 0.2714, 0.2692, 0.2684",\
                 "0.4326, 0.4178, 0.3954, 0.3767, 0.3621, 0.3527, 0.3475, 0.348, 0.347, 0.3461",\
                 "0.5447, 0.5285, 0.5019, 0.4795, 0.4625, 0.4499, 0.4429, 0.4384, 0.4398, 0.439");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.005898, 0.02309, 0.05593, 0.1071, 0.1789, 0.2733, 0.3923, 0.5375, 0.7107");
          values("0.1842, 0.1789, 0.1735, 0.1711, 0.1696, 0.1688, 0.1685, 0.1682, 0.1681, 0.1679",\
                 "0.1835, 0.1783, 0.1728, 0.1705, 0.1689, 0.1682, 0.168, 0.1677, 0.1675, 0.1674",\
                 "0.1877, 0.1821, 0.1761, 0.1735, 0.1721, 0.1714, 0.171, 0.1708, 0.1707, 0.1705",\
                 "0.2096, 0.2025, 0.1937, 0.1888, 0.1866, 0.1852, 0.1845, 0.1841, 0.1838, 0.1836",\
                 "0.249, 0.2404, 0.2275, 0.2196, 0.2151, 0.2126, 0.2113, 0.2104, 0.2097, 0.2093",\
                 "0.3071, 0.2966, 0.2793, 0.2674, 0.2602, 0.2558, 0.2532, 0.2516, 0.2504, 0.2498",\
                 "0.3832, 0.3713, 0.3489, 0.3327, 0.3222, 0.3154, 0.3112, 0.3085, 0.3066, 0.3054",\
                 "0.4772, 0.4642, 0.4375, 0.4163, 0.4018, 0.3921, 0.3861, 0.3821, 0.3792, 0.3773",\
                 "0.5904, 0.5765, 0.5454, 0.5191, 0.5005, 0.4875, 0.4788, 0.4731, 0.4691, 0.4663",\
                 "0.7231, 0.7081, 0.673, 0.6418, 0.619, 0.6021, 0.5908, 0.5829, 0.5775, 0.5735");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.005898, 0.02309, 0.05593, 0.1071, 0.1789, 0.2733, 0.3923, 0.5375, 0.7107");
          values("0.09443, 0.09138, 0.08866, 0.08837, 0.08904, 0.08929, 0.09151, 0.09315, 0.09567, 0.09758",\
                 "0.09365, 0.09046, 0.08783, 0.0875, 0.08767, 0.08926, 0.09079, 0.09243, 0.09531, 0.0965",\
                 "0.09614, 0.09285, 0.08942, 0.08862, 0.0886, 0.08987, 0.09187, 0.09315, 0.09531, 0.09794",\
                 "0.1117, 0.1071, 0.1025, 0.09967, 0.09904, 0.09923, 0.1012, 0.1022, 0.1054, 0.1069",\
                 "0.1429, 0.137, 0.1286, 0.1245, 0.1218, 0.121, 0.1221, 0.1241, 0.1263, 0.1271",\
                 "0.1903, 0.1824, 0.1715, 0.1632, 0.1598, 0.1579, 0.156, 0.1569, 0.1583, 0.1613",\
                 "0.2539, 0.2443, 0.2295, 0.2179, 0.2117, 0.2092, 0.2071, 0.2066, 0.2066, 0.2074",\
                 "0.3334, 0.3219, 0.3043, 0.2897, 0.28, 0.2737, 0.2737, 0.2714, 0.2703, 0.2695",\
                 "0.4303, 0.417, 0.3962, 0.3785, 0.365, 0.356, 0.3507, 0.3538, 0.3498, 0.3512",\
                 "0.5447, 0.5297, 0.5051, 0.484, 0.4682, 0.456, 0.4476, 0.4449, 0.4485, 0.4462");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.005898, 0.02309, 0.05593, 0.1071, 0.1789, 0.2733, 0.3923, 0.5375, 0.7107");
          values("0.1508, 0.1727, 0.2294, 0.3156, 0.4398, 0.6118, 0.838, 1.123, 1.471, 1.886",\
                 "0.1591, 0.1811, 0.2377, 0.3239, 0.4481, 0.6201, 0.8464, 1.132, 1.48, 1.895",\
                 "0.1958, 0.2175, 0.2738, 0.36, 0.4842, 0.6562, 0.8824, 1.168, 1.515, 1.93",\
                 "0.2629, 0.2859, 0.3438, 0.4304, 0.5543, 0.726, 0.9522, 1.237, 1.585, 2",\
                 "0.3476, 0.3729, 0.4336, 0.5228, 0.6472, 0.8188, 1.044, 1.329, 1.677, 2.091",\
                 "0.4476, 0.4753, 0.5417, 0.6345, 0.7601, 0.9313, 1.157, 1.441, 1.789, 2.203",\
                 "0.5622, 0.5928, 0.6651, 0.7637, 0.8934, 1.066, 1.291, 1.575, 1.922, 2.336",\
                 "0.6919, 0.7255, 0.8038, 0.9088, 1.044, 1.221, 1.447, 1.731, 2.078, 2.492",\
                 "0.8373, 0.8732, 0.9581, 1.07, 1.211, 1.392, 1.624, 1.912, 2.258, 2.672",\
                 "0.9992, 1.037, 1.129, 1.248, 1.395, 1.581, 1.819, 2.113, 2.464, 2.879");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.005898, 0.02309, 0.05593, 0.1071, 0.1789, 0.2733, 0.3923, 0.5375, 0.7107");
          values("0.1515, 0.177, 0.254, 0.3924, 0.6065, 0.9072, 1.302, 1.8, 2.408, 3.134",\
                 "0.1575, 0.183, 0.26, 0.3983, 0.6122, 0.9126, 1.308, 1.806, 2.414, 3.138",\
                 "0.1823, 0.2076, 0.2841, 0.4219, 0.6357, 0.9366, 1.332, 1.828, 2.437, 3.163",\
                 "0.214, 0.2398, 0.3165, 0.4535, 0.6665, 0.9664, 1.362, 1.859, 2.468, 3.192",\
                 "0.2398, 0.2666, 0.3437, 0.4798, 0.6921, 0.991, 1.386, 1.882, 2.489, 3.216",\
                 "0.2555, 0.2838, 0.363, 0.4989, 0.7103, 1.009, 1.402, 1.9, 2.507, 3.228",\
                 "0.258, 0.289, 0.37, 0.5083, 0.7209, 1.018, 1.411, 1.907, 2.513, 3.236",\
                 "0.2458, 0.2788, 0.3637, 0.5045, 0.7179, 1.017, 1.41, 1.905, 2.511, 3.233",\
                 "0.217, 0.2523, 0.3413, 0.4839, 0.7005, 1.003, 1.399, 1.894, 2.5, 3.222",\
                 "0.1714, 0.2092, 0.3021, 0.4472, 0.6662, 0.9727, 1.373, 1.872, 2.477, 3.199");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.005898, 0.02309, 0.05593, 0.1071, 0.1789, 0.2733, 0.3923, 0.5375, 0.7107");
          values("0.05116, 0.07316, 0.1373, 0.2547, 0.4501, 0.7336, 1.109, 1.584, 2.162, 2.851",\
                 "0.05098, 0.073, 0.1371, 0.2548, 0.4502, 0.733, 1.108, 1.582, 2.164, 2.856",\
                 "0.05136, 0.07358, 0.1378, 0.255, 0.4502, 0.7331, 1.109, 1.582, 2.162, 2.85",\
                 "0.06026, 0.08194, 0.1434, 0.2576, 0.4506, 0.7344, 1.109, 1.583, 2.164, 2.854",\
                 "0.07246, 0.09492, 0.155, 0.2661, 0.454, 0.7348, 1.11, 1.582, 2.163, 2.852",\
                 "0.0882, 0.1132, 0.1738, 0.2796, 0.4598, 0.7362, 1.108, 1.581, 2.161, 2.852",\
                 "0.1036, 0.132, 0.195, 0.3004, 0.4746, 0.7424, 1.111, 1.582, 2.16, 2.85",\
                 "0.1222, 0.1526, 0.2186, 0.323, 0.4972, 0.7618, 1.121, 1.585, 2.159, 2.847",\
                 "0.1402, 0.1736, 0.2452, 0.35, 0.5226, 0.7874, 1.146, 1.601, 2.166, 2.848",\
                 "0.1592, 0.195, 0.2728, 0.3798, 0.5488, 0.8152, 1.179, 1.634, 2.188, 2.859");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.005898, 0.02309, 0.05593, 0.1071, 0.1789, 0.2733, 0.3923, 0.5375, 0.7107");
          values("0.05622, 0.09048, 0.2073, 0.4404, 0.8114, 1.335, 2.023, 2.892, 3.952, 5.203",\
                 "0.05638, 0.09022, 0.2074, 0.4402, 0.8116, 1.335, 2.023, 2.887, 3.945, 5.214",\
                 "0.05634, 0.09054, 0.2075, 0.4405, 0.8109, 1.336, 2.024, 2.889, 3.952, 5.207",\
                 "0.06172, 0.09508, 0.2113, 0.4409, 0.8108, 1.335, 2.02, 2.891, 3.943, 5.203",\
                 "0.0693, 0.1019, 0.2149, 0.4438, 0.8136, 1.335, 2.022, 2.887, 3.947, 5.203",\
                 "0.0798, 0.1118, 0.2228, 0.4476, 0.8146, 1.334, 2.019, 2.887, 3.948, 5.201",\
                 "0.0924, 0.1244, 0.2334, 0.4568, 0.8196, 1.336, 2.021, 2.888, 3.946, 5.2",\
                 "0.106, 0.1396, 0.246, 0.4694, 0.8344, 1.346, 2.024, 2.886, 3.939, 5.198",\
                 "0.1188, 0.1558, 0.26, 0.4828, 0.8498, 1.365, 2.039, 2.89, 3.94, 5.196",\
                 "0.133, 0.171, 0.2752, 0.4956, 0.8674, 1.388, 2.063, 2.906, 3.946, 5.2");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.005898, 0.02309, 0.05593, 0.1071, 0.1789, 0.2733, 0.3923, 0.5375, 0.7107");
          values("0.1672, 0.1905, 0.2487, 0.3357, 0.46, 0.6321, 0.8582, 1.143, 1.492, 1.906",\
                 "0.1759, 0.1991, 0.2574, 0.3444, 0.4687, 0.6408, 0.867, 1.152, 1.5, 1.915",\
                 "0.2138, 0.2368, 0.2949, 0.3818, 0.5061, 0.6782, 0.9043, 1.189, 1.538, 1.952",\
                 "0.2868, 0.3108, 0.3698, 0.4568, 0.5808, 0.7526, 0.9786, 1.263, 1.611, 2.026",\
                 "0.3813, 0.4074, 0.4697, 0.5592, 0.6838, 0.8551, 1.081, 1.365, 1.713, 2.128",\
                 "0.4971, 0.5257, 0.5924, 0.685, 0.8107, 0.9818, 1.207, 1.491, 1.839, 2.253",\
                 "0.6322, 0.6641, 0.7371, 0.8348, 0.9628, 1.134, 1.359, 1.643, 1.99, 2.404",\
                 "0.7891, 0.8231, 0.9027, 1.006, 1.138, 1.313, 1.538, 1.822, 2.169, 2.583",\
                 "0.9675, 1.004, 1.09, 1.201, 1.338, 1.516, 1.745, 2.029, 2.376, 2.79",\
                 "1.169, 1.209, 1.301, 1.418, 1.562, 1.744, 1.978, 2.267, 2.615, 3.029");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.005898, 0.02309, 0.05593, 0.1071, 0.1789, 0.2733, 0.3923, 0.5375, 0.7107");
          values("0.1605, 0.1862, 0.2632, 0.4014, 0.6157, 0.9162, 1.31, 1.81, 2.417, 3.143",\
                 "0.1645, 0.1901, 0.2671, 0.4053, 0.6194, 0.9195, 1.315, 1.813, 2.421, 3.143",\
                 "0.1777, 0.2031, 0.2798, 0.4178, 0.6316, 0.9321, 1.327, 1.826, 2.433, 3.159",\
                 "0.1966, 0.2228, 0.2999, 0.4373, 0.6505, 0.9509, 1.346, 1.844, 2.452, 3.174",\
                 "0.2099, 0.2373, 0.3155, 0.4521, 0.6645, 0.9638, 1.359, 1.856, 2.462, 3.186",\
                 "0.2099, 0.239, 0.3195, 0.4574, 0.6691, 0.9674, 1.361, 1.858, 2.466, 3.191",\
                 "0.1926, 0.224, 0.307, 0.4478, 0.6619, 0.9597, 1.353, 1.849, 2.455, 3.179",\
                 "0.1562, 0.1894, 0.2761, 0.4197, 0.6373, 0.9385, 1.331, 1.827, 2.433, 3.155",\
                 "0.0989, 0.1349, 0.2252, 0.3713, 0.5916, 0.8985, 1.295, 1.791, 2.396, 3.118",\
                 "0.0189, 0.0572, 0.152, 0.3013, 0.5244, 0.8352, 1.239, 1.739, 2.345, 3.067");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.005898, 0.02309, 0.05593, 0.1071, 0.1789, 0.2733, 0.3923, 0.5375, 0.7107");
          values("0.05604, 0.0786, 0.1415, 0.2573, 0.4506, 0.7326, 1.108, 1.583, 2.161, 2.853",\
                 "0.0561, 0.07868, 0.1415, 0.2577, 0.4512, 0.7331, 1.109, 1.584, 2.161, 2.852",\
                 "0.05624, 0.07886, 0.1416, 0.257, 0.4509, 0.7345, 1.109, 1.584, 2.163, 2.851",\
                 "0.06362, 0.08572, 0.1458, 0.2597, 0.4515, 0.7332, 1.109, 1.584, 2.162, 2.853",\
                 "0.07534, 0.099, 0.1578, 0.2667, 0.4546, 0.7352, 1.109, 1.583, 2.161, 2.85",\
                 "0.09, 0.1152, 0.1748, 0.278, 0.4594, 0.7362, 1.109, 1.581, 2.161, 2.851",\
                 "0.1066, 0.1344, 0.1956, 0.2966, 0.4702, 0.7398, 1.111, 1.582, 2.16, 2.847",\
                 "0.1236, 0.1542, 0.2192, 0.3188, 0.489, 0.7542, 1.116, 1.584, 2.16, 2.848",\
                 "0.1416, 0.1756, 0.2452, 0.3434, 0.5122, 0.7748, 1.133, 1.593, 2.164, 2.847",\
                 "0.16, 0.1976, 0.272, 0.3722, 0.5368, 0.7994, 1.16, 1.617, 2.176, 2.853");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05575, 0.1813, 0.4209, 0.7943, 1.318, 2.008, 2.876, 3.936, 5.2");
          index_2("0.001, 0.005898, 0.02309, 0.05593, 0.1071, 0.1789, 0.2733, 0.3923, 0.5375, 0.7107");
          values("0.0562, 0.09042, 0.2073, 0.4402, 0.8114, 1.333, 2.021, 2.887, 3.945, 5.204",\
                 "0.05626, 0.09018, 0.2073, 0.4401, 0.8114, 1.334, 2.022, 2.887, 3.942, 5.211",\
                 "0.05614, 0.09044, 0.2076, 0.4404, 0.8115, 1.333, 2.021, 2.887, 3.953, 5.202",\
                 "0.06112, 0.09474, 0.2103, 0.4417, 0.8108, 1.334, 2.022, 2.887, 3.945, 5.21",\
                 "0.06898, 0.1015, 0.2156, 0.4426, 0.8122, 1.333, 2.023, 2.89, 3.946, 5.209",\
                 "0.07962, 0.1116, 0.225, 0.4494, 0.8142, 1.334, 2.02, 2.889, 3.94, 5.204",\
                 "0.0904, 0.1228, 0.2358, 0.461, 0.8224, 1.336, 2.019, 2.888, 3.94, 5.2",\
                 "0.1016, 0.1358, 0.2476, 0.4752, 0.8408, 1.35, 2.025, 2.884, 3.945, 5.198",\
                 "0.115, 0.1508, 0.2606, 0.4884, 0.858, 1.372, 2.042, 2.893, 3.94, 5.206",\
                 "0.1298, 0.167, 0.276, 0.5028, 0.8766, 1.4, 2.074, 2.913, 3.949, 5.198");
        }
      }
    }
  }

