/*
 * 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__invz_2) {
    area : 37.318400 ;

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

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

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

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

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

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

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

    pin(EN) {
      capacitance : 0.009067 ;
      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.4128, 0.4142, 0.4385, 0.5094, 0.6431, 0.8495, 1.134, 1.5, 1.953, \
                  2.497");
        }

        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.3059, 0.3062, 0.3232, 0.373, 0.4607, 0.5924, 0.7897, 1.053, \
                  1.385, 1.787");
        }

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

    pin(I) {
      capacitance : 0.004858 ;
      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.2033, 0.2037, 0.2189, 0.2621, 0.3399, 0.4559, 0.6132, 0.8142, \
                  1.062, 1.358");
        }

        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.04699, 0.04739, 0.05796, 0.09149, 0.1568, 0.2573, 0.3953, 0.5731, \
                  0.7927, 1.057");
        }
      }
    }

    pin(ZN) {
      capacitance : 0.003292 ;
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 0.4448 ;
      max_transition : 3.4 ;
      min_capacitance : 0.004292 ;
      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.004292, 0.007333, 0.018, 0.03838, 0.07013, 0.1147, 0.1733, 0.2471, 0.3373, 0.4448");
          values("0.4123, 0.4066, 0.3934, 0.3822, 0.3748, 0.3696, 0.366, 0.3633, 0.3612, 0.3597",\
                 "0.4139, 0.4082, 0.3952, 0.384, 0.3766, 0.3716, 0.368, 0.3653, 0.3634, 0.3618",\
                 "0.4326, 0.4273, 0.4155, 0.4052, 0.3986, 0.394, 0.3907, 0.3882, 0.3864, 0.385",\
                 "0.4769, 0.4732, 0.464, 0.4566, 0.4519, 0.4488, 0.4465, 0.4447, 0.4434, 0.4424",\
                 "0.561, 0.5586, 0.5532, 0.5489, 0.546, 0.5442, 0.5428, 0.5418, 0.541, 0.5404",\
                 "0.6957, 0.6943, 0.6911, 0.6882, 0.6871, 0.6859, 0.6851, 0.6843, 0.6842, 0.6838",\
                 "0.8834, 0.8825, 0.8798, 0.8781, 0.8774, 0.8771, 0.8765, 0.8761, 0.8757, 0.8755",\
                 "1.123, 1.122, 1.121, 1.12, 1.119, 1.119, 1.118, 1.118, 1.118, 1.118",\
                 "1.418, 1.417, 1.416, 1.415, 1.415, 1.414, 1.414, 1.414, 1.414, 1.414",\
                 "1.768, 1.768, 1.767, 1.767, 1.767, 1.767, 1.767, 1.766, 1.766, 1.766");
        }

        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.004292, 0.007333, 0.018, 0.03838, 0.07013, 0.1147, 0.1733, 0.2471, 0.3373, 0.4448");
          values("0.226, 0.2226, 0.2184, 0.2168, 0.2159, 0.216, 0.2165, 0.2188, 0.2203, 0.223",\
                 "0.2264, 0.2227, 0.2187, 0.2168, 0.2164, 0.2165, 0.2175, 0.2183, 0.2203, 0.2241",\
                 "0.2436, 0.2402, 0.2365, 0.2349, 0.2345, 0.2347, 0.2356, 0.2375, 0.2395, 0.2406",\
                 "0.3014, 0.2985, 0.2952, 0.2941, 0.2942, 0.2947, 0.296, 0.2975, 0.3, 0.3022",\
                 "0.4169, 0.4147, 0.411, 0.4119, 0.4127, 0.4127, 0.4145, 0.4157, 0.4177, 0.4215",\
                 "0.5986, 0.598, 0.595, 0.5931, 0.596, 0.5973, 0.5987, 0.6005, 0.6025, 0.6047",\
                 "0.8508, 0.8508, 0.8486, 0.8469, 0.8471, 0.8508, 0.8539, 0.8552, 0.8566, 0.8582",\
                 "1.177, 1.178, 1.177, 1.176, 1.174, 1.176, 1.181, 1.185, 1.187, 1.189",\
                 "1.581, 1.583, 1.582, 1.582, 1.581, 1.581, 1.583, 1.589, 1.596, 1.597",\
                 "2.068, 2.07, 2.07, 2.07, 2.069, 2.068, 2.069, 2.073, 2.082, 2.089");
        }
      }

      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.004292, 0.007333, 0.018, 0.03838, 0.07013, 0.1147, 0.1733, 0.2471, 0.3373, 0.4448");
          values("0.6709, 0.6593, 0.6351, 0.6151, 0.6023, 0.5937, 0.5879, 0.5838, 0.5808, 0.5785",\
                 "0.6713, 0.6594, 0.6352, 0.6154, 0.6026, 0.5939, 0.588, 0.584, 0.5808, 0.5787",\
                 "0.6825, 0.6709, 0.6467, 0.6269, 0.6137, 0.6051, 0.5995, 0.5952, 0.592, 0.5899",\
                 "0.7215, 0.7096, 0.6852, 0.6649, 0.6518, 0.6432, 0.6374, 0.6332, 0.63, 0.6277",\
                 "0.7979, 0.7859, 0.7609, 0.7397, 0.7261, 0.7172, 0.7113, 0.7069, 0.7038, 0.7014",\
                 "0.9161, 0.9038, 0.8775, 0.8554, 0.841, 0.8313, 0.8248, 0.8201, 0.8168, 0.8143",\
                 "1.079, 1.065, 1.038, 1.015, 0.999, 0.9889, 0.9817, 0.9767, 0.9731, 0.9703",\
                 "1.287, 1.274, 1.245, 1.22, 1.202, 1.191, 1.183, 1.178, 1.174, 1.171",\
                 "1.543, 1.529, 1.499, 1.471, 1.453, 1.44, 1.432, 1.427, 1.422, 1.419",\
                 "1.85, 1.835, 1.804, 1.774, 1.754, 1.74, 1.731, 1.724, 1.719, 1.716");
        }

        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.004292, 0.007333, 0.018, 0.03838, 0.07013, 0.1147, 0.1733, 0.2471, 0.3373, 0.4448");
          values("0.5615, 0.5533, 0.5414, 0.5338, 0.5314, 0.5311, 0.5318, 0.5336, 0.5367, 0.5394",\
                 "0.5621, 0.5543, 0.5418, 0.5343, 0.5318, 0.5316, 0.5324, 0.5347, 0.5362, 0.54",\
                 "0.5781, 0.5702, 0.5571, 0.55, 0.5475, 0.5472, 0.5478, 0.5507, 0.5521, 0.5554",\
                 "0.6264, 0.6185, 0.6052, 0.5973, 0.5946, 0.5939, 0.5951, 0.5969, 0.5994, 0.6027",\
                 "0.7164, 0.7082, 0.6942, 0.6855, 0.682, 0.6808, 0.6814, 0.6832, 0.6852, 0.6874",\
                 "0.8529, 0.8442, 0.8285, 0.8189, 0.8132, 0.8113, 0.8112, 0.8125, 0.8139, 0.8177",\
                 "1.037, 1.027, 1.01, 0.9972, 0.9928, 0.9891, 0.9878, 0.989, 0.9899, 0.9932",\
                 "1.273, 1.262, 1.244, 1.228, 1.219, 1.217, 1.217, 1.217, 1.217, 1.216",\
                 "1.562, 1.551, 1.531, 1.512, 1.5, 1.494, 1.496, 1.497, 1.497, 1.497",\
                 "1.908, 1.897, 1.874, 1.854, 1.841, 1.832, 1.828, 1.831, 1.834, 1.834");
        }
      }

      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.138, 0.144, 0.167, 0.216, 0.283, 0.365, 0.457, 0.562, 0.681, \
                  0.811");
        }

        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.185, 0.19, 0.215, 0.262, 0.329, 0.408, 0.5, 0.606, 0.728, 0.864");
        }

        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.004292, 0.007333, 0.018, 0.03838, 0.07013, 0.1147, 0.1733, 0.2471, 0.3373, 0.4448");
          values("0.1183, 0.1397, 0.1952, 0.2762, 0.3818, 0.5152, 0.6818, 0.8875, 1.137, 1.434",\
                 "0.1227, 0.144, 0.1993, 0.2802, 0.3859, 0.5193, 0.6858, 0.8916, 1.141, 1.439",\
                 "0.1392, 0.1602, 0.2151, 0.2957, 0.4013, 0.5346, 0.7011, 0.9069, 1.157, 1.454",\
                 "0.1595, 0.1815, 0.2371, 0.3174, 0.4227, 0.5559, 0.7224, 0.9283, 1.178, 1.475",\
                 "0.1666, 0.1905, 0.2491, 0.3303, 0.4349, 0.5675, 0.734, 0.9398, 1.19, 1.487",\
                 "0.1602, 0.1858, 0.2452, 0.3257, 0.4291, 0.5606, 0.7259, 0.9314, 1.181, 1.479",\
                 "0.1392, 0.1673, 0.2284, 0.3087, 0.4115, 0.5424, 0.7076, 0.9124, 1.162, 1.459",\
                 "0.1039, 0.1339, 0.1973, 0.2784, 0.3812, 0.5119, 0.6769, 0.8817, 1.131, 1.428",\
                 "0.0522, 0.085, 0.1518, 0.2341, 0.3374, 0.4681, 0.6331, 0.838, 1.087, 1.384",\
                 "-0.0166, 0.0194, 0.0905, 0.1746, 0.2788, 0.4098, 0.5748, 0.7799, 1.029, 1.327");
        }

        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.004292, 0.007333, 0.018, 0.03838, 0.07013, 0.1147, 0.1733, 0.2471, 0.3373, 0.4448");
          values("0.1068, 0.1284, 0.1858, 0.2771, 0.4098, 0.5935, 0.8354, 1.14, 1.512, 1.954",\
                 "0.1099, 0.1315, 0.1889, 0.2803, 0.413, 0.5967, 0.8383, 1.143, 1.515, 1.958",\
                 "0.1209, 0.1432, 0.2012, 0.2928, 0.4256, 0.6093, 0.8511, 1.156, 1.527, 1.971",\
                 "0.1279, 0.1531, 0.2153, 0.3087, 0.4423, 0.6263, 0.8676, 1.173, 1.544, 1.988",\
                 "0.1227, 0.1527, 0.2227, 0.3203, 0.4558, 0.6402, 0.8819, 1.186, 1.558, 2.001",\
                 "0.1001, 0.1369, 0.2187, 0.324, 0.4637, 0.6499, 0.892, 1.196, 1.568, 2.011",\
                 "0.05764, 0.103, 0.1996, 0.316, 0.4623, 0.6534, 0.8975, 1.202, 1.574, 2.017",\
                 "-0.0069, 0.0492, 0.1632, 0.2946, 0.449, 0.6466, 0.8963, 1.204, 1.576, 2.019",\
                 "-0.0968, -0.0275, 0.1074, 0.2573, 0.422, 0.6264, 0.8835, 1.198, 1.573, 2.017",\
                 "-0.2133, -0.1291, 0.0304, 0.2016, 0.3803, 0.5926, 0.8571, 1.179, 1.562, 2.009");
        }

        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.004292, 0.007333, 0.018, 0.03838, 0.07013, 0.1147, 0.1733, 0.2471, 0.3373, 0.4448");
          values("0.07262, 0.09202, 0.1519, 0.2497, 0.3889, 0.5835, 0.8457, 1.185, 1.607, 2.114",\
                 "0.07166, 0.09138, 0.1516, 0.2495, 0.3889, 0.583, 0.8464, 1.185, 1.607, 2.114",\
                 "0.06872, 0.08952, 0.1498, 0.2481, 0.3885, 0.5823, 0.8447, 1.185, 1.607, 2.114",\
                 "0.0717, 0.09078, 0.1481, 0.2458, 0.3863, 0.5817, 0.8441, 1.185, 1.608, 2.113",\
                 "0.07806, 0.09614, 0.1523, 0.2452, 0.3832, 0.5797, 0.8444, 1.184, 1.606, 2.115",\
                 "0.0853, 0.1011, 0.1517, 0.2416, 0.3789, 0.5743, 0.8398, 1.182, 1.607, 2.111",\
                 "0.09386, 0.1081, 0.1533, 0.241, 0.377, 0.5722, 0.8372, 1.178, 1.603, 2.11",\
                 "0.104, 0.1156, 0.1566, 0.242, 0.3764, 0.5718, 0.837, 1.178, 1.6, 2.107",\
                 "0.1164, 0.1264, 0.1616, 0.244, 0.377, 0.5716, 0.8364, 1.178, 1.602, 2.106",\
                 "0.1306, 0.1388, 0.1688, 0.2482, 0.3794, 0.5718, 0.8376, 1.179, 1.602, 2.107");
        }

        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.004292, 0.007333, 0.018, 0.03838, 0.07013, 0.1147, 0.1733, 0.2471, 0.3373, 0.4448");
          values("0.0694, 0.09318, 0.1679, 0.312, 0.5448, 0.8793, 1.323, 1.884, 2.569, 3.384",\
                 "0.06924, 0.09326, 0.1678, 0.3119, 0.5447, 0.8796, 1.323, 1.882, 2.564, 3.378",\
                 "0.07142, 0.09482, 0.1685, 0.3121, 0.5449, 0.8792, 1.323, 1.884, 2.566, 3.378",\
                 "0.07886, 0.1035, 0.175, 0.315, 0.5454, 0.8794, 1.323, 1.884, 2.565, 3.378",\
                 "0.09558, 0.1187, 0.1881, 0.3229, 0.5505, 0.8804, 1.323, 1.882, 2.566, 3.38",\
                 "0.1189, 0.1419, 0.2101, 0.3386, 0.5592, 0.8859, 1.326, 1.885, 2.567, 3.382",\
                 "0.1502, 0.1713, 0.2401, 0.3614, 0.578, 0.8992, 1.332, 1.887, 2.566, 3.379",\
                 "0.1888, 0.2094, 0.2756, 0.3916, 0.6014, 0.922, 1.35, 1.896, 2.573, 3.386",\
                 "0.2358, 0.2578, 0.3178, 0.4316, 0.629, 0.949, 1.38, 1.921, 2.585, 3.386",\
                 "0.2888, 0.3116, 0.367, 0.48, 0.6632, 0.9782, 1.414, 1.958, 2.617, 3.407");
        }
      }

      timing() {
        related_pin : "I" ;
        timing_sense : negative_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.004292, 0.007333, 0.018, 0.03838, 0.07013, 0.1147, 0.1733, 0.2471, 0.3373, 0.4448");
          values("0.2739, 0.2942, 0.3491, 0.4301, 0.5361, 0.6695, 0.8359, 1.042, 1.291, 1.588",\
                 "0.2772, 0.2975, 0.3524, 0.4334, 0.5394, 0.6728, 0.8393, 1.045, 1.294, 1.591",\
                 "0.2893, 0.3096, 0.3644, 0.4454, 0.5515, 0.6849, 0.8513, 1.057, 1.306, 1.603",\
                 "0.3021, 0.3224, 0.3772, 0.4581, 0.5641, 0.6975, 0.864, 1.069, 1.319, 1.616",\
                 "0.3088, 0.329, 0.3837, 0.4648, 0.5708, 0.7042, 0.8707, 1.076, 1.325, 1.622",\
                 "0.307, 0.3272, 0.3821, 0.4631, 0.5692, 0.7027, 0.8691, 1.075, 1.324, 1.621",\
                 "0.2944, 0.3148, 0.3697, 0.4509, 0.5572, 0.6907, 0.8573, 1.063, 1.312, 1.609",\
                 "0.2704, 0.2909, 0.3458, 0.427, 0.5335, 0.6673, 0.8338, 1.039, 1.288, 1.585",\
                 "0.2335, 0.254, 0.3092, 0.3906, 0.4971, 0.6311, 0.7977, 1.003, 1.252, 1.549",\
                 "0.1836, 0.2041, 0.2591, 0.3409, 0.4477, 0.5818, 0.7484, 0.9538, 1.203, 1.5");
        }

        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.004292, 0.007333, 0.018, 0.03838, 0.07013, 0.1147, 0.1733, 0.2471, 0.3373, 0.4448");
          values("0.2967, 0.3169, 0.3727, 0.463, 0.5954, 0.7791, 1.021, 1.326, 1.697, 2.14",\
                 "0.302, 0.3223, 0.3778, 0.4683, 0.6005, 0.7843, 1.026, 1.331, 1.703, 2.145",\
                 "0.3258, 0.3461, 0.4016, 0.492, 0.6244, 0.8081, 1.05, 1.354, 1.726, 2.168",\
                 "0.3713, 0.3915, 0.4471, 0.5372, 0.6695, 0.8533, 1.095, 1.4, 1.771, 2.214",\
                 "0.4338, 0.4538, 0.5094, 0.5995, 0.7318, 0.9154, 1.157, 1.461, 1.833, 2.276",\
                 "0.5111, 0.5313, 0.5863, 0.6759, 0.8078, 0.9913, 1.232, 1.537, 1.908, 2.352",\
                 "0.6001, 0.6204, 0.6761, 0.7656, 0.8973, 1.08, 1.321, 1.625, 1.997, 2.441",\
                 "0.7034, 0.724, 0.7796, 0.869, 1, 1.183, 1.424, 1.727, 2.098, 2.542",\
                 "0.82, 0.8409, 0.8969, 0.9861, 1.117, 1.3, 1.54, 1.844, 2.215, 2.657",\
                 "0.9507, 0.9717, 1.028, 1.118, 1.249, 1.431, 1.672, 1.975, 2.346, 2.788");
        }

        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.004292, 0.007333, 0.018, 0.03838, 0.07013, 0.1147, 0.1733, 0.2471, 0.3373, 0.4448");
          values("0.08036, 0.1021, 0.1609, 0.2557, 0.3939, 0.5865, 0.8466, 1.185, 1.607, 2.114",\
                 "0.08058, 0.102, 0.1609, 0.2558, 0.3936, 0.5867, 0.8476, 1.186, 1.608, 2.114",\
                 "0.08048, 0.1024, 0.1607, 0.2559, 0.3936, 0.5866, 0.8471, 1.186, 1.608, 2.114",\
                 "0.08074, 0.1023, 0.1611, 0.256, 0.3944, 0.5869, 0.8467, 1.187, 1.607, 2.114",\
                 "0.08154, 0.1029, 0.1615, 0.2565, 0.3941, 0.5862, 0.8477, 1.185, 1.608, 2.111",\
                 "0.08226, 0.1043, 0.163, 0.2578, 0.3948, 0.5858, 0.8468, 1.186, 1.606, 2.114",\
                 "0.084, 0.1056, 0.1646, 0.2598, 0.3966, 0.5882, 0.8472, 1.185, 1.606, 2.113",\
                 "0.0858, 0.1078, 0.1664, 0.2612, 0.3984, 0.5892, 0.8486, 1.186, 1.606, 2.112",\
                 "0.0878, 0.1098, 0.1686, 0.2628, 0.3996, 0.5896, 0.8494, 1.187, 1.607, 2.11",\
                 "0.0896, 0.1118, 0.1708, 0.2646, 0.402, 0.5916, 0.8516, 1.189, 1.608, 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.004292, 0.007333, 0.018, 0.03838, 0.07013, 0.1147, 0.1733, 0.2471, 0.3373, 0.4448");
          values("0.0744, 0.09784, 0.1706, 0.3134, 0.5449, 0.8791, 1.322, 1.883, 2.564, 3.383",\
                 "0.07408, 0.09738, 0.1707, 0.3133, 0.545, 0.8795, 1.324, 1.882, 2.569, 3.378",\
                 "0.07374, 0.09752, 0.1705, 0.3134, 0.5449, 0.8796, 1.323, 1.883, 2.569, 3.378",\
                 "0.0738, 0.0974, 0.1709, 0.3136, 0.5452, 0.8799, 1.324, 1.883, 2.565, 3.385",\
                 "0.07402, 0.0979, 0.1716, 0.314, 0.545, 0.8808, 1.324, 1.882, 2.564, 3.379",\
                 "0.075, 0.0992, 0.1722, 0.3144, 0.5456, 0.8794, 1.323, 1.882, 2.566, 3.378",\
                 "0.0772, 0.1008, 0.1734, 0.3154, 0.5462, 0.8806, 1.325, 1.882, 2.564, 3.378",\
                 "0.0788, 0.1032, 0.1754, 0.3166, 0.5478, 0.8804, 1.323, 1.886, 2.566, 3.379",\
                 "0.081, 0.105, 0.178, 0.3182, 0.5472, 0.881, 1.324, 1.882, 2.567, 3.385",\
                 "0.0842, 0.1084, 0.181, 0.3204, 0.5496, 0.8824, 1.325, 1.884, 2.565, 3.381");
        }
      }
    }
  }

