/*
 * 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.0002781075" ;
    }

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

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

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

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

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

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

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

      internal_power() {
        when : "!I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0.27, 0.2709, 0.2866, 0.3283, 0.3996, 0.5048, 0.6461, 0.8405, \
                  1.1, 1.422");
        }

        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.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0.5245, 0.5259, 0.5457, 0.6066, 0.7206, 0.8961, 1.138, 1.452, \
                  1.843, 2.316");
        }

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

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

      internal_power() {
        when : "!EN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0.1879, 0.1877, 0.187, 0.1871, 0.187, 0.1872, 0.1874, 0.1874, \
                  0.1872, 0.1873");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("-0.1866, -0.1865, -0.1867, -0.1863, -0.1865, -0.1864, -0.1865, \
                  -0.1869, -0.1871, -0.1869");
        }
      }
    }

    pin(Z) {
      capacitance : 0.01345 ;
      direction : output ;
      function : "I" ;
      max_capacitance : 1.801 ;
      max_transition : 2.6 ;
      min_capacitance : 0.01445 ;
      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.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.01445, 0.02678, 0.07007, 0.1527, 0.2815, 0.4622, 0.7, 0.9995, 1.365, 1.801");
          values("0.8643, 0.8638, 0.8633, 0.8628, 0.863, 0.8631, 0.8634, 0.8638, 0.8638, 0.8639",\
                 "0.8679, 0.8674, 0.8666, 0.8662, 0.8663, 0.8666, 0.8671, 0.8669, 0.8671, 0.8671",\
                 "0.8921, 0.8926, 0.8918, 0.8913, 0.8914, 0.8918, 0.8916, 0.8918, 0.8917, 0.8921",\
                 "0.9466, 0.9468, 0.9459, 0.9455, 0.9453, 0.9454, 0.9458, 0.946, 0.9461, 0.9461",\
                 "1.035, 1.035, 1.034, 1.034, 1.034, 1.034, 1.034, 1.034, 1.034, 1.034",\
                 "1.161, 1.161, 1.16, 1.16, 1.16, 1.16, 1.16, 1.16, 1.16, 1.16",\
                 "1.328, 1.326, 1.327, 1.327, 1.326, 1.327, 1.327, 1.327, 1.327, 1.327",\
                 "1.536, 1.536, 1.536, 1.535, 1.535, 1.535, 1.535, 1.535, 1.535, 1.535",\
                 "1.79, 1.79, 1.789, 1.789, 1.788, 1.789, 1.788, 1.788, 1.789, 1.789",\
                 "2.09, 2.089, 2.089, 2.089, 2.088, 2.088, 2.089, 2.088, 2.088, 2.088");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.01445, 0.02678, 0.07007, 0.1527, 0.2815, 0.4622, 0.7, 0.9995, 1.365, 1.801");
          values("0.752, 0.7524, 0.7549, 0.7538, 0.7568, 0.7587, 0.7655, 0.7779, 0.7919, 0.8095",\
                 "0.7534, 0.7547, 0.7545, 0.7562, 0.7562, 0.7593, 0.7639, 0.7751, 0.7897, 0.8035",\
                 "0.7687, 0.7694, 0.7708, 0.7706, 0.7711, 0.7741, 0.7798, 0.7872, 0.8079, 0.82",\
                 "0.8178, 0.8191, 0.8189, 0.8215, 0.8206, 0.8236, 0.8293, 0.8367, 0.8535, 0.8662",\
                 "0.9123, 0.9138, 0.9125, 0.9207, 0.9185, 0.9221, 0.9272, 0.9363, 0.9547, 0.9723",\
                 "1.061, 1.063, 1.066, 1.061, 1.074, 1.073, 1.077, 1.083, 1.103, 1.115",\
                 "1.273, 1.274, 1.276, 1.273, 1.274, 1.289, 1.289, 1.293, 1.307, 1.313",\
                 "1.547, 1.547, 1.549, 1.551, 1.546, 1.552, 1.571, 1.575, 1.581, 1.588",\
                 "1.891, 1.89, 1.89, 1.893, 1.893, 1.89, 1.899, 1.933, 1.938, 1.951",\
                 "2.305, 2.305, 2.306, 2.31, 2.308, 2.3, 2.305, 2.32, 2.36, 2.364");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.01445, 0.02678, 0.07007, 0.1527, 0.2815, 0.4622, 0.7, 0.9995, 1.365, 1.801");
          values("1.493, 1.488, 1.49, 1.501, 1.509, 1.515, 1.519, 1.521, 1.523, 1.524",\
                 "1.49, 1.484, 1.486, 1.497, 1.504, 1.51, 1.514, 1.516, 1.518, 1.519",\
                 "1.528, 1.519, 1.515, 1.523, 1.53, 1.535, 1.539, 1.542, 1.543, 1.545",\
                 "1.666, 1.651, 1.637, 1.636, 1.641, 1.646, 1.65, 1.653, 1.655, 1.656",\
                 "1.915, 1.898, 1.873, 1.863, 1.865, 1.87, 1.875, 1.878, 1.88, 1.882",\
                 "2.3, 2.277, 2.247, 2.232, 2.229, 2.233, 2.236, 2.24, 2.244, 2.246",\
                 "2.835, 2.808, 2.772, 2.75, 2.743, 2.743, 2.747, 2.75, 2.754, 2.757",\
                 "3.535, 3.505, 3.461, 3.429, 3.415, 3.414, 3.416, 3.419, 3.422, 3.426",\
                 "4.405, 4.372, 4.319, 4.279, 4.26, 4.251, 4.251, 4.252, 4.255, 4.258",\
                 "5.456, 5.421, 5.357, 5.31, 5.281, 5.266, 5.261, 5.261, 5.263, 5.266");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.01445, 0.02678, 0.07007, 0.1527, 0.2815, 0.4622, 0.7, 0.9995, 1.365, 1.801");
          values("0.7036, 0.7172, 0.7529, 0.7828, 0.8032, 0.815, 0.8262, 0.8408, 0.8614, 0.8807",\
                 "0.6953, 0.7105, 0.7442, 0.772, 0.7938, 0.8073, 0.8224, 0.8331, 0.8471, 0.868",\
                 "0.6962, 0.7073, 0.7326, 0.7631, 0.7828, 0.8007, 0.8158, 0.8303, 0.8488, 0.8719",\
                 "0.7598, 0.7669, 0.7855, 0.81, 0.8334, 0.8524, 0.8719, 0.8837, 0.9065, 0.9291",\
                 "0.9238, 0.9314, 0.9429, 0.9673, 0.9863, 1.008, 1.025, 1.047, 1.068, 1.1",\
                 "1.221, 1.222, 1.232, 1.244, 1.275, 1.291, 1.308, 1.325, 1.349, 1.369",\
                 "1.664, 1.665, 1.67, 1.674, 1.693, 1.727, 1.737, 1.754, 1.775, 1.793",\
                 "2.267, 2.266, 2.268, 2.264, 2.269, 2.293, 2.325, 2.339, 2.349, 2.376",\
                 "3.037, 3.03, 3.024, 3.021, 3.019, 3.022, 3.053, 3.092, 3.099, 3.113",\
                 "3.974, 3.96, 3.951, 3.938, 3.932, 3.932, 3.941, 3.973, 4.013, 4.026");
        }
      }

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

        cell_fall(tmg_ntin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0.2827, 0.2864, 0.3024, 0.3392, 0.4026, 0.4952, 0.6098, 0.7443, \
                  0.8948, 1.063");
        }

        cell_rise(tmg_ntin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0.2106, 0.2151, 0.235, 0.274, 0.3285, 0.3996, 0.4836, 0.5821, \
                  0.6938, 0.8202");
        }

        fall_transition(tmg_ntin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          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.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.01445, 0.02678, 0.07007, 0.1527, 0.2815, 0.4622, 0.7, 0.9995, 1.365, 1.801");
          values("0.0963, 0.115, 0.1611, 0.2257, 0.3079, 0.4094, 0.5341, 0.6868, 0.8714, 1.091",\
                 "0.09969, 0.1184, 0.1644, 0.229, 0.3113, 0.4127, 0.5374, 0.6901, 0.8748, 1.094",\
                 "0.1128, 0.1315, 0.1774, 0.2419, 0.3242, 0.4257, 0.5504, 0.7031, 0.8877, 1.107",\
                 "0.1293, 0.1495, 0.1975, 0.2628, 0.3455, 0.4472, 0.5719, 0.7247, 0.9093, 1.129",\
                 "0.136, 0.1584, 0.2116, 0.2817, 0.3666, 0.4691, 0.5942, 0.7469, 0.9315, 1.151",\
                 "0.1308, 0.155, 0.2118, 0.2842, 0.3698, 0.4725, 0.5976, 0.7503, 0.9349, 1.154",\
                 "0.1137, 0.139, 0.198, 0.2713, 0.3573, 0.4602, 0.5852, 0.7378, 0.9222, 1.142",\
                 "0.08317, 0.11, 0.17, 0.244, 0.3306, 0.4336, 0.5588, 0.7115, 0.8959, 1.115",\
                 "0.0383, 0.0671, 0.1282, 0.2031, 0.2901, 0.3934, 0.5186, 0.6713, 0.8557, 1.075",\
                 "-0.0204, 0.009, 0.0722, 0.1478, 0.2354, 0.339, 0.4643, 0.617, 0.8014, 1.021");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.01445, 0.02678, 0.07007, 0.1527, 0.2815, 0.4622, 0.7, 0.9995, 1.365, 1.801");
          values("0.1073, 0.1293, 0.1822, 0.2581, 0.3656, 0.5145, 0.7102, 0.9568, 1.257, 1.617",\
                 "0.1101, 0.1322, 0.1851, 0.2609, 0.3685, 0.5173, 0.7129, 0.9596, 1.261, 1.619",\
                 "0.1204, 0.1427, 0.1956, 0.2716, 0.3791, 0.5279, 0.7236, 0.9704, 1.271, 1.63",\
                 "0.1322, 0.1567, 0.2125, 0.2892, 0.3969, 0.5457, 0.7413, 0.9881, 1.289, 1.647",\
                 "0.1344, 0.1627, 0.2256, 0.3059, 0.4144, 0.5631, 0.7588, 1.005, 1.306, 1.665",\
                 "0.123, 0.1556, 0.2274, 0.3143, 0.4246, 0.5736, 0.769, 1.015, 1.316, 1.675",\
                 "0.09691, 0.1339, 0.2151, 0.3111, 0.4253, 0.575, 0.7705, 1.017, 1.318, 1.677",\
                 "0.05491, 0.09666, 0.1874, 0.2941, 0.4138, 0.5659, 0.7626, 1.009, 1.309, 1.668",\
                 "-0.0043, 0.0431, 0.1434, 0.2616, 0.3891, 0.5443, 0.7429, 0.9905, 1.291, 1.649",\
                 "-0.0832, -0.0282, 0.0825, 0.212, 0.3491, 0.5082, 0.7094, 0.9594, 1.262, 1.62");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.01445, 0.02678, 0.07007, 0.1527, 0.2815, 0.4622, 0.7, 0.9995, 1.365, 1.801");
          values("0.0487, 0.06586, 0.1127, 0.1868, 0.2887, 0.4263, 0.6109, 0.8523, 1.151, 1.511",\
                 "0.04852, 0.0658, 0.1126, 0.1865, 0.2887, 0.426, 0.6111, 0.8508, 1.151, 1.51",\
                 "0.04834, 0.06554, 0.1124, 0.1868, 0.289, 0.4259, 0.611, 0.8509, 1.152, 1.51",\
                 "0.05392, 0.07094, 0.1157, 0.1884, 0.2899, 0.4273, 0.611, 0.8522, 1.151, 1.511",\
                 "0.06096, 0.0798, 0.1277, 0.1988, 0.296, 0.4301, 0.6136, 0.8524, 1.15, 1.51",\
                 "0.06712, 0.08688, 0.1358, 0.204, 0.2984, 0.4311, 0.6136, 0.8523, 1.15, 1.51",\
                 "0.07188, 0.09242, 0.1399, 0.2065, 0.3, 0.4322, 0.6134, 0.851, 1.15, 1.51",\
                 "0.0768, 0.09656, 0.1426, 0.2082, 0.301, 0.4328, 0.6142, 0.852, 1.149, 1.508",\
                 "0.0826, 0.101, 0.1454, 0.2102, 0.3028, 0.4342, 0.6148, 0.8522, 1.149, 1.509",\
                 "0.0878, 0.1062, 0.1484, 0.2122, 0.3048, 0.4348, 0.615, 0.8522, 1.15, 1.508");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.01445, 0.02678, 0.07007, 0.1527, 0.2815, 0.4622, 0.7, 0.9995, 1.365, 1.801");
          values("0.05596, 0.0764, 0.1325, 0.237, 0.4123, 0.6677, 1.006, 1.433, 1.957, 2.58",\
                 "0.05598, 0.07652, 0.1325, 0.237, 0.4122, 0.6686, 1.008, 1.435, 1.955, 2.578",\
                 "0.0566, 0.0769, 0.1328, 0.2368, 0.4123, 0.6683, 1.007, 1.435, 1.956, 2.578",\
                 "0.06398, 0.08348, 0.1364, 0.2384, 0.4126, 0.6686, 1.007, 1.435, 1.955, 2.577",\
                 "0.0751, 0.09676, 0.1494, 0.2439, 0.4142, 0.6685, 1.007, 1.434, 1.957, 2.58",\
                 "0.0876, 0.1114, 0.1678, 0.2559, 0.4179, 0.6695, 1.007, 1.435, 1.957, 2.579",\
                 "0.102, 0.1269, 0.1885, 0.2745, 0.4262, 0.6722, 1.008, 1.435, 1.955, 2.577",\
                 "0.1193, 0.1438, 0.2102, 0.2974, 0.4412, 0.6808, 1.011, 1.435, 1.954, 2.577",\
                 "0.1404, 0.1632, 0.232, 0.3256, 0.4592, 0.6916, 1.021, 1.44, 1.956, 2.578",\
                 "0.1672, 0.187, 0.255, 0.3538, 0.4822, 0.7046, 1.033, 1.453, 1.964, 2.579");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.01445, 0.02678, 0.07007, 0.1527, 0.2815, 0.4622, 0.7, 0.9995, 1.365, 1.801");
          values("0.1299, 0.1474, 0.1933, 0.2583, 0.341, 0.4426, 0.5674, 0.7201, 0.9048, 1.124",\
                 "0.1327, 0.1501, 0.196, 0.261, 0.3437, 0.4453, 0.57, 0.7228, 0.9075, 1.127",\
                 "0.1473, 0.1646, 0.2101, 0.2751, 0.3578, 0.4594, 0.5842, 0.737, 0.9217, 1.141",\
                 "0.1792, 0.1962, 0.2414, 0.3065, 0.3893, 0.4911, 0.6159, 0.7687, 0.9535, 1.173",\
                 "0.2271, 0.2451, 0.2913, 0.3574, 0.441, 0.5429, 0.668, 0.8209, 1.006, 1.225",\
                 "0.2866, 0.3072, 0.3587, 0.4288, 0.5147, 0.6184, 0.7441, 0.8972, 1.082, 1.302",\
                 "0.3551, 0.3787, 0.4374, 0.5165, 0.6106, 0.719, 0.8468, 1.001, 1.186, 1.405",\
                 "0.4328, 0.4594, 0.5262, 0.6157, 0.7222, 0.8429, 0.977, 1.133, 1.319, 1.538",\
                 "0.5198, 0.55, 0.625, 0.726, 0.8457, 0.9823, 1.132, 1.295, 1.483, 1.703",\
                 "0.6171, 0.6505, 0.7344, 0.8475, 0.9818, 1.134, 1.303, 1.484, 1.678, 1.9");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.01445, 0.02678, 0.07007, 0.1527, 0.2815, 0.4622, 0.7, 0.9995, 1.365, 1.801");
          values("0.1391, 0.1618, 0.2158, 0.2926, 0.4012, 0.5506, 0.7466, 0.9935, 1.295, 1.654",\
                 "0.14, 0.1628, 0.2167, 0.2936, 0.402, 0.5515, 0.7476, 0.994, 1.296, 1.655",\
                 "0.1442, 0.1667, 0.2204, 0.2972, 0.4058, 0.5554, 0.7516, 0.9983, 1.3, 1.659",\
                 "0.1495, 0.1721, 0.226, 0.303, 0.4116, 0.5614, 0.7576, 1.005, 1.306, 1.664",\
                 "0.1538, 0.1783, 0.2347, 0.3128, 0.4218, 0.5716, 0.7679, 1.015, 1.317, 1.675",\
                 "0.1482, 0.1763, 0.2404, 0.3237, 0.4343, 0.5843, 0.7806, 1.027, 1.329, 1.688",\
                 "0.1304, 0.1628, 0.2359, 0.3285, 0.4458, 0.5979, 0.7945, 1.041, 1.343, 1.702",\
                 "0.1007, 0.1369, 0.2201, 0.3237, 0.4502, 0.6101, 0.8097, 1.057, 1.358, 1.717",\
                 "0.0598, 0.0995, 0.1925, 0.3081, 0.4455, 0.6153, 0.8236, 1.075, 1.376, 1.735",\
                 "0.0075, 0.0506, 0.1532, 0.2814, 0.4307, 0.6113, 0.8304, 1.091, 1.397, 1.756");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.01445, 0.02678, 0.07007, 0.1527, 0.2815, 0.4622, 0.7, 0.9995, 1.365, 1.801");
          values("0.04568, 0.06376, 0.1124, 0.1866, 0.2888, 0.4261, 0.6117, 0.851, 1.151, 1.511",\
                 "0.04556, 0.06382, 0.1122, 0.1867, 0.2886, 0.4261, 0.6106, 0.8515, 1.151, 1.51",\
                 "0.04568, 0.064, 0.1126, 0.1869, 0.2887, 0.426, 0.6106, 0.8518, 1.152, 1.511",\
                 "0.0471, 0.06512, 0.114, 0.188, 0.2897, 0.4265, 0.611, 0.8514, 1.151, 1.511",\
                 "0.052, 0.06966, 0.1176, 0.191, 0.2917, 0.4281, 0.6126, 0.8529, 1.151, 1.511",\
                 "0.06192, 0.08128, 0.1304, 0.2009, 0.299, 0.4328, 0.6144, 0.8536, 1.151, 1.512",\
                 "0.0734, 0.09536, 0.1504, 0.226, 0.3216, 0.4474, 0.6228, 0.8568, 1.152, 1.512",\
                 "0.086, 0.111, 0.1732, 0.2578, 0.3636, 0.4864, 0.6452, 0.8662, 1.156, 1.513",\
                 "0.0998, 0.1278, 0.1976, 0.293, 0.411, 0.5488, 0.7008, 0.898, 1.168, 1.516",\
                 "0.1152, 0.1466, 0.224, 0.3312, 0.463, 0.6164, 0.7834, 0.967, 1.207, 1.531");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03781, 0.1003, 0.2197, 0.4057, 0.6666, 1.01, 1.443, 1.971, 2.6");
          index_2("0.01445, 0.02678, 0.07007, 0.1527, 0.2815, 0.4622, 0.7, 0.9995, 1.365, 1.801");
          values("0.05374, 0.0737, 0.13, 0.2359, 0.412, 0.6683, 1.007, 1.433, 1.957, 2.581",\
                 "0.05382, 0.07388, 0.1301, 0.2357, 0.4121, 0.6674, 1.006, 1.435, 1.958, 2.581",\
                 "0.05404, 0.07426, 0.1304, 0.2363, 0.4119, 0.6674, 1.006, 1.434, 1.957, 2.581",\
                 "0.05592, 0.07584, 0.1316, 0.2363, 0.412, 0.6674, 1.006, 1.435, 1.958, 2.578",\
                 "0.06238, 0.08298, 0.1365, 0.2386, 0.4134, 0.6687, 1.008, 1.435, 1.956, 2.579",\
                 "0.07344, 0.09578, 0.1518, 0.2487, 0.4164, 0.6691, 1.006, 1.435, 1.955, 2.578",\
                 "0.08626, 0.1114, 0.1727, 0.2699, 0.4326, 0.675, 1.008, 1.434, 1.956, 2.578",\
                 "0.09816, 0.129, 0.1968, 0.298, 0.4608, 0.6978, 1.019, 1.435, 1.956, 2.578",\
                 "0.1112, 0.1454, 0.2222, 0.3282, 0.4942, 0.7334, 1.048, 1.451, 1.959, 2.577",\
                 "0.1252, 0.163, 0.249, 0.3634, 0.5312, 0.7754, 1.094, 1.488, 1.979, 2.583");
        }
      }
    }
  }

