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

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

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

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

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

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

      internal_power() {
        when : "A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          values("0.008891, 0.008902, 0.008899, 0.008899, 0.008899, 0.008912, 0.008907, \
                  0.008893, 0.008872, 0.008845");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          values("-0.004643, -0.004676, -0.004688, -0.004697, -0.00471, -0.004721, \
                  -0.004721, -0.004723, -0.004718, -0.004721");
        }
      }
    }

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

      internal_power() {
        when : "A1" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          values("0.01295, 0.01295, 0.01294, 0.01295, 0.01295, 0.01299, 0.01298, \
                  0.01299, 0.01298, 0.01297");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          values("-0.01113, -0.01197, -0.01235, -0.01249, -0.01257, -0.01265, -0.01269, \
                  -0.0127, -0.01271, -0.01273");
        }
      }
    }

    pin(Z) {
      direction : output ;
      function : "(A1|A2)" ;
      max_capacitance : 0.7185 ;
      max_transition : 11 ;
      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.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.005952, 0.02334, 0.05653, 0.1083, 0.1808, 0.2763, 0.3966, 0.5435, 0.7185");
          values("0.1067, 0.1058, 0.1057, 0.1063, 0.1068, 0.1072, 0.1074, 0.1075, 0.1076, 0.1077",\
                 "0.1053, 0.1045, 0.1045, 0.105, 0.1056, 0.106, 0.1061, 0.1063, 0.1064, 0.1064",\
                 "0.1042, 0.1033, 0.1031, 0.1039, 0.1045, 0.1048, 0.105, 0.1051, 0.1052, 0.1053",\
                 "0.1061, 0.1049, 0.1042, 0.1046, 0.1053, 0.1057, 0.106, 0.1062, 0.1063, 0.1064",\
                 "0.1123, 0.1102, 0.1086, 0.1084, 0.1087, 0.109, 0.1093, 0.1095, 0.1096, 0.1097",\
                 "0.1213, 0.1183, 0.1156, 0.1146, 0.1146, 0.1148, 0.115, 0.1151, 0.1153, 0.1153",\
                 "0.1327, 0.1288, 0.1253, 0.1238, 0.1231, 0.1232, 0.1232, 0.1234, 0.1234, 0.1235",\
                 "0.1465, 0.1421, 0.1374, 0.1352, 0.1343, 0.1341, 0.1341, 0.1341, 0.1341, 0.1341",\
                 "0.1636, 0.1586, 0.1529, 0.15, 0.1486, 0.148, 0.1478, 0.1479, 0.1479, 0.1479",\
                 "0.1844, 0.1788, 0.1719, 0.1682, 0.1661, 0.1653, 0.1649, 0.1647, 0.1647, 0.1647");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.005952, 0.02334, 0.05653, 0.1083, 0.1808, 0.2763, 0.3966, 0.5435, 0.7185");
          values("0.05377, 0.0544, 0.05653, 0.05848, 0.06001, 0.06128, 0.06265, 0.06369, 0.06677, 0.08772",\
                 "0.05387, 0.05445, 0.05658, 0.05863, 0.06025, 0.06128, 0.06286, 0.06369, 0.06707, 0.08815",\
                 "0.05369, 0.05394, 0.05553, 0.05725, 0.05908, 0.06032, 0.0616, 0.06309, 0.06559, 0.08842",\
                 "0.05485, 0.05473, 0.05551, 0.05683, 0.0586, 0.05999, 0.06151, 0.06309, 0.06625, 0.09306",\
                 "0.0587, 0.05808, 0.05748, 0.05923, 0.06028, 0.06167, 0.06313, 0.06459, 0.06842, 0.09787",\
                 "0.06489, 0.06378, 0.06288, 0.06316, 0.06487, 0.06623, 0.06694, 0.06849, 0.07243, 0.1106",\
                 "0.07406, 0.07284, 0.07088, 0.07063, 0.07099, 0.07337, 0.07498, 0.07593, 0.07983, 0.1289",\
                 "0.08629, 0.08441, 0.08222, 0.08053, 0.08026, 0.08117, 0.08473, 0.08577, 0.09102, 0.1559",\
                 "0.1016, 0.09922, 0.09578, 0.09439, 0.09328, 0.0938, 0.09505, 0.09944, 0.1116, 0.1998",\
                 "0.1201, 0.117, 0.1134, 0.1107, 0.1099, 0.1087, 0.1095, 0.1123, 0.1366, 0.2796");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.005952, 0.02334, 0.05653, 0.1083, 0.1808, 0.2763, 0.3966, 0.5435, 0.7185");
          values("0.115, 0.1141, 0.1141, 0.1148, 0.1152, 0.1156, 0.1158, 0.1159, 0.116, 0.1161",\
                 "0.1141, 0.1131, 0.1131, 0.1137, 0.1143, 0.1147, 0.1148, 0.115, 0.115, 0.1151",\
                 "0.1127, 0.1117, 0.1116, 0.1123, 0.1128, 0.1132, 0.1135, 0.1136, 0.1137, 0.1137",\
                 "0.1133, 0.1122, 0.1116, 0.1121, 0.1127, 0.113, 0.1133, 0.1135, 0.1136, 0.1137",\
                 "0.1173, 0.1155, 0.1145, 0.1146, 0.115, 0.1153, 0.1156, 0.1158, 0.1159, 0.116",\
                 "0.1245, 0.1225, 0.1205, 0.1201, 0.1205, 0.1207, 0.121, 0.1211, 0.1213, 0.1214",\
                 "0.1355, 0.1328, 0.1302, 0.1293, 0.1292, 0.1295, 0.1297, 0.1299, 0.13, 0.1301",\
                 "0.1503, 0.1468, 0.1435, 0.1419, 0.1416, 0.1415, 0.1417, 0.1418, 0.1419, 0.1421",\
                 "0.1688, 0.1649, 0.1603, 0.1583, 0.1574, 0.1572, 0.1573, 0.1573, 0.1574, 0.1574",\
                 "0.1915, 0.1869, 0.1813, 0.1784, 0.177, 0.1765, 0.1764, 0.1764, 0.1764, 0.1764");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.005952, 0.02334, 0.05653, 0.1083, 0.1808, 0.2763, 0.3966, 0.5435, 0.7185");
          values("0.06069, 0.0613, 0.06308, 0.06476, 0.06629, 0.06735, 0.06851, 0.06925, 0.07083, 0.09208",\
                 "0.05996, 0.06042, 0.06218, 0.06407, 0.06557, 0.06657, 0.06794, 0.06895, 0.07083, 0.09337",\
                 "0.05939, 0.05962, 0.061, 0.06263, 0.06416, 0.06549, 0.06662, 0.06775, 0.06965, 0.09411",\
                 "0.06083, 0.0608, 0.0613, 0.06227, 0.06416, 0.06543, 0.06701, 0.06835, 0.0709, 0.09399",\
                 "0.06476, 0.06424, 0.06363, 0.06509, 0.06596, 0.06738, 0.06872, 0.06985, 0.07278, 0.1033",\
                 "0.07137, 0.07055, 0.0695, 0.06929, 0.07142, 0.07236, 0.07346, 0.07465, 0.07801, 0.1134",\
                 "0.08119, 0.08008, 0.0781, 0.07754, 0.07778, 0.0807, 0.08174, 0.08179, 0.08782, 0.1361",\
                 "0.09421, 0.0926, 0.09027, 0.08939, 0.08885, 0.08928, 0.09311, 0.09433, 0.1003, 0.1635",\
                 "0.1108, 0.1086, 0.1056, 0.1041, 0.1033, 0.1036, 0.1055, 0.1092, 0.1205, 0.2146",\
                 "0.1309, 0.1283, 0.1247, 0.1223, 0.1213, 0.1216, 0.1217, 0.1241, 0.1493, 0.3021");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.005952, 0.02334, 0.05653, 0.1083, 0.1808, 0.2763, 0.3966, 0.5435, 0.7185");
          values("0.5164, 0.5785, 0.7295, 0.9385, 1.216, 1.583, 2.059, 2.656, 3.386, 4.256",\
                 "0.5304, 0.5927, 0.7435, 0.9526, 1.23, 1.597, 2.073, 2.671, 3.4, 4.27",\
                 "0.6083, 0.6704, 0.8209, 1.03, 1.308, 1.675, 2.151, 2.749, 3.478, 4.347",\
                 "0.7798, 0.8419, 0.9923, 1.201, 1.479, 1.846, 2.322, 2.92, 3.65, 4.52",\
                 "1.01, 1.077, 1.235, 1.448, 1.729, 2.096, 2.571, 3.169, 3.899, 4.768",\
                 "1.266, 1.339, 1.507, 1.729, 2.014, 2.384, 2.86, 3.458, 4.187, 5.056",\
                 "1.557, 1.634, 1.815, 2.044, 2.333, 2.705, 3.183, 3.782, 4.511, 5.38",\
                 "1.892, 1.975, 2.165, 2.404, 2.696, 3.069, 3.547, 4.146, 4.878, 5.747",\
                 "2.278, 2.364, 2.566, 2.813, 3.11, 3.485, 3.962, 4.562, 5.293, 6.164",\
                 "2.716, 2.806, 3.017, 3.277, 3.58, 3.958, 4.435, 5.033, 5.763, 6.634");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.005952, 0.02334, 0.05653, 0.1083, 0.1808, 0.2763, 0.3966, 0.5435, 0.7185");
          values("0.244, 0.2953, 0.4561, 0.7555, 1.217, 1.865, 2.717, 3.787, 5.099, 6.656",\
                 "0.2672, 0.3186, 0.4795, 0.7787, 1.242, 1.889, 2.741, 3.813, 5.121, 6.684",\
                 "0.3455, 0.3966, 0.5565, 0.8552, 1.318, 1.965, 2.818, 3.89, 5.197, 6.76",\
                 "0.4378, 0.4929, 0.6534, 0.9514, 1.414, 2.062, 2.914, 3.984, 5.298, 6.855",\
                 "0.5021, 0.5625, 0.7263, 1.024, 1.486, 2.133, 2.985, 4.059, 5.369, 6.929",\
                 "0.5357, 0.6026, 0.7722, 1.068, 1.53, 2.177, 3.028, 4.101, 5.411, 6.972",\
                 "0.5364, 0.6099, 0.7878, 1.083, 1.544, 2.191, 3.042, 4.113, 5.423, 6.98",\
                 "0.4991, 0.579, 0.769, 1.066, 1.525, 2.171, 3.021, 4.091, 5.399, 6.958",\
                 "0.422, 0.5072, 0.7101, 1.011, 1.47, 2.116, 2.966, 4.036, 5.345, 6.902",\
                 "0.3022, 0.3921, 0.6091, 0.9157, 1.377, 2.022, 2.872, 3.943, 5.25, 6.808");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.005952, 0.02334, 0.05653, 0.1083, 0.1808, 0.2763, 0.3966, 0.5435, 0.7185");
          values("0.145, 0.2032, 0.3502, 0.5955, 0.9811, 1.552, 2.322, 3.304, 4.51, 5.949",\
                 "0.145, 0.2033, 0.3501, 0.5955, 0.9824, 1.551, 2.324, 3.307, 4.511, 5.942",\
                 "0.145, 0.2035, 0.3506, 0.5952, 0.982, 1.551, 2.324, 3.307, 4.511, 5.94",\
                 "0.1474, 0.2052, 0.3518, 0.5966, 0.9826, 1.552, 2.322, 3.304, 4.509, 5.949",\
                 "0.1714, 0.2282, 0.3714, 0.6082, 0.9876, 1.553, 2.324, 3.305, 4.506, 5.948",\
                 "0.196, 0.2566, 0.3992, 0.6322, 1.006, 1.564, 2.328, 3.304, 4.509, 5.943",\
                 "0.2184, 0.2826, 0.4294, 0.6534, 1.019, 1.573, 2.336, 3.312, 4.507, 5.945",\
                 "0.238, 0.3054, 0.4608, 0.6768, 1.034, 1.58, 2.34, 3.317, 4.514, 5.945",\
                 "0.2584, 0.3294, 0.491, 0.7038, 1.05, 1.587, 2.342, 3.318, 4.517, 5.947",\
                 "0.282, 0.3556, 0.5254, 0.7358, 1.069, 1.598, 2.346, 3.322, 4.522, 5.954");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.005952, 0.02334, 0.05653, 0.1083, 0.1808, 0.2763, 0.3966, 0.5435, 0.7185");
          values("0.0979, 0.166, 0.4215, 0.9268, 1.719, 2.827, 4.286, 6.117, 8.358, 11.04",\
                 "0.09818, 0.1652, 0.4215, 0.9266, 1.717, 2.826, 4.286, 6.128, 8.355, 11.05",\
                 "0.09954, 0.1669, 0.4217, 0.9283, 1.718, 2.827, 4.279, 6.115, 8.357, 11.03",\
                 "0.1164, 0.1793, 0.4246, 0.9274, 1.717, 2.823, 4.28, 6.123, 8.364, 11.04",\
                 "0.1352, 0.1982, 0.43, 0.9296, 1.716, 2.819, 4.282, 6.112, 8.355, 11.04",\
                 "0.1546, 0.22, 0.4384, 0.9318, 1.716, 2.818, 4.273, 6.115, 8.354, 11.03",\
                 "0.175, 0.2456, 0.4524, 0.9328, 1.718, 2.82, 4.272, 6.108, 8.352, 11.02",\
                 "0.195, 0.2722, 0.4738, 0.9386, 1.721, 2.822, 4.274, 6.103, 8.338, 11.02",\
                 "0.215, 0.2986, 0.5002, 0.949, 1.724, 2.826, 4.275, 6.105, 8.339, 11",\
                 "0.2368, 0.3248, 0.5322, 0.9618, 1.735, 2.832, 4.279, 6.105, 8.34, 11");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.005952, 0.02334, 0.05653, 0.1083, 0.1808, 0.2763, 0.3966, 0.5435, 0.7185");
          values("0.5557, 0.618, 0.7688, 0.9779, 1.255, 1.622, 2.098, 2.696, 3.425, 4.295",\
                 "0.5756, 0.6378, 0.7888, 0.9976, 1.275, 1.642, 2.118, 2.716, 3.445, 4.315",\
                 "0.6415, 0.7038, 0.8544, 1.064, 1.341, 1.708, 2.184, 2.782, 3.511, 4.381",\
                 "0.7629, 0.8256, 0.9765, 1.185, 1.463, 1.83, 2.306, 2.904, 3.633, 4.504",\
                 "0.9251, 0.9909, 1.15, 1.365, 1.645, 2.013, 2.489, 3.087, 3.817, 4.686",\
                 "1.126, 1.195, 1.362, 1.586, 1.872, 2.242, 2.719, 3.317, 4.046, 4.916",\
                 "1.372, 1.444, 1.619, 1.85, 2.141, 2.514, 2.993, 3.591, 4.32, 5.189",\
                 "1.663, 1.738, 1.921, 2.16, 2.456, 2.832, 3.31, 3.91, 4.639, 5.508",\
                 "1.995, 2.076, 2.268, 2.516, 2.819, 3.197, 3.677, 4.276, 5.006, 5.875",\
                 "2.369, 2.454, 2.657, 2.917, 3.229, 3.613, 4.094, 4.692, 5.422, 6.291");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.005952, 0.02334, 0.05653, 0.1083, 0.1808, 0.2763, 0.3966, 0.5435, 0.7185");
          values("0.2696, 0.3215, 0.4825, 0.7817, 1.244, 1.892, 2.742, 3.814, 5.122, 6.679",\
                 "0.2911, 0.343, 0.504, 0.8033, 1.266, 1.913, 2.764, 3.835, 5.143, 6.7",\
                 "0.3708, 0.4222, 0.5822, 0.8812, 1.344, 1.992, 2.842, 3.914, 5.221, 6.78",\
                 "0.478, 0.5325, 0.6929, 0.9909, 1.454, 2.101, 2.952, 4.024, 5.331, 6.891",\
                 "0.56, 0.6199, 0.783, 1.08, 1.542, 2.19, 3.041, 4.113, 5.421, 6.98",\
                 "0.6136, 0.6794, 0.8474, 1.143, 1.605, 2.253, 3.104, 4.176, 5.483, 7.042",\
                 "0.638, 0.7097, 0.8848, 1.181, 1.641, 2.288, 3.139, 4.21, 5.519, 7.077",\
                 "0.6298, 0.7072, 0.8927, 1.189, 1.649, 2.295, 3.146, 4.217, 5.524, 7.083",\
                 "0.5874, 0.6702, 0.8672, 1.167, 1.627, 2.273, 3.123, 4.194, 5.501, 7.059",\
                 "0.5097, 0.5972, 0.8069, 1.111, 1.572, 2.219, 3.068, 4.139, 5.446, 7.004");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.005952, 0.02334, 0.05653, 0.1083, 0.1808, 0.2763, 0.3966, 0.5435, 0.7185");
          values("0.1451, 0.2031, 0.3504, 0.5953, 0.9812, 1.551, 2.324, 3.307, 4.511, 5.947",\
                 "0.1451, 0.2031, 0.3504, 0.5954, 0.9816, 1.55, 2.322, 3.307, 4.511, 5.943",\
                 "0.1452, 0.203, 0.3502, 0.5954, 0.9812, 1.551, 2.324, 3.307, 4.511, 5.949",\
                 "0.1486, 0.206, 0.352, 0.5966, 0.9828, 1.551, 2.322, 3.303, 4.512, 5.947",\
                 "0.1632, 0.223, 0.3714, 0.6102, 0.9882, 1.554, 2.323, 3.305, 4.511, 5.949",\
                 "0.1776, 0.24, 0.3934, 0.632, 1.005, 1.562, 2.327, 3.303, 4.507, 5.943",\
                 "0.1924, 0.2564, 0.4144, 0.6534, 1.021, 1.573, 2.333, 3.309, 4.51, 5.939",\
                 "0.2094, 0.2754, 0.4376, 0.6752, 1.038, 1.582, 2.338, 3.312, 4.508, 5.937",\
                 "0.2304, 0.2984, 0.4652, 0.7004, 1.057, 1.593, 2.344, 3.314, 4.511, 5.941",\
                 "0.2532, 0.324, 0.498, 0.735, 1.087, 1.611, 2.35, 3.32, 4.514, 5.944");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.09579, 0.3618, 0.8698, 1.661, 2.772, 4.233, 6.074, 8.321, 11");
          index_2("0.001, 0.005952, 0.02334, 0.05653, 0.1083, 0.1808, 0.2763, 0.3966, 0.5435, 0.7185");
          values("0.1007, 0.1672, 0.4227, 0.9285, 1.714, 2.824, 4.276, 6.113, 8.352, 11.01",\
                 "0.1002, 0.1685, 0.4228, 0.9282, 1.714, 2.821, 4.28, 6.106, 8.351, 11.02",\
                 "0.1008, 0.1685, 0.4226, 0.9284, 1.715, 2.824, 4.279, 6.107, 8.345, 11.03",\
                 "0.1151, 0.178, 0.4246, 0.9284, 1.716, 2.819, 4.281, 6.115, 8.347, 11.02",\
                 "0.1324, 0.1948, 0.4292, 0.9292, 1.716, 2.819, 4.277, 6.113, 8.353, 11.01",\
                 "0.1504, 0.2152, 0.437, 0.9316, 1.719, 2.821, 4.272, 6.114, 8.342, 11.02",\
                 "0.1692, 0.2376, 0.448, 0.9338, 1.719, 2.823, 4.273, 6.11, 8.343, 11.01",\
                 "0.1882, 0.2618, 0.4662, 0.9372, 1.722, 2.822, 4.274, 6.103, 8.344, 11.02",\
                 "0.2066, 0.2872, 0.4886, 0.9458, 1.724, 2.825, 4.278, 6.105, 8.338, 11.02",\
                 "0.2252, 0.3112, 0.5156, 0.9572, 1.735, 2.829, 4.284, 6.113, 8.34, 11");
        }
      }
    }
  }

