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

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

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

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

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

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

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

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

      internal_power() {
        when : "!I" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.5486, 0.5536, 0.6019, 0.7266, 0.9545, 1.298, 1.764, 2.363, 3.098, \
                  3.978");
        }

        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.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.4399, 0.443, 0.4766, 0.5603, 0.7001, 0.916, 1.233, 1.651, 2.174, \
                  2.807");
        }

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

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

      internal_power() {
        when : "!EN" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.2751, 0.2778, 0.3067, 0.3789, 0.5025, 0.6845, 0.9295, 1.241, \
                  1.623, 2.081");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.0642, 0.0657, 0.08567, 0.144, 0.2504, 0.4102, 0.6261, 0.9022, \
                  1.242, 1.649");
        }
      }
    }

    pin(ZN) {
      capacitance : 0.004394 ;
      direction : output ;
      function : "(!I)" ;
      max_capacitance : 0.7474 ;
      max_transition : 2.8 ;
      min_capacitance : 0.005394 ;
      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.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.005394, 0.01051, 0.02849, 0.06282, 0.1163, 0.1914, 0.2901, 0.4145, 0.5664, 0.7474");
          values("0.5607, 0.5508, 0.5322, 0.52, 0.5122, 0.5069, 0.5031, 0.5003, 0.4984, 0.4973",\
                 "0.5646, 0.5548, 0.5368, 0.5249, 0.5172, 0.5119, 0.5085, 0.5058, 0.504, 0.5027",\
                 "0.5965, 0.5883, 0.5733, 0.5638, 0.5577, 0.5539, 0.5509, 0.5487, 0.5472, 0.5462",\
                 "0.6748, 0.6697, 0.6608, 0.656, 0.6532, 0.6517, 0.6501, 0.649, 0.6482, 0.6476",\
                 "0.827, 0.8249, 0.8219, 0.8208, 0.8196, 0.819, 0.8187, 0.8183, 0.8181, 0.8179",\
                 "1.063, 1.061, 1.06, 1.059, 1.06, 1.06, 1.06, 1.06, 1.06, 1.06",\
                 "1.38, 1.379, 1.379, 1.378, 1.379, 1.379, 1.379, 1.379, 1.379, 1.379",\
                 "1.779, 1.778, 1.778, 1.778, 1.778, 1.778, 1.778, 1.778, 1.778, 1.778",\
                 "2.262, 2.262, 2.262, 2.261, 2.262, 2.262, 2.262, 2.262, 2.262, 2.262",\
                 "2.835, 2.836, 2.836, 2.835, 2.836, 2.836, 2.836, 2.836, 2.836, 2.836");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.005394, 0.01051, 0.02849, 0.06282, 0.1163, 0.1914, 0.2901, 0.4145, 0.5664, 0.7474");
          values("0.3119, 0.3094, 0.3081, 0.308, 0.3087, 0.3085, 0.3112, 0.3154, 0.3233, 0.3316",\
                 "0.3136, 0.3111, 0.309, 0.3098, 0.3105, 0.3118, 0.3139, 0.3154, 0.3222, 0.3283",\
                 "0.3502, 0.3477, 0.3469, 0.3469, 0.3472, 0.3487, 0.3491, 0.3517, 0.3613, 0.3651",\
                 "0.4573, 0.4567, 0.4583, 0.4583, 0.459, 0.4598, 0.4608, 0.4639, 0.4713, 0.4823",\
                 "0.6624, 0.6624, 0.6608, 0.6652, 0.6664, 0.6638, 0.667, 0.6735, 0.6797, 0.683",\
                 "0.9715, 0.972, 0.9717, 0.9704, 0.9759, 0.9779, 0.9761, 0.9798, 0.9866, 0.9888",\
                 "1.392, 1.392, 1.392, 1.392, 1.391, 1.399, 1.401, 1.401, 1.404, 1.415",\
                 "1.929, 1.93, 1.93, 1.931, 1.931, 1.933, 1.941, 1.945, 1.949, 1.945",\
                 "2.591, 2.592, 2.594, 2.595, 2.593, 2.594, 2.599, 2.611, 2.614, 2.614",\
                 "3.386, 3.387, 3.389, 3.391, 3.39, 3.388, 3.391, 3.397, 3.411, 3.417");
        }
      }

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

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.005394, 0.01051, 0.02849, 0.06282, 0.1163, 0.1914, 0.2901, 0.4145, 0.5664, 0.7474");
          values("0.9054, 0.8854, 0.8481, 0.8215, 0.805, 0.7942, 0.7872, 0.7824, 0.7787, 0.7762",\
                 "0.9069, 0.8869, 0.8495, 0.8231, 0.8065, 0.7955, 0.7884, 0.7834, 0.7799, 0.7774",\
                 "0.9281, 0.9081, 0.8707, 0.8441, 0.8274, 0.8163, 0.8093, 0.8045, 0.801, 0.7985",\
                 "0.9936, 0.9732, 0.9354, 0.9095, 0.8923, 0.8813, 0.8741, 0.8689, 0.8654, 0.8628",\
                 "1.114, 1.093, 1.055, 1.027, 1.01, 0.9988, 0.9913, 0.986, 0.9824, 0.9795",\
                 "1.295, 1.275, 1.235, 1.206, 1.188, 1.175, 1.167, 1.162, 1.158, 1.156",\
                 "1.539, 1.518, 1.477, 1.447, 1.427, 1.414, 1.406, 1.4, 1.396, 1.393",\
                 "1.848, 1.826, 1.784, 1.752, 1.732, 1.718, 1.71, 1.704, 1.699, 1.696",\
                 "2.229, 2.206, 2.162, 2.128, 2.106, 2.091, 2.082, 2.075, 2.071, 2.067",\
                 "2.68, 2.658, 2.611, 2.575, 2.551, 2.536, 2.526, 2.519, 2.514, 2.51");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.005394, 0.01051, 0.02849, 0.06282, 0.1163, 0.1914, 0.2901, 0.4145, 0.5664, 0.7474");
          values("0.7803, 0.7704, 0.7586, 0.752, 0.7528, 0.7548, 0.7597, 0.7611, 0.7712, 0.7778",\
                 "0.7828, 0.773, 0.761, 0.7554, 0.7559, 0.7581, 0.7602, 0.7644, 0.774, 0.78",\
                 "0.8128, 0.8032, 0.7901, 0.7849, 0.7845, 0.7856, 0.7916, 0.7963, 0.8031, 0.8103",\
                 "0.8932, 0.8835, 0.8704, 0.8634, 0.8623, 0.8637, 0.868, 0.8706, 0.8801, 0.8862",\
                 "1.033, 1.023, 1.009, 1, 0.9979, 1, 1.003, 1.005, 1.013, 1.024",\
                 "1.241, 1.23, 1.21, 1.203, 1.198, 1.195, 1.197, 1.206, 1.211, 1.213",\
                 "1.517, 1.504, 1.485, 1.471, 1.468, 1.467, 1.465, 1.47, 1.476, 1.48",\
                 "1.865, 1.851, 1.829, 1.812, 1.804, 1.806, 1.809, 1.806, 1.811, 1.813",\
                 "2.292, 2.278, 2.254, 2.236, 2.223, 2.218, 2.224, 2.226, 2.228, 2.226",\
                 "2.798, 2.784, 2.759, 2.736, 2.725, 2.717, 2.714, 2.726, 2.726, 2.73");
        }
      }

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

        cell_fall(tmg_ntin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.0917, 0.0966, 0.1155, 0.153, 0.2039, 0.2644, 0.3338, 0.4124, \
                  0.501, 0.597");
        }

        cell_rise(tmg_ntin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0.1215, 0.1264, 0.1473, 0.1846, 0.2353, 0.2962, 0.3674, 0.4494, \
                  0.543, 0.648");
        }

        fall_transition(tmg_ntin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          values("0, 0, 0, 0, 0, 0, 0, 0, 0, 0");
        }

        rise_transition(tmg_ntin_10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          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.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.005394, 0.01051, 0.02849, 0.06282, 0.1163, 0.1914, 0.2901, 0.4145, 0.5664, 0.7474");
          values("0.08111, 0.09762, 0.1392, 0.1997, 0.2789, 0.3807, 0.5105, 0.6727, 0.8703, 1.106",\
                 "0.08479, 0.1012, 0.1427, 0.2032, 0.2824, 0.3842, 0.514, 0.6761, 0.8738, 1.109",\
                 "0.09831, 0.1144, 0.1555, 0.2157, 0.2949, 0.3966, 0.5264, 0.6886, 0.8863, 1.122",\
                 "0.1128, 0.1302, 0.1723, 0.2324, 0.3112, 0.413, 0.5428, 0.705, 0.9028, 1.139",\
                 "0.1188, 0.1371, 0.18, 0.2393, 0.3175, 0.4188, 0.5485, 0.7108, 0.9086, 1.144",\
                 "0.1159, 0.1349, 0.1774, 0.2358, 0.3127, 0.4134, 0.5427, 0.7047, 0.9025, 1.138",\
                 "0.1039, 0.1236, 0.1664, 0.2243, 0.3007, 0.4009, 0.53, 0.6919, 0.8894, 1.125",\
                 "0.08093, 0.1016, 0.1453, 0.2032, 0.2794, 0.3794, 0.5084, 0.6704, 0.8679, 1.103",\
                 "0.0469, 0.0689, 0.1135, 0.1719, 0.248, 0.348, 0.477, 0.639, 0.8366, 1.072",\
                 "0.0005, 0.0243, 0.0702, 0.1288, 0.205, 0.3049, 0.434, 0.596, 0.7937, 1.029");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.005394, 0.01051, 0.02849, 0.06282, 0.1163, 0.1914, 0.2901, 0.4145, 0.5664, 0.7474");
          values("0.0687, 0.0856, 0.1313, 0.2075, 0.323, 0.4848, 0.6984, 0.9663, 1.295, 1.685",\
                 "0.07166, 0.08858, 0.1343, 0.2104, 0.326, 0.488, 0.7012, 0.9698, 1.298, 1.689",\
                 "0.08097, 0.09882, 0.1451, 0.2215, 0.3371, 0.4988, 0.7117, 0.98, 1.308, 1.699",\
                 "0.08777, 0.108, 0.1569, 0.2344, 0.3501, 0.512, 0.7251, 0.9939, 1.322, 1.713",\
                 "0.08608, 0.1104, 0.1648, 0.2442, 0.3606, 0.5226, 0.7356, 1.004, 1.332, 1.723",\
                 "0.07351, 0.1028, 0.1654, 0.249, 0.3672, 0.5297, 0.7427, 1.011, 1.339, 1.73",\
                 "0.0492, 0.08386, 0.1565, 0.2459, 0.3677, 0.5325, 0.7461, 1.014, 1.342, 1.733",\
                 "0.01167, 0.05299, 0.1362, 0.2337, 0.3594, 0.5281, 0.7445, 1.013, 1.341, 1.731",\
                 "-0.0405, 0.0084, 0.1033, 0.2114, 0.3415, 0.5142, 0.7352, 1.007, 1.336, 1.726",\
                 "-0.1075, -0.0505, 0.0572, 0.1776, 0.3132, 0.4899, 0.7158, 0.9931, 1.325, 1.716");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.005394, 0.01051, 0.02849, 0.06282, 0.1163, 0.1914, 0.2901, 0.4145, 0.5664, 0.7474");
          values("0.04151, 0.05756, 0.1026, 0.1754, 0.2796, 0.4297, 0.6339, 0.8969, 1.222, 1.611",\
                 "0.04104, 0.05716, 0.1024, 0.1753, 0.2797, 0.4297, 0.6345, 0.897, 1.222, 1.609",\
                 "0.03894, 0.05526, 0.101, 0.174, 0.279, 0.4287, 0.6344, 0.8978, 1.222, 1.609",\
                 "0.04184, 0.05716, 0.101, 0.172, 0.2776, 0.4281, 0.6344, 0.8972, 1.222, 1.609",\
                 "0.04498, 0.05986, 0.1005, 0.17, 0.2747, 0.427, 0.6334, 0.8971, 1.221, 1.609",\
                 "0.04764, 0.06076, 0.099, 0.1668, 0.2718, 0.4242, 0.6303, 0.8963, 1.221, 1.609",\
                 "0.0509, 0.06324, 0.09882, 0.1659, 0.27, 0.4226, 0.6294, 0.8934, 1.22, 1.609",\
                 "0.0546, 0.0656, 0.0996, 0.1654, 0.2692, 0.4218, 0.6292, 0.8934, 1.218, 1.605",\
                 "0.0596, 0.0692, 0.1008, 0.1656, 0.2696, 0.4224, 0.6304, 0.894, 1.219, 1.606",\
                 "0.0646, 0.0734, 0.103, 0.1664, 0.2696, 0.422, 0.6298, 0.8944, 1.218, 1.606");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.005394, 0.01051, 0.02849, 0.06282, 0.1163, 0.1914, 0.2901, 0.4145, 0.5664, 0.7474");
          values("0.03878, 0.05808, 0.1207, 0.2429, 0.4402, 0.72, 1.091, 1.553, 2.123, 2.798",\
                 "0.03902, 0.05806, 0.1207, 0.2426, 0.4402, 0.7211, 1.091, 1.556, 2.125, 2.803",\
                 "0.04092, 0.05988, 0.1214, 0.2429, 0.441, 0.7199, 1.089, 1.554, 2.121, 2.798",\
                 "0.047, 0.06562, 0.1248, 0.2442, 0.4411, 0.7209, 1.09, 1.556, 2.125, 2.799",\
                 "0.05936, 0.07674, 0.1324, 0.2479, 0.4424, 0.7203, 1.09, 1.553, 2.121, 2.798",\
                 "0.07338, 0.0916, 0.1453, 0.2557, 0.4461, 0.7218, 1.089, 1.553, 2.121, 2.801",\
                 "0.08964, 0.1083, 0.1632, 0.2669, 0.4563, 0.7278, 1.091, 1.554, 2.119, 2.797",\
                 "0.1085, 0.1275, 0.1846, 0.2816, 0.4678, 0.7416, 1.099, 1.556, 2.123, 2.797",\
                 "0.131, 0.1498, 0.208, 0.3006, 0.4806, 0.7568, 1.117, 1.568, 2.125, 2.794",\
                 "0.155, 0.1754, 0.2332, 0.3252, 0.496, 0.7728, 1.138, 1.59, 2.139, 2.802");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.005394, 0.01051, 0.02849, 0.06282, 0.1163, 0.1914, 0.2901, 0.4145, 0.5664, 0.7474");
          values("0.189, 0.2053, 0.2469, 0.3074, 0.3869, 0.4886, 0.6181, 0.7801, 0.9776, 1.213",\
                 "0.1921, 0.2083, 0.2499, 0.3105, 0.39, 0.4917, 0.6212, 0.7831, 0.9806, 1.216",\
                 "0.2018, 0.218, 0.2594, 0.3201, 0.3996, 0.5013, 0.6308, 0.7927, 0.9903, 1.226",\
                 "0.2106, 0.2268, 0.2683, 0.329, 0.4085, 0.5102, 0.6397, 0.8016, 0.9991, 1.235",\
                 "0.2148, 0.231, 0.2726, 0.3332, 0.4126, 0.5143, 0.6438, 0.8057, 1.003, 1.239",\
                 "0.2121, 0.2283, 0.27, 0.3306, 0.4101, 0.5118, 0.6413, 0.8031, 1.001, 1.236",\
                 "0.2007, 0.2169, 0.2587, 0.3194, 0.3991, 0.5008, 0.6303, 0.7921, 0.9896, 1.225",\
                 "0.1793, 0.1957, 0.2374, 0.2986, 0.3783, 0.4801, 0.6096, 0.7714, 0.9688, 1.204",\
                 "0.1481, 0.1646, 0.2063, 0.2673, 0.3471, 0.4489, 0.5784, 0.7402, 0.9376, 1.173",\
                 "0.1053, 0.1219, 0.1635, 0.2244, 0.3042, 0.406, 0.5355, 0.6973, 0.8947, 1.13");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.005394, 0.01051, 0.02849, 0.06282, 0.1163, 0.1914, 0.2901, 0.4145, 0.5664, 0.7474");
          values("0.1967, 0.2127, 0.2569, 0.3325, 0.448, 0.6101, 0.8232, 1.092, 1.419, 1.81",\
                 "0.2014, 0.2172, 0.2616, 0.3371, 0.4526, 0.6148, 0.828, 1.097, 1.425, 1.815",\
                 "0.2216, 0.2375, 0.2819, 0.3573, 0.4729, 0.6348, 0.8482, 1.116, 1.445, 1.836",\
                 "0.2591, 0.2748, 0.3191, 0.3945, 0.5099, 0.6717, 0.8852, 1.154, 1.482, 1.872",\
                 "0.3101, 0.3258, 0.3699, 0.4453, 0.5604, 0.7224, 0.9354, 1.205, 1.532, 1.924",\
                 "0.3732, 0.389, 0.4328, 0.5078, 0.6228, 0.7844, 0.9974, 1.266, 1.594, 1.985",\
                 "0.4471, 0.4628, 0.5066, 0.5814, 0.6961, 0.8574, 1.07, 1.339, 1.666, 2.057",\
                 "0.5319, 0.5476, 0.5911, 0.6657, 0.7801, 0.9412, 1.154, 1.422, 1.75, 2.14",\
                 "0.6289, 0.6447, 0.6881, 0.7625, 0.877, 1.038, 1.25, 1.518, 1.845, 2.235",\
                 "0.738, 0.7543, 0.798, 0.8722, 0.9857, 1.147, 1.359, 1.627, 1.954, 2.344");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.005394, 0.01051, 0.02849, 0.06282, 0.1163, 0.1914, 0.2901, 0.4145, 0.5664, 0.7474");
          values("0.04886, 0.06592, 0.1095, 0.18, 0.2826, 0.4314, 0.6347, 0.8986, 1.222, 1.61",\
                 "0.04902, 0.06594, 0.1093, 0.1801, 0.2826, 0.4315, 0.6342, 0.8977, 1.223, 1.609",\
                 "0.049, 0.0658, 0.1094, 0.18, 0.2826, 0.4311, 0.6349, 0.8976, 1.222, 1.609",\
                 "0.04882, 0.06574, 0.1094, 0.1803, 0.2827, 0.4313, 0.6341, 0.8976, 1.222, 1.611",\
                 "0.04934, 0.0663, 0.1098, 0.1802, 0.2831, 0.4308, 0.6345, 0.8971, 1.222, 1.611",\
                 "0.04978, 0.06684, 0.1103, 0.1808, 0.2829, 0.4305, 0.6343, 0.8986, 1.222, 1.609",\
                 "0.05044, 0.06776, 0.111, 0.1818, 0.2836, 0.431, 0.6344, 0.8966, 1.221, 1.609",\
                 "0.0512, 0.0684, 0.1118, 0.1822, 0.2844, 0.4316, 0.6346, 0.897, 1.221, 1.608",\
                 "0.052, 0.0692, 0.1128, 0.1832, 0.2852, 0.4324, 0.6346, 0.8976, 1.221, 1.608",\
                 "0.0528, 0.07, 0.1136, 0.1838, 0.2858, 0.4326, 0.6364, 0.8976, 1.221, 1.609");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.03919, 0.1065, 0.2352, 0.4356, 0.7167, 1.087, 1.553, 2.122, 2.8");
          index_2("0.005394, 0.01051, 0.02849, 0.06282, 0.1163, 0.1914, 0.2901, 0.4145, 0.5664, 0.7474");
          values("0.04132, 0.05976, 0.1218, 0.243, 0.4402, 0.7212, 1.089, 1.555, 2.121, 2.8",\
                 "0.04132, 0.05978, 0.1218, 0.2432, 0.4408, 0.7213, 1.09, 1.556, 2.125, 2.803",\
                 "0.04114, 0.05976, 0.122, 0.2433, 0.4402, 0.72, 1.089, 1.554, 2.123, 2.798",\
                 "0.04126, 0.0597, 0.1217, 0.2433, 0.4403, 0.7204, 1.091, 1.556, 2.125, 2.802",\
                 "0.04148, 0.06, 0.122, 0.2432, 0.4402, 0.7214, 1.09, 1.556, 2.125, 2.799",\
                 "0.0421, 0.06062, 0.1228, 0.2433, 0.4405, 0.7194, 1.089, 1.553, 2.124, 2.802",\
                 "0.0428, 0.0616, 0.1232, 0.244, 0.4406, 0.72, 1.088, 1.553, 2.12, 2.801",\
                 "0.0436, 0.062, 0.1238, 0.2438, 0.4406, 0.7198, 1.088, 1.552, 2.117, 2.795",\
                 "0.0446, 0.063, 0.1244, 0.2444, 0.4414, 0.7216, 1.088, 1.551, 2.121, 2.795",\
                 "0.0456, 0.0642, 0.1254, 0.245, 0.4408, 0.721, 1.088, 1.553, 2.117, 2.798");
        }
      }
    }
  }

