/*
 * 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_mcu9t5v0__and2_2) {
    area : 25.401600 ;

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

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

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

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

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

      internal_power() {
        when : "!A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.03067, 0.03055, 0.03043, 0.03035, 0.03039, 0.03044, 0.03047, \
                  0.03049, 0.03046, 0.03043");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.01946, -0.01944, -0.01943, -0.01945, -0.01947, -0.01953, -0.01955, \
                  -0.01955, -0.01954, -0.01957");
        }
      }
    }

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

      internal_power() {
        when : "!A1" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("0.02912, 0.02768, 0.02674, 0.02667, 0.02668, 0.02671, 0.02674, \
                  0.02672, 0.02673, 0.02671");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          values("-0.02674, -0.02668, -0.02663, -0.02658, -0.02656, -0.02657, -0.02663, \
                  -0.02663, -0.02665, -0.02664");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1&A2)" ;
      max_capacitance : 0.9059 ;
      max_transition : 4.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.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.007246, 0.02917, 0.07103, 0.1363, 0.2278, 0.3482, 0.4999, 0.6851, 0.9059");
          values("0.2288, 0.2226, 0.2173, 0.2151, 0.2143, 0.2135, 0.2133, 0.2132, 0.2131, 0.213",\
                 "0.2275, 0.2211, 0.2157, 0.2136, 0.2131, 0.2124, 0.212, 0.2117, 0.2116, 0.2117",\
                 "0.2313, 0.2248, 0.2184, 0.2161, 0.2153, 0.2146, 0.2144, 0.2142, 0.2142, 0.2141",\
                 "0.2587, 0.2499, 0.2393, 0.2344, 0.2318, 0.2307, 0.23, 0.2296, 0.2295, 0.2293",\
                 "0.3077, 0.2962, 0.28, 0.2713, 0.2663, 0.2634, 0.2621, 0.2613, 0.2604, 0.26",\
                 "0.3798, 0.3658, 0.3429, 0.3285, 0.3207, 0.3156, 0.3123, 0.3106, 0.3095, 0.3086",\
                 "0.4738, 0.458, 0.4283, 0.4081, 0.3957, 0.3876, 0.383, 0.3798, 0.3777, 0.3763",\
                 "0.5914, 0.5737, 0.5373, 0.5105, 0.493, 0.4824, 0.4745, 0.4696, 0.4662, 0.464",\
                 "0.7318, 0.7128, 0.6713, 0.6371, 0.6137, 0.5989, 0.5887, 0.5817, 0.577, 0.5734",\
                 "0.8961, 0.8763, 0.8299, 0.7883, 0.76, 0.7395, 0.726, 0.7161, 0.7099, 0.7053");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.007246, 0.02917, 0.07103, 0.1363, 0.2278, 0.3482, 0.4999, 0.6851, 0.9059");
          values("0.1323, 0.1282, 0.1247, 0.1249, 0.1256, 0.1266, 0.1299, 0.1318, 0.136, 0.1385",\
                 "0.1316, 0.1275, 0.124, 0.1239, 0.125, 0.1268, 0.1292, 0.1311, 0.1339, 0.1389",\
                 "0.1367, 0.1321, 0.1274, 0.1264, 0.1271, 0.1279, 0.1313, 0.1333, 0.1353, 0.1403",\
                 "0.1594, 0.1532, 0.146, 0.1419, 0.1412, 0.1415, 0.1447, 0.1459, 0.1508, 0.1518",\
                 "0.2004, 0.1921, 0.1802, 0.1743, 0.17, 0.1686, 0.1706, 0.1721, 0.176, 0.1781",\
                 "0.2615, 0.2505, 0.2342, 0.2227, 0.2195, 0.2157, 0.2149, 0.2161, 0.217, 0.2188",\
                 "0.3429, 0.3293, 0.3087, 0.2941, 0.284, 0.2802, 0.2775, 0.2751, 0.2753, 0.2768",\
                 "0.4456, 0.4283, 0.4037, 0.3837, 0.3689, 0.3605, 0.361, 0.3586, 0.3563, 0.3567",\
                 "0.5689, 0.5489, 0.5198, 0.4957, 0.4756, 0.4659, 0.4579, 0.4591, 0.4575, 0.4542",\
                 "0.7142, 0.6926, 0.6573, 0.6291, 0.6066, 0.5894, 0.5785, 0.5746, 0.5788, 0.5734");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.007246, 0.02917, 0.07103, 0.1363, 0.2278, 0.3482, 0.4999, 0.6851, 0.9059");
          values("0.2637, 0.2563, 0.2484, 0.2446, 0.2426, 0.2417, 0.241, 0.2407, 0.2405, 0.2403",\
                 "0.2628, 0.2554, 0.247, 0.2435, 0.2417, 0.2407, 0.24, 0.2399, 0.2398, 0.2394",\
                 "0.2671, 0.2593, 0.2504, 0.2468, 0.245, 0.244, 0.2435, 0.2432, 0.243, 0.2429",\
                 "0.2944, 0.285, 0.2727, 0.2667, 0.2633, 0.2617, 0.2607, 0.2601, 0.2597, 0.2594",\
                 "0.3452, 0.3334, 0.316, 0.3053, 0.2994, 0.2962, 0.2944, 0.2932, 0.2925, 0.292",\
                 "0.4202, 0.4063, 0.3821, 0.3666, 0.3574, 0.3515, 0.3481, 0.3459, 0.3446, 0.3437",\
                 "0.5183, 0.5026, 0.4723, 0.4509, 0.4371, 0.4284, 0.423, 0.4194, 0.417, 0.4153",\
                 "0.6402, 0.6231, 0.5873, 0.5587, 0.5403, 0.5275, 0.5195, 0.5142, 0.5105, 0.5077",\
                 "0.7869, 0.7683, 0.7268, 0.6919, 0.6675, 0.6503, 0.6392, 0.632, 0.6265, 0.6227",\
                 "0.9589, 0.9394, 0.8929, 0.851, 0.8208, 0.7988, 0.7838, 0.7735, 0.7662, 0.7611");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.007246, 0.02917, 0.07103, 0.1363, 0.2278, 0.3482, 0.4999, 0.6851, 0.9059");
          values("0.1325, 0.1284, 0.1248, 0.1248, 0.126, 0.1273, 0.1306, 0.1318, 0.1342, 0.1389",\
                 "0.1313, 0.1271, 0.1237, 0.1238, 0.1247, 0.1265, 0.1288, 0.1311, 0.1339, 0.1385",\
                 "0.134, 0.1294, 0.1251, 0.1245, 0.1252, 0.127, 0.1295, 0.1315, 0.1353, 0.1382",\
                 "0.153, 0.1475, 0.1408, 0.1377, 0.1371, 0.1385, 0.1407, 0.1441, 0.1461, 0.1493",\
                 "0.1927, 0.1852, 0.174, 0.1689, 0.1658, 0.1642, 0.1652, 0.1682, 0.1706, 0.1749",\
                 "0.2537, 0.2436, 0.229, 0.2178, 0.2138, 0.211, 0.2105, 0.2103, 0.2127, 0.2163",\
                 "0.3357, 0.3228, 0.3045, 0.2895, 0.2808, 0.2783, 0.2757, 0.2729, 0.2746, 0.2753",\
                 "0.4391, 0.4235, 0.4005, 0.3805, 0.3671, 0.3611, 0.3596, 0.3586, 0.3553, 0.356",\
                 "0.5644, 0.5469, 0.5193, 0.4967, 0.4776, 0.4667, 0.4597, 0.4627, 0.4593, 0.4593",\
                 "0.7128, 0.6929, 0.6603, 0.6325, 0.612, 0.5966, 0.5853, 0.5811, 0.5849, 0.5813");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.007246, 0.02917, 0.07103, 0.1363, 0.2278, 0.3482, 0.4999, 0.6851, 0.9059");
          values("0.1376, 0.1564, 0.2047, 0.2771, 0.3798, 0.5213, 0.7072, 0.9415, 1.227, 1.569",\
                 "0.1444, 0.1633, 0.2115, 0.2839, 0.3866, 0.5281, 0.714, 0.9483, 1.234, 1.575",\
                 "0.1749, 0.1937, 0.2417, 0.3139, 0.4167, 0.5581, 0.744, 0.9783, 1.264, 1.605",\
                 "0.2327, 0.2523, 0.3014, 0.3741, 0.4767, 0.6179, 0.8036, 1.038, 1.324, 1.665",\
                 "0.3059, 0.3275, 0.3789, 0.4536, 0.557, 0.6982, 0.8836, 1.117, 1.403, 1.744",\
                 "0.3933, 0.4168, 0.4727, 0.5503, 0.6549, 0.7957, 0.9814, 1.215, 1.5, 1.841",\
                 "0.4932, 0.5193, 0.5801, 0.6629, 0.7705, 0.9121, 1.097, 1.33, 1.616, 1.956",\
                 "0.6068, 0.6347, 0.701, 0.7889, 0.9009, 1.047, 1.233, 1.466, 1.751, 2.091",\
                 "0.7337, 0.7641, 0.8357, 0.9291, 1.046, 1.196, 1.386, 1.622, 1.907, 2.247",\
                 "0.8751, 0.9074, 0.9844, 1.084, 1.206, 1.359, 1.555, 1.795, 2.084, 2.424");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.007246, 0.02917, 0.07103, 0.1363, 0.2278, 0.3482, 0.4999, 0.6851, 0.9059");
          values("0.137, 0.1589, 0.2247, 0.3421, 0.5236, 0.778, 1.112, 1.534, 2.049, 2.662",\
                 "0.142, 0.164, 0.2297, 0.347, 0.5284, 0.783, 1.117, 1.539, 2.054, 2.668",\
                 "0.163, 0.1847, 0.25, 0.3669, 0.5483, 0.8022, 1.137, 1.559, 2.074, 2.687",\
                 "0.1907, 0.213, 0.2783, 0.3946, 0.5752, 0.8293, 1.164, 1.585, 2.099, 2.712",\
                 "0.2137, 0.2365, 0.3021, 0.4176, 0.5974, 0.8506, 1.185, 1.606, 2.12, 2.732",\
                 "0.2282, 0.2524, 0.3191, 0.4346, 0.614, 0.8667, 1.2, 1.621, 2.135, 2.747",\
                 "0.2316, 0.2579, 0.3267, 0.444, 0.6232, 0.8744, 1.207, 1.627, 2.14, 2.752",\
                 "0.2224, 0.2507, 0.3222, 0.4405, 0.6214, 0.874, 1.207, 1.626, 2.139, 2.751",\
                 "0.1994, 0.2291, 0.3044, 0.425, 0.607, 0.8635, 1.197, 1.616, 2.129, 2.74",\
                 "0.1615, 0.1936, 0.2724, 0.3949, 0.5789, 0.8374, 1.176, 1.596, 2.108, 2.72");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.007246, 0.02917, 0.07103, 0.1363, 0.2278, 0.3482, 0.4999, 0.6851, 0.9059");
          values("0.04428, 0.06308, 0.1169, 0.213, 0.371, 0.6036, 0.9101, 1.298, 1.775, 2.343",\
                 "0.04444, 0.0631, 0.1171, 0.2131, 0.3716, 0.603, 0.911, 1.299, 1.776, 2.343",\
                 "0.04454, 0.06356, 0.1172, 0.2131, 0.3721, 0.603, 0.9108, 1.299, 1.776, 2.343",\
                 "0.0516, 0.07036, 0.1218, 0.2153, 0.3717, 0.6033, 0.9109, 1.298, 1.774, 2.34",\
                 "0.0622, 0.08122, 0.1318, 0.2236, 0.3754, 0.6045, 0.9112, 1.298, 1.775, 2.341",\
                 "0.0754, 0.0968, 0.1474, 0.234, 0.3808, 0.6062, 0.9112, 1.298, 1.773, 2.342",\
                 "0.0894, 0.1132, 0.1654, 0.2516, 0.3936, 0.6116, 0.913, 1.299, 1.773, 2.337",\
                 "0.1048, 0.1304, 0.1864, 0.2724, 0.4124, 0.6264, 0.9212, 1.303, 1.772, 2.337",\
                 "0.1202, 0.1496, 0.2094, 0.2952, 0.4346, 0.6484, 0.9424, 1.315, 1.778, 2.337",\
                 "0.137, 0.1674, 0.232, 0.3212, 0.4574, 0.6716, 0.9678, 1.341, 1.796, 2.346");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.007246, 0.02917, 0.07103, 0.1363, 0.2278, 0.3482, 0.4999, 0.6851, 0.9059");
          values("0.04828, 0.0774, 0.1765, 0.3727, 0.6863, 1.128, 1.71, 2.44, 3.334, 4.4",\
                 "0.04854, 0.07742, 0.1765, 0.3728, 0.6865, 1.127, 1.708, 2.445, 3.335, 4.399",\
                 "0.0485, 0.07738, 0.1767, 0.3729, 0.6864, 1.129, 1.708, 2.441, 3.335, 4.398",\
                 "0.05284, 0.08138, 0.1794, 0.3738, 0.6863, 1.128, 1.711, 2.44, 3.336, 4.408",\
                 "0.05904, 0.08672, 0.183, 0.3761, 0.6887, 1.128, 1.71, 2.44, 3.337, 4.403",\
                 "0.06804, 0.09566, 0.1895, 0.3794, 0.689, 1.13, 1.709, 2.441, 3.332, 4.394",\
                 "0.079, 0.1056, 0.198, 0.3866, 0.6932, 1.13, 1.709, 2.442, 3.336, 4.395",\
                 "0.0906, 0.118, 0.2088, 0.3962, 0.7046, 1.137, 1.712, 2.439, 3.33, 4.393",\
                 "0.1024, 0.1328, 0.2208, 0.4072, 0.7174, 1.153, 1.721, 2.443, 3.331, 4.395",\
                 "0.114, 0.1464, 0.2338, 0.4184, 0.7302, 1.171, 1.742, 2.457, 3.337, 4.395");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.007246, 0.02917, 0.07103, 0.1363, 0.2278, 0.3482, 0.4999, 0.6851, 0.9059");
          values("0.1542, 0.1742, 0.2241, 0.2974, 0.4004, 0.5419, 0.7277, 0.962, 1.248, 1.588",\
                 "0.1613, 0.1814, 0.2314, 0.3047, 0.4076, 0.5491, 0.7349, 0.9689, 1.255, 1.595",\
                 "0.1929, 0.213, 0.2627, 0.3359, 0.4388, 0.5803, 0.7661, 1, 1.286, 1.627",\
                 "0.2556, 0.2763, 0.3265, 0.3997, 0.5024, 0.6437, 0.8294, 1.064, 1.349, 1.69",\
                 "0.3374, 0.3598, 0.4132, 0.4883, 0.5917, 0.7326, 0.9179, 1.152, 1.437, 1.778",\
                 "0.438, 0.4623, 0.5193, 0.5975, 0.7014, 0.8423, 1.027, 1.261, 1.546, 1.887",\
                 "0.5558, 0.5825, 0.6445, 0.7267, 0.8331, 0.9739, 1.158, 1.392, 1.677, 2.017",\
                 "0.6918, 0.7212, 0.7882, 0.8748, 0.9852, 1.128, 1.313, 1.546, 1.832, 2.171",\
                 "0.847, 0.8785, 0.951, 1.044, 1.158, 1.305, 1.492, 1.726, 2.011, 2.35",\
                 "1.022, 1.055, 1.134, 1.232, 1.351, 1.501, 1.693, 1.93, 2.216, 2.555");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.007246, 0.02917, 0.07103, 0.1363, 0.2278, 0.3482, 0.4999, 0.6851, 0.9059");
          values("0.1461, 0.168, 0.2338, 0.3511, 0.5326, 0.7871, 1.122, 1.544, 2.058, 2.671",\
                 "0.1495, 0.1714, 0.2372, 0.3546, 0.5361, 0.7905, 1.125, 1.547, 2.062, 2.675",\
                 "0.1606, 0.1824, 0.2479, 0.365, 0.5463, 0.801, 1.135, 1.557, 2.072, 2.685",\
                 "0.1771, 0.1996, 0.2653, 0.382, 0.5627, 0.8167, 1.151, 1.573, 2.087, 2.7",\
                 "0.1897, 0.2131, 0.2796, 0.3955, 0.5756, 0.829, 1.163, 1.585, 2.099, 2.712",\
                 "0.1914, 0.2161, 0.2846, 0.4015, 0.5801, 0.833, 1.166, 1.587, 2.102, 2.714",\
                 "0.1786, 0.2054, 0.2761, 0.3952, 0.5756, 0.8275, 1.16, 1.58, 2.094, 2.707",\
                 "0.1493, 0.1778, 0.2515, 0.3726, 0.5557, 0.8104, 1.142, 1.562, 2.074, 2.686",\
                 "0.1027, 0.1333, 0.21, 0.3336, 0.5186, 0.7769, 1.112, 1.532, 2.044, 2.655",\
                 "0.0367, 0.0694, 0.1497, 0.2753, 0.4632, 0.7249, 1.065, 1.489, 2.001, 2.612");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.007246, 0.02917, 0.07103, 0.1363, 0.2278, 0.3482, 0.4999, 0.6851, 0.9059");
          values("0.04938, 0.06862, 0.1214, 0.2151, 0.3728, 0.604, 0.9109, 1.299, 1.775, 2.34",\
                 "0.0496, 0.06884, 0.121, 0.2155, 0.3726, 0.6041, 0.9107, 1.299, 1.775, 2.341",\
                 "0.0495, 0.06886, 0.1215, 0.2152, 0.3725, 0.6031, 0.9103, 1.3, 1.772, 2.341",\
                 "0.05524, 0.07432, 0.1249, 0.2171, 0.3725, 0.6032, 0.9113, 1.299, 1.775, 2.339",\
                 "0.0652, 0.0854, 0.135, 0.2238, 0.3759, 0.6039, 0.911, 1.299, 1.774, 2.341",\
                 "0.0782, 0.1, 0.1486, 0.234, 0.3808, 0.6058, 0.9112, 1.299, 1.774, 2.34",\
                 "0.0918, 0.1158, 0.1668, 0.249, 0.39, 0.6098, 0.9132, 1.299, 1.772, 2.337",\
                 "0.1064, 0.132, 0.1878, 0.2688, 0.4064, 0.6208, 0.9186, 1.301, 1.773, 2.336",\
                 "0.1216, 0.15, 0.209, 0.2894, 0.427, 0.638, 0.9314, 1.308, 1.775, 2.338",\
                 "0.138, 0.17, 0.2338, 0.3144, 0.448, 0.6586, 0.953, 1.328, 1.786, 2.341");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05023, 0.1564, 0.359, 0.6747, 1.118, 1.701, 2.435, 3.331, 4.4");
          index_2("0.001, 0.007246, 0.02917, 0.07103, 0.1363, 0.2278, 0.3482, 0.4999, 0.6851, 0.9059");
          values("0.04842, 0.0775, 0.1765, 0.3729, 0.6865, 1.127, 1.712, 2.441, 3.341, 4.4",\
                 "0.04832, 0.0774, 0.1765, 0.3726, 0.6861, 1.127, 1.709, 2.445, 3.335, 4.399",\
                 "0.04842, 0.07776, 0.1767, 0.3736, 0.6863, 1.128, 1.709, 2.441, 3.334, 4.401",\
                 "0.0524, 0.08108, 0.179, 0.3738, 0.6864, 1.128, 1.709, 2.444, 3.34, 4.408",\
                 "0.05852, 0.08686, 0.1833, 0.3757, 0.6882, 1.128, 1.71, 2.44, 3.332, 4.398",\
                 "0.06742, 0.09506, 0.1911, 0.38, 0.6884, 1.128, 1.707, 2.443, 3.332, 4.401",\
                 "0.0772, 0.1046, 0.2004, 0.3898, 0.6952, 1.131, 1.708, 2.441, 3.335, 4.394",\
                 "0.0872, 0.1162, 0.2106, 0.401, 0.709, 1.14, 1.711, 2.438, 3.333, 4.391",\
                 "0.098, 0.1288, 0.2222, 0.4126, 0.724, 1.159, 1.725, 2.443, 3.33, 4.398",\
                 "0.1106, 0.1424, 0.2346, 0.4246, 0.7388, 1.181, 1.749, 2.463, 3.338, 4.394");
        }
      }
    }
  }

