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

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

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

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

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

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

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

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

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

      internal_power() {
        when : "A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          values("0.0201, 0.02012, 0.02007, 0.02009, 0.02011, 0.02007, 0.02003, \
                  0.01995, 0.01983, 0.01954");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          values("-0.009004, -0.009043, -0.009074, -0.00909, -0.009139, -0.009126, \
                  -0.009141, -0.009142, -0.009135, -0.009134");
        }
      }
    }

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

      internal_power() {
        when : "A1" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          values("0.02686, 0.02682, 0.02682, 0.02688, 0.02692, 0.02692, 0.02692, \
                  0.02691, 0.02691, 0.02689");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          values("-0.02492, -0.02517, -0.0257, -0.02602, -0.02626, -0.02634, -0.0264, \
                  -0.02643, -0.02647, -0.0265");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1|A2)" ;
      max_capacitance : 1.418 ;
      max_transition : 15.6 ;
      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.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01078, 0.04511, 0.1107, 0.2128, 0.3561, 0.5447, 0.7822, 1.072, 1.418");
          values("0.24, 0.2342, 0.2286, 0.2266, 0.2257, 0.2253, 0.225, 0.2248, 0.2247, 0.2246",\
                 "0.2375, 0.2317, 0.2263, 0.2241, 0.2233, 0.2228, 0.2225, 0.2223, 0.2222, 0.2221",\
                 "0.2362, 0.2304, 0.2246, 0.2227, 0.2219, 0.2215, 0.2212, 0.2211, 0.221, 0.2209",\
                 "0.245, 0.2385, 0.2315, 0.229, 0.228, 0.2276, 0.2274, 0.2272, 0.227, 0.227",\
                 "0.2691, 0.2607, 0.2505, 0.2455, 0.2434, 0.2424, 0.2419, 0.2416, 0.2414, 0.2412",\
                 "0.3021, 0.2919, 0.2783, 0.2711, 0.2675, 0.2659, 0.265, 0.2643, 0.2639, 0.2638",\
                 "0.3447, 0.3331, 0.3161, 0.3063, 0.3013, 0.2988, 0.297, 0.2962, 0.2957, 0.2952",\
                 "0.399, 0.3858, 0.3653, 0.3526, 0.3457, 0.3419, 0.3396, 0.3383, 0.3373, 0.3366",\
                 "0.4654, 0.4512, 0.4268, 0.4107, 0.4016, 0.3963, 0.3932, 0.391, 0.3897, 0.3882",\
                 "0.5454, 0.5297, 0.5012, 0.482, 0.47, 0.463, 0.4586, 0.4557, 0.4532, 0.4496");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01078, 0.04511, 0.1107, 0.2128, 0.3561, 0.5447, 0.7822, 1.072, 1.418");
          values("0.1168, 0.1178, 0.1213, 0.1248, 0.1273, 0.1297, 0.1313, 0.1422, 0.2296, 0.6408",\
                 "0.1172, 0.1182, 0.1215, 0.1252, 0.1276, 0.1291, 0.1325, 0.1412, 0.228, 0.6592",\
                 "0.1195, 0.1192, 0.1212, 0.1245, 0.1275, 0.1294, 0.1328, 0.1424, 0.2398, 0.6856",\
                 "0.1282, 0.1264, 0.1264, 0.1282, 0.1305, 0.1327, 0.1358, 0.1477, 0.2569, 0.7384",\
                 "0.145, 0.1423, 0.1389, 0.1395, 0.1411, 0.1429, 0.1451, 0.1616, 0.2881, 0.8349",\
                 "0.1717, 0.1672, 0.1614, 0.1592, 0.1609, 0.1627, 0.1644, 0.1824, 0.3422, 0.9736",\
                 "0.2086, 0.2029, 0.1946, 0.1895, 0.188, 0.1909, 0.1936, 0.2195, 0.4258, 1.174",\
                 "0.2564, 0.2486, 0.2379, 0.2302, 0.2258, 0.2257, 0.2324, 0.2754, 0.5618, 1.463",\
                 "0.3158, 0.3061, 0.2922, 0.2825, 0.2765, 0.2724, 0.2778, 0.3569, 0.7775, 1.867",\
                 "0.3868, 0.3747, 0.3584, 0.3459, 0.3378, 0.332, 0.3417, 0.4877, 1.118, 2.403");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01078, 0.04511, 0.1107, 0.2128, 0.3561, 0.5447, 0.7822, 1.072, 1.418");
          values("0.2588, 0.253, 0.2477, 0.2455, 0.2447, 0.2442, 0.2438, 0.2436, 0.2435, 0.2434",\
                 "0.2567, 0.2509, 0.2454, 0.2434, 0.2425, 0.242, 0.2417, 0.2415, 0.2414, 0.2413",\
                 "0.2539, 0.248, 0.2424, 0.2403, 0.2396, 0.2391, 0.2389, 0.2386, 0.2386, 0.2385",\
                 "0.2593, 0.2529, 0.246, 0.2434, 0.2425, 0.242, 0.2417, 0.2414, 0.2413, 0.2412",\
                 "0.2788, 0.2711, 0.262, 0.2579, 0.2561, 0.2551, 0.2547, 0.2544, 0.2541, 0.254",\
                 "0.3107, 0.3019, 0.2902, 0.2848, 0.2817, 0.2806, 0.2798, 0.2792, 0.279, 0.2788",\
                 "0.3569, 0.3467, 0.3322, 0.3243, 0.3203, 0.3183, 0.317, 0.3163, 0.3159, 0.3155",\
                 "0.4176, 0.4061, 0.3882, 0.3777, 0.3719, 0.3688, 0.3671, 0.366, 0.3651, 0.3644",\
                 "0.4933, 0.4803, 0.4586, 0.445, 0.4372, 0.4326, 0.4302, 0.4284, 0.4273, 0.426",\
                 "0.5838, 0.5696, 0.5441, 0.5273, 0.517, 0.5106, 0.507, 0.5046, 0.5026, 0.4996");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01078, 0.04511, 0.1107, 0.2128, 0.3561, 0.5447, 0.7822, 1.072, 1.418");
          values("0.1347, 0.135, 0.1376, 0.1409, 0.1433, 0.1462, 0.148, 0.1561, 0.2437, 0.6624",\
                 "0.133, 0.1332, 0.136, 0.1391, 0.1418, 0.1444, 0.1465, 0.1557, 0.245, 0.6681",\
                 "0.1333, 0.133, 0.1343, 0.1373, 0.1401, 0.1426, 0.1453, 0.1548, 0.2497, 0.6982",\
                 "0.1421, 0.1406, 0.1398, 0.141, 0.1434, 0.1462, 0.1483, 0.1616, 0.2699, 0.7598",\
                 "0.1603, 0.1573, 0.1538, 0.1541, 0.1554, 0.157, 0.1601, 0.174, 0.305, 0.8544",\
                 "0.1893, 0.1851, 0.1793, 0.1763, 0.1781, 0.1798, 0.1805, 0.2008, 0.3642, 1.003",\
                 "0.2307, 0.2251, 0.2165, 0.2113, 0.2091, 0.2125, 0.2145, 0.2413, 0.4562, 1.218",\
                 "0.2847, 0.277, 0.2666, 0.2589, 0.2556, 0.2536, 0.26, 0.3059, 0.6067, 1.529",\
                 "0.352, 0.3427, 0.3298, 0.3196, 0.3124, 0.3099, 0.3151, 0.4005, 0.8454, 1.965",\
                 "0.433, 0.422, 0.4064, 0.3938, 0.3851, 0.3794, 0.3906, 0.5536, 1.226, 2.534");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01078, 0.04511, 0.1107, 0.2128, 0.3561, 0.5447, 0.7822, 1.072, 1.418");
          values("0.739, 0.8226, 1.031, 1.32, 1.694, 2.176, 2.792, 3.562, 4.501, 5.621",\
                 "0.7542, 0.838, 1.046, 1.336, 1.71, 2.191, 2.807, 3.577, 4.516, 5.635",\
                 "0.8553, 0.9387, 1.147, 1.436, 1.81, 2.292, 2.908, 3.678, 4.617, 5.736",\
                 "1.091, 1.174, 1.382, 1.671, 2.045, 2.527, 3.143, 3.913, 4.852, 5.972",\
                 "1.419, 1.507, 1.721, 2.018, 2.395, 2.878, 3.494, 4.263, 5.202, 6.321",\
                 "1.806, 1.9, 2.124, 2.429, 2.814, 3.302, 3.92, 4.69, 5.628, 6.747",\
                 "2.27, 2.369, 2.604, 2.918, 3.308, 3.798, 4.419, 5.192, 6.13, 7.249",\
                 "2.815, 2.921, 3.169, 3.494, 3.891, 4.385, 5.006, 5.779, 6.72, 7.839",\
                 "3.445, 3.556, 3.819, 4.159, 4.567, 5.066, 5.688, 6.462, 7.402, 8.523",\
                 "4.161, 4.279, 4.556, 4.915, 5.336, 5.846, 6.475, 7.25, 8.192, 9.31");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01078, 0.04511, 0.1107, 0.2128, 0.3561, 0.5447, 0.7822, 1.072, 1.418");
          values("0.327, 0.3992, 0.6213, 1.032, 1.667, 2.556, 3.723, 5.198, 6.997, 9.133",\
                 "0.3581, 0.4301, 0.6523, 1.063, 1.697, 2.586, 3.753, 5.224, 7.025, 9.163",\
                 "0.4609, 0.5323, 0.7528, 1.163, 1.797, 2.687, 3.856, 5.333, 7.125, 9.276",\
                 "0.5649, 0.6408, 0.8638, 1.273, 1.907, 2.797, 3.967, 5.441, 7.239, 9.375",\
                 "0.6226, 0.705, 0.9321, 1.339, 1.972, 2.86, 4.029, 5.503, 7.299, 9.446",\
                 "0.6265, 0.7153, 0.952, 1.358, 1.989, 2.877, 4.043, 5.517, 7.314, 9.449",\
                 "0.5676, 0.6648, 0.9139, 1.323, 1.954, 2.84, 4.006, 5.477, 7.272, 9.415",\
                 "0.442, 0.5449, 0.8097, 1.225, 1.859, 2.745, 3.911, 5.381, 7.175, 9.316",\
                 "0.2446, 0.3545, 0.6342, 1.058, 1.696, 2.588, 3.755, 5.224, 7.018, 9.155",\
                 "-0.0303, 0.0861, 0.383, 0.8181, 1.46, 2.36, 3.535, 5.005, 6.798, 8.937");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01078, 0.04511, 0.1107, 0.2128, 0.3561, 0.5447, 0.7822, 1.072, 1.418");
          values("0.2221, 0.3013, 0.5149, 0.85, 1.36, 2.099, 3.113, 4.413, 6.01, 7.92",\
                 "0.2225, 0.3012, 0.5163, 0.8504, 1.36, 2.101, 3.113, 4.413, 6.009, 7.908",\
                 "0.2222, 0.302, 0.5154, 0.8506, 1.359, 2.102, 3.114, 4.413, 6.01, 7.916",\
                 "0.2262, 0.3058, 0.5188, 0.8522, 1.36, 2.102, 3.112, 4.409, 6.009, 7.92",\
                 "0.259, 0.337, 0.5454, 0.8718, 1.371, 2.106, 3.114, 4.411, 6.003, 7.909",\
                 "0.2926, 0.3724, 0.5772, 0.9042, 1.399, 2.125, 3.124, 4.414, 6.006, 7.92",\
                 "0.325, 0.4096, 0.6146, 0.9338, 1.42, 2.142, 3.138, 4.425, 6.016, 7.908",\
                 "0.3616, 0.4504, 0.658, 0.9716, 1.447, 2.157, 3.15, 4.434, 6.022, 7.916",\
                 "0.4, 0.496, 0.71, 1.022, 1.488, 2.184, 3.16, 4.44, 6.032, 7.926",\
                 "0.442, 0.546, 0.77, 1.082, 1.542, 2.226, 3.19, 4.458, 6.038, 7.938");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01078, 0.04511, 0.1107, 0.2128, 0.3561, 0.5447, 0.7822, 1.072, 1.418");
          values("0.1484, 0.2463, 0.6059, 1.322, 2.437, 4.005, 6.063, 8.663, 11.83, 15.6",\
                 "0.1477, 0.2458, 0.6059, 1.323, 2.437, 4.001, 6.068, 8.673, 11.83, 15.61",\
                 "0.1507, 0.2477, 0.6063, 1.323, 2.436, 4, 6.064, 8.672, 11.83, 15.63",\
                 "0.1718, 0.2678, 0.6138, 1.32, 2.436, 4.006, 6.066, 8.67, 11.83, 15.61",\
                 "0.1954, 0.2926, 0.6234, 1.325, 2.439, 3.997, 6.06, 8.656, 11.83, 15.61",\
                 "0.2244, 0.3234, 0.643, 1.329, 2.441, 4.003, 6.058, 8.658, 11.83, 15.6",\
                 "0.2546, 0.3596, 0.672, 1.343, 2.447, 4.007, 6.062, 8.665, 11.85, 15.63",\
                 "0.2858, 0.3956, 0.7088, 1.365, 2.465, 4.016, 6.063, 8.655, 11.84, 15.64",\
                 "0.3222, 0.4346, 0.7536, 1.393, 2.489, 4.038, 6.076, 8.66, 11.82, 15.6",\
                 "0.359, 0.4746, 0.8026, 1.424, 2.524, 4.08, 6.112, 8.674, 11.83, 15.6");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01078, 0.04511, 0.1107, 0.2128, 0.3561, 0.5447, 0.7822, 1.072, 1.418");
          values("0.8081, 0.8918, 1.1, 1.39, 1.764, 2.245, 2.861, 3.631, 4.57, 5.69",\
                 "0.832, 0.9154, 1.124, 1.414, 1.787, 2.269, 2.885, 3.655, 4.594, 5.714",\
                 "0.9108, 0.9943, 1.202, 1.492, 1.866, 2.348, 2.964, 3.734, 4.673, 5.792",\
                 "1.062, 1.145, 1.354, 1.644, 2.018, 2.5, 3.116, 3.886, 4.824, 5.944",\
                 "1.278, 1.367, 1.584, 1.884, 2.263, 2.747, 3.363, 4.133, 5.072, 6.191",\
                 "1.571, 1.664, 1.89, 2.2, 2.588, 3.077, 3.695, 4.465, 5.404, 6.523",\
                 "1.94, 2.037, 2.273, 2.595, 2.991, 3.486, 4.106, 4.878, 5.817, 6.936",\
                 "2.376, 2.479, 2.728, 3.064, 3.473, 3.976, 4.599, 5.372, 6.312, 7.432",\
                 "2.875, 2.984, 3.248, 3.601, 4.029, 4.544, 5.176, 5.95, 6.891, 8.01",\
                 "3.439, 3.553, 3.832, 4.206, 4.654, 5.188, 5.834, 6.618, 7.56, 8.679");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01078, 0.04511, 0.1107, 0.2128, 0.3561, 0.5447, 0.7822, 1.072, 1.418");
          values("0.364, 0.4369, 0.6598, 1.071, 1.706, 2.593, 3.762, 5.233, 7.028, 9.165",\
                 "0.3922, 0.465, 0.688, 1.099, 1.734, 2.622, 3.791, 5.263, 7.058, 9.199",\
                 "0.4971, 0.5691, 0.7907, 1.201, 1.837, 2.725, 3.894, 5.364, 7.159, 9.299",\
                 "0.6235, 0.6994, 0.9217, 1.331, 1.965, 2.853, 4.022, 5.494, 7.291, 9.43",\
                 "0.7083, 0.7895, 1.017, 1.424, 2.057, 2.945, 4.115, 5.586, 7.382, 9.523",\
                 "0.7459, 0.8338, 1.069, 1.475, 2.107, 2.994, 4.162, 5.633, 7.429, 9.569",\
                 "0.7329, 0.8275, 1.073, 1.482, 2.113, 3, 4.166, 5.637, 7.433, 9.571",\
                 "0.6635, 0.7645, 1.025, 1.439, 2.073, 2.96, 4.126, 5.595, 7.39, 9.529",\
                 "0.5382, 0.6457, 0.9206, 1.342, 1.98, 2.873, 4.04, 5.509, 7.303, 9.44",\
                 "0.3534, 0.467, 0.7571, 1.188, 1.833, 2.731, 3.905, 5.375, 7.168, 9.306");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01078, 0.04511, 0.1107, 0.2128, 0.3561, 0.5447, 0.7822, 1.072, 1.418");
          values("0.222, 0.3013, 0.5161, 0.8496, 1.36, 2.101, 3.112, 4.413, 6.01, 7.92",\
                 "0.2226, 0.3017, 0.5158, 0.8488, 1.359, 2.102, 3.111, 4.412, 6.01, 7.92",\
                 "0.222, 0.3018, 0.5162, 0.85, 1.358, 2.102, 3.11, 4.412, 6.004, 7.92",\
                 "0.2286, 0.3074, 0.5196, 0.8522, 1.361, 2.101, 3.11, 4.413, 6.007, 7.91",\
                 "0.2518, 0.3338, 0.5476, 0.875, 1.374, 2.107, 3.115, 4.41, 6.011, 7.911",\
                 "0.2728, 0.357, 0.5778, 0.9084, 1.402, 2.125, 3.122, 4.413, 6.007, 7.913",\
                 "0.2994, 0.3874, 0.61, 0.9442, 1.432, 2.146, 3.135, 4.421, 6.009, 7.915",\
                 "0.3324, 0.425, 0.6548, 0.9934, 1.473, 2.177, 3.155, 4.43, 6.012, 7.914",\
                 "0.3716, 0.4682, 0.704, 1.054, 1.536, 2.224, 3.184, 4.446, 6.022, 7.92",\
                 "0.41, 0.516, 0.764, 1.122, 1.614, 2.302, 3.246, 4.49, 6.04, 7.926");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1275, 0.505, 1.226, 2.349, 3.925, 5.998, 8.61, 11.8, 15.6");
          index_2("0.001, 0.01078, 0.04511, 0.1107, 0.2128, 0.3561, 0.5447, 0.7822, 1.072, 1.418");
          values("0.1522, 0.2504, 0.6086, 1.324, 2.437, 4.003, 6.058, 8.661, 11.82, 15.59",\
                 "0.1514, 0.2503, 0.6086, 1.322, 2.437, 4.003, 6.064, 8.66, 11.83, 15.6",\
                 "0.1527, 0.2512, 0.6089, 1.322, 2.437, 4.002, 6.067, 8.652, 11.82, 15.59",\
                 "0.1706, 0.2672, 0.614, 1.325, 2.437, 4.002, 6.06, 8.659, 11.83, 15.6",\
                 "0.1938, 0.29, 0.6252, 1.327, 2.442, 4.001, 6.064, 8.657, 11.83, 15.6",\
                 "0.2198, 0.318, 0.6404, 1.332, 2.442, 4.005, 6.058, 8.658, 11.83, 15.6",\
                 "0.2472, 0.3502, 0.666, 1.344, 2.449, 4.007, 6.063, 8.666, 11.82, 15.6",\
                 "0.278, 0.386, 0.6998, 1.364, 2.463, 4.019, 6.067, 8.656, 11.83, 15.59",\
                 "0.3106, 0.4208, 0.7388, 1.391, 2.49, 4.038, 6.075, 8.66, 11.83, 15.62",\
                 "0.3434, 0.4582, 0.7838, 1.42, 2.524, 4.072, 6.106, 8.678, 11.83, 15.6");
        }
      }
    }
  }

