/*
 * 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_4) {
    area : 48.294400 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!EN&!I" ;
      value : "2.3139e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!EN&I" ;
      value : "2.3139e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "EN&!I" ;
      value : "3.99168e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "EN&I" ;
      value : "3.97836e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "3.99168e-05" ;
    }

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

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

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

      internal_power() {
        when : "!I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          values("0.02768, 0.02731, 0.02688, 0.02675, 0.02674, 0.02685, 0.02708, \
                 0.02743, 0.02794, 0.02858");
        }

        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.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          values("0.0479, 0.04743, 0.0466, 0.04598, 0.04554, 0.04536, 0.0455, 0.04595, \
                 0.04673, 0.04781");
        }

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

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

      internal_power() {
        when : "!EN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          values("0.008188, 0.00821, 0.008207, 0.008184, 0.008203, 0.008205, 0.0082, \
                 0.008209, 0.008204, 0.008203");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          values("-0.00817, -0.00817, -0.008171, -0.008169, -0.008191, -0.008186, \
                 -0.008181, -0.008185, -0.008187, -0.008192");
        }
      }
    }

    pin(Z) {
      capacitance : 0.007869 ;
      direction : output ;
      function : "I" ;
      max_capacitance : 0.8057 ;
      max_transition : 12 ;
      min_capacitance : 0.008869 ;
      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.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.008869, 0.01437, 0.03368, 0.07055, 0.128, 0.2086, 0.3146, 0.4482, 0.6113, 0.8057");
          values("0.05465, 0.05465, 0.05468, 0.05466, 0.05461, 0.05461, 0.05462, 0.05463, 0.05463, 0.05464",\
                 "0.05479, 0.05479, 0.05479, 0.05477, 0.05475, 0.05475, 0.05476, 0.05477, 0.05477, 0.05478",\
                 "0.05532, 0.0553, 0.05532, 0.05529, 0.05528, 0.05527, 0.05528, 0.05528, 0.05528, 0.05529",\
                 "0.05568, 0.05567, 0.05568, 0.05566, 0.05564, 0.05565, 0.05565, 0.05567, 0.05565, 0.05566",\
                 "0.05612, 0.0561, 0.0561, 0.05608, 0.05607, 0.05607, 0.05608, 0.05609, 0.05609, 0.0561",\
                 "0.05664, 0.05665, 0.05665, 0.05664, 0.05662, 0.05661, 0.05662, 0.05661, 0.05661, 0.05663",\
                 "0.05736, 0.0574, 0.05739, 0.05736, 0.05737, 0.05737, 0.05738, 0.05737, 0.05738, 0.05738",\
                 "0.05835, 0.05835, 0.05835, 0.05833, 0.05832, 0.05832, 0.05832, 0.05833, 0.05834, 0.05834",\
                 "0.05954, 0.05954, 0.05953, 0.05951, 0.05948, 0.05949, 0.05949, 0.05949, 0.05952, 0.05952",\
                 "0.06093, 0.06095, 0.06094, 0.06091, 0.06089, 0.06089, 0.0609, 0.06091, 0.06091, 0.06091");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.008869, 0.01437, 0.03368, 0.07055, 0.128, 0.2086, 0.3146, 0.4482, 0.6113, 0.8057");
          values("0.0425, 0.04252, 0.04248, 0.04252, 0.04279, 0.04298, 0.0431, 0.04381, 0.04549, 0.05861",\
                 "0.04233, 0.04236, 0.0423, 0.04243, 0.04261, 0.04282, 0.04333, 0.04333, 0.04459, 0.05918",\
                 "0.04198, 0.04195, 0.042, 0.04203, 0.04225, 0.04246, 0.0427, 0.04306, 0.04484, 0.06178",\
                 "0.04155, 0.04161, 0.04164, 0.04162, 0.04187, 0.0421, 0.04247, 0.04255, 0.04419, 0.06363",\
                 "0.04134, 0.04133, 0.04138, 0.04146, 0.04169, 0.04194, 0.04216, 0.04304, 0.04496, 0.06811",\
                 "0.04144, 0.04139, 0.04137, 0.04149, 0.0418, 0.04194, 0.04233, 0.04284, 0.04641, 0.07657",\
                 "0.04165, 0.0417, 0.04176, 0.04157, 0.04189, 0.04248, 0.04236, 0.04317, 0.04815, 0.08886",\
                 "0.04226, 0.04231, 0.04242, 0.04227, 0.04212, 0.04275, 0.04375, 0.04365, 0.05176, 0.112",\
                 "0.0431, 0.04316, 0.04336, 0.04319, 0.04333, 0.04325, 0.04397, 0.04628, 0.06099, 0.1515",\
                 "0.04432, 0.04437, 0.04453, 0.04439, 0.04448, 0.04448, 0.04467, 0.04815, 0.07968, 0.2231");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.008869, 0.01437, 0.03368, 0.07055, 0.128, 0.2086, 0.3146, 0.4482, 0.6113, 0.8057");
          values("0.08817, 0.08872, 0.08991, 0.09085, 0.09137, 0.09168, 0.09185, 0.09196, 0.09204, 0.09208",\
                 "0.08764, 0.08823, 0.08945, 0.09036, 0.09088, 0.09119, 0.09136, 0.09147, 0.09154, 0.09159",\
                 "0.0869, 0.08749, 0.08866, 0.08959, 0.09012, 0.09043, 0.0906, 0.09074, 0.09081, 0.09086",\
                 "0.08624, 0.08675, 0.08779, 0.08872, 0.08932, 0.0897, 0.08992, 0.09007, 0.09017, 0.09023",\
                 "0.08565, 0.08606, 0.08703, 0.08798, 0.08867, 0.08915, 0.08946, 0.08966, 0.0898, 0.08989",\
                 "0.08545, 0.08582, 0.08667, 0.08758, 0.08835, 0.0889, 0.08928, 0.08955, 0.08972, 0.08983",\
                 "0.08561, 0.08592, 0.08669, 0.08756, 0.08834, 0.08893, 0.08936, 0.08967, 0.08985, 0.09",\
                 "0.08614, 0.08641, 0.0871, 0.0879, 0.08864, 0.08928, 0.08975, 0.09007, 0.09031, 0.09048",\
                 "0.08703, 0.08727, 0.08785, 0.08859, 0.08931, 0.08994, 0.09044, 0.09081, 0.0911, 0.09126",\
                 "0.08835, 0.08848, 0.08897, 0.08964, 0.09032, 0.09094, 0.09145, 0.09186, 0.09215, 0.09236");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.008869, 0.01437, 0.03368, 0.07055, 0.128, 0.2086, 0.3146, 0.4482, 0.6113, 0.8057");
          values("0.04405, 0.04462, 0.04573, 0.04667, 0.04731, 0.04785, 0.04837, 0.04897, 0.04971, 0.0662",\
                 "0.04385, 0.04437, 0.04551, 0.04644, 0.0471, 0.04762, 0.04822, 0.04827, 0.04975, 0.06522",\
                 "0.04307, 0.04351, 0.04448, 0.04548, 0.04629, 0.04688, 0.04756, 0.04771, 0.05054, 0.06591",\
                 "0.04211, 0.04248, 0.0434, 0.04426, 0.04521, 0.04593, 0.04678, 0.04683, 0.04903, 0.06923",\
                 "0.0415, 0.04185, 0.04265, 0.04347, 0.04442, 0.04522, 0.0459, 0.04675, 0.04958, 0.07281",\
                 "0.04113, 0.04151, 0.04202, 0.04302, 0.04395, 0.04461, 0.04549, 0.04627, 0.05066, 0.0808",\
                 "0.04107, 0.04138, 0.04188, 0.04258, 0.04353, 0.0447, 0.0452, 0.04635, 0.05169, 0.09382",\
                 "0.04131, 0.04159, 0.04208, 0.04276, 0.0435, 0.04447, 0.04579, 0.0465, 0.05516, 0.1161",\
                 "0.04187, 0.04218, 0.04274, 0.04321, 0.04366, 0.04447, 0.04576, 0.0484, 0.06399, 0.1558",\
                 "0.04285, 0.04309, 0.04369, 0.04419, 0.04476, 0.04526, 0.04625, 0.05006, 0.08305, 0.2272");
        }
      }

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

        cell_fall(tmg_ntin_10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          values("0.54, 0.579, 0.702, 0.942, 1.305, 1.722, 2.172, 2.653, 3.166, \
                 3.712");
        }

        cell_rise(tmg_ntin_10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          values("0.686, 0.712, 0.83, 1.069, 1.404, 1.777, 2.176, 2.608, 3.066, \
                 3.557");
        }

        fall_transition(tmg_ntin_10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          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.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.008869, 0.01437, 0.03368, 0.07055, 0.128, 0.2086, 0.3146, 0.4482, 0.6113, 0.8057");
          values("0.7342, 0.8099, 0.9912, 1.225, 1.503, 1.833, 2.229, 2.706, 3.277, 3.952",\
                 "0.7672, 0.8429, 1.024, 1.257, 1.535, 1.866, 2.262, 2.739, 3.31, 3.985",\
                 "0.8793, 0.9549, 1.135, 1.369, 1.647, 1.978, 2.374, 2.851, 3.422, 4.097",\
                 "1.078, 1.153, 1.333, 1.566, 1.844, 2.174, 2.571, 3.047, 3.618, 4.293",\
                 "1.287, 1.361, 1.539, 1.771, 2.048, 2.379, 2.775, 3.252, 3.822, 4.498",\
                 "1.435, 1.509, 1.687, 1.92, 2.196, 2.525, 2.921, 3.397, 3.967, 4.643",\
                 "1.543, 1.617, 1.796, 2.028, 2.305, 2.635, 3.03, 3.505, 4.074, 4.75",\
                 "1.617, 1.691, 1.869, 2.102, 2.379, 2.708, 3.104, 3.58, 4.149, 4.823",\
                 "1.653, 1.728, 1.907, 2.139, 2.416, 2.746, 3.142, 3.617, 4.188, 4.861",\
                 "1.652, 1.728, 1.907, 2.139, 2.416, 2.746, 3.141, 3.617, 4.188, 4.862");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.008869, 0.01437, 0.03368, 0.07055, 0.128, 0.2086, 0.3146, 0.4482, 0.6113, 0.8057");
          values("0.5276, 0.596, 0.7914, 1.121, 1.621, 2.322, 3.242, 4.403, 5.819, 7.503",\
                 "0.5564, 0.6248, 0.8202, 1.15, 1.65, 2.35, 3.272, 4.429, 5.849, 7.539",\
                 "0.6588, 0.7272, 0.9226, 1.253, 1.752, 2.452, 3.372, 4.533, 5.952, 7.637",\
                 "0.8467, 0.916, 1.112, 1.442, 1.942, 2.642, 3.562, 4.722, 6.143, 7.832",\
                 "1.061, 1.136, 1.34, 1.673, 2.174, 2.873, 3.795, 4.956, 6.374, 8.063",\
                 "1.259, 1.343, 1.558, 1.897, 2.4, 3.099, 4.018, 5.179, 6.597, 8.281",\
                 "1.433, 1.527, 1.758, 2.103, 2.606, 3.307, 4.227, 5.386, 6.8, 8.489",\
                 "1.577, 1.682, 1.933, 2.287, 2.792, 3.492, 4.413, 5.572, 6.986, 8.67",\
                 "1.686, 1.804, 2.077, 2.443, 2.95, 3.65, 4.57, 5.73, 7.145, 8.83",\
                 "1.758, 1.888, 2.187, 2.568, 3.079, 3.779, 4.699, 5.857, 7.272, 8.958");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.008869, 0.01437, 0.03368, 0.07055, 0.128, 0.2086, 0.3146, 0.4482, 0.6113, 0.8057");
          values("0.3092, 0.3642, 0.5084, 0.7296, 1.038, 1.463, 2.037, 2.782, 3.719, 4.859",\
                 "0.3095, 0.3644, 0.5086, 0.728, 1.039, 1.463, 2.037, 2.783, 3.722, 4.856",\
                 "0.3088, 0.3636, 0.5086, 0.7288, 1.039, 1.463, 2.033, 2.783, 3.721, 4.86",\
                 "0.304, 0.3598, 0.5058, 0.7272, 1.037, 1.463, 2.036, 2.781, 3.722, 4.86",\
                 "0.2986, 0.3548, 0.5008, 0.7238, 1.035, 1.461, 2.036, 2.781, 3.719, 4.859",\
                 "0.2994, 0.3558, 0.5018, 0.7214, 1.03, 1.457, 2.032, 2.78, 3.721, 4.855",\
                 "0.2998, 0.3562, 0.503, 0.723, 1.034, 1.459, 2.028, 2.773, 3.715, 4.855",\
                 "0.3002, 0.3564, 0.503, 0.7242, 1.035, 1.458, 2.031, 2.774, 3.709, 4.844",\
                 "0.3002, 0.3568, 0.5036, 0.7254, 1.035, 1.461, 2.031, 2.776, 3.712, 4.844",\
                 "0.301, 0.3574, 0.5036, 0.7258, 1.036, 1.461, 2.03, 2.778, 3.712, 4.85");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.008869, 0.01437, 0.03368, 0.07055, 0.128, 0.2086, 0.3146, 0.4482, 0.6113, 0.8057");
          values("0.2262, 0.3042, 0.5659, 1.086, 1.932, 3.13, 4.705, 6.709, 9.141, 12",\
                 "0.2264, 0.3042, 0.5654, 1.088, 1.933, 3.131, 4.714, 6.694, 9.115, 12.01",\
                 "0.2265, 0.3035, 0.5668, 1.088, 1.933, 3.133, 4.71, 6.689, 9.115, 12.03",\
                 "0.231, 0.3074, 0.5672, 1.088, 1.933, 3.133, 4.711, 6.69, 9.149, 12.01",\
                 "0.2588, 0.3314, 0.5816, 1.093, 1.933, 3.133, 4.716, 6.711, 9.126, 12.05",\
                 "0.296, 0.3672, 0.6062, 1.106, 1.938, 3.13, 4.709, 6.707, 9.143, 12",\
                 "0.3386, 0.4092, 0.637, 1.118, 1.946, 3.135, 4.706, 6.692, 9.135, 12.04",\
                 "0.3872, 0.4618, 0.6774, 1.139, 1.951, 3.137, 4.71, 6.697, 9.119, 12.03",\
                 "0.4352, 0.5158, 0.7276, 1.163, 1.959, 3.144, 4.719, 6.697, 9.12, 12.01",\
                 "0.486, 0.5716, 0.784, 1.195, 1.97, 3.148, 4.72, 6.698, 9.12, 12");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.008869, 0.01437, 0.03368, 0.07055, 0.128, 0.2086, 0.3146, 0.4482, 0.6113, 0.8057");
          values("1.108, 1.185, 1.366, 1.599, 1.876, 2.206, 2.602, 3.079, 3.65, 4.325",\
                 "1.139, 1.216, 1.397, 1.63, 1.907, 2.237, 2.634, 3.11, 3.681, 4.356",\
                 "1.26, 1.337, 1.518, 1.751, 2.028, 2.358, 2.755, 3.231, 3.802, 4.478",\
                 "1.498, 1.574, 1.756, 1.989, 2.266, 2.597, 2.993, 3.47, 4.041, 4.716",\
                 "1.858, 1.935, 2.118, 2.352, 2.63, 2.962, 3.358, 3.835, 4.406, 5.082",\
                 "2.3, 2.382, 2.571, 2.81, 3.091, 3.423, 3.82, 4.297, 4.868, 5.544",\
                 "2.781, 2.868, 3.067, 3.314, 3.602, 3.939, 4.34, 4.818, 5.388, 6.065",\
                 "3.296, 3.39, 3.598, 3.855, 4.15, 4.494, 4.899, 5.381, 5.954, 6.63",\
                 "3.845, 3.945, 4.165, 4.431, 4.734, 5.085, 5.495, 5.98, 6.556, 7.234",\
                 "4.427, 4.535, 4.767, 5.043, 5.355, 5.713, 6.128, 6.617, 7.194, 7.873");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.008869, 0.01437, 0.03368, 0.07055, 0.128, 0.2086, 0.3146, 0.4482, 0.6113, 0.8057");
          values("0.7227, 0.7924, 0.9906, 1.324, 1.826, 2.527, 3.449, 4.612, 6.029, 7.718",\
                 "0.7509, 0.8204, 1.019, 1.352, 1.854, 2.555, 3.478, 4.637, 6.056, 7.747",\
                 "0.8474, 0.9163, 1.114, 1.448, 1.951, 2.653, 3.575, 4.735, 6.147, 7.844",\
                 "1.008, 1.078, 1.275, 1.609, 2.113, 2.815, 3.739, 4.897, 6.312, 8.006",\
                 "1.191, 1.263, 1.465, 1.8, 2.304, 3.007, 3.929, 5.092, 6.508, 8.199",\
                 "1.369, 1.445, 1.652, 1.992, 2.497, 3.2, 4.123, 5.282, 6.7, 8.393",\
                 "1.534, 1.614, 1.829, 2.172, 2.679, 3.383, 4.306, 5.467, 6.884, 8.573",\
                 "1.68, 1.766, 1.99, 2.338, 2.846, 3.55, 4.473, 5.634, 7.049, 8.739",\
                 "1.798, 1.891, 2.128, 2.482, 2.991, 3.694, 4.617, 5.779, 7.196, 8.882",\
                 "1.884, 1.986, 2.237, 2.6, 3.11, 3.814, 4.737, 5.898, 7.315, 9.002");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.008869, 0.01437, 0.03368, 0.07055, 0.128, 0.2086, 0.3146, 0.4482, 0.6113, 0.8057");
          values("0.2958, 0.35, 0.4952, 0.719, 1.031, 1.458, 2.033, 2.78, 3.718, 4.86",\
                 "0.2954, 0.3498, 0.4952, 0.719, 1.031, 1.458, 2.033, 2.781, 3.719, 4.86",\
                 "0.2954, 0.3496, 0.4956, 0.7188, 1.032, 1.458, 2.032, 2.783, 3.722, 4.858",\
                 "0.2964, 0.3512, 0.4966, 0.72, 1.031, 1.459, 2.031, 2.782, 3.72, 4.858",\
                 "0.3046, 0.3574, 0.5008, 0.7222, 1.034, 1.46, 2.035, 2.78, 3.716, 4.858",\
                 "0.331, 0.3808, 0.5176, 0.7332, 1.04, 1.465, 2.035, 2.782, 3.719, 4.857",\
                 "0.3648, 0.4118, 0.5458, 0.7608, 1.065, 1.48, 2.048, 2.787, 3.719, 4.859",\
                 "0.4064, 0.4482, 0.5764, 0.7894, 1.092, 1.507, 2.072, 2.805, 3.733, 4.863",\
                 "0.4584, 0.4922, 0.6104, 0.8212, 1.126, 1.538, 2.096, 2.826, 3.748, 4.872",\
                 "0.522, 0.544, 0.65, 0.856, 1.154, 1.568, 2.12, 2.846, 3.762, 4.886");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.1027, 0.3929, 0.9472, 1.811, 3.022, 4.617, 6.625, 9.077, 12");
          index_2("0.008869, 0.01437, 0.03368, 0.07055, 0.128, 0.2086, 0.3146, 0.4482, 0.6113, 0.8057");
          values("0.2128, 0.2921, 0.5587, 1.086, 1.934, 3.134, 4.716, 6.713, 9.119, 12.05",\
                 "0.2131, 0.2917, 0.5593, 1.086, 1.933, 3.132, 4.717, 6.689, 9.116, 12.01",\
                 "0.2136, 0.293, 0.5594, 1.086, 1.931, 3.129, 4.717, 6.689, 9.132, 12.01",\
                 "0.216, 0.2954, 0.561, 1.085, 1.933, 3.131, 4.717, 6.696, 9.118, 12",\
                 "0.2276, 0.3066, 0.5696, 1.089, 1.933, 3.13, 4.708, 6.711, 9.138, 12",\
                 "0.243, 0.3236, 0.5832, 1.098, 1.936, 3.127, 4.707, 6.706, 9.136, 12",\
                 "0.2618, 0.3422, 0.5996, 1.108, 1.942, 3.133, 4.71, 6.699, 9.135, 12.04",\
                 "0.2876, 0.3672, 0.6204, 1.118, 1.947, 3.135, 4.71, 6.698, 9.124, 12.02",\
                 "0.3192, 0.3996, 0.6474, 1.132, 1.95, 3.141, 4.718, 6.694, 9.112, 12.01",\
                 "0.354, 0.437, 0.6806, 1.151, 1.957, 3.148, 4.714, 6.694, 9.116, 12");
        }
      }
    }
  }

