/*
 * 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_8) {
    area : 74.636800 ;

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

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

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

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

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

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

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

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

      internal_power() {
        when : "!I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.2789, 0.2791, 0.2938, 0.3374, 0.4149, 0.5298, 0.6855, 0.9017, \
                  1.191, 1.549");
        }

        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.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.5375, 0.5376, 0.5568, 0.6183, 0.7372, 0.9219, 1.179, 1.513, \
                  1.931, 2.437");
        }

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

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

      internal_power() {
        when : "!EN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.1913, 0.1909, 0.1904, 0.1908, 0.1902, 0.1904, 0.1908, 0.1903, \
                  0.1907, 0.1907");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("-0.1896, -0.1901, -0.1899, -0.1899, -0.1897, -0.1897, -0.1904, \
                  -0.1898, -0.1901, -0.1902");
        }
      }
    }

    pin(Z) {
      capacitance : 0.01412 ;
      direction : output ;
      function : "I" ;
      max_capacitance : 1.763 ;
      max_transition : 3.4 ;
      min_capacitance : 0.01512 ;
      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.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.01512, 0.02718, 0.06952, 0.1504, 0.2763, 0.4531, 0.6856, 0.9786, 1.336, 1.763");
          values("0.8936, 0.8909, 0.8873, 0.8861, 0.8857, 0.8858, 0.8856, 0.8859, 0.8859, 0.8858",\
                 "0.8959, 0.8925, 0.8896, 0.8883, 0.888, 0.888, 0.8881, 0.888, 0.8881, 0.888",\
                 "0.9173, 0.915, 0.9115, 0.9106, 0.9103, 0.9106, 0.9107, 0.9105, 0.9102, 0.9102",\
                 "0.9667, 0.9656, 0.9635, 0.9631, 0.963, 0.9632, 0.9635, 0.9634, 0.9635, 0.9636",\
                 "1.055, 1.054, 1.054, 1.054, 1.053, 1.053, 1.053, 1.054, 1.054, 1.054",\
                 "1.185, 1.185, 1.184, 1.184, 1.184, 1.184, 1.184, 1.184, 1.184, 1.184",\
                 "1.358, 1.358, 1.358, 1.358, 1.358, 1.358, 1.358, 1.358, 1.358, 1.358",\
                 "1.578, 1.579, 1.579, 1.579, 1.578, 1.579, 1.579, 1.579, 1.579, 1.579",\
                 "1.848, 1.849, 1.849, 1.849, 1.848, 1.848, 1.849, 1.849, 1.849, 1.849",\
                 "2.168, 2.168, 2.169, 2.169, 2.168, 2.168, 2.168, 2.168, 2.168, 2.169");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.01512, 0.02718, 0.06952, 0.1504, 0.2763, 0.4531, 0.6856, 0.9786, 1.336, 1.763");
          values("0.7831, 0.7823, 0.7832, 0.7836, 0.7853, 0.7889, 0.7957, 0.8056, 0.821, 0.8321",\
                 "0.7834, 0.7838, 0.7841, 0.7847, 0.7858, 0.7895, 0.7985, 0.8078, 0.8237, 0.8299",\
                 "0.7983, 0.7979, 0.7979, 0.7981, 0.8001, 0.8049, 0.8117, 0.8216, 0.838, 0.8469",\
                 "0.8458, 0.8463, 0.8458, 0.8468, 0.848, 0.8522, 0.859, 0.8689, 0.8831, 0.8937",\
                 "0.9429, 0.9429, 0.9452, 0.9492, 0.9508, 0.9545, 0.9618, 0.9723, 0.9843, 0.9998",\
                 "1.098, 1.098, 1.099, 1.097, 1.109, 1.113, 1.119, 1.128, 1.145, 1.155",\
                 "1.318, 1.319, 1.319, 1.32, 1.321, 1.335, 1.341, 1.35, 1.366, 1.371",\
                 "1.608, 1.609, 1.611, 1.609, 1.606, 1.614, 1.635, 1.648, 1.656, 1.665",\
                 "1.97, 1.972, 1.973, 1.974, 1.97, 1.974, 1.983, 2.01, 2.029, 2.036",\
                 "2.41, 2.411, 2.416, 2.419, 2.417, 2.411, 2.418, 2.433, 2.463, 2.493");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.01512, 0.02718, 0.06952, 0.1504, 0.2763, 0.4531, 0.6856, 0.9786, 1.336, 1.763");
          values("1.554, 1.546, 1.548, 1.556, 1.562, 1.565, 1.568, 1.569, 1.57, 1.571",\
                 "1.549, 1.541, 1.54, 1.548, 1.553, 1.556, 1.559, 1.561, 1.561, 1.562",\
                 "1.575, 1.566, 1.561, 1.566, 1.573, 1.575, 1.578, 1.579, 1.58, 1.581",\
                 "1.703, 1.688, 1.672, 1.67, 1.674, 1.679, 1.681, 1.684, 1.684, 1.685",\
                 "1.963, 1.943, 1.914, 1.902, 1.902, 1.904, 1.906, 1.908, 1.909, 1.91",\
                 "2.378, 2.352, 2.311, 2.287, 2.279, 2.278, 2.278, 2.28, 2.28, 2.282",\
                 "2.968, 2.937, 2.879, 2.842, 2.824, 2.816, 2.813, 2.812, 2.812, 2.813",\
                 "3.743, 3.706, 3.635, 3.579, 3.547, 3.531, 3.522, 3.517, 3.514, 3.513",\
                 "4.713, 4.673, 4.586, 4.509, 4.46, 4.43, 4.414, 4.404, 4.397, 4.393",\
                 "5.886, 5.843, 5.744, 5.646, 5.576, 5.53, 5.502, 5.484, 5.471, 5.461");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.01512, 0.02718, 0.06952, 0.1504, 0.2763, 0.4531, 0.6856, 0.9786, 1.336, 1.763");
          values("0.7384, 0.7487, 0.7812, 0.8157, 0.8355, 0.8513, 0.868, 0.8801, 0.8949, 0.9131",\
                 "0.7316, 0.7426, 0.7736, 0.8065, 0.8267, 0.8436, 0.8564, 0.8741, 0.8867, 0.9049",\
                 "0.7319, 0.7407, 0.7658, 0.7931, 0.8168, 0.8348, 0.8515, 0.8658, 0.8878, 0.8977",\
                 "0.7978, 0.8012, 0.8164, 0.84, 0.8652, 0.8854, 0.9048, 0.9203, 0.9356, 0.9522",\
                 "0.9753, 0.973, 0.9814, 1.002, 1.023, 1.043, 1.065, 1.083, 1.106, 1.112",\
                 "1.301, 1.294, 1.289, 1.295, 1.321, 1.337, 1.356, 1.376, 1.401, 1.416",\
                 "1.795, 1.78, 1.762, 1.757, 1.768, 1.797, 1.807, 1.826, 1.847, 1.87",\
                 "2.467, 2.445, 2.414, 2.391, 2.385, 2.396, 2.423, 2.439, 2.459, 2.472",\
                 "3.326, 3.295, 3.245, 3.215, 3.187, 3.186, 3.199, 3.228, 3.243, 3.269",\
                 "4.376, 4.336, 4.267, 4.215, 4.182, 4.166, 4.154, 4.175, 4.208, 4.215");
        }
      }

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

        cell_fall(tmg_ntin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.374, 0.38, 0.401, 0.45, 0.534, 0.656, 0.808, 0.985, 1.185, 1.406");
        }

        cell_rise(tmg_ntin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0.3, 0.305, 0.331, 0.381, 0.453, 0.546, 0.655, 0.781, 0.926, 1.089");
        }

        fall_transition(tmg_ntin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          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.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.01512, 0.02718, 0.06952, 0.1504, 0.2763, 0.4531, 0.6856, 0.9786, 1.336, 1.763");
          values("0.1286, 0.154, 0.2168, 0.3057, 0.4195, 0.5598, 0.7308, 0.9386, 1.189, 1.485",\
                 "0.1327, 0.1579, 0.2207, 0.3096, 0.4234, 0.5636, 0.7347, 0.9425, 1.192, 1.489",\
                 "0.1486, 0.1738, 0.2364, 0.3254, 0.4391, 0.5794, 0.7505, 0.9584, 1.208, 1.505",\
                 "0.1679, 0.1952, 0.2602, 0.35, 0.4642, 0.6047, 0.7759, 0.9837, 1.234, 1.53",\
                 "0.1734, 0.2039, 0.276, 0.3717, 0.4891, 0.631, 0.8028, 1.011, 1.261, 1.557",\
                 "0.1621, 0.1955, 0.2727, 0.3724, 0.4915, 0.6338, 0.8056, 1.014, 1.264, 1.56",\
                 "0.133, 0.169, 0.2503, 0.352, 0.4719, 0.6148, 0.7868, 0.9948, 1.244, 1.541",\
                 "0.0857, 0.1247, 0.2094, 0.3129, 0.4339, 0.5773, 0.7495, 0.9575, 1.207, 1.503",\
                 "0.0193, 0.0614, 0.15, 0.2554, 0.3775, 0.5215, 0.6942, 0.9023, 1.152, 1.448",\
                 "-0.0678, -0.0223, 0.0711, 0.1786, 0.302, 0.4468, 0.6195, 0.8279, 1.078, 1.374");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.01512, 0.02718, 0.06952, 0.1504, 0.2763, 0.4531, 0.6856, 0.9786, 1.336, 1.763");
          values("0.1489, 0.1788, 0.2509, 0.3514, 0.4881, 0.6729, 0.9144, 1.219, 1.59, 2.032",\
                 "0.1522, 0.1821, 0.2542, 0.3549, 0.4915, 0.6762, 0.9173, 1.221, 1.593, 2.036",\
                 "0.1644, 0.1945, 0.2667, 0.3676, 0.5042, 0.6887, 0.9304, 1.234, 1.606, 2.048",\
                 "0.1781, 0.2111, 0.2867, 0.3888, 0.5256, 0.7104, 0.9517, 1.256, 1.627, 2.07",\
                 "0.1766, 0.2154, 0.3008, 0.4084, 0.5473, 0.7323, 0.9735, 1.278, 1.649, 2.092",\
                 "0.1542, 0.1997, 0.2984, 0.4163, 0.5592, 0.7452, 0.9868, 1.291, 1.661, 2.105",\
                 "0.1082, 0.1616, 0.2751, 0.4071, 0.5574, 0.7462, 0.9884, 1.292, 1.663, 2.106",\
                 "0.0359, 0.0991, 0.2291, 0.3774, 0.5382, 0.7323, 0.9775, 1.282, 1.653, 2.095",\
                 "-0.0671, 0.0093, 0.1583, 0.3249, 0.4992, 0.7003, 0.9496, 1.258, 1.63, 2.072",\
                 "-0.203, -0.1109, 0.0611, 0.2474, 0.4384, 0.6479, 0.9026, 1.216, 1.592, 2.036");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.01512, 0.02718, 0.06952, 0.1504, 0.2763, 0.4531, 0.6856, 0.9786, 1.336, 1.763");
          values("0.07222, 0.09488, 0.1601, 0.2652, 0.4112, 0.6069, 0.8645, 1.198, 1.614, 2.113",\
                 "0.0718, 0.09476, 0.1599, 0.2651, 0.4112, 0.6072, 0.8648, 1.198, 1.613, 2.113",\
                 "0.07138, 0.09434, 0.1598, 0.2649, 0.4113, 0.6071, 0.8661, 1.199, 1.615, 2.115",\
                 "0.07894, 0.1011, 0.1632, 0.2667, 0.4125, 0.608, 0.8647, 1.198, 1.613, 2.114",\
                 "0.09006, 0.1141, 0.1798, 0.2801, 0.4206, 0.6118, 0.8688, 1.2, 1.615, 2.113",\
                 "0.1007, 0.1252, 0.1919, 0.2898, 0.4257, 0.6138, 0.8694, 1.199, 1.615, 2.115",\
                 "0.1116, 0.1354, 0.1997, 0.2948, 0.43, 0.6166, 0.8692, 1.198, 1.614, 2.115",\
                 "0.123, 0.1456, 0.2064, 0.2994, 0.433, 0.6188, 0.871, 1.199, 1.612, 2.111",\
                 "0.137, 0.1582, 0.2136, 0.3034, 0.4358, 0.6208, 0.8718, 1.2, 1.613, 2.111",\
                 "0.1526, 0.1726, 0.2226, 0.3088, 0.4396, 0.6238, 0.874, 1.202, 1.613, 2.111");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.01512, 0.02718, 0.06952, 0.1504, 0.2763, 0.4531, 0.6856, 0.9786, 1.336, 1.763");
          values("0.08272, 0.1111, 0.1892, 0.3264, 0.5507, 0.8808, 1.323, 1.882, 2.564, 3.378",\
                 "0.08262, 0.1109, 0.1891, 0.3261, 0.5506, 0.8806, 1.323, 1.882, 2.564, 3.377",\
                 "0.08328, 0.1113, 0.1896, 0.3269, 0.5508, 0.8808, 1.324, 1.882, 2.564, 3.378",\
                 "0.09352, 0.1201, 0.1943, 0.3284, 0.5514, 0.8808, 1.321, 1.882, 2.564, 3.379",\
                 "0.1115, 0.1397, 0.2124, 0.3383, 0.5546, 0.882, 1.322, 1.883, 2.564, 3.373",\
                 "0.1334, 0.1631, 0.2397, 0.3584, 0.5644, 0.8854, 1.325, 1.883, 2.564, 3.374",\
                 "0.1614, 0.1912, 0.2714, 0.3876, 0.5818, 0.8934, 1.327, 1.883, 2.563, 3.378",\
                 "0.198, 0.2252, 0.3078, 0.4256, 0.608, 0.9106, 1.336, 1.886, 2.565, 3.378",\
                 "0.2454, 0.2688, 0.347, 0.4692, 0.6426, 0.9334, 1.355, 1.899, 2.571, 3.377",\
                 "0.3032, 0.3248, 0.3926, 0.5192, 0.6858, 0.961, 1.378, 1.921, 2.589, 3.39");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.01512, 0.02718, 0.06952, 0.1504, 0.2763, 0.4531, 0.6856, 0.9786, 1.336, 1.763");
          values("0.1792, 0.2031, 0.2651, 0.3544, 0.4684, 0.6087, 0.7799, 0.9877, 1.238, 1.534",\
                 "0.1822, 0.206, 0.268, 0.3572, 0.4713, 0.6116, 0.7828, 0.9907, 1.241, 1.537",\
                 "0.2005, 0.2241, 0.2859, 0.3751, 0.4891, 0.6295, 0.8007, 1.009, 1.258, 1.555",\
                 "0.2416, 0.265, 0.3267, 0.4159, 0.5302, 0.6707, 0.842, 1.05, 1.3, 1.596",\
                 "0.3031, 0.3284, 0.3926, 0.4835, 0.5989, 0.7401, 0.9117, 1.12, 1.37, 1.666",\
                 "0.3779, 0.407, 0.4799, 0.578, 0.6982, 0.8422, 1.015, 1.224, 1.474, 1.771",\
                 "0.463, 0.4969, 0.581, 0.6935, 0.827, 0.9798, 1.157, 1.367, 1.618, 1.915",\
                 "0.5588, 0.5978, 0.6946, 0.8232, 0.9756, 1.147, 1.337, 1.552, 1.805, 2.102",\
                 "0.6668, 0.7113, 0.8215, 0.968, 1.14, 1.335, 1.548, 1.778, 2.036, 2.334",\
                 "0.7876, 0.8381, 0.963, 1.128, 1.322, 1.541, 1.78, 2.037, 2.309, 2.612");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.01512, 0.02718, 0.06952, 0.1504, 0.2763, 0.4531, 0.6856, 0.9786, 1.336, 1.763");
          values("0.1951, 0.2256, 0.2991, 0.4011, 0.5387, 0.7242, 0.966, 1.271, 1.641, 2.085",\
                 "0.1962, 0.2267, 0.3001, 0.4019, 0.5395, 0.7251, 0.9671, 1.271, 1.642, 2.086",\
                 "0.2013, 0.2315, 0.3045, 0.4064, 0.544, 0.7294, 0.9715, 1.276, 1.647, 2.09",\
                 "0.2081, 0.2383, 0.3114, 0.4133, 0.5512, 0.737, 0.9791, 1.284, 1.656, 2.097",\
                 "0.2124, 0.245, 0.3223, 0.4265, 0.5653, 0.7511, 0.9933, 1.298, 1.669, 2.113",\
                 "0.2033, 0.2407, 0.3288, 0.4427, 0.5858, 0.7729, 1.015, 1.32, 1.692, 2.135",\
                 "0.1785, 0.2209, 0.3221, 0.4515, 0.6073, 0.801, 1.045, 1.35, 1.721, 2.163",\
                 "0.1378, 0.1858, 0.3013, 0.4482, 0.6211, 0.829, 1.081, 1.388, 1.76, 2.202",\
                 "0.0826, 0.136, 0.2662, 0.4322, 0.6244, 0.8495, 1.117, 1.434, 1.808, 2.251",\
                 "0.0125, 0.0714, 0.2164, 0.4022, 0.6159, 0.8606, 1.146, 1.479, 1.865, 2.31");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.01512, 0.02718, 0.06952, 0.1504, 0.2763, 0.4531, 0.6856, 0.9786, 1.336, 1.763");
          values("0.06708, 0.09124, 0.1582, 0.2643, 0.411, 0.6062, 0.8641, 1.197, 1.613, 2.115",\
                 "0.06704, 0.09158, 0.1586, 0.2642, 0.4102, 0.6063, 0.8641, 1.199, 1.613, 2.113",\
                 "0.06734, 0.09226, 0.1592, 0.2643, 0.4113, 0.6067, 0.8641, 1.199, 1.613, 2.113",\
                 "0.06968, 0.0939, 0.1609, 0.2659, 0.412, 0.6069, 0.8665, 1.199, 1.614, 2.113",\
                 "0.0799, 0.1037, 0.168, 0.2714, 0.416, 0.61, 0.8658, 1.198, 1.613, 2.115",\
                 "0.09764, 0.1247, 0.1916, 0.2906, 0.4296, 0.6196, 0.8712, 1.202, 1.615, 2.115",\
                 "0.1194, 0.1506, 0.2256, 0.3332, 0.47, 0.6472, 0.8886, 1.211, 1.618, 2.116",\
                 "0.1442, 0.1798, 0.2666, 0.3858, 0.5364, 0.713, 0.9336, 1.233, 1.627, 2.119",\
                 "0.1724, 0.213, 0.3112, 0.4458, 0.6124, 0.8074, 1.025, 1.294, 1.658, 2.131",\
                 "0.2042, 0.2508, 0.3614, 0.5106, 0.6952, 0.9094, 1.148, 1.407, 1.734, 2.166");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04333, 0.1252, 0.2816, 0.5252, 0.8671, 1.317, 1.884, 2.575, 3.4");
          index_2("0.01512, 0.02718, 0.06952, 0.1504, 0.2763, 0.4531, 0.6856, 0.9786, 1.336, 1.763");
          values("0.07928, 0.1075, 0.1856, 0.3238, 0.5496, 0.8804, 1.323, 1.883, 2.564, 3.374",\
                 "0.07964, 0.1073, 0.1856, 0.3238, 0.5508, 0.8809, 1.324, 1.882, 2.564, 3.373",\
                 "0.0801, 0.1079, 0.1862, 0.324, 0.5509, 0.8804, 1.324, 1.882, 2.564, 3.378",\
                 "0.08122, 0.1095, 0.1876, 0.3251, 0.551, 0.8802, 1.323, 1.883, 2.564, 3.376",\
                 "0.0917, 0.1204, 0.1968, 0.3306, 0.5529, 0.8808, 1.323, 1.882, 2.564, 3.375",\
                 "0.109, 0.1416, 0.2222, 0.3512, 0.5629, 0.8854, 1.323, 1.882, 2.565, 3.375",\
                 "0.1296, 0.1667, 0.2564, 0.3908, 0.5966, 0.9028, 1.328, 1.882, 2.561, 3.378",\
                 "0.1528, 0.1954, 0.2962, 0.4388, 0.6474, 0.9484, 1.356, 1.891, 2.565, 3.378",\
                 "0.1786, 0.226, 0.339, 0.4956, 0.7096, 1.011, 1.413, 1.929, 2.58, 3.383",\
                 "0.2074, 0.2598, 0.3854, 0.5554, 0.7804, 1.087, 1.491, 2, 2.627, 3.401");
        }
      }
    }
  }

