/*
 * 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__bufz_1) {
    area : 30.732800 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!EN&!I" ;
      value : "0.000112365" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!EN&I" ;
      value : "0.000112365" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "EN&!I" ;
      value : "0.0001637775" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "EN&I" ;
      value : "0.000164259" ;
    }

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

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

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

    pin(EN) {
      capacitance : 0.005711 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 5 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          values("0.1327, 0.1319, 0.1332, 0.1407, 0.1547, 0.1758, 0.2046, 0.244, \
                  0.2966, 0.3625");
        }

        rise_power(scalar) {
          values("0");
          /* SiliconSmart: placeholder for Liberty-required model for which no measurement is available. */
        }
      }

      internal_power() {
        when : "I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          values("0.1925, 0.1918, 0.1939, 0.2044, 0.2259, 0.2609, 0.3103, 0.3755, \
                  0.4571, 0.5556");
        }

        rise_power(scalar) {
          values("0");
          /* SiliconSmart: placeholder for Liberty-required model for which no measurement is available. */
        }
      }
    }

    pin(I) {
      capacitance : 0.003179 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 5 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!EN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          values("0.01515, 0.01514, 0.01512, 0.01506, 0.01509, 0.01508, 0.01513, \
                  0.01512, 0.01512, 0.01511");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          values("-0.01506, -0.01505, -0.01506, -0.01504, -0.01506, -0.01503, -0.01505, \
                  -0.01506, -0.01509, -0.01506");
        }
      }
    }

    pin(Z) {
      capacitance : 0.002921 ;
      direction : output ;
      function : "I" ;
      max_capacitance : 0.2557 ;
      max_transition : 5 ;
      min_capacitance : 0.003921 ;
      output_voltage : default ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;
      three_state : "(!EN)" ;

      internal_power() {
        related_pin : "EN" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.003921, 0.005659, 0.01176, 0.02341, 0.04156, 0.06703, 0.1005, 0.1428, 0.1943, 0.2557");
          values("0.1538, 0.1537, 0.1535, 0.1534, 0.1533, 0.1533, 0.1533, 0.1533, 0.1533, 0.1533",\
                 "0.1536, 0.1535, 0.1534, 0.1532, 0.1532, 0.1531, 0.1531, 0.1531, 0.1531, 0.1531",\
                 "0.1574, 0.1574, 0.1572, 0.1571, 0.157, 0.157, 0.157, 0.157, 0.157, 0.157",\
                 "0.1684, 0.1683, 0.1683, 0.1681, 0.168, 0.1681, 0.1681, 0.1682, 0.1682, 0.1682",\
                 "0.1873, 0.1873, 0.1873, 0.1872, 0.1872, 0.1872, 0.1872, 0.1873, 0.1873, 0.1873",\
                 "0.2152, 0.2153, 0.2153, 0.2152, 0.2152, 0.2152, 0.2152, 0.2152, 0.2152, 0.2152",\
                 "0.2524, 0.2524, 0.2522, 0.2522, 0.2522, 0.2522, 0.2522, 0.2522, 0.2522, 0.2522",\
                 "0.2992, 0.2992, 0.2991, 0.299, 0.299, 0.299, 0.299, 0.2991, 0.2991, 0.2991",\
                 "0.3561, 0.3561, 0.356, 0.3559, 0.3559, 0.356, 0.356, 0.3561, 0.3561, 0.3561",\
                 "0.4236, 0.4237, 0.4236, 0.4234, 0.4234, 0.4234, 0.4234, 0.4235, 0.4234, 0.4235");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.003921, 0.005659, 0.01176, 0.02341, 0.04156, 0.06703, 0.1005, 0.1428, 0.1943, 0.2557");
          values("0.09141, 0.09149, 0.09144, 0.09154, 0.09164, 0.09192, 0.09298, 0.09348, 0.09438, 0.09665",\
                 "0.0907, 0.09068, 0.09068, 0.09078, 0.09087, 0.0912, 0.09235, 0.09262, 0.09429, 0.0962",\
                 "0.0915, 0.09141, 0.09145, 0.09127, 0.09164, 0.09188, 0.09257, 0.09384, 0.09429, 0.09665",\
                 "0.09937, 0.09936, 0.09927, 0.09928, 0.09956, 0.09975, 0.1003, 0.1013, 0.1025, 0.1039",\
                 "0.1174, 0.1174, 0.1175, 0.1178, 0.1178, 0.1182, 0.1188, 0.1196, 0.1207, 0.1223",\
                 "0.148, 0.1479, 0.1478, 0.1478, 0.1488, 0.1487, 0.1493, 0.1505, 0.1509, 0.1534",\
                 "0.1918, 0.1918, 0.1916, 0.1914, 0.1918, 0.1933, 0.1935, 0.1937, 0.1946, 0.1961",\
                 "0.2492, 0.2494, 0.2493, 0.2491, 0.2491, 0.2498, 0.2524, 0.2524, 0.252, 0.2528",\
                 "0.3218, 0.3218, 0.3218, 0.3219, 0.3218, 0.3217, 0.3232, 0.3255, 0.3261, 0.3257",\
                 "0.4093, 0.4094, 0.4096, 0.4095, 0.4095, 0.4095, 0.41, 0.4116, 0.4147, 0.4157");
        }
      }

      internal_power() {
        related_pin : "I" ;
        when : "EN" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.003921, 0.005659, 0.01176, 0.02341, 0.04156, 0.06703, 0.1005, 0.1428, 0.1943, 0.2557");
          values("0.2525, 0.2513, 0.2493, 0.2479, 0.2474, 0.2473, 0.2472, 0.2471, 0.2471, 0.2471",\
                 "0.252, 0.2508, 0.2488, 0.2475, 0.2469, 0.2468, 0.2466, 0.2466, 0.2466, 0.2466",\
                 "0.2517, 0.2506, 0.2485, 0.2472, 0.2467, 0.2466, 0.2465, 0.2464, 0.2464, 0.2464",\
                 "0.2555, 0.2542, 0.2519, 0.2504, 0.2497, 0.2496, 0.2495, 0.2495, 0.2495, 0.2495",\
                 "0.2688, 0.2671, 0.2637, 0.2612, 0.2596, 0.259, 0.2586, 0.2585, 0.2584, 0.2584",\
                 "0.2919, 0.2895, 0.2847, 0.2804, 0.2778, 0.2762, 0.2754, 0.2747, 0.2745, 0.2743",\
                 "0.3227, 0.3198, 0.3136, 0.3079, 0.3039, 0.3012, 0.2997, 0.2988, 0.2982, 0.2978",\
                 "0.3627, 0.3592, 0.3515, 0.3443, 0.3388, 0.3352, 0.3329, 0.3313, 0.3303, 0.3296",\
                 "0.4121, 0.4081, 0.3992, 0.3902, 0.3832, 0.3783, 0.375, 0.3728, 0.3713, 0.3701",\
                 "0.4715, 0.4669, 0.4566, 0.4458, 0.4371, 0.431, 0.4267, 0.4237, 0.4216, 0.42");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.003921, 0.005659, 0.01176, 0.02341, 0.04156, 0.06703, 0.1005, 0.1428, 0.1943, 0.2557");
          values("0.1119, 0.1116, 0.1119, 0.1131, 0.1146, 0.1161, 0.1176, 0.1194, 0.121, 0.123",\
                 "0.1114, 0.1113, 0.1118, 0.1127, 0.1141, 0.1156, 0.117, 0.1187, 0.1201, 0.1212",\
                 "0.1112, 0.1111, 0.1115, 0.1125, 0.1138, 0.1152, 0.1165, 0.1181, 0.12, 0.1217",\
                 "0.1136, 0.1136, 0.1131, 0.1137, 0.1149, 0.116, 0.1175, 0.1191, 0.1214, 0.1226",\
                 "0.1237, 0.1231, 0.1219, 0.1211, 0.1213, 0.1221, 0.1233, 0.1251, 0.126, 0.1284",\
                 "0.1406, 0.1394, 0.1368, 0.1349, 0.1339, 0.1337, 0.1344, 0.1361, 0.1371, 0.1397",\
                 "0.1645, 0.1627, 0.1589, 0.1555, 0.154, 0.1536, 0.1526, 0.1536, 0.1543, 0.1568",\
                 "0.1964, 0.1942, 0.1897, 0.1848, 0.1811, 0.1801, 0.1799, 0.1796, 0.1795, 0.1811",\
                 "0.2372, 0.2347, 0.229, 0.2227, 0.2177, 0.2148, 0.2148, 0.2146, 0.2145, 0.2142",\
                 "0.2869, 0.2839, 0.2775, 0.2699, 0.2637, 0.2592, 0.2571, 0.2573, 0.2572, 0.2574");
        }
      }

      timing() {
        related_pin : "EN" ;
        timing_sense : negative_unate ;
        timing_type : three_state_disable ;

        cell_fall(tmg_ntin_10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          values("0.192, 0.202, 0.239, 0.314, 0.411, 0.525, 0.653, 0.797, 0.953, \
                  1.126");
        }

        cell_rise(tmg_ntin_10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          values("0.318, 0.326, 0.364, 0.437, 0.535, 0.651, 0.786, 0.937, 1.105, \
                  1.293");
        }

        fall_transition(tmg_ntin_10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }
      }

      timing() {
        related_pin : "EN" ;
        timing_sense : positive_unate ;
        timing_type : three_state_enable ;

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.003921, 0.005659, 0.01176, 0.02341, 0.04156, 0.06703, 0.1005, 0.1428, 0.1943, 0.2557");
          values("0.2696, 0.301, 0.3889, 0.5172, 0.6804, 0.8848, 1.14, 1.455, 1.837, 2.292",\
                 "0.2771, 0.3083, 0.3963, 0.5243, 0.6878, 0.8921, 1.147, 1.462, 1.844, 2.299",\
                 "0.3077, 0.3388, 0.4264, 0.5545, 0.7176, 0.9219, 1.177, 1.492, 1.874, 2.329",\
                 "0.3644, 0.3949, 0.4812, 0.6077, 0.77, 0.9742, 1.229, 1.544, 1.926, 2.381",\
                 "0.4201, 0.4519, 0.5385, 0.6635, 0.825, 1.029, 1.283, 1.598, 1.981, 2.435",\
                 "0.4538, 0.4855, 0.5712, 0.6957, 0.8564, 1.06, 1.314, 1.629, 2.011, 2.466",\
                 "0.469, 0.5003, 0.585, 0.7078, 0.8679, 1.071, 1.325, 1.639, 2.021, 2.476",\
                 "0.4672, 0.4984, 0.5821, 0.7038, 0.8625, 1.064, 1.318, 1.632, 2.014, 2.468",\
                 "0.4486, 0.48, 0.5634, 0.6842, 0.8416, 1.042, 1.295, 1.609, 1.99, 2.445",\
                 "0.4127, 0.4445, 0.528, 0.6482, 0.8048, 1.005, 1.257, 1.571, 1.952, 2.407");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.003921, 0.005659, 0.01176, 0.02341, 0.04156, 0.06703, 0.1005, 0.1428, 0.1943, 0.2557");
          values("0.2303, 0.26, 0.3467, 0.4886, 0.6969, 0.9857, 1.366, 1.845, 2.428, 3.124",\
                 "0.2368, 0.2665, 0.3532, 0.4951, 0.7033, 0.9923, 1.372, 1.851, 2.435, 3.132",\
                 "0.262, 0.2916, 0.3783, 0.5202, 0.7284, 1.017, 1.397, 1.876, 2.46, 3.155",\
                 "0.3032, 0.3337, 0.4215, 0.5639, 0.7723, 1.061, 1.441, 1.92, 2.505, 3.202",\
                 "0.3384, 0.3714, 0.4627, 0.6073, 0.8166, 1.105, 1.486, 1.964, 2.549, 3.246",\
                 "0.3639, 0.4006, 0.4977, 0.6447, 0.855, 1.145, 1.525, 2.003, 2.588, 3.285",\
                 "0.3759, 0.4178, 0.5239, 0.6762, 0.8879, 1.178, 1.558, 2.037, 2.621, 3.319",\
                 "0.3722, 0.4202, 0.5378, 0.698, 0.9138, 1.205, 1.585, 2.064, 2.648, 3.344",\
                 "0.3526, 0.4062, 0.5375, 0.7078, 0.9294, 1.224, 1.606, 2.085, 2.669, 3.365",\
                 "0.3158, 0.3752, 0.5206, 0.7035, 0.9322, 1.232, 1.618, 2.098, 2.682, 3.379");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.003921, 0.005659, 0.01176, 0.02341, 0.04156, 0.06703, 0.1005, 0.1428, 0.1943, 0.2557");
          values("0.1346, 0.1662, 0.2567, 0.3929, 0.5904, 0.8724, 1.255, 1.751, 2.37, 3.107",\
                 "0.1347, 0.1662, 0.257, 0.3929, 0.5903, 0.8705, 1.253, 1.75, 2.367, 3.113",\
                 "0.1338, 0.1654, 0.2561, 0.3929, 0.5902, 0.8713, 1.253, 1.751, 2.367, 3.112",\
                 "0.1313, 0.1622, 0.2522, 0.3893, 0.5878, 0.871, 1.253, 1.751, 2.368, 3.107",\
                 "0.1404, 0.1689, 0.2511, 0.3862, 0.5864, 0.8692, 1.252, 1.749, 2.369, 3.107",\
                 "0.1412, 0.168, 0.249, 0.3844, 0.5836, 0.8664, 1.25, 1.749, 2.367, 3.112",\
                 "0.1398, 0.166, 0.2458, 0.3816, 0.5826, 0.8652, 1.249, 1.747, 2.367, 3.11",\
                 "0.1396, 0.165, 0.2436, 0.3774, 0.5776, 0.8618, 1.247, 1.746, 2.363, 3.108",\
                 "0.1412, 0.1654, 0.2426, 0.3748, 0.573, 0.8578, 1.244, 1.745, 2.363, 3.104",\
                 "0.1422, 0.1664, 0.2418, 0.3732, 0.5712, 0.856, 1.243, 1.744, 2.363, 3.103");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.003921, 0.005659, 0.01176, 0.02341, 0.04156, 0.06703, 0.1005, 0.1428, 0.1943, 0.2557");
          values("0.1294, 0.1632, 0.2738, 0.4835, 0.8261, 1.321, 1.976, 2.804, 3.81, 5.014",\
                 "0.1292, 0.1633, 0.2734, 0.4839, 0.8262, 1.322, 1.977, 2.803, 3.805, 5.006",\
                 "0.1291, 0.1629, 0.2735, 0.4838, 0.8262, 1.321, 1.976, 2.804, 3.81, 5.013",\
                 "0.1345, 0.1668, 0.2758, 0.4845, 0.8262, 1.32, 1.973, 2.8, 3.814, 5.017",\
                 "0.1485, 0.1789, 0.2834, 0.489, 0.8276, 1.322, 1.977, 2.801, 3.81, 5.009",\
                 "0.168, 0.1974, 0.2952, 0.4942, 0.8318, 1.323, 1.975, 2.799, 3.806, 5.009",\
                 "0.1924, 0.2234, 0.3152, 0.5048, 0.8344, 1.323, 1.976, 2.8, 3.806, 5.014",\
                 "0.2194, 0.251, 0.3414, 0.5236, 0.8442, 1.327, 1.976, 2.799, 3.809, 5.009",\
                 "0.248, 0.2832, 0.3738, 0.5462, 0.8628, 1.338, 1.981, 2.8, 3.805, 5.006",\
                 "0.2776, 0.3146, 0.4102, 0.5748, 0.8842, 1.358, 1.996, 2.806, 3.807, 5.003");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.003921, 0.005659, 0.01176, 0.02341, 0.04156, 0.06703, 0.1005, 0.1428, 0.1943, 0.2557");
          values("0.4248, 0.4565, 0.5472, 0.6795, 0.8452, 1.051, 1.306, 1.621, 2.003, 2.458",\
                 "0.4336, 0.4652, 0.556, 0.6883, 0.8538, 1.059, 1.315, 1.63, 2.012, 2.467",\
                 "0.468, 0.4996, 0.5905, 0.7226, 0.8882, 1.094, 1.35, 1.665, 2.047, 2.501",\
                 "0.5411, 0.5727, 0.6633, 0.7954, 0.961, 1.167, 1.422, 1.737, 2.119, 2.574",\
                 "0.656, 0.6876, 0.7781, 0.9106, 1.076, 1.282, 1.538, 1.853, 2.235, 2.69",\
                 "0.7962, 0.8289, 0.9217, 1.058, 1.226, 1.432, 1.688, 2.003, 2.385, 2.84",\
                 "0.9575, 0.9911, 1.087, 1.228, 1.4, 1.609, 1.866, 2.181, 2.562, 3.017",\
                 "1.141, 1.177, 1.276, 1.422, 1.599, 1.811, 2.07, 2.385, 2.767, 3.221",\
                 "1.343, 1.382, 1.487, 1.64, 1.824, 2.041, 2.302, 2.618, 3, 3.454",\
                 "1.565, 1.606, 1.718, 1.879, 2.073, 2.297, 2.562, 2.88, 3.262, 3.717");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.003921, 0.005659, 0.01176, 0.02341, 0.04156, 0.06703, 0.1005, 0.1428, 0.1943, 0.2557");
          values("0.3942, 0.4252, 0.5144, 0.6581, 0.868, 1.158, 1.539, 2.019, 2.603, 3.299",\
                 "0.401, 0.432, 0.5212, 0.6651, 0.8749, 1.165, 1.546, 2.025, 2.611, 3.308",\
                 "0.4264, 0.4574, 0.5466, 0.6903, 0.9, 1.19, 1.571, 2.051, 2.636, 3.332",\
                 "0.4767, 0.5077, 0.5964, 0.7397, 0.9492, 1.239, 1.62, 2.1, 2.685, 3.381",\
                 "0.5414, 0.5727, 0.6621, 0.8052, 1.014, 1.303, 1.684, 2.163, 2.747, 3.445",\
                 "0.5978, 0.6296, 0.7215, 0.866, 1.075, 1.364, 1.744, 2.222, 2.807, 3.503",\
                 "0.6435, 0.6765, 0.7709, 0.9183, 1.127, 1.415, 1.794, 2.272, 2.857, 3.554",\
                 "0.6766, 0.7109, 0.8094, 0.9607, 1.171, 1.458, 1.836, 2.314, 2.897, 3.593",\
                 "0.6933, 0.7295, 0.8326, 0.9889, 1.202, 1.49, 1.868, 2.345, 2.928, 3.623",\
                 "0.6925, 0.7312, 0.8387, 1.001, 1.219, 1.51, 1.889, 2.365, 2.947, 3.643");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.003921, 0.005659, 0.01176, 0.02341, 0.04156, 0.06703, 0.1005, 0.1428, 0.1943, 0.2557");
          values("0.1485, 0.1804, 0.2726, 0.406, 0.5975, 0.875, 1.255, 1.751, 2.367, 3.108",\
                 "0.1487, 0.1804, 0.2725, 0.4062, 0.5982, 0.8752, 1.255, 1.751, 2.368, 3.113",\
                 "0.1483, 0.1803, 0.2724, 0.406, 0.5984, 0.875, 1.255, 1.751, 2.367, 3.108",\
                 "0.1484, 0.1805, 0.2729, 0.4067, 0.5986, 0.8752, 1.256, 1.751, 2.368, 3.113",\
                 "0.1536, 0.1854, 0.2778, 0.4108, 0.6016, 0.8768, 1.256, 1.751, 2.368, 3.108",\
                 "0.168, 0.1992, 0.292, 0.4254, 0.6112, 0.8814, 1.26, 1.752, 2.369, 3.108",\
                 "0.1822, 0.2142, 0.3074, 0.4442, 0.6274, 0.8932, 1.266, 1.755, 2.368, 3.108",\
                 "0.2, 0.2326, 0.3266, 0.4658, 0.6466, 0.907, 1.275, 1.76, 2.373, 3.109",\
                 "0.2202, 0.2552, 0.3522, 0.4956, 0.6738, 0.9266, 1.287, 1.766, 2.375, 3.113",\
                 "0.2414, 0.279, 0.3792, 0.5286, 0.7122, 0.9594, 1.307, 1.78, 2.38, 3.113");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.05437, 0.175, 0.4054, 0.7644, 1.268, 1.931, 2.766, 3.785, 5");
          index_2("0.003921, 0.005659, 0.01176, 0.02341, 0.04156, 0.06703, 0.1005, 0.1428, 0.1943, 0.2557");
          values("0.137, 0.1698, 0.2773, 0.4848, 0.8262, 1.322, 1.977, 2.803, 3.812, 5.015",\
                 "0.1371, 0.1699, 0.2774, 0.4851, 0.8262, 1.32, 1.972, 2.801, 3.809, 5.009",\
                 "0.1372, 0.17, 0.2777, 0.4846, 0.8264, 1.32, 1.975, 2.802, 3.814, 5.016",\
                 "0.1374, 0.1712, 0.2777, 0.4847, 0.8264, 1.321, 1.975, 2.802, 3.813, 5.016",\
                 "0.1433, 0.1767, 0.283, 0.4874, 0.8272, 1.321, 1.976, 2.804, 3.806, 5.008",\
                 "0.1518, 0.1868, 0.2944, 0.4948, 0.8296, 1.32, 1.972, 2.797, 3.806, 5.013",\
                 "0.1624, 0.1978, 0.3074, 0.504, 0.8342, 1.321, 1.974, 2.8, 3.81, 5.013",\
                 "0.1762, 0.2118, 0.3224, 0.5172, 0.8394, 1.325, 1.974, 2.8, 3.802, 5.002",\
                 "0.1922, 0.2278, 0.3412, 0.536, 0.8528, 1.33, 1.977, 2.797, 3.804, 5",\
                 "0.2086, 0.2452, 0.3614, 0.5572, 0.8726, 1.344, 1.983, 2.801, 3.802, 5");
        }
      }
    }
  }

