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 (XOR2X1) {
    area: 1.0;
    cell_leakage_power: 0.1173;
    pin (B) {
      capacitance: 0.012276358158465816;
      direction: input;
      fall_capacitance: 0.013427310434186409;
      rise_capacitance: 0.011125405882745222;
    }
    pin (A) {
      capacitance: 0.00749442073476893;
      direction: input;
      fall_capacitance: 0.009072357734937673;
      rise_capacitance: 0.005916483734600188;
    }
    pin (Y) {
      direction: output;
      function: "(!(A & B + !A & !B))";
      timing () {
        related_pin: "B";
        timing_sense: non_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.014892, 0.026098, 0.032153, 0.035628, 0.047318", \
            "0.092224, 0.096655, 0.101443, 0.112719, 0.182767", \
            "0.169673, 0.171668, 0.175532, 0.183060, 0.283111", \
            "0.324128, 0.324946, 0.326965, 0.330982, 0.455128", \
            "1.563499, 1.563195, 1.562797, 1.561380, 1.609543"
          );
        }
        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.024062, 0.032769, 0.038614, 0.047550, 0.088606", \
            "0.116083, 0.118915, 0.123597, 0.135586, 0.246157", \
            "0.209677, 0.211048, 0.214246, 0.222844, 0.363632", \
            "0.398099, 0.398428, 0.399744, 0.404595, 0.555144", \
            "1.909496, 1.908653, 1.907693, 1.906646, 1.962945"
          );
        }
        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.025254, 0.046375, 0.039294, 0.072021, 0.273173", \
            "0.133780, 0.132393, 0.135503, 0.147696, 0.398969", \
            "0.244610, 0.245358, 0.245256, 0.247565, 0.499327", \
            "0.469332, 0.469791, 0.469256, 0.469907, 0.636792", \
            "2.271962, 2.271926, 2.271949, 2.271912, 2.273340"
          );
        }
        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.030994, 0.031460, 0.039808, 0.071119, 0.265648", \
            "0.158547, 0.158367, 0.159273, 0.166528, 0.433196", \
            "0.288225, 0.287669, 0.287878, 0.288591, 0.539227", \
            "0.548600, 0.548684, 0.548694, 0.548722, 0.704892", \
            "2.640937, 2.640941, 2.640938, 2.640974, 2.640919"
          );
        }
      }
      timing () {
        related_pin: "A";
        timing_sense: non_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.012892, 0.017730, 0.023813, 0.027360, 0.044820", \
            "0.088467, 0.084827, 0.087953, 0.101073, 0.177048", \
            "0.165423, 0.159431, 0.159037, 0.166450, 0.271959", \
            "0.319577, 0.311467, 0.307870, 0.308677, 0.436355", \
            "1.558626, 1.548309, 1.540221, 1.529215, 1.518702"
          );
        }
        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.016957, 0.021051, 0.026086, 0.031933, 0.049325", \
            "0.105617, 0.101524, 0.101659, 0.109154, 0.189216", \
            "0.199262, 0.192615, 0.189350, 0.188747, 0.294117", \
            "0.387542, 0.379182, 0.372626, 0.364699, 0.471910", \
            "1.898845, 1.888610, 1.878187, 1.859516, 1.755959"
          );
        }
        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.023742, 0.042643, 0.072286, 0.090530, 0.566724", \
            "0.132629, 0.134268, 0.137045, 0.160242, 0.603489", \
            "0.244817, 0.245637, 0.244852, 0.253117, 0.662530", \
            "0.469395, 0.469226, 0.469550, 0.469622, 0.758597", \
            "2.271920, 2.272019, 2.271961, 2.271949, 2.283313"
          );
        }
        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.029158, 0.032762, 0.049130, 0.090068, 0.563023", \
            "0.158384, 0.157282, 0.158756, 0.175473, 0.633346", \
            "0.287824, 0.288245, 0.288387, 0.291586, 0.711223", \
            "0.548431, 0.548524, 0.548547, 0.548816, 0.844417", \
            "2.640867, 2.640887, 2.640922, 2.640988, 2.646707"
          );
        }
      }
    }
  }
}