library (ls05_stdcells) {
  capacitive_load_unit (1.0, pf);
  current_unit: "1uA";
  default_operating_conditions: typical;
  delay_model: table_lookup;
  in_place_swap_mode: match_footprint;
  input_threshold_pct_fall: 50.0;
  input_threshold_pct_rise: 50.0;
  leakage_power_unit: "1nW";
  nom_process: 1.0;
  nom_temperature: 25.0;
  nom_voltage: 5.0;
  output_threshold_pct_fall: 50.0;
  output_threshold_pct_rise: 50.0;
  pulling_resistance_unit: "1kohm";
  slew_lower_threshold_pct_fall: 20.0;
  slew_lower_threshold_pct_rise: 20.0;
  slew_upper_threshold_pct_fall: 80.0;
  slew_upper_threshold_pct_rise: 80.0;
  time_unit: "1ns";
  voltage_unit: "1V";
  operating_conditions (typical) {
    process: 1.0;
    temperature: 25.0;
    voltage: 5.0;
  }
  lu_table_template (delay_template_5x1) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
    );
    variable_1: input_net_transition;
  }
  lu_table_template (delay_template_5x5) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
    );
    variable_1: total_output_net_capacitance;
    variable_2: input_net_transition;
  }
  lu_table_template (delay_template_5x6) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: total_output_net_capacitance;
    variable_2: input_net_transition;
  }
  lu_table_template (delay_template_6x1) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: input_net_transition;
  }
  lu_table_template (delay_template_6x6) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: total_output_net_capacitance;
    variable_2: input_net_transition;
  }
  power_lut_template (energy_template_5x5) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
    );
    variable_1: total_output_net_capacitance;
    variable_2: input_transition_time;
  }
  power_lut_template (energy_template_5x6) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: total_output_net_capacitance;
    variable_2: input_transition_time;
  }
  power_lut_template (energy_template_6x6) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: total_output_net_capacitance;
    variable_2: input_transition_time;
  }
  lu_table_template (hold_template_3x5) {
    index_1 (
      "1000.0, 1001.0, 1002.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
    );
    variable_1: related_pin_transition;
    variable_2: constrained_pin_transition;
  }
  lu_table_template (hold_template_3x6) {
    index_1 (
      "1000.0, 1001.0, 1002.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: related_pin_transition;
    variable_2: constrained_pin_transition;
  }
  power_lut_template (passive_energy_template_5x1) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
    );
    variable_1: input_transition_time;
  }
  power_lut_template (passive_energy_template_6x1) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: input_transition_time;
  }
  lu_table_template (recovery_template_3x6) {
    index_1 (
      "1000.0, 1001.0, 1002.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: related_pin_transition;
    variable_2: constrained_pin_transition;
  }
  lu_table_template (recovery_template_6x6) {
    index_1 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: related_pin_transition;
    variable_2: constrained_pin_transition;
  }
  lu_table_template (removal_template_3x6) {
    index_1 (
      "1000.0, 1001.0, 1002.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: related_pin_transition;
    variable_2: constrained_pin_transition;
  }
  lu_table_template (setup_template_3x5) {
    index_1 (
      "1000.0, 1001.0, 1002.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0"
    );
    variable_1: related_pin_transition;
    variable_2: constrained_pin_transition;
  }
  lu_table_template (setup_template_3x6) {
    index_1 (
      "1000.0, 1001.0, 1002.0"
    );
    index_2 (
      "1000.0, 1001.0, 1002.0, 1003.0, 1004.0, 1005.0"
    );
    variable_1: related_pin_transition;
    variable_2: constrained_pin_transition;
  }
  cell (NAND3X1) {
    area: 1.0;
    cell_leakage_power: 0.1173;
    pin (C) {
      capacitance: 0.0049475602037443766;
      direction: input;
      fall_capacitance: 0.00574550349282349;
      rise_capacitance: 0.004149616914665264;
    }
    pin (B) {
      capacitance: 0.0056720092179016355;
      direction: input;
      fall_capacitance: 0.006513434336879236;
      rise_capacitance: 0.0048305840989240345;
    }
    pin (A) {
      capacitance: 0.00639281784839878;
      direction: input;
      fall_capacitance: 0.00785033270340369;
      rise_capacitance: 0.0049353029933938706;
    }
    pin (Y) {
      direction: output;
      function: "(!A & B & C)";
      timing () {
        related_pin: "C";
        timing_sense: negative_unate;
        cell_rise (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.006743, 0.005016, 0.001565, -0.011749, -0.174318", \
            "0.047706, 0.044014, 0.046942, 0.046061, -0.062176", \
            "0.091627, 0.083788, 0.082464, 0.085303, 0.015523", \
            "0.179686, 0.168911, 0.161469, 0.156671, 0.140314", \
            "0.884745, 0.871646, 0.855834, 0.827730, 0.787692"
          );
        }
        cell_fall (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.021450, 0.026780, 0.036138, 0.051156, 0.240752", \
            "0.141321, 0.138431, 0.140867, 0.154160, 0.407189", \
            "0.261734, 0.256641, 0.255261, 0.261805, 0.519595", \
            "0.501953, 0.495945, 0.491598, 0.490071, 0.706700", \
            "2.425213, 2.418226, 2.409901, 2.395913, 2.391369"
          );
        }
        rise_transition (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.011465, 0.029932, 0.047360, 0.089549, 0.523956", \
            "0.080202, 0.084521, 0.100586, 0.143486, 0.643649", \
            "0.152614, 0.153064, 0.163285, 0.192620, 0.727829", \
            "0.292789, 0.291706, 0.294483, 0.312038, 0.856442", \
            "1.424319, 1.424428, 1.424111, 1.424077, 1.684916"
          );
        }
        fall_transition (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.023400, 0.030385, 0.036793, 0.077633, 0.501790", \
            "0.190321, 0.189918, 0.190315, 0.199221, 0.487718", \
            "0.356855, 0.356030, 0.356029, 0.356551, 0.562588", \
            "0.690022, 0.690543, 0.690506, 0.690555, 0.811600", \
            "3.365843, 3.365797, 3.365863, 3.365868, 3.365810"
          );
        }
      }
      timing () {
        related_pin: "B";
        timing_sense: negative_unate;
        cell_rise (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.008334, 0.007216, 0.005700, -0.003192, -0.138009", \
            "0.049525, 0.045812, 0.049273, 0.049818, -0.030773", \
            "0.093522, 0.085734, 0.084386, 0.088138, 0.042191", \
            "0.181477, 0.170617, 0.163356, 0.158916, 0.163222", \
            "0.886560, 0.873387, 0.857606, 0.829593, 0.796379"
          );
        }
        cell_fall (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.023842, 0.028921, 0.038612, 0.052716, 0.222042", \
            "0.141887, 0.143909, 0.149119, 0.164220, 0.404600", \
            "0.261324, 0.261760, 0.265215, 0.276500, 0.527421", \
            "0.501628, 0.500687, 0.501928, 0.509042, 0.732336", \
            "2.424686, 2.422462, 2.420742, 2.419460, 2.508042"
          );
        }
        rise_transition (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.014708, 0.032599, 0.052399, 0.096681, 0.513554", \
            "0.084340, 0.087175, 0.104373, 0.147370, 0.652229", \
            "0.155755, 0.155756, 0.166557, 0.196533, 0.737741", \
            "0.295954, 0.295123, 0.297528, 0.315324, 0.869188", \
            "1.427488, 1.427517, 1.427300, 1.427279, 1.694092"
          );
        }
        fall_transition (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.023791, 0.028479, 0.033736, 0.068750, 0.456314", \
            "0.190317, 0.190047, 0.189241, 0.193568, 0.414810", \
            "0.356056, 0.356011, 0.356369, 0.355755, 0.487881", \
            "0.690508, 0.690541, 0.690522, 0.690519, 0.753026", \
            "3.365855, 3.365789, 3.365799, 3.365867, 3.365823"
          );
        }
      }
      timing () {
        related_pin: "A";
        timing_sense: negative_unate;
        cell_rise (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.008972, 0.008268, 0.008643, 0.001970, -0.101488", \
            "0.051257, 0.047583, 0.051333, 0.053538, -0.001472", \
            "0.095356, 0.087565, 0.086323, 0.091056, 0.070441", \
            "0.183312, 0.172348, 0.165227, 0.161181, 0.187191", \
            "0.888366, 0.875180, 0.859388, 0.831456, 0.805980"
          );
        }
        cell_fall (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.020795, 0.029793, 0.038560, 0.050262, 0.188785", \
            "0.138390, 0.142029, 0.147535, 0.160844, 0.367966", \
            "0.257617, 0.259067, 0.261812, 0.272019, 0.491794", \
            "0.497805, 0.497186, 0.497402, 0.502803, 0.696298", \
            "2.420816, 2.418080, 2.414398, 2.409953, 2.462120"
          );
        }
        rise_transition (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.017292, 0.034566, 0.057624, 0.100464, 0.554013", \
            "0.086449, 0.091297, 0.109325, 0.151351, 0.684952", \
            "0.158837, 0.158653, 0.169957, 0.201757, 0.763039", \
            "0.298884, 0.298357, 0.300621, 0.319480, 0.888696", \
            "1.430569, 1.430607, 1.430474, 1.430460, 1.704460"
          );
        }
        fall_transition (delay_template_5x5) {
          index_1 (
            "0.000500, 0.050000, 0.100000, 0.200000, 1.000000"
          );
          index_2 (
            "0.010000, 0.050000, 0.100000, 0.200000, 1.500000"
          );
          values (
            "0.024001, 0.027232, 0.035786, 0.067592, 0.495578", \
            "0.190876, 0.191071, 0.189818, 0.194805, 0.453280", \
            "0.356122, 0.356782, 0.355698, 0.356058, 0.506856", \
            "0.690537, 0.690105, 0.690542, 0.690408, 0.762544", \
            "3.365836, 3.365860, 3.365857, 3.365836, 3.365849"
          );
        }
      }
    }
  }
}