/*
 * 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_12) {
    area : 146.764800 ;

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

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

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

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

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

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

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

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

      internal_power() {
        when : "!I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.8178, 0.8196, 0.8574, 0.9709, 1.189, 1.526, 1.994, 2.603, 3.364, \
                  4.285");
        }

        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.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.455, 0.4559, 0.4851, 0.5657, 0.7067, 0.9143, 1.195, 1.581, 2.107, \
                  2.763");
        }

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

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

      internal_power() {
        when : "!EN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.9912, 0.9921, 1.062, 1.266, 1.635, 2.188, 2.944, 3.912, 5.106, \
                  6.534");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.3969, 0.4, 0.4493, 0.6066, 0.9168, 1.396, 2.056, 2.909, 3.966, \
                  5.236");
        }
      }
    }

    pin(ZN) {
      capacitance : 0.03018 ;
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 4.266 ;
      max_transition : 3.6 ;
      min_capacitance : 0.03118 ;
      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.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.03118, 0.06041, 0.163, 0.359, 0.6642, 1.093, 1.656, 2.366, 3.233, 4.266");
          values("1.883, 1.879, 1.876, 1.875, 1.875, 1.875, 1.876, 1.876, 1.877, 1.876",\
                 "1.885, 1.882, 1.879, 1.878, 1.878, 1.879, 1.879, 1.879, 1.879, 1.879",\
                 "1.925, 1.923, 1.919, 1.919, 1.919, 1.919, 1.92, 1.92, 1.92, 1.92",\
                 "2.022, 2.022, 2.02, 2.018, 2.018, 2.019, 2.019, 2.019, 2.019, 2.02",\
                 "2.191, 2.191, 2.19, 2.189, 2.189, 2.188, 2.189, 2.189, 2.189, 2.189",\
                 "2.436, 2.435, 2.435, 2.435, 2.435, 2.434, 2.434, 2.435, 2.435, 2.435",\
                 "2.765, 2.763, 2.763, 2.763, 2.763, 2.763, 2.763, 2.763, 2.763, 2.763",\
                 "3.179, 3.178, 3.179, 3.178, 3.178, 3.178, 3.179, 3.179, 3.179, 3.179",\
                 "3.682, 3.684, 3.686, 3.685, 3.684, 3.685, 3.685, 3.686, 3.686, 3.686",\
                 "4.284, 4.286, 4.287, 4.287, 4.286, 4.286, 4.286, 4.287, 4.287, 4.288");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.03118, 0.06041, 0.163, 0.359, 0.6642, 1.093, 1.656, 2.366, 3.233, 4.266");
          values("1.738, 1.745, 1.743, 1.741, 1.747, 1.759, 1.775, 1.797, 1.827, 1.878",\
                 "1.739, 1.74, 1.749, 1.741, 1.748, 1.76, 1.775, 1.803, 1.832, 1.872",\
                 "1.767, 1.768, 1.771, 1.771, 1.778, 1.785, 1.802, 1.83, 1.854, 1.905",\
                 "1.86, 1.861, 1.865, 1.866, 1.866, 1.877, 1.896, 1.924, 1.953, 1.982",\
                 "2.042, 2.043, 2.05, 2.058, 2.064, 2.071, 2.089, 2.116, 2.146, 2.164",\
                 "2.333, 2.334, 2.334, 2.341, 2.365, 2.371, 2.381, 2.408, 2.443, 2.461",\
                 "2.744, 2.743, 2.747, 2.741, 2.752, 2.784, 2.798, 2.831, 2.855, 2.884",\
                 "3.284, 3.286, 3.293, 3.293, 3.289, 3.303, 3.357, 3.381, 3.4, 3.44",\
                 "3.958, 3.962, 3.965, 3.974, 3.976, 3.969, 4, 4.063, 4.093, 4.116",\
                 "4.775, 4.781, 4.787, 4.797, 4.799, 4.789, 4.801, 4.839, 4.923, 4.974");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.03118, 0.06041, 0.163, 0.359, 0.6642, 1.093, 1.656, 2.366, 3.233, 4.266");
          values("3.096, 3.094, 3.13, 3.172, 3.197, 3.213, 3.223, 3.229, 3.232, 3.235",\
                 "3.097, 3.095, 3.13, 3.171, 3.198, 3.213, 3.224, 3.231, 3.234, 3.237",\
                 "3.157, 3.158, 3.19, 3.232, 3.258, 3.273, 3.284, 3.29, 3.294, 3.297",\
                 "3.357, 3.355, 3.384, 3.424, 3.451, 3.469, 3.481, 3.486, 3.49, 3.494",\
                 "3.743, 3.74, 3.762, 3.801, 3.83, 3.85, 3.862, 3.869, 3.874, 3.878",\
                 "4.335, 4.326, 4.346, 4.385, 4.417, 4.437, 4.451, 4.459, 4.465, 4.469",\
                 "5.154, 5.143, 5.157, 5.195, 5.228, 5.252, 5.266, 5.276, 5.282, 5.287",\
                 "6.207, 6.196, 6.208, 6.24, 6.273, 6.299, 6.316, 6.328, 6.336, 6.34",\
                 "7.511, 7.495, 7.508, 7.532, 7.569, 7.594, 7.613, 7.626, 7.636, 7.642",\
                 "9.073, 9.058, 9.063, 9.093, 9.125, 9.156, 9.175, 9.189, 9.2, 9.208");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.03118, 0.06041, 0.163, 0.359, 0.6642, 1.093, 1.656, 2.366, 3.233, 4.266");
          values("3.087, 3.115, 3.189, 3.256, 3.314, 3.357, 3.393, 3.431, 3.467, 3.523",\
                 "3.089, 3.112, 3.187, 3.265, 3.314, 3.357, 3.394, 3.437, 3.472, 3.507",\
                 "3.165, 3.193, 3.261, 3.333, 3.388, 3.431, 3.467, 3.508, 3.544, 3.584",\
                 "3.404, 3.429, 3.496, 3.564, 3.619, 3.663, 3.699, 3.745, 3.78, 3.842",\
                 "3.854, 3.874, 3.935, 3.997, 4.05, 4.1, 4.137, 4.185, 4.22, 4.271",\
                 "4.537, 4.554, 4.601, 4.671, 4.728, 4.776, 4.819, 4.861, 4.908, 4.953",\
                 "5.47, 5.486, 5.531, 5.584, 5.647, 5.693, 5.733, 5.785, 5.821, 5.855",\
                 "6.666, 6.682, 6.721, 6.761, 6.817, 6.888, 6.937, 6.984, 7.036, 7.06",\
                 "8.147, 8.153, 8.197, 8.23, 8.262, 8.326, 8.411, 8.447, 8.494, 8.534",\
                 "9.917, 9.924, 9.953, 9.999, 10.01, 10.05, 10.13, 10.22, 10.26, 10.3");
        }
      }

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

        cell_fall(tmg_ntin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.397, 0.402, 0.424, 0.475, 0.559, 0.683, 0.833, 1.006, 1.195, \
                  1.407");
        }

        cell_rise(tmg_ntin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0.35, 0.356, 0.382, 0.43, 0.495, 0.58, 0.677, 0.79, 0.917, 1.059");
        }

        fall_transition(tmg_ntin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.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.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.03118, 0.06041, 0.163, 0.359, 0.6642, 1.093, 1.656, 2.366, 3.233, 4.266");
          values("0.1374, 0.1665, 0.2359, 0.3315, 0.4522, 0.6003, 0.7804, 0.9986, 1.261, 1.572",\
                 "0.1414, 0.1705, 0.24, 0.3355, 0.4562, 0.6042, 0.7843, 1.003, 1.265, 1.575",\
                 "0.1579, 0.187, 0.2563, 0.3518, 0.4725, 0.6206, 0.8007, 1.019, 1.281, 1.592",\
                 "0.1787, 0.2099, 0.2816, 0.378, 0.4991, 0.6475, 0.8276, 1.046, 1.308, 1.619",\
                 "0.1871, 0.2218, 0.3006, 0.4029, 0.5274, 0.6772, 0.858, 1.076, 1.339, 1.65",\
                 "0.1805, 0.2188, 0.303, 0.41, 0.5366, 0.687, 0.8679, 1.087, 1.349, 1.659",\
                 "0.1596, 0.2003, 0.2894, 0.399, 0.5267, 0.6778, 0.8589, 1.077, 1.339, 1.65",\
                 "0.1218, 0.1662, 0.2597, 0.3712, 0.5002, 0.652, 0.8335, 1.052, 1.314, 1.625",\
                 "0.0669, 0.1161, 0.2137, 0.328, 0.4584, 0.6109, 0.7929, 1.012, 1.274, 1.584",\
                 "-0.0046, 0.0487, 0.152, 0.2689, 0.4006, 0.554, 0.7365, 0.9555, 1.218, 1.528");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.03118, 0.06041, 0.163, 0.359, 0.6642, 1.093, 1.656, 2.366, 3.233, 4.266");
          values("0.1624, 0.1986, 0.2821, 0.3944, 0.5425, 0.7404, 0.9982, 1.323, 1.719, 2.19",\
                 "0.1659, 0.2021, 0.2856, 0.398, 0.5461, 0.7438, 1.002, 1.326, 1.723, 2.193",\
                 "0.1791, 0.2154, 0.2991, 0.4114, 0.5597, 0.7574, 1.015, 1.339, 1.735, 2.209",\
                 "0.1959, 0.2352, 0.322, 0.4354, 0.584, 0.7818, 1.04, 1.364, 1.76, 2.232",\
                 "0.1996, 0.2455, 0.3432, 0.4628, 0.6133, 0.8114, 1.069, 1.394, 1.79, 2.262",\
                 "0.1847, 0.238, 0.3502, 0.4816, 0.637, 0.8361, 1.094, 1.419, 1.814, 2.288",\
                 "0.1484, 0.2103, 0.3387, 0.486, 0.6501, 0.8527, 1.111, 1.435, 1.831, 2.303",\
                 "0.0878, 0.1605, 0.3065, 0.4718, 0.6484, 0.8571, 1.118, 1.443, 1.839, 2.31",\
                 "-0.0012, 0.0869, 0.2524, 0.4373, 0.6297, 0.8464, 1.113, 1.441, 1.837, 2.309",\
                 "-0.1223, -0.0151, 0.175, 0.3803, 0.5915, 0.8187, 1.091, 1.424, 1.824, 2.297");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.03118, 0.06041, 0.163, 0.359, 0.6642, 1.093, 1.656, 2.366, 3.233, 4.266");
          values("0.07374, 0.0998, 0.1696, 0.2801, 0.4327, 0.6371, 0.9074, 1.255, 1.689, 2.211",\
                 "0.07364, 0.0995, 0.1696, 0.2799, 0.4327, 0.6377, 0.9072, 1.255, 1.687, 2.211",\
                 "0.07348, 0.0998, 0.1694, 0.2795, 0.433, 0.6371, 0.9072, 1.255, 1.687, 2.211",\
                 "0.08144, 0.1064, 0.173, 0.2816, 0.4343, 0.6384, 0.9069, 1.254, 1.688, 2.213",\
                 "0.09246, 0.1192, 0.1895, 0.295, 0.4425, 0.6428, 0.9091, 1.255, 1.689, 2.212",\
                 "0.1037, 0.1309, 0.2022, 0.3067, 0.4494, 0.6452, 0.911, 1.257, 1.689, 2.212",\
                 "0.1162, 0.1418, 0.2116, 0.3126, 0.4536, 0.6482, 0.9112, 1.256, 1.689, 2.212",\
                 "0.1298, 0.1536, 0.2194, 0.3176, 0.4574, 0.6512, 0.9138, 1.257, 1.687, 2.211",\
                 "0.1464, 0.1684, 0.2282, 0.3234, 0.4612, 0.6544, 0.9168, 1.259, 1.689, 2.209",\
                 "0.1644, 0.1844, 0.2388, 0.3296, 0.466, 0.6582, 0.9188, 1.26, 1.689, 2.21");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.03118, 0.06041, 0.163, 0.359, 0.6642, 1.093, 1.656, 2.366, 3.233, 4.266");
          values("0.08756, 0.1212, 0.2072, 0.3527, 0.5883, 0.9376, 1.409, 2.002, 2.73, 3.597",\
                 "0.08752, 0.1207, 0.2076, 0.3527, 0.5887, 0.9379, 1.408, 2.002, 2.73, 3.597",\
                 "0.0881, 0.1214, 0.208, 0.3536, 0.5884, 0.9388, 1.408, 2.003, 2.73, 3.597",\
                 "0.0981, 0.129, 0.2117, 0.3547, 0.5893, 0.938, 1.409, 2.002, 2.731, 3.598",\
                 "0.1161, 0.1501, 0.2315, 0.366, 0.593, 0.9389, 1.408, 2.003, 2.728, 3.598",\
                 "0.139, 0.1742, 0.2602, 0.3888, 0.604, 0.9428, 1.409, 2.001, 2.73, 3.598",\
                 "0.1672, 0.2032, 0.2952, 0.423, 0.6258, 0.951, 1.411, 2.003, 2.727, 3.594",\
                 "0.207, 0.2374, 0.3334, 0.4648, 0.6562, 0.9698, 1.421, 2.006, 2.732, 3.596",\
                 "0.258, 0.282, 0.373, 0.512, 0.697, 0.9982, 1.44, 2.02, 2.736, 3.599",\
                 "0.3228, 0.3428, 0.4198, 0.5656, 0.7468, 1.03, 1.466, 2.043, 2.753, 3.606");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.03118, 0.06041, 0.163, 0.359, 0.6642, 1.093, 1.656, 2.366, 3.233, 4.266");
          values("0.2536, 0.2815, 0.351, 0.4469, 0.5678, 0.7159, 0.896, 1.114, 1.376, 1.687",\
                 "0.257, 0.285, 0.3543, 0.4504, 0.5713, 0.7194, 0.8994, 1.118, 1.38, 1.691",\
                 "0.2705, 0.2984, 0.3679, 0.4639, 0.5847, 0.7329, 0.9129, 1.131, 1.393, 1.704",\
                 "0.2857, 0.3136, 0.383, 0.479, 0.6001, 0.7482, 0.9282, 1.147, 1.409, 1.72",\
                 "0.2943, 0.3221, 0.3914, 0.4876, 0.6087, 0.7569, 0.937, 1.155, 1.417, 1.728",\
                 "0.2929, 0.3209, 0.3904, 0.4866, 0.608, 0.7562, 0.9364, 1.155, 1.417, 1.728",\
                 "0.2814, 0.3096, 0.3793, 0.4758, 0.5974, 0.746, 0.9263, 1.145, 1.407, 1.718",\
                 "0.2572, 0.2859, 0.3561, 0.453, 0.5749, 0.7236, 0.9042, 1.123, 1.385, 1.696",\
                 "0.22, 0.2494, 0.3207, 0.4184, 0.5407, 0.6898, 0.8706, 1.089, 1.352, 1.663",\
                 "0.168, 0.1987, 0.2719, 0.3706, 0.4936, 0.6433, 0.8243, 1.043, 1.306, 1.617");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.03118, 0.06041, 0.163, 0.359, 0.6642, 1.093, 1.656, 2.366, 3.233, 4.266");
          values("0.2976, 0.3345, 0.4197, 0.5334, 0.6824, 0.8811, 1.14, 1.464, 1.861, 2.333",\
                 "0.303, 0.3399, 0.425, 0.5385, 0.6877, 0.8864, 1.145, 1.47, 1.866, 2.338",\
                 "0.3281, 0.3651, 0.4502, 0.5636, 0.7128, 0.9115, 1.17, 1.495, 1.891, 2.363",\
                 "0.3769, 0.4137, 0.4988, 0.6121, 0.7615, 0.9601, 1.218, 1.543, 1.94, 2.411",\
                 "0.4439, 0.4811, 0.5662, 0.6798, 0.829, 1.028, 1.286, 1.611, 2.008, 2.479",\
                 "0.5271, 0.5646, 0.6502, 0.7643, 0.9139, 1.113, 1.371, 1.696, 2.093, 2.566",\
                 "0.6249, 0.6637, 0.7509, 0.8655, 1.015, 1.214, 1.473, 1.797, 2.195, 2.668",\
                 "0.7371, 0.778, 0.8678, 0.9836, 1.134, 1.333, 1.592, 1.916, 2.313, 2.785",\
                 "0.8644, 0.9074, 1.002, 1.119, 1.271, 1.47, 1.729, 2.054, 2.45, 2.922",\
                 "1.007, 1.053, 1.152, 1.273, 1.426, 1.626, 1.885, 2.21, 2.606, 3.078");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.03118, 0.06041, 0.163, 0.359, 0.6642, 1.093, 1.656, 2.366, 3.233, 4.266");
          values("0.06746, 0.09504, 0.1672, 0.2777, 0.4312, 0.6359, 0.9064, 1.253, 1.687, 2.213",\
                 "0.06744, 0.0951, 0.1669, 0.2778, 0.4313, 0.6361, 0.9059, 1.253, 1.687, 2.211",\
                 "0.06746, 0.09512, 0.1672, 0.2778, 0.4311, 0.6359, 0.9052, 1.255, 1.687, 2.212",\
                 "0.0676, 0.09544, 0.1673, 0.2777, 0.4312, 0.6361, 0.9054, 1.255, 1.687, 2.213",\
                 "0.06818, 0.09594, 0.1676, 0.2779, 0.4314, 0.6361, 0.9068, 1.255, 1.688, 2.212",\
                 "0.06908, 0.09666, 0.1683, 0.279, 0.4316, 0.6354, 0.9064, 1.254, 1.689, 2.212",\
                 "0.0704, 0.0976, 0.169, 0.2792, 0.4324, 0.6374, 0.9056, 1.253, 1.689, 2.21",\
                 "0.0724, 0.0996, 0.1706, 0.2804, 0.4332, 0.637, 0.9062, 1.255, 1.687, 2.21",\
                 "0.0758, 0.1026, 0.1728, 0.282, 0.4348, 0.638, 0.9082, 1.256, 1.689, 2.21",\
                 "0.0802, 0.107, 0.1764, 0.2848, 0.4368, 0.6402, 0.9084, 1.257, 1.688, 2.212");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.04471, 0.1314, 0.2971, 0.5551, 0.9172, 1.394, 1.994, 2.727, 3.6");
          index_2("0.03118, 0.06041, 0.163, 0.359, 0.6642, 1.093, 1.656, 2.366, 3.233, 4.266");
          values("0.08454, 0.1174, 0.2041, 0.3502, 0.5882, 0.9368, 1.408, 2.003, 2.73, 3.598",\
                 "0.08464, 0.1177, 0.2043, 0.3505, 0.5881, 0.9371, 1.409, 2.002, 2.73, 3.597",\
                 "0.08578, 0.1173, 0.2043, 0.35, 0.5881, 0.9371, 1.409, 2.002, 2.731, 3.596",\
                 "0.08556, 0.1176, 0.2046, 0.3501, 0.5876, 0.938, 1.408, 2.003, 2.73, 3.597",\
                 "0.08614, 0.1185, 0.2048, 0.3514, 0.5874, 0.9384, 1.409, 2.002, 2.73, 3.597",\
                 "0.0884, 0.1212, 0.2072, 0.3518, 0.5888, 0.9386, 1.408, 2.002, 2.73, 3.594",\
                 "0.0932, 0.1248, 0.2094, 0.3532, 0.589, 0.938, 1.408, 2.001, 2.729, 3.598",\
                 "0.0996, 0.131, 0.2144, 0.3552, 0.5906, 0.9378, 1.407, 2.002, 2.728, 3.597",\
                 "0.1076, 0.1394, 0.222, 0.36, 0.5912, 0.9396, 1.407, 2.002, 2.731, 3.597",\
                 "0.118, 0.1494, 0.2304, 0.3674, 0.5962, 0.9398, 1.409, 2.003, 2.728, 3.594");
        }
      }
    }
  }

