/*
 * 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__nor3_2) {
    area : 39.513600 ;

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&!A2&!A3" ;
      value : "3.13929e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&!A2&A3" ;
      value : "3.415104e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&A2&!A3" ;
      value : "2.524698e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "!A1&A2&A3" ;
      value : "2.524698e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&!A2&!A3" ;
      value : "1.6305498e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&!A2&A3" ;
      value : "1.6304904e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&A2&!A3" ;
      value : "1.6305498e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      when : "A1&A2&A3" ;
      value : "1.63053e-05" ;
    }

    leakage_power() {
      related_pg_pin : "VDD" ;
      value : "3.415104e-05" ;
    }

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

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

    pin(A1) {
      capacitance : 0.01008 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 6 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!A2&A3" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.02181, 0.02183, 0.02179, 0.02174, 0.02173, 0.02173, 0.02169, \
                  0.02167, 0.02165, 0.02161");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("-0.006134, -0.006148, -0.006159, -0.006155, -0.006155, -0.006181, \
                  -0.006164, -0.006174, -0.006175, -0.006175");
        }
      }

      internal_power() {
        when : "A2&!A3" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.01209, 0.0121, 0.01206, 0.01205, 0.01204, 0.01208, 0.01204, \
                  0.01205, 0.01203, 0.012");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("-0.006174, -0.006204, -0.006201, -0.006197, -0.006205, -0.006224, \
                  -0.006204, -0.006216, -0.006216, -0.006218");
        }
      }

      internal_power() {
        when : "A2&A3" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.0121, 0.0121, 0.01206, 0.01206, 0.01204, 0.01206, 0.01204, 0.01204, \
                  0.01203, 0.01201");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("-0.006174, -0.006198, -0.006206, -0.006198, -0.006207, -0.006222, \
                  -0.006203, -0.006221, -0.006216, -0.006218");
        }
      }
    }

    pin(A2) {
      capacitance : 0.01027 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 6 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!A1&A3" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.01043, 0.01044, 0.01046, 0.01045, 0.01045, 0.01047, 0.01042, \
                  0.01042, 0.0104, 0.01035");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("-0.007237, -0.007237, -0.007246, -0.007256, -0.007264, -0.00729, \
                  -0.007277, -0.007314, -0.007324, -0.007335");
        }
      }

      internal_power() {
        when : "A1&!A3" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.01612, 0.01612, 0.0161, 0.01608, 0.01609, 0.01611, 0.01608, \
                  0.01609, 0.01612, 0.0161");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("-0.01396, -0.0145, -0.01508, -0.01537, -0.0155, -0.01563, -0.01563, \
                  -0.01569, -0.01572, -0.01575");
        }
      }

      internal_power() {
        when : "A1&A3" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.0104, 0.01041, 0.01042, 0.01041, 0.01042, 0.01045, 0.01043, \
                  0.01045, 0.01045, 0.01046");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("-0.01185, -0.01186, -0.01188, -0.0119, -0.01192, -0.01195, -0.01192, \
                  -0.01195, -0.01196, -0.01198");
        }
      }
    }

    pin(A3) {
      capacitance : 0.01094 ;
      direction : input ;
      driver_waveform_rise : driver_waveform_default_rise ;
      driver_waveform_fall : driver_waveform_default_fall ;
      input_voltage : default ;
      max_transition : 6 ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        when : "!A1&A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.01608, 0.01611, 0.01608, 0.01607, 0.01607, 0.01609, 0.01608, \
                  0.0161, 0.0161, 0.0161");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("-0.01459, -0.01484, -0.01519, -0.01541, -0.01553, -0.01562, -0.01562, \
                  -0.01571, -0.01573, -0.01576");
        }
      }

      internal_power() {
        when : "A1&!A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.01609, 0.01611, 0.01611, 0.01607, 0.01606, 0.01611, 0.0161, \
                  0.01611, 0.0161, 0.0161");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("-0.01351, -0.01377, -0.01424, -0.01466, -0.01494, -0.01515, -0.01521, \
                  -0.01535, -0.01541, -0.01544");
        }
      }

      internal_power() {
        when : "A1&A2" ;

        fall_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("0.01608, 0.01611, 0.0161, 0.01606, 0.0161, 0.01608, 0.01609, 0.01611, \
                  0.0161, 0.0161");
        }

        rise_power(pwr_tin_10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          values("-0.01463, -0.01484, -0.01519, -0.01541, -0.01554, -0.01562, -0.01562, \
                  -0.01571, -0.01574, -0.01576");
        }
      }
    }

    pin(ZN) {
      direction : output ;
      function : "((!A1)&(!A2)&(!A3))" ;
      max_capacitance : 0.2095 ;
      max_transition : 6 ;
      min_capacitance : 0.001 ;
      output_voltage : default ;
      related_ground_pin : VSS ;
      related_power_pin : VDD ;

      internal_power() {
        related_pin : "A1" ;
        when : "!A2&!A3" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.002439, 0.007491, 0.01714, 0.03217, 0.05326, 0.08101, 0.116, 0.1586, 0.2095");
          values("-0.002022, -0.001933, -0.001775, -0.00166, -0.001599, -0.001557, -0.001529, -0.001518, -0.001502, -0.001493",\
                 "-0.002307, -0.002167, -0.001819, -0.001514, -0.001281, -0.00116, -0.001083, -0.001026, -0.0009989, -0.0009597",\
                 "-0.002852, -0.002677, -0.002164, -0.001589, -0.001101, -0.0007735, -0.0005787, -0.0004251, -0.0003294, -0.0002595",\
                 "-0.003085, -0.00295, -0.002534, -0.00191, -0.001321, -0.0008719, -0.0005311, -0.000297, -0.0001078, -3.078e-06",\
                 "-0.002569, -0.002524, -0.002314, -0.001915, -0.001436, -0.0009633, -0.0006054, -0.0003109, -9.998e-05, 5.017e-05",\
                 "-0.001084, -0.00111, -0.001177, -0.001172, -0.000964, -0.0007126, -0.0004015, -0.0001677, 6.055e-06, 0.0001649",\
                 "0.001617, 0.001448, 0.001048, 0.0006317, 0.0003811, 0.0003123, 0.0003525, 0.0003992, 0.0004903, 0.0005487",\
                 "0.005497, 0.005256, 0.004518, 0.003618, 0.002824, 0.002255, 0.001886, 0.001682, 0.001538, 0.001439",\
                 "0.01067, 0.01034, 0.009268, 0.007866, 0.006453, 0.00534, 0.004463, 0.003827, 0.003348, 0.002977",\
                 "0.01708, 0.01668, 0.01535, 0.01346, 0.01144, 0.009668, 0.008171, 0.006997, 0.006109, 0.005348");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.002439, 0.007491, 0.01714, 0.03217, 0.05326, 0.08101, 0.116, 0.1586, 0.2095");
          values("0.04854, 0.04865, 0.0489, 0.04912, 0.0493, 0.04952, 0.04964, 0.04984, 0.05005, 0.05012",\
                 "0.04752, 0.04772, 0.04808, 0.04855, 0.0489, 0.0492, 0.04948, 0.0497, 0.04995, 0.05016",\
                 "0.04642, 0.04653, 0.04685, 0.04742, 0.04798, 0.04845, 0.04889, 0.04926, 0.04961, 0.04978",\
                 "0.04655, 0.04654, 0.04663, 0.04687, 0.04728, 0.04779, 0.04826, 0.04871, 0.0491, 0.04955",\
                 "0.04765, 0.0476, 0.0475, 0.04738, 0.0474, 0.04762, 0.0479, 0.04843, 0.04874, 0.04921",\
                 "0.04979, 0.04964, 0.04927, 0.04884, 0.04845, 0.04829, 0.0483, 0.04853, 0.04872, 0.0491",\
                 "0.05295, 0.05273, 0.05205, 0.05125, 0.05055, 0.04995, 0.04956, 0.04942, 0.04935, 0.04957",\
                 "0.05723, 0.05691, 0.05604, 0.0548, 0.05355, 0.05264, 0.05176, 0.05114, 0.05078, 0.0507",\
                 "0.06274, 0.06235, 0.06116, 0.05945, 0.05773, 0.05621, 0.05509, 0.05397, 0.05308, 0.05252",\
                 "0.06967, 0.06911, 0.06751, 0.06542, 0.06319, 0.061, 0.05936, 0.05791, 0.05644, 0.05548");
        }
      }

      internal_power() {
        related_pin : "A2" ;
        when : "!A1&!A3" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.002439, 0.007491, 0.01714, 0.03217, 0.05326, 0.08101, 0.116, 0.1586, 0.2095");
          values("0.00815, 0.008159, 0.008173, 0.008159, 0.008179, 0.008208, 0.008213, 0.008223, 0.008215, 0.008212",\
                 "0.008035, 0.008039, 0.008079, 0.008108, 0.008138, 0.008142, 0.008178, 0.008195, 0.008196, 0.008205",\
                 "0.007423, 0.007469, 0.007606, 0.007761, 0.00786, 0.007947, 0.008009, 0.008075, 0.008092, 0.008118",\
                 "0.006725, 0.006767, 0.006952, 0.007223, 0.007418, 0.00764, 0.007793, 0.007862, 0.00792, 0.00798",\
                 "0.006829, 0.006811, 0.006908, 0.007068, 0.007266, 0.007462, 0.007627, 0.007753, 0.007845, 0.00789",\
                 "0.007967, 0.007931, 0.007837, 0.007753, 0.007745, 0.007788, 0.00787, 0.007908, 0.007965, 0.007995",\
                 "0.0104, 0.01035, 0.009967, 0.009538, 0.009174, 0.008894, 0.008743, 0.008609, 0.008543, 0.008443",\
                 "0.01418, 0.01402, 0.01338, 0.01258, 0.01177, 0.01102, 0.01047, 0.01006, 0.00975, 0.009496",\
                 "0.0193, 0.01904, 0.0182, 0.01695, 0.01558, 0.01433, 0.01326, 0.01243, 0.01174, 0.01122",\
                 "0.0258, 0.02548, 0.02443, 0.02273, 0.02087, 0.01897, 0.01733, 0.01593, 0.01474, 0.0138");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.002439, 0.007491, 0.01714, 0.03217, 0.05326, 0.08101, 0.116, 0.1586, 0.2095");
          values("0.05871, 0.05879, 0.05891, 0.05908, 0.05922, 0.05936, 0.05954, 0.0597, 0.05991, 0.06006",\
                 "0.05799, 0.0581, 0.05834, 0.05867, 0.05892, 0.05916, 0.05938, 0.0596, 0.05981, 0.05992",\
                 "0.05698, 0.05707, 0.0574, 0.05782, 0.05826, 0.05864, 0.05899, 0.05932, 0.05961, 0.05988",\
                 "0.05653, 0.05656, 0.05678, 0.0571, 0.05751, 0.05797, 0.05845, 0.05886, 0.05924, 0.05957",\
                 "0.05649, 0.05652, 0.05665, 0.0568, 0.0571, 0.0575, 0.05794, 0.05835, 0.0587, 0.05915",\
                 "0.05708, 0.05704, 0.05702, 0.0571, 0.05718, 0.05742, 0.05776, 0.05801, 0.05846, 0.0589",\
                 "0.05895, 0.05883, 0.05856, 0.05822, 0.05812, 0.05811, 0.05812, 0.05829, 0.05856, 0.05878",\
                 "0.06246, 0.06224, 0.06155, 0.06078, 0.06008, 0.05975, 0.0595, 0.0593, 0.05929, 0.05937",\
                 "0.06765, 0.06725, 0.06623, 0.06487, 0.06357, 0.06254, 0.062, 0.06146, 0.0609, 0.0608",\
                 "0.07459, 0.07405, 0.07256, 0.07054, 0.06849, 0.06678, 0.06552, 0.06465, 0.06363, 0.06308");
        }
      }

      internal_power() {
        related_pin : "A3" ;
        when : "!A1&!A2" ;

        fall_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.002439, 0.007491, 0.01714, 0.03217, 0.05326, 0.08101, 0.116, 0.1586, 0.2095");
          values("0.01742, 0.01743, 0.01742, 0.0174, 0.0174, 0.01737, 0.0174, 0.01743, 0.01741, 0.0174",\
                 "0.01684, 0.01685, 0.01682, 0.01679, 0.01679, 0.01683, 0.01681, 0.01682, 0.01683, 0.01684",\
                 "0.01585, 0.01585, 0.0159, 0.0159, 0.01588, 0.01591, 0.01593, 0.01591, 0.0159, 0.01592",\
                 "0.01514, 0.01518, 0.01521, 0.01526, 0.0153, 0.01537, 0.01538, 0.0154, 0.01539, 0.0154",\
                 "0.01524, 0.01519, 0.01517, 0.01516, 0.01517, 0.01519, 0.0152, 0.01523, 0.01525, 0.01522",\
                 "0.01637, 0.01631, 0.01615, 0.01594, 0.01576, 0.01562, 0.01547, 0.01541, 0.01536, 0.01532",\
                 "0.01885, 0.01877, 0.01836, 0.01782, 0.01725, 0.01686, 0.01648, 0.0162, 0.01598, 0.01581",\
                 "0.0228, 0.02255, 0.02191, 0.021, 0.02005, 0.0191, 0.01841, 0.0178, 0.01734, 0.01695",\
                 "0.02824, 0.02798, 0.02704, 0.02568, 0.02416, 0.02272, 0.02145, 0.02038, 0.01953, 0.01882",\
                 "0.0353, 0.03495, 0.03376, 0.03196, 0.02987, 0.02776, 0.02585, 0.02416, 0.02279, 0.02163");
        }

        rise_power(pwr_tin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.002439, 0.007491, 0.01714, 0.03217, 0.05326, 0.08101, 0.116, 0.1586, 0.2095");
          values("0.06837, 0.06847, 0.06862, 0.06876, 0.0689, 0.06906, 0.06922, 0.06938, 0.06959, 0.0698",\
                 "0.06766, 0.06774, 0.06802, 0.06835, 0.06861, 0.06884, 0.06909, 0.06932, 0.06951, 0.06972",\
                 "0.06664, 0.06676, 0.06704, 0.06745, 0.0679, 0.06829, 0.06871, 0.069, 0.06927, 0.06956",\
                 "0.06612, 0.06621, 0.06642, 0.06674, 0.06713, 0.06761, 0.06806, 0.06847, 0.06886, 0.06927",\
                 "0.066, 0.06597, 0.06615, 0.06637, 0.06668, 0.0671, 0.06746, 0.06795, 0.06836, 0.06872",\
                 "0.06608, 0.06609, 0.06612, 0.06635, 0.06654, 0.0668, 0.06717, 0.06756, 0.06795, 0.06848",\
                 "0.06712, 0.06706, 0.06693, 0.06679, 0.06689, 0.06708, 0.0672, 0.06758, 0.06791, 0.06814",\
                 "0.06974, 0.0696, 0.06914, 0.06857, 0.06824, 0.06821, 0.06818, 0.06817, 0.06832, 0.06852",\
                 "0.07448, 0.07418, 0.07326, 0.07217, 0.07111, 0.0704, 0.07019, 0.06991, 0.06967, 0.06963",\
                 "0.08158, 0.08102, 0.07954, 0.07767, 0.07586, 0.07435, 0.07328, 0.07282, 0.07222, 0.07177");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.002439, 0.007491, 0.01714, 0.03217, 0.05326, 0.08101, 0.116, 0.1586, 0.2095");
          values("0.06505, 0.07092, 0.09118, 0.1295, 0.1888, 0.2719, 0.381, 0.5186, 0.6864, 0.8868",\
                 "0.07776, 0.08364, 0.1042, 0.1428, 0.2025, 0.2857, 0.395, 0.5327, 0.7006, 0.9009",\
                 "0.1147, 0.1229, 0.1482, 0.1887, 0.2488, 0.3323, 0.4419, 0.5797, 0.7478, 0.9482",\
                 "0.1442, 0.1565, 0.1954, 0.256, 0.3321, 0.4203, 0.53, 0.6679, 0.8359, 1.036",\
                 "0.1569, 0.1737, 0.2266, 0.3099, 0.4143, 0.5334, 0.6632, 0.8053, 0.9731, 1.173",\
                 "0.1517, 0.1731, 0.2397, 0.3458, 0.4794, 0.6324, 0.7992, 0.9765, 1.164, 1.367",\
                 "0.1272, 0.1529, 0.2337, 0.362, 0.525, 0.7127, 0.9172, 1.136, 1.365, 1.604",\
                 "0.0819, 0.112, 0.2074, 0.3581, 0.5499, 0.7708, 1.016, 1.275, 1.549, 1.834",\
                 "0.0139, 0.0492, 0.1586, 0.3327, 0.5535, 0.809, 1.091, 1.395, 1.712, 2.045",\
                 "-0.0789, -0.0387, 0.0866, 0.2836, 0.534, 0.8241, 1.144, 1.489, 1.854, 2.233");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.002439, 0.007491, 0.01714, 0.03217, 0.05326, 0.08101, 0.116, 0.1586, 0.2095");
          values("0.1968, 0.2204, 0.3028, 0.4582, 0.6993, 1.036, 1.479, 2.036, 2.716, 3.529",\
                 "0.2016, 0.2256, 0.309, 0.4664, 0.7084, 1.046, 1.491, 2.047, 2.728, 3.539",\
                 "0.2402, 0.2632, 0.3458, 0.5035, 0.7474, 1.087, 1.531, 2.091, 2.771, 3.583",\
                 "0.3317, 0.3555, 0.4347, 0.5888, 0.8311, 1.17, 1.616, 2.175, 2.857, 3.67",\
                 "0.4434, 0.4739, 0.5716, 0.7332, 0.9716, 1.309, 1.752, 2.312, 2.993, 3.806",\
                 "0.5697, 0.6061, 0.7231, 0.9176, 1.176, 1.51, 1.951, 2.508, 3.189, 4.001",\
                 "0.7134, 0.7552, 0.8897, 1.115, 1.417, 1.779, 2.219, 2.773, 3.451, 4.261",\
                 "0.8802, 0.9257, 1.076, 1.33, 1.672, 2.085, 2.558, 3.112, 3.787, 4.596",\
                 "1.071, 1.121, 1.286, 1.564, 1.944, 2.406, 2.936, 3.526, 4.203, 5.007",\
                 "1.286, 1.341, 1.52, 1.822, 2.236, 2.744, 3.331, 3.983, 4.696, 5.503");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.002439, 0.007491, 0.01714, 0.03217, 0.05326, 0.08101, 0.116, 0.1586, 0.2095");
          values("0.06955, 0.07934, 0.1128, 0.1771, 0.2774, 0.4181, 0.6037, 0.8369, 1.122, 1.462",\
                 "0.06946, 0.0791, 0.1128, 0.1774, 0.2775, 0.4183, 0.6035, 0.8364, 1.121, 1.46",\
                 "0.0979, 0.1053, 0.1291, 0.1811, 0.2775, 0.4179, 0.6042, 0.8358, 1.121, 1.46",\
                 "0.153, 0.1641, 0.199, 0.254, 0.3242, 0.4327, 0.6053, 0.837, 1.122, 1.46",\
                 "0.2158, 0.2309, 0.2786, 0.3529, 0.445, 0.5518, 0.6778, 0.8628, 1.125, 1.46",\
                 "0.2858, 0.3046, 0.3654, 0.46, 0.5788, 0.7128, 0.8608, 1.02, 1.22, 1.499",\
                 "0.3636, 0.387, 0.46, 0.5748, 0.7202, 0.8874, 1.065, 1.257, 1.46, 1.686",\
                 "0.451, 0.478, 0.5628, 0.6976, 0.8694, 1.066, 1.283, 1.508, 1.747, 1.999",\
                 "0.5472, 0.5784, 0.675, 0.8294, 1.027, 1.256, 1.505, 1.772, 2.049, 2.339",\
                 "0.6534, 0.6896, 0.7966, 0.9716, 1.194, 1.451, 1.738, 2.044, 2.365, 2.695");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.002439, 0.007491, 0.01714, 0.03217, 0.05326, 0.08101, 0.116, 0.1586, 0.2095");
          values("0.3017, 0.3419, 0.4818, 0.7428, 1.148, 1.716, 2.458, 3.395, 4.541, 5.909",\
                 "0.3001, 0.3415, 0.4804, 0.743, 1.148, 1.713, 2.46, 3.395, 4.541, 5.907",\
                 "0.292, 0.3348, 0.4778, 0.7427, 1.148, 1.713, 2.459, 3.395, 4.541, 5.905",\
                 "0.322, 0.3537, 0.4757, 0.7387, 1.148, 1.715, 2.458, 3.397, 4.54, 5.906",\
                 "0.3971, 0.4327, 0.5516, 0.7642, 1.145, 1.715, 2.459, 3.397, 4.541, 5.906",\
                 "0.4792, 0.5214, 0.6544, 0.8814, 1.206, 1.719, 2.458, 3.397, 4.541, 5.908",\
                 "0.562, 0.61, 0.767, 1.024, 1.365, 1.815, 2.479, 3.397, 4.542, 5.906",\
                 "0.6478, 0.7048, 0.8764, 1.169, 1.553, 2.018, 2.609, 3.436, 4.546, 5.907",\
                 "0.7426, 0.7982, 0.9874, 1.313, 1.746, 2.26, 2.854, 3.6, 4.602, 5.917",\
                 "0.8474, 0.9076, 1.106, 1.458, 1.937, 2.508, 3.157, 3.889, 4.803, 5.999");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.002439, 0.007491, 0.01714, 0.03217, 0.05326, 0.08101, 0.116, 0.1586, 0.2095");
          values("0.08687, 0.0933, 0.1153, 0.1557, 0.2169, 0.3014, 0.4116, 0.5499, 0.7183, 0.9186",\
                 "0.0998, 0.1062, 0.1282, 0.1686, 0.2299, 0.3144, 0.4247, 0.5629, 0.7313, 0.9316",\
                 "0.1449, 0.1519, 0.1741, 0.2142, 0.2754, 0.36, 0.4703, 0.6086, 0.777, 0.9774",\
                 "0.1943, 0.2047, 0.2378, 0.2918, 0.3618, 0.4477, 0.5578, 0.6963, 0.8646, 1.065",\
                 "0.2286, 0.2426, 0.2876, 0.3614, 0.4568, 0.5688, 0.6934, 0.8336, 1.002, 1.202",\
                 "0.2461, 0.2635, 0.3204, 0.4138, 0.5362, 0.6795, 0.8388, 1.01, 1.193, 1.395",\
                 "0.2454, 0.2667, 0.335, 0.4477, 0.597, 0.7724, 0.9679, 1.179, 1.403, 1.637",\
                 "0.2257, 0.2503, 0.3304, 0.4627, 0.6374, 0.8453, 1.078, 1.329, 1.595, 1.874",\
                 "0.1847, 0.2132, 0.305, 0.4574, 0.6582, 0.8969, 1.166, 1.458, 1.768, 2.093",\
                 "0.1224, 0.1542, 0.2577, 0.4296, 0.6571, 0.9271, 1.232, 1.564, 1.918, 2.29");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.002439, 0.007491, 0.01714, 0.03217, 0.05326, 0.08101, 0.116, 0.1586, 0.2095");
          values("0.292, 0.3157, 0.3974, 0.5526, 0.7929, 1.13, 1.572, 2.13, 2.81, 3.621",\
                 "0.2992, 0.3234, 0.4063, 0.5628, 0.804, 1.141, 1.584, 2.142, 2.822, 3.633",\
                 "0.3382, 0.3622, 0.4455, 0.6026, 0.8453, 1.184, 1.628, 2.187, 2.868, 3.679",\
                 "0.411, 0.4358, 0.52, 0.6766, 0.9191, 1.258, 1.703, 2.262, 2.945, 3.756",\
                 "0.4979, 0.5266, 0.6224, 0.7895, 1.033, 1.371, 1.816, 2.376, 3.058, 3.87",\
                 "0.6003, 0.6333, 0.7418, 0.9282, 1.191, 1.532, 1.977, 2.535, 3.217, 4.03",\
                 "0.72, 0.7577, 0.8809, 1.089, 1.377, 1.743, 2.192, 2.75, 3.431, 4.244",\
                 "0.8633, 0.9057, 1.042, 1.272, 1.587, 1.982, 2.46, 3.025, 3.705, 4.516",\
                 "1.034, 1.08, 1.23, 1.481, 1.823, 2.25, 2.76, 3.355, 4.042, 4.852",\
                 "1.23, 1.281, 1.444, 1.716, 2.086, 2.545, 3.088, 3.719, 4.438, 5.257");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.002439, 0.007491, 0.01714, 0.03217, 0.05326, 0.08101, 0.116, 0.1586, 0.2095");
          values("0.0944, 0.1047, 0.139, 0.2036, 0.3037, 0.4435, 0.6282, 0.8607, 1.145, 1.482",\
                 "0.0938, 0.1042, 0.1385, 0.2034, 0.3042, 0.4445, 0.6279, 0.8601, 1.145, 1.483",\
                 "0.106, 0.1139, 0.1419, 0.2031, 0.3038, 0.4443, 0.6285, 0.861, 1.144, 1.483",\
                 "0.1633, 0.1737, 0.2072, 0.261, 0.3341, 0.4519, 0.6289, 0.8602, 1.145, 1.483",\
                 "0.2283, 0.2433, 0.2883, 0.3605, 0.4514, 0.5568, 0.6888, 0.8806, 1.148, 1.482",\
                 "0.299, 0.3178, 0.3762, 0.469, 0.585, 0.7182, 0.865, 1.026, 1.233, 1.516",\
                 "0.3752, 0.3976, 0.4694, 0.5832, 0.7264, 0.8922, 1.069, 1.261, 1.465, 1.696",\
                 "0.4576, 0.4844, 0.5686, 0.703, 0.8742, 1.072, 1.285, 1.512, 1.751, 2.002",\
                 "0.5446, 0.5758, 0.6752, 0.8318, 1.028, 1.261, 1.509, 1.774, 2.052, 2.343",\
                 "0.6372, 0.674, 0.7862, 0.9656, 1.192, 1.451, 1.741, 2.046, 2.366, 2.695");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.002439, 0.007491, 0.01714, 0.03217, 0.05326, 0.08101, 0.116, 0.1586, 0.2095");
          values("0.3078, 0.3467, 0.4834, 0.7422, 1.147, 1.713, 2.458, 3.396, 4.538, 5.906",\
                 "0.3085, 0.3467, 0.4823, 0.7441, 1.147, 1.713, 2.458, 3.396, 4.539, 5.905",\
                 "0.3088, 0.3471, 0.483, 0.7428, 1.147, 1.713, 2.459, 3.395, 4.541, 5.907",\
                 "0.3313, 0.3644, 0.4892, 0.7435, 1.147, 1.714, 2.458, 3.396, 4.541, 5.904",\
                 "0.3867, 0.4236, 0.5466, 0.7726, 1.151, 1.714, 2.458, 3.395, 4.542, 5.906",\
                 "0.4542, 0.492, 0.6214, 0.858, 1.207, 1.729, 2.459, 3.396, 4.54, 5.906",\
                 "0.5372, 0.577, 0.713, 0.9592, 1.319, 1.808, 2.489, 3.4, 4.54, 5.906",\
                 "0.6288, 0.6716, 0.8152, 1.074, 1.449, 1.949, 2.591, 3.446, 4.549, 5.906",\
                 "0.7304, 0.7748, 0.927, 1.198, 1.592, 2.109, 2.762, 3.57, 4.612, 5.919",\
                 "0.8394, 0.8868, 1.045, 1.331, 1.745, 2.287, 2.957, 3.77, 4.761, 6.005");
        }
      }

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

        cell_fall(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.002439, 0.007491, 0.01714, 0.03217, 0.05326, 0.08101, 0.116, 0.1586, 0.2095");
          values("0.08955, 0.09686, 0.1216, 0.166, 0.2316, 0.3198, 0.4331, 0.5738, 0.744, 0.9458",\
                 "0.1024, 0.1096, 0.1341, 0.1783, 0.2436, 0.3318, 0.445, 0.5857, 0.7559, 0.9577",\
                 "0.1516, 0.1586, 0.1816, 0.2239, 0.2883, 0.3761, 0.4893, 0.6299, 0.8002, 1.002",\
                 "0.2126, 0.2228, 0.2552, 0.3083, 0.3773, 0.4641, 0.5765, 0.7169, 0.887, 1.089",\
                 "0.2614, 0.2747, 0.318, 0.3888, 0.4818, 0.5914, 0.7138, 0.8542, 1.024, 1.226",\
                 "0.2946, 0.3113, 0.3655, 0.4549, 0.5725, 0.7118, 0.8674, 1.036, 1.216, 1.419",\
                 "0.3112, 0.3314, 0.3955, 0.5026, 0.6456, 0.8153, 1.005, 1.212, 1.432, 1.664",\
                 "0.3106, 0.3334, 0.4085, 0.5329, 0.7001, 0.9001, 1.125, 1.371, 1.632, 1.907",\
                 "0.2908, 0.3171, 0.4022, 0.5453, 0.7347, 0.9642, 1.225, 1.509, 1.813, 2.133",\
                 "0.2517, 0.2811, 0.3762, 0.5361, 0.7507, 1.008, 1.302, 1.626, 1.972, 2.338");
        }

        cell_rise(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.002439, 0.007491, 0.01714, 0.03217, 0.05326, 0.08101, 0.116, 0.1586, 0.2095");
          values("0.3272, 0.3509, 0.4327, 0.5878, 0.8283, 1.165, 1.608, 2.165, 2.846, 3.656",\
                 "0.3375, 0.3616, 0.4446, 0.6009, 0.8426, 1.18, 1.623, 2.18, 2.862, 3.672",\
                 "0.38, 0.4038, 0.4871, 0.6445, 0.8869, 1.226, 1.67, 2.228, 2.91, 3.721",\
                 "0.452, 0.4762, 0.5593, 0.7158, 0.9583, 1.297, 1.742, 2.302, 2.983, 3.795",\
                 "0.5351, 0.5618, 0.6526, 0.8145, 1.057, 1.396, 1.84, 2.4, 3.083, 3.894",\
                 "0.6226, 0.6521, 0.7519, 0.9287, 1.185, 1.526, 1.97, 2.53, 3.211, 4.024",\
                 "0.7192, 0.7519, 0.8609, 1.053, 1.328, 1.689, 2.138, 2.697, 3.378, 4.19",\
                 "0.8327, 0.8686, 0.9867, 1.193, 1.487, 1.87, 2.342, 2.909, 3.589, 4.4",\
                 "0.9667, 1.007, 1.136, 1.356, 1.667, 2.071, 2.568, 3.159, 3.85, 4.66",\
                 "1.123, 1.167, 1.308, 1.545, 1.873, 2.296, 2.815, 3.434, 4.152, 4.974");
        }

        fall_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.002439, 0.007491, 0.01714, 0.03217, 0.05326, 0.08101, 0.116, 0.1586, 0.2095");
          values("0.1146, 0.1259, 0.1635, 0.2317, 0.3337, 0.4755, 0.6586, 0.8908, 1.173, 1.511",\
                 "0.1122, 0.1237, 0.1618, 0.2304, 0.333, 0.4743, 0.6587, 0.8915, 1.174, 1.512",\
                 "0.119, 0.1275, 0.1592, 0.2255, 0.3304, 0.4727, 0.6583, 0.8907, 1.174, 1.511",\
                 "0.1807, 0.1905, 0.2233, 0.2758, 0.3513, 0.4757, 0.6575, 0.8905, 1.174, 1.511",\
                 "0.2496, 0.2639, 0.3084, 0.3776, 0.4675, 0.5702, 0.7054, 0.9038, 1.175, 1.51",\
                 "0.3244, 0.3424, 0.4, 0.4892, 0.6026, 0.7322, 0.8772, 1.038, 1.25, 1.538",\
                 "0.4034, 0.4252, 0.4952, 0.6052, 0.7456, 0.9052, 1.082, 1.272, 1.473, 1.706",\
                 "0.4894, 0.516, 0.5966, 0.7304, 0.8934, 1.086, 1.297, 1.522, 1.76, 2.011",\
                 "0.5796, 0.6096, 0.7062, 0.8552, 1.049, 1.275, 1.522, 1.785, 2.062, 2.349",\
                 "0.6748, 0.7096, 0.8182, 0.9928, 1.209, 1.467, 1.753, 2.055, 2.372, 2.703");
        }

        rise_transition(tmg_ntin_oload_10x10) {
          index_1("0.02, 0.06127, 0.2062, 0.4828, 0.9139, 1.519, 2.315, 3.317, 4.541, 6");
          index_2("0.001, 0.002439, 0.007491, 0.01714, 0.03217, 0.05326, 0.08101, 0.116, 0.1586, 0.2095");
          values("0.3083, 0.347, 0.483, 0.743, 1.147, 1.713, 2.458, 3.395, 4.54, 5.907",\
                 "0.3087, 0.3469, 0.4832, 0.7432, 1.147, 1.714, 2.459, 3.396, 4.539, 5.905",\
                 "0.3091, 0.3477, 0.4831, 0.7437, 1.147, 1.714, 2.458, 3.396, 4.54, 5.905",\
                 "0.3183, 0.3543, 0.4854, 0.7433, 1.147, 1.714, 2.458, 3.395, 4.54, 5.904",\
                 "0.3614, 0.3976, 0.5226, 0.7602, 1.149, 1.716, 2.459, 3.395, 4.54, 5.905",\
                 "0.4078, 0.4472, 0.5804, 0.825, 1.19, 1.725, 2.459, 3.396, 4.542, 5.903",\
                 "0.4638, 0.504, 0.6428, 0.9008, 1.279, 1.79, 2.485, 3.399, 4.542, 5.907",\
                 "0.5362, 0.5766, 0.7176, 0.9822, 1.376, 1.904, 2.573, 3.444, 4.551, 5.905",\
                 "0.6316, 0.6708, 0.809, 1.074, 1.479, 2.026, 2.715, 3.557, 4.618, 5.929",\
                 "0.7422, 0.7822, 0.92, 1.181, 1.59, 2.151, 2.865, 3.726, 4.753, 6.012");
        }
      }
    }
  }

