/*
 * 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_mcu9t5v0__invz_2) {
    area : 47.980800 ;

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

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

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

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

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

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

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

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

      internal_power() {
        when : "!I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.07237, 0.07131, 0.07076, 0.07314, 0.07964, 0.0911, 0.1078, 0.1304, \
                  0.1591, 0.1943");
        }

        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.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.05666, 0.05586, 0.05566, 0.05785, 0.06234, 0.06937, 0.07933, \
                  0.09316, 0.1115, 0.1346");
        }

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

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

      internal_power() {
        when : "!EN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.03617, 0.03543, 0.03515, 0.03688, 0.04084, 0.04728, 0.05641, \
                  0.06848, 0.08366, 0.1022");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.009541, 0.009234, 0.009101, 0.01024, 0.01343, 0.01894, 0.02699, \
                  0.03772, 0.05125, 0.06766");
        }
      }
    }

    pin(ZN) {
      capacitance : 0.005386 ;
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 0.6548 ;
      max_transition : 8.4 ;
      min_capacitance : 0.006386 ;
      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.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.006386, 0.01086, 0.02657, 0.05657, 0.1033, 0.1689, 0.2552, 0.3639, 0.4966, 0.6548");
          values("0.06483, 0.06482, 0.06477, 0.06474, 0.06473, 0.06473, 0.06475, 0.06476, 0.06476, 0.06476",\
                 "0.06483, 0.06483, 0.06474, 0.0647, 0.06469, 0.06474, 0.06471, 0.06477, 0.06477, 0.06478",\
                 "0.06617, 0.06615, 0.06612, 0.06609, 0.06608, 0.06609, 0.0661, 0.06611, 0.06611, 0.06612",\
                 "0.06936, 0.06936, 0.06934, 0.06931, 0.0693, 0.06931, 0.06933, 0.06934, 0.06934, 0.06935",\
                 "0.07541, 0.07538, 0.07535, 0.07534, 0.07531, 0.07532, 0.07533, 0.07533, 0.07534, 0.07534",\
                 "0.08453, 0.08453, 0.08452, 0.08452, 0.08451, 0.08452, 0.08451, 0.0845, 0.08452, 0.08452",\
                 "0.09702, 0.09707, 0.09703, 0.09704, 0.09704, 0.09705, 0.09706, 0.09706, 0.09706, 0.09706",\
                 "0.1131, 0.1131, 0.1131, 0.113, 0.113, 0.1131, 0.1131, 0.1131, 0.1131, 0.1131",\
                 "0.1329, 0.1329, 0.1329, 0.1328, 0.1328, 0.1328, 0.1328, 0.1329, 0.1329, 0.1329",\
                 "0.1564, 0.1564, 0.1564, 0.1564, 0.1563, 0.1563, 0.1564, 0.1564, 0.1564, 0.1564");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.006386, 0.01086, 0.02657, 0.05657, 0.1033, 0.1689, 0.2552, 0.3639, 0.4966, 0.6548");
          values("0.04702, 0.04704, 0.04701, 0.0471, 0.04722, 0.04749, 0.048, 0.04807, 0.04936, 0.05182",\
                 "0.04644, 0.04645, 0.04642, 0.04652, 0.04662, 0.04692, 0.04733, 0.04798, 0.04817, 0.05103",\
                 "0.04607, 0.04612, 0.04609, 0.04616, 0.04627, 0.04658, 0.04695, 0.04716, 0.04781, 0.05095",\
                 "0.04812, 0.04814, 0.04818, 0.04826, 0.04839, 0.04868, 0.04891, 0.04938, 0.05036, 0.05344",\
                 "0.054, 0.05401, 0.0539, 0.05422, 0.05433, 0.05446, 0.05474, 0.05512, 0.0563, 0.05936",\
                 "0.06447, 0.06443, 0.06443, 0.06436, 0.06484, 0.06518, 0.06529, 0.0654, 0.0666, 0.0706",\
                 "0.07979, 0.07984, 0.07982, 0.07977, 0.07985, 0.0806, 0.08113, 0.08116, 0.08164, 0.08658",\
                 "0.1004, 0.1004, 0.1005, 0.1004, 0.1004, 0.1007, 0.1016, 0.1023, 0.1032, 0.1089",\
                 "0.1264, 0.1264, 0.1265, 0.1264, 0.1264, 0.1265, 0.1271, 0.1286, 0.1301, 0.1384",\
                 "0.1581, 0.1582, 0.1583, 0.1583, 0.1583, 0.1581, 0.1585, 0.1593, 0.1622, 0.1755");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.006386, 0.01086, 0.02657, 0.05657, 0.1033, 0.1689, 0.2552, 0.3639, 0.4966, 0.6548");
          values("0.1017, 0.1016, 0.1017, 0.1021, 0.1025, 0.1027, 0.1029, 0.103, 0.1031, 0.1031",\
                 "0.1014, 0.1013, 0.1013, 0.1017, 0.1021, 0.1024, 0.1025, 0.1026, 0.1027, 0.1028",\
                 "0.101, 0.1008, 0.1009, 0.1013, 0.1017, 0.102, 0.1021, 0.1023, 0.1023, 0.1024",\
                 "0.102, 0.1018, 0.1019, 0.1023, 0.1027, 0.1029, 0.1031, 0.1032, 0.1033, 0.1033",\
                 "0.1051, 0.1049, 0.1049, 0.1054, 0.1057, 0.106, 0.1062, 0.1063, 0.1063, 0.1064",\
                 "0.1107, 0.1105, 0.1106, 0.111, 0.1113, 0.1115, 0.1117, 0.1119, 0.1119, 0.112",\
                 "0.1192, 0.1189, 0.1189, 0.1193, 0.1196, 0.1198, 0.12, 0.1201, 0.1202, 0.1202",\
                 "0.1304, 0.1301, 0.1301, 0.1303, 0.1307, 0.1309, 0.1311, 0.1313, 0.1313, 0.1314",\
                 "0.1448, 0.1444, 0.1442, 0.1444, 0.1447, 0.145, 0.1452, 0.1453, 0.1454, 0.1454",\
                 "0.1622, 0.1618, 0.1614, 0.1615, 0.1618, 0.1621, 0.1622, 0.1624, 0.1624, 0.1625");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.006386, 0.01086, 0.02657, 0.05657, 0.1033, 0.1689, 0.2552, 0.3639, 0.4966, 0.6548");
          values("0.09778, 0.09821, 0.09942, 0.1008, 0.1018, 0.1027, 0.1033, 0.1039, 0.1049, 0.1081",\
                 "0.09701, 0.09748, 0.09864, 0.1, 0.101, 0.1019, 0.1026, 0.1033, 0.1043, 0.1074",\
                 "0.09666, 0.09709, 0.09835, 0.09964, 0.1007, 0.1016, 0.1025, 0.1028, 0.1043, 0.1073",\
                 "0.09831, 0.09877, 0.09992, 0.1012, 0.1023, 0.1032, 0.104, 0.1045, 0.1053, 0.109",\
                 "0.1023, 0.1028, 0.1038, 0.1051, 0.1062, 0.1071, 0.1079, 0.1086, 0.1095, 0.1137",\
                 "0.1088, 0.1092, 0.1103, 0.1116, 0.1126, 0.1135, 0.1144, 0.1152, 0.1164, 0.1213",\
                 "0.1183, 0.1186, 0.1195, 0.1205, 0.1221, 0.1228, 0.1236, 0.1241, 0.1257, 0.1321",\
                 "0.1308, 0.1311, 0.1319, 0.1329, 0.134, 0.1353, 0.1364, 0.1369, 0.1379, 0.1477",\
                 "0.1466, 0.1468, 0.1475, 0.1485, 0.1493, 0.1505, 0.1519, 0.1528, 0.1548, 0.1691",\
                 "0.1659, 0.1661, 0.1667, 0.1676, 0.1685, 0.1693, 0.1704, 0.1724, 0.1757, 0.199");
        }
      }

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

        cell_fall(tmg_ntin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.242, 0.263, 0.331, 0.462, 0.615, 0.787, 0.986, 1.212, 1.465, \
                  1.746");
        }

        cell_rise(tmg_ntin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0.368, 0.383, 0.449, 0.575, 0.727, 0.907, 1.116, 1.357, 1.629, \
                  1.938");
        }

        fall_transition(tmg_ntin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.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.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.006386, 0.01086, 0.02657, 0.05657, 0.1033, 0.1689, 0.2552, 0.3639, 0.4966, 0.6548");
          values("0.3023, 0.356, 0.489, 0.6624, 0.8699, 1.119, 1.419, 1.781, 2.214, 2.727",\
                 "0.3193, 0.3733, 0.5065, 0.6799, 0.8874, 1.137, 1.436, 1.798, 2.232, 2.745",\
                 "0.3802, 0.4332, 0.5653, 0.7377, 0.9452, 1.194, 1.494, 1.855, 2.288, 2.802",\
                 "0.4814, 0.533, 0.6587, 0.8263, 1.031, 1.278, 1.578, 1.939, 2.373, 2.886",\
                 "0.5466, 0.5973, 0.7194, 0.8839, 1.086, 1.331, 1.63, 1.991, 2.424, 2.938",\
                 "0.5634, 0.6134, 0.7339, 0.8973, 1.099, 1.344, 1.641, 2.001, 2.434, 2.947",\
                 "0.5462, 0.596, 0.7153, 0.8772, 1.078, 1.322, 1.62, 1.979, 2.411, 2.922",\
                 "0.4993, 0.5483, 0.6666, 0.8268, 1.026, 1.269, 1.565, 1.924, 2.356, 2.868",\
                 "0.4206, 0.4702, 0.5885, 0.7475, 0.9449, 1.186, 1.482, 1.84, 2.272, 2.784",\
                 "0.3084, 0.3587, 0.4772, 0.6358, 0.8324, 1.073, 1.367, 1.726, 2.157, 2.669");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.006386, 0.01086, 0.02657, 0.05657, 0.1033, 0.1689, 0.2552, 0.3639, 0.4966, 0.6548");
          values("0.2701, 0.3203, 0.4592, 0.6851, 1.021, 1.49, 2.107, 2.884, 3.833, 4.965",\
                 "0.2837, 0.3339, 0.4728, 0.6986, 1.035, 1.504, 2.121, 2.898, 3.846, 4.978",\
                 "0.3332, 0.3834, 0.5223, 0.7479, 1.084, 1.553, 2.17, 2.947, 3.892, 5.022",\
                 "0.394, 0.4476, 0.5907, 0.8183, 1.155, 1.623, 2.24, 3.015, 3.967, 5.098",\
                 "0.4345, 0.4933, 0.6428, 0.8744, 1.214, 1.683, 2.299, 3.075, 4.026, 5.157",\
                 "0.4521, 0.519, 0.6785, 0.9139, 1.254, 1.725, 2.342, 3.119, 4.068, 5.199",\
                 "0.4431, 0.5201, 0.695, 0.9378, 1.279, 1.75, 2.369, 3.145, 4.093, 5.223",\
                 "0.4045, 0.4922, 0.6879, 0.9421, 1.288, 1.76, 2.378, 3.156, 4.105, 5.234",\
                 "0.3346, 0.4344, 0.653, 0.9225, 1.277, 1.753, 2.372, 3.15, 4.098, 5.229",\
                 "0.2321, 0.3441, 0.5878, 0.8762, 1.241, 1.724, 2.348, 3.128, 4.076, 5.207");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.006386, 0.01086, 0.02657, 0.05657, 0.1033, 0.1689, 0.2552, 0.3639, 0.4966, 0.6548");
          values("0.1711, 0.224, 0.349, 0.5216, 0.7647, 1.099, 1.547, 2.127, 2.858, 3.735",\
                 "0.1716, 0.2247, 0.3488, 0.5219, 0.7634, 1.099, 1.547, 2.129, 2.855, 3.741",\
                 "0.1686, 0.2213, 0.346, 0.5202, 0.7643, 1.098, 1.545, 2.129, 2.855, 3.741",\
                 "0.1691, 0.214, 0.3325, 0.5092, 0.7552, 1.094, 1.545, 2.124, 2.856, 3.734",\
                 "0.1722, 0.2134, 0.3258, 0.4998, 0.747, 1.086, 1.541, 2.122, 2.855, 3.735",\
                 "0.168, 0.2086, 0.322, 0.4998, 0.7458, 1.083, 1.532, 2.118, 2.854, 3.736",\
                 "0.1656, 0.2064, 0.3182, 0.496, 0.745, 1.082, 1.532, 2.114, 2.842, 3.731",\
                 "0.166, 0.2052, 0.3152, 0.4916, 0.739, 1.078, 1.528, 2.113, 2.842, 3.722",\
                 "0.168, 0.207, 0.314, 0.4878, 0.7328, 1.073, 1.524, 2.114, 2.842, 3.724",\
                 "0.1724, 0.2094, 0.3144, 0.4862, 0.7302, 1.068, 1.524, 2.111, 2.843, 3.723");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.006386, 0.01086, 0.02657, 0.05657, 0.1033, 0.1689, 0.2552, 0.3639, 0.4966, 0.6548");
          values("0.1509, 0.2101, 0.3967, 0.7569, 1.343, 2.185, 3.29, 4.679, 6.388, 8.4",\
                 "0.1506, 0.21, 0.3966, 0.7569, 1.343, 2.187, 3.29, 4.683, 6.379, 8.404",\
                 "0.1511, 0.2092, 0.3964, 0.7567, 1.343, 2.18, 3.291, 4.679, 6.374, 8.402",\
                 "0.1645, 0.2206, 0.4035, 0.7592, 1.347, 2.184, 3.286, 4.677, 6.384, 8.399",\
                 "0.186, 0.2388, 0.4158, 0.77, 1.351, 2.181, 3.286, 4.678, 6.385, 8.404",\
                 "0.2146, 0.2662, 0.4326, 0.7758, 1.355, 2.189, 3.286, 4.676, 6.381, 8.401",\
                 "0.2484, 0.3036, 0.4606, 0.7888, 1.361, 2.193, 3.293, 4.687, 6.391, 8.399",\
                 "0.2864, 0.346, 0.4996, 0.8122, 1.371, 2.198, 3.294, 4.684, 6.387, 8.403",\
                 "0.3258, 0.391, 0.5478, 0.8452, 1.392, 2.21, 3.299, 4.686, 6.382, 8.405",\
                 "0.369, 0.4394, 0.6014, 0.885, 1.422, 2.23, 3.321, 4.693, 6.385, 8.408");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.006386, 0.01086, 0.02657, 0.05657, 0.1033, 0.1689, 0.2552, 0.3639, 0.4966, 0.6548");
          values("0.6884, 0.7471, 0.8938, 1.076, 1.288, 1.539, 1.84, 2.203, 2.636, 3.15",\
                 "0.7037, 0.7622, 0.909, 1.091, 1.304, 1.555, 1.856, 2.218, 2.652, 3.165",\
                 "0.753, 0.8116, 0.9582, 1.141, 1.353, 1.604, 1.905, 2.267, 2.701, 3.214",\
                 "0.8017, 0.8604, 1.007, 1.19, 1.402, 1.653, 1.954, 2.316, 2.75, 3.263",\
                 "0.8287, 0.8874, 1.034, 1.217, 1.429, 1.68, 1.981, 2.344, 2.777, 3.291",\
                 "0.8352, 0.894, 1.041, 1.224, 1.437, 1.687, 1.989, 2.351, 2.785, 3.298",\
                 "0.8191, 0.8774, 1.024, 1.208, 1.42, 1.671, 1.973, 2.335, 2.769, 3.282",\
                 "0.7744, 0.8334, 0.9808, 1.165, 1.378, 1.63, 1.931, 2.293, 2.727, 3.24",\
                 "0.6999, 0.7588, 0.9072, 1.092, 1.306, 1.558, 1.86, 2.222, 2.656, 3.17",\
                 "0.5927, 0.6518, 0.8007, 0.9869, 1.202, 1.454, 1.756, 2.119, 2.553, 3.067");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.006386, 0.01086, 0.02657, 0.05657, 0.1033, 0.1689, 0.2552, 0.3639, 0.4966, 0.6548");
          values("0.7064, 0.7598, 0.9036, 1.134, 1.473, 1.944, 2.561, 3.34, 4.29, 5.421",\
                 "0.7212, 0.7746, 0.9184, 1.149, 1.488, 1.958, 2.576, 3.353, 4.303, 5.433",\
                 "0.7876, 0.8408, 0.9846, 1.215, 1.554, 2.025, 2.643, 3.421, 4.371, 5.503",\
                 "0.9137, 0.967, 1.111, 1.341, 1.68, 2.151, 2.77, 3.547, 4.495, 5.626",\
                 "1.07, 1.124, 1.268, 1.498, 1.838, 2.309, 2.927, 3.705, 4.653, 5.785",\
                 "1.254, 1.308, 1.453, 1.683, 2.022, 2.493, 3.112, 3.89, 4.84, 5.971",\
                 "1.471, 1.525, 1.67, 1.9, 2.239, 2.71, 3.328, 4.105, 5.056, 6.187",\
                 "1.721, 1.776, 1.921, 2.152, 2.491, 2.963, 3.58, 4.357, 5.306, 6.438",\
                 "2.006, 2.061, 2.207, 2.438, 2.778, 3.25, 3.867, 4.645, 5.592, 6.721",\
                 "2.325, 2.381, 2.529, 2.76, 3.1, 3.572, 4.19, 4.967, 5.915, 7.044");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.006386, 0.01086, 0.02657, 0.05657, 0.1033, 0.1689, 0.2552, 0.3639, 0.4966, 0.6548");
          values("0.1941, 0.252, 0.3765, 0.5391, 0.7754, 1.103, 1.55, 2.129, 2.855, 3.739",\
                 "0.194, 0.2518, 0.3772, 0.539, 0.7752, 1.103, 1.55, 2.13, 2.857, 3.735",\
                 "0.1939, 0.2521, 0.3764, 0.5386, 0.7752, 1.105, 1.551, 2.128, 2.859, 3.739",\
                 "0.1946, 0.2518, 0.3776, 0.5392, 0.7752, 1.103, 1.55, 2.13, 2.859, 3.741",\
                 "0.1946, 0.2524, 0.3774, 0.5392, 0.7752, 1.104, 1.551, 2.128, 2.857, 3.736",\
                 "0.1954, 0.253, 0.3774, 0.539, 0.7734, 1.103, 1.548, 2.131, 2.859, 3.741",\
                 "0.1956, 0.254, 0.3794, 0.5412, 0.7744, 1.104, 1.549, 2.127, 2.855, 3.737",\
                 "0.1974, 0.2558, 0.3818, 0.5426, 0.7762, 1.105, 1.549, 2.131, 2.854, 3.733",\
                 "0.1994, 0.258, 0.3852, 0.5464, 0.7788, 1.107, 1.554, 2.13, 2.856, 3.734",\
                 "0.2018, 0.261, 0.3884, 0.5496, 0.7816, 1.108, 1.555, 2.133, 2.86, 3.74");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.07784, 0.2809, 0.6686, 1.273, 2.12, 3.235, 4.64, 6.356, 8.4");
          index_2("0.006386, 0.01086, 0.02657, 0.05657, 0.1033, 0.1689, 0.2552, 0.3639, 0.4966, 0.6548");
          values("0.155, 0.2106, 0.3959, 0.756, 1.342, 2.18, 3.285, 4.679, 6.378, 8.401",\
                 "0.1541, 0.2105, 0.396, 0.756, 1.342, 2.179, 3.285, 4.676, 6.379, 8.404",\
                 "0.1541, 0.2109, 0.3954, 0.7562, 1.343, 2.185, 3.29, 4.679, 6.388, 8.402",\
                 "0.154, 0.2108, 0.396, 0.7562, 1.343, 2.18, 3.292, 4.678, 6.376, 8.406",\
                 "0.1552, 0.2122, 0.3964, 0.756, 1.343, 2.185, 3.293, 4.686, 6.377, 8.407",\
                 "0.157, 0.2136, 0.398, 0.7566, 1.343, 2.185, 3.292, 4.679, 6.384, 8.407",\
                 "0.1586, 0.2156, 0.399, 0.757, 1.344, 2.18, 3.29, 4.674, 6.378, 8.404",\
                 "0.1612, 0.218, 0.4004, 0.7584, 1.345, 2.18, 3.284, 4.682, 6.375, 8.423",\
                 "0.1646, 0.2206, 0.4032, 0.76, 1.344, 2.182, 3.289, 4.673, 6.383, 8.393",\
                 "0.1678, 0.2246, 0.4064, 0.7614, 1.346, 2.179, 3.284, 4.674, 6.371, 8.41");
        }
      }
    }
  }

