Generated by Cython 0.29.13

Yellow lines hint at Python interaction.
Click on a line that starts with a "+" to see the C code that Cython generated for it.

Raw output: CACompute.cpp

+0001: # distutils: language=c++
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0002: 
+0003: import re
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_re, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_re, __pyx_t_1) < 0) __PYX_ERR(0, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0004: from libcpp.vector cimport vector
 0005: from libcpp.pair cimport pair
 0006: from libcpp.map cimport map
 0007: from libcpp cimport bool
 0008: from libcpp.string cimport string
 0009: from libcpp.unordered_map cimport unordered_map
 0010: from libcpp.unordered_set cimport unordered_set
 0011: 
 0012: cdef vector[vector[int]] colour_palette
 0013: cdef string rule_name
 0014: cdef string rule_space, bsconditions
 0015: cdef int n_states
 0016: cdef vector[unordered_map[pair[int, int], int]] index_map
 0017: cdef vector[vector[int]] state_weights
 0018: cdef vector[vector[pair[int, int]]] neighbourhood, original_neighbourhood
 0019: cdef vector[vector[int]] neighbourhood_weights
 0020: cdef int alternating_period, birth_state
 0021: cdef vector[unordered_set[int]] birth, survival, forcing, killing, living, \
 0022:     regen_birth, regen_survival, activity_list, other_birth, other_survival, \
 0023:     other_regen_birth, other_regen_survival, other_forcing, other_killing, other_living,
 0024: 
 0025: cdef extern from "compute.cpp":
 0026:     pass
 0027: 
+0028: cpdef load(filename):
static PyObject *__pyx_pw_9CACompute_1load(PyObject *__pyx_self, PyObject *__pyx_v_filename); /*proto*/
static PyObject *__pyx_f_9CACompute_load(PyObject *__pyx_v_filename, CYTHON_UNUSED int __pyx_skip_dispatch) {
  std::string __pyx_v_rule;
  int __pyx_v_neighbourhood_count;
  std::vector<std::vector<int> >  __pyx_v_current_neighbourhood_weights;
  std::vector<std::vector<std::vector<int> > >  __pyx_v_unflattened_neighbourhood_weights;
  std::unordered_set<std::pair<int,int> >  __pyx_v_set_neighbourhood;
  std::pair<int,int>  __pyx_v_neighbour;
  std::pair<int,int>  __pyx_v_neighbour2;
  bool __pyx_v_parsing_neighbourhood;
  int __pyx_v_colour_palette_count;
  std::vector<int>  __pyx_v_temp;
  bool __pyx_v_parsing_colour_palette;
  std::string __pyx_v_section;
  std::vector<std::string>  __pyx_v_rule_string;
  int __pyx_v_neighbourhood_range;
  int __pyx_v_i;
  int __pyx_v_j;
  std::vector<std::vector<int> >  __pyx_v_weights;
  std::vector<std::pair<int,int> >  __pyx_v_pair_temp;
  std::unordered_map<std::pair<int,int> ,int>  __pyx_v_map_temp;
  std::vector<int>  __pyx_v_k;
  int __pyx_v_num;
  int __pyx_v_alt;
  std::unordered_set<int>  __pyx_v_set_temp;
  std::vector<int>  __pyx_v_extended;
  PyObject *__pyx_v_file = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_y = NULL;
  std::string __pyx_v_individual_rule_string;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("load", 0);
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_36);
  __Pyx_XDECREF(__pyx_t_37);
  __Pyx_AddTraceback("CACompute.load", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_file);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_y);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9CACompute_1load(PyObject *__pyx_self, PyObject *__pyx_v_filename); /*proto*/
static PyObject *__pyx_pw_9CACompute_1load(PyObject *__pyx_self, PyObject *__pyx_v_filename) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("load (wrapper)", 0);
  __pyx_r = __pyx_pf_9CACompute_load(__pyx_self, ((PyObject *)__pyx_v_filename));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9CACompute_load(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_filename) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("load", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_9CACompute_load(__pyx_v_filename, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 28, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("CACompute.load", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 0029:     global colour_palette, rule_name, rule_space, n_states, state_weights, neighbourhood, neighbourhood_weights,\
 0030:         alternating_period, birth, survival, forcing, killing, living, \
 0031:         regen_birth, regen_survival, activity_list, birth_state, other_birth, other_survival, bsconditions, \
 0032:         original_neighbourhood, index_map, other_forcing, other_killing, other_living
 0033: 
+0034:     colour_palette.clear()
  __pyx_v_9CACompute_colour_palette.clear();
+0035:     rule_name = b""
  __pyx_t_1 = __pyx_convert_string_from_py_std__in_string(__pyx_kp_b_); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 35, __pyx_L1_error)
  __pyx_v_9CACompute_rule_name = __pyx_t_1;
+0036:     rule_space = b""
  __pyx_t_1 = __pyx_convert_string_from_py_std__in_string(__pyx_kp_b_); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 36, __pyx_L1_error)
  __pyx_v_9CACompute_rule_space = __pyx_t_1;
+0037:     bsconditions = b""
  __pyx_t_1 = __pyx_convert_string_from_py_std__in_string(__pyx_kp_b_); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 37, __pyx_L1_error)
  __pyx_v_9CACompute_bsconditions = __pyx_t_1;
+0038:     n_states = 0
  __pyx_v_9CACompute_n_states = 0;
+0039:     state_weights.clear()
  __pyx_v_9CACompute_state_weights.clear();
+0040:     neighbourhood.clear()
  __pyx_v_9CACompute_neighbourhood.clear();
+0041:     neighbourhood_weights.clear()
  __pyx_v_9CACompute_neighbourhood_weights.clear();
+0042:     original_neighbourhood.clear()
  __pyx_v_9CACompute_original_neighbourhood.clear();
+0043:     alternating_period = 0
  __pyx_v_9CACompute_alternating_period = 0;
+0044:     birth_state = 0
  __pyx_v_9CACompute_birth_state = 0;
+0045:     birth.clear()
  __pyx_v_9CACompute_birth.clear();
+0046:     survival.clear()
  __pyx_v_9CACompute_survival.clear();
+0047:     forcing.clear()
  __pyx_v_9CACompute_forcing.clear();
+0048:     killing.clear()
  __pyx_v_9CACompute_killing.clear();
+0049:     living.clear()
  __pyx_v_9CACompute_living.clear();
+0050:     index_map.clear()
  __pyx_v_9CACompute_index_map.clear();
+0051:     activity_list.clear()
  __pyx_v_9CACompute_activity_list.clear();
+0052:     regen_birth.clear()
  __pyx_v_9CACompute_regen_birth.clear();
+0053:     regen_survival.clear()
  __pyx_v_9CACompute_regen_survival.clear();
+0054:     other_birth.clear()
  __pyx_v_9CACompute_other_birth.clear();
+0055:     other_survival.clear()
  __pyx_v_9CACompute_other_survival.clear();
+0056:     other_forcing.clear()
  __pyx_v_9CACompute_other_forcing.clear();
+0057:     other_killing.clear()
  __pyx_v_9CACompute_other_killing.clear();
+0058:     other_living.clear()
  __pyx_v_9CACompute_other_living.clear();
+0059:     other_regen_birth.clear()
  __pyx_v_9CACompute_other_regen_birth.clear();
+0060:     other_regen_survival.clear()
  __pyx_v_9CACompute_other_regen_survival.clear();
 0061: 
 0062:     cdef string rule
 0063: 
+0064:     cdef int neighbourhood_count = 0
  __pyx_v_neighbourhood_count = 0;
 0065:     cdef vector[vector[int]] current_neighbourhood_weights
 0066:     cdef vector[vector[vector[int]]] unflattened_neighbourhood_weights
 0067:     cdef unordered_set[pair[int, int]] set_neighbourhood
 0068:     cdef pair[int, int] neighbour, neighbour2
+0069:     cdef bool parsing_neighbourhood = False
  __pyx_v_parsing_neighbourhood = 0;
 0070: 
+0071:     cdef int colour_palette_count = 0
  __pyx_v_colour_palette_count = 0;
 0072:     cdef vector[int] temp
+0073:     cdef bool parsing_colour_palette = False
  __pyx_v_parsing_colour_palette = 0;
 0074: 
 0075:     cdef string section
 0076:     cdef vector[string] rule_string
 0077: 
+0078:     cdef int neighbourhood_range = 0
  __pyx_v_neighbourhood_range = 0;
 0079: 
 0080:     cdef int i, j
 0081:     cdef vector[vector[int]] weights
 0082:     cdef vector[pair[int, int]] pair_temp
 0083:     cdef unordered_map[pair[int, int], int] map_temp
 0084: 
 0085:     cdef vector[int] k
 0086: 
 0087:     cdef int num, alt
 0088:     cdef unordered_set[int] set_temp
 0089:     cdef vector[int] extended
 0090: 
+0091:     file = open(filename, "r")
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 91, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_filename);
  __Pyx_GIVEREF(__pyx_v_filename);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_filename);
  __Pyx_INCREF(__pyx_n_u_r);
  __Pyx_GIVEREF(__pyx_n_u_r);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_r);
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_open, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 91, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_file = __pyx_t_3;
  __pyx_t_3 = 0;
+0092:     rule = file.read().encode("utf-8")
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_file, __pyx_n_s_read); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 92, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 92, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_encode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 92, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_2, __pyx_kp_u_utf_8) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_u_utf_8);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 92, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_1 = __pyx_convert_string_from_py_std__in_string(__pyx_t_3); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 92, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_rule = __pyx_t_1;
 0093: 
+0094:     for section in rule.split(b"\n"):
  __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_rule); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 94, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 94, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_kp_b__2) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_b__2);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 94, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
    __pyx_t_2 = __pyx_t_3; __Pyx_INCREF(__pyx_t_2); __pyx_t_6 = 0;
    __pyx_t_7 = NULL;
  } else {
    __pyx_t_6 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 94, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_7 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 94, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  for (;;) {
    if (likely(!__pyx_t_7)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 94, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 94, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
      } else {
        if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 94, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 94, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
      }
    } else {
      __pyx_t_3 = __pyx_t_7(__pyx_t_2);
      if (unlikely(!__pyx_t_3)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 94, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    __pyx_t_1 = __pyx_convert_string_from_py_std__in_string(__pyx_t_3); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 94, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_section = __pyx_t_1;
/* … */
    __pyx_L3_continue:;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0095:         if section.find(b"Neighbourhood:") != -1 or section.find(b"#") != -1:
    __pyx_t_9 = ((__pyx_v_section.find(__pyx_k_Neighbourhood) != -1L) != 0);
    if (!__pyx_t_9) {
    } else {
      __pyx_t_8 = __pyx_t_9;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_9 = ((__pyx_v_section.find(__pyx_k__3) != -1L) != 0);
    __pyx_t_8 = __pyx_t_9;
    __pyx_L6_bool_binop_done:;
    if (__pyx_t_8) {
/* … */
    }
+0096:             neighbourhood_count = 0
      __pyx_v_neighbourhood_count = 0;
+0097:             parsing_neighbourhood = True
      __pyx_v_parsing_neighbourhood = 1;
+0098:             current_neighbourhood_weights.clear()
      __pyx_v_current_neighbourhood_weights.clear();
+0099:             continue
      goto __pyx_L3_continue;
+0100:         elif parsing_neighbourhood:
    __pyx_t_8 = (__pyx_v_parsing_neighbourhood != 0);
    if (__pyx_t_8) {
/* … */
    }
+0101:             temp.clear()
      __pyx_v_temp.clear();
+0102:             for x in section.split(b","):
      __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_section); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 102, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_split); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 102, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_4)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
        }
      }
      __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_b__4);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 102, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
        __pyx_t_5 = __pyx_t_3; __Pyx_INCREF(__pyx_t_5); __pyx_t_10 = 0;
        __pyx_t_11 = NULL;
      } else {
        __pyx_t_10 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 102, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_11 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 102, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (likely(!__pyx_t_11)) {
          if (likely(PyList_CheckExact(__pyx_t_5))) {
            if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_5)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_3 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 102, __pyx_L1_error)
            #else
            __pyx_t_3 = PySequence_ITEM(__pyx_t_5, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 102, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            #endif
          } else {
            if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 102, __pyx_L1_error)
            #else
            __pyx_t_3 = PySequence_ITEM(__pyx_t_5, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 102, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            #endif
          }
        } else {
          __pyx_t_3 = __pyx_t_11(__pyx_t_5);
          if (unlikely(!__pyx_t_3)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 102, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_3);
        }
        __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3);
        __pyx_t_3 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0103:                 temp.push_back(int(x))
        __pyx_t_3 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 103, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 103, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        try {
          __pyx_v_temp.push_back(__pyx_t_12);
        } catch(...) {
          __Pyx_CppExn2PyErr();
          __PYX_ERR(0, 103, __pyx_L1_error)
        }
+0104:             current_neighbourhood_weights.push_back(temp)
      try {
        __pyx_v_current_neighbourhood_weights.push_back(__pyx_v_temp);
      } catch(...) {
        __Pyx_CppExn2PyErr();
        __PYX_ERR(0, 104, __pyx_L1_error)
      }
+0105:             neighbourhood_count += 1
      __pyx_v_neighbourhood_count = (__pyx_v_neighbourhood_count + 1);
+0106:             if neighbourhood_count == neighbourhood_range * 2 + 1:
      __pyx_t_8 = ((__pyx_v_neighbourhood_count == ((__pyx_v_neighbourhood_range * 2) + 1)) != 0);
      if (__pyx_t_8) {
/* … */
      }
+0107:                 parsing_neighbourhood = False
        __pyx_v_parsing_neighbourhood = 0;
+0108:                 unflattened_neighbourhood_weights.push_back(current_neighbourhood_weights)
        try {
          __pyx_v_unflattened_neighbourhood_weights.push_back(__pyx_v_current_neighbourhood_weights);
        } catch(...) {
          __Pyx_CppExn2PyErr();
          __PYX_ERR(0, 108, __pyx_L1_error)
        }
+0109:             continue
      goto __pyx_L3_continue;
 0110: 
+0111:         if section.find(b"Colour Palette:") != -1:
    __pyx_t_8 = ((__pyx_v_section.find(__pyx_k_Colour_Palette) != -1L) != 0);
    if (__pyx_t_8) {
/* … */
    }
+0112:             parsing_colour_palette = True
      __pyx_v_parsing_colour_palette = 1;
+0113:             continue
      goto __pyx_L3_continue;
+0114:         elif parsing_colour_palette:
    __pyx_t_8 = (__pyx_v_parsing_colour_palette != 0);
    if (__pyx_t_8) {
/* … */
    }
+0115:             if section.find(b"None") != -1:
      __pyx_t_8 = ((__pyx_v_section.find(__pyx_k_None) != -1L) != 0);
      if (__pyx_t_8) {
/* … */
      }
+0116:                 colour_palette.clear()
        __pyx_v_9CACompute_colour_palette.clear();
+0117:                 parsing_colour_palette = False
        __pyx_v_parsing_colour_palette = 0;
+0118:                 continue
        goto __pyx_L3_continue;
 0119: 
+0120:             temp.clear()
      __pyx_v_temp.clear();
+0121:             for x in section.split(b","):
      __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_section); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 121, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 121, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_4, function);
        }
      }
      __pyx_t_5 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_b__4);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 121, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
        __pyx_t_4 = __pyx_t_5; __Pyx_INCREF(__pyx_t_4); __pyx_t_10 = 0;
        __pyx_t_11 = NULL;
      } else {
        __pyx_t_10 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 121, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_11 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 121, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      for (;;) {
        if (likely(!__pyx_t_11)) {
          if (likely(PyList_CheckExact(__pyx_t_4))) {
            if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_4)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_5 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 121, __pyx_L1_error)
            #else
            __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 121, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          } else {
            if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 121, __pyx_L1_error)
            #else
            __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 121, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          }
        } else {
          __pyx_t_5 = __pyx_t_11(__pyx_t_4);
          if (unlikely(!__pyx_t_5)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 121, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_5);
        }
        __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_5);
        __pyx_t_5 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0122:                 temp.push_back(int(re.sub(b"[() ]", b"", x)))
        __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_re); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 122, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_sub); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 122, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = NULL;
        __pyx_t_12 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_13);
          if (likely(__pyx_t_3)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
            __Pyx_INCREF(__pyx_t_3);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_13, function);
            __pyx_t_12 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_13)) {
          PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_kp_b__5, __pyx_kp_b_, __pyx_v_x};
          __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 122, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_5);
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) {
          PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_kp_b__5, __pyx_kp_b_, __pyx_v_x};
          __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 122, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_5);
        } else
        #endif
        {
          __pyx_t_14 = PyTuple_New(3+__pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 122, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          if (__pyx_t_3) {
            __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_3); __pyx_t_3 = NULL;
          }
          __Pyx_INCREF(__pyx_kp_b__5);
          __Pyx_GIVEREF(__pyx_kp_b__5);
          PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_12, __pyx_kp_b__5);
          __Pyx_INCREF(__pyx_kp_b_);
          __Pyx_GIVEREF(__pyx_kp_b_);
          PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_12, __pyx_kp_b_);
          __Pyx_INCREF(__pyx_v_x);
          __Pyx_GIVEREF(__pyx_v_x);
          PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_12, __pyx_v_x);
          __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 122, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        }
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __pyx_t_13 = __Pyx_PyNumber_Int(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 122, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_13); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 122, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        try {
          __pyx_v_temp.push_back(__pyx_t_12);
        } catch(...) {
          __Pyx_CppExn2PyErr();
          __PYX_ERR(0, 122, __pyx_L1_error)
        }
+0123:             colour_palette.push_back(temp)
      try {
        __pyx_v_9CACompute_colour_palette.push_back(__pyx_v_temp);
      } catch(...) {
        __Pyx_CppExn2PyErr();
        __PYX_ERR(0, 123, __pyx_L1_error)
      }
+0124:             colour_palette_count += 1
      __pyx_v_colour_palette_count = (__pyx_v_colour_palette_count + 1);
+0125:             if colour_palette_count == n_states:
      __pyx_t_8 = ((__pyx_v_colour_palette_count == __pyx_v_9CACompute_n_states) != 0);
      if (__pyx_t_8) {
/* … */
      }
+0126:                 parsing_colour_palette = False
        __pyx_v_parsing_colour_palette = 0;
+0127:             continue
      goto __pyx_L3_continue;
 0128: 
+0129:         if section.find(b"Name:") != -1:
    __pyx_t_8 = ((__pyx_v_section.find(__pyx_k_Name) != -1L) != 0);
    if (__pyx_t_8) {
/* … */
      goto __pyx_L16;
    }
+0130:             rule_name = section.replace(b"Name: ", b"")
      __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_section); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 130, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_replace); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 130, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 130, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_1 = __pyx_convert_string_from_py_std__in_string(__pyx_t_4); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 130, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_v_9CACompute_rule_name = __pyx_t_1;
/* … */
  __pyx_tuple__6 = PyTuple_Pack(2, __pyx_kp_b_Name_2, __pyx_kp_b_); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(0, 130, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__6);
  __Pyx_GIVEREF(__pyx_tuple__6);
+0131:         elif section.find(b"Neighbourhood Range:") != -1:
    __pyx_t_8 = ((__pyx_v_section.find(__pyx_k_Neighbourhood_Range) != -1L) != 0);
    if (__pyx_t_8) {
/* … */
      goto __pyx_L16;
    }
+0132:             neighbourhood_range = int(section.replace(b"Neighbourhood Range: ", b""))
      __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_section); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 132, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_replace); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 132, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 132, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_13 = __Pyx_PyNumber_Int(__pyx_t_4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 132, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_13); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 132, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_v_neighbourhood_range = __pyx_t_12;
/* … */
  __pyx_tuple__7 = PyTuple_Pack(2, __pyx_kp_b_Neighbourhood_Range_2, __pyx_kp_b_); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(0, 132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__7);
  __Pyx_GIVEREF(__pyx_tuple__7);
+0133:         elif section.find(b"State Weights:") != -1:
    __pyx_t_8 = ((__pyx_v_section.find(__pyx_k_State_Weights) != -1L) != 0);
    if (__pyx_t_8) {
/* … */
      goto __pyx_L16;
    }
+0134:             for x in section.replace(b"State Weights: ", b"").split(b"|"):
      __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_section); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 134, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_replace); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 134, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 134, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_split); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 134, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_4)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
        }
      }
      __pyx_t_13 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_kp_b__9) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_b__9);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 134, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (likely(PyList_CheckExact(__pyx_t_13)) || PyTuple_CheckExact(__pyx_t_13)) {
        __pyx_t_5 = __pyx_t_13; __Pyx_INCREF(__pyx_t_5); __pyx_t_10 = 0;
        __pyx_t_11 = NULL;
      } else {
        __pyx_t_10 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 134, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_11 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 134, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      for (;;) {
        if (likely(!__pyx_t_11)) {
          if (likely(PyList_CheckExact(__pyx_t_5))) {
            if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_5)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_13 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_10); __Pyx_INCREF(__pyx_t_13); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 134, __pyx_L1_error)
            #else
            __pyx_t_13 = PySequence_ITEM(__pyx_t_5, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 134, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            #endif
          } else {
            if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_10); __Pyx_INCREF(__pyx_t_13); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 134, __pyx_L1_error)
            #else
            __pyx_t_13 = PySequence_ITEM(__pyx_t_5, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 134, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            #endif
          }
        } else {
          __pyx_t_13 = __pyx_t_11(__pyx_t_5);
          if (unlikely(!__pyx_t_13)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 134, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_13);
        }
        __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_13);
        __pyx_t_13 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
/* … */
  __pyx_tuple__8 = PyTuple_Pack(2, __pyx_kp_b_State_Weights_2, __pyx_kp_b_); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(0, 134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__8);
  __Pyx_GIVEREF(__pyx_tuple__8);
+0135:                 temp.clear()
        __pyx_v_temp.clear();
+0136:                 for y in x.split(b","):
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 136, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_14 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_14)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_14);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
          }
        }
        __pyx_t_13 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_14, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_b__4);
        __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
        if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 136, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (likely(PyList_CheckExact(__pyx_t_13)) || PyTuple_CheckExact(__pyx_t_13)) {
          __pyx_t_4 = __pyx_t_13; __Pyx_INCREF(__pyx_t_4); __pyx_t_15 = 0;
          __pyx_t_16 = NULL;
        } else {
          __pyx_t_15 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 136, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_16 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 136, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        for (;;) {
          if (likely(!__pyx_t_16)) {
            if (likely(PyList_CheckExact(__pyx_t_4))) {
              if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_4)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_13 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_15); __Pyx_INCREF(__pyx_t_13); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 136, __pyx_L1_error)
              #else
              __pyx_t_13 = PySequence_ITEM(__pyx_t_4, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 136, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_13);
              #endif
            } else {
              if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_15); __Pyx_INCREF(__pyx_t_13); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 136, __pyx_L1_error)
              #else
              __pyx_t_13 = PySequence_ITEM(__pyx_t_4, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 136, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_13);
              #endif
            }
          } else {
            __pyx_t_13 = __pyx_t_16(__pyx_t_4);
            if (unlikely(!__pyx_t_13)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 136, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_13);
          }
          __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_13);
          __pyx_t_13 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0137:                     temp.push_back(int(y))
          __pyx_t_13 = __Pyx_PyNumber_Int(__pyx_v_y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 137, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_13); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 137, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          try {
            __pyx_v_temp.push_back(__pyx_t_12);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 137, __pyx_L1_error)
          }
+0138:                 state_weights.push_back(temp)
        try {
          __pyx_v_9CACompute_state_weights.push_back(__pyx_v_temp);
        } catch(...) {
          __Pyx_CppExn2PyErr();
          __PYX_ERR(0, 138, __pyx_L1_error)
        }
+0139:             n_states = state_weights[0].size()
      __pyx_v_9CACompute_n_states = (__pyx_v_9CACompute_state_weights[0]).size();
+0140:         elif section.find(b"Rulespace:") != -1:
    __pyx_t_8 = ((__pyx_v_section.find(__pyx_k_Rulespace) != -1L) != 0);
    if (__pyx_t_8) {
/* … */
      goto __pyx_L16;
    }
+0141:             rule_space = section.replace(b"Rulespace: ", b"")
      __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_section); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 141, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_replace); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 141, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 141, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_1 = __pyx_convert_string_from_py_std__in_string(__pyx_t_5); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 141, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_v_9CACompute_rule_space = __pyx_t_1;
/* … */
  __pyx_tuple__10 = PyTuple_Pack(2, __pyx_kp_b_Rulespace_2, __pyx_kp_b_); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(0, 141, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__10);
  __Pyx_GIVEREF(__pyx_tuple__10);
+0142:         elif section.find(b"B/S Conditions:") != -1:
    __pyx_t_8 = ((__pyx_v_section.find(__pyx_k_B_S_Conditions) != -1L) != 0);
    if (__pyx_t_8) {
/* … */
      goto __pyx_L16;
    }
+0143:             bsconditions = section.replace(b"B/S Conditions: ", b"")
      __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_section); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 143, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_replace); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 143, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 143, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_1 = __pyx_convert_string_from_py_std__in_string(__pyx_t_5); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 143, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_v_9CACompute_bsconditions = __pyx_t_1;
/* … */
  __pyx_tuple__11 = PyTuple_Pack(2, __pyx_kp_b_B_S_Conditions_2, __pyx_kp_b_); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(0, 143, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__11);
  __Pyx_GIVEREF(__pyx_tuple__11);
+0144:         elif section.find(b"Rulestring:") != -1:
    __pyx_t_8 = ((__pyx_v_section.find(__pyx_k_Rulestring) != -1L) != 0);
    if (__pyx_t_8) {
/* … */
    }
    __pyx_L16:;
+0145:             rule_string = section.replace(b"Rulestring: ", b"").split(b"|")
      __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_section); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 145, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_replace); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 145, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 145, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 145, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_13);
        if (likely(__pyx_t_4)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_13, function);
        }
      }
      __pyx_t_5 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_4, __pyx_kp_b__9) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_b__9);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 145, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_17 = __pyx_convert_vector_from_py_std_3a__3a_string(__pyx_t_5); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 145, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_v_rule_string = __pyx_t_17;
 0146: 
+0147:     alternating_period = state_weights.size()
  __pyx_v_9CACompute_alternating_period = __pyx_v_9CACompute_state_weights.size();
 0148: 
+0149:     for weights in unflattened_neighbourhood_weights:
  __pyx_t_18 = __pyx_v_unflattened_neighbourhood_weights.begin();
  for (;;) {
    if (!(__pyx_t_18 != __pyx_v_unflattened_neighbourhood_weights.end())) break;
    __pyx_t_19 = *__pyx_t_18;
    ++__pyx_t_18;
    __pyx_v_weights = __pyx_t_19;
/* … */
  }
+0150:         pair_temp.clear()
    __pyx_v_pair_temp.clear();
+0151:         for i in range(-neighbourhood_range, neighbourhood_range + 1):
    __pyx_t_20 = (__pyx_v_neighbourhood_range + 1);
    __pyx_t_21 = __pyx_t_20;
    for (__pyx_t_12 = (-__pyx_v_neighbourhood_range); __pyx_t_12 < __pyx_t_21; __pyx_t_12+=1) {
      __pyx_v_i = __pyx_t_12;
+0152:             for j in range(-neighbourhood_range, neighbourhood_range + 1):
      __pyx_t_22 = (__pyx_v_neighbourhood_range + 1);
      __pyx_t_23 = __pyx_t_22;
      for (__pyx_t_24 = (-__pyx_v_neighbourhood_range); __pyx_t_24 < __pyx_t_23; __pyx_t_24+=1) {
        __pyx_v_j = __pyx_t_24;
+0153:                 if weights[i + neighbourhood_range][j + neighbourhood_range] != 0:
        __pyx_t_8 = ((((__pyx_v_weights[(__pyx_v_i + __pyx_v_neighbourhood_range)])[(__pyx_v_j + __pyx_v_neighbourhood_range)]) != 0) != 0);
        if (__pyx_t_8) {
/* … */
        }
      }
    }
+0154:                     pair_temp.push_back(pair[int, int] (i, j))
          try {
            __pyx_t_25 = std::pair<int,int> (__pyx_v_i, __pyx_v_j);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 154, __pyx_L1_error)
          }
          try {
            __pyx_v_pair_temp.push_back(__pyx_t_25);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 154, __pyx_L1_error)
          }
 0155: 
+0156:         neighbourhood.push_back(pair_temp)
    try {
      __pyx_v_9CACompute_neighbourhood.push_back(__pyx_v_pair_temp);
    } catch(...) {
      __Pyx_CppExn2PyErr();
      __PYX_ERR(0, 156, __pyx_L1_error)
    }
 0157: 
+0158:     if bsconditions == b"Double Totalistic":
  __pyx_t_8 = ((__pyx_v_9CACompute_bsconditions == ((char const *)"Double Totalistic")) != 0);
  if (__pyx_t_8) {
/* … */
  }
+0159:         original_neighbourhood = neighbourhood
    __pyx_v_9CACompute_original_neighbourhood = __pyx_v_9CACompute_neighbourhood;
+0160:         neighbourhood.clear()
    __pyx_v_9CACompute_neighbourhood.clear();
+0161:         for i in range(alternating_period):
    __pyx_t_12 = __pyx_v_9CACompute_alternating_period;
    __pyx_t_24 = __pyx_t_12;
    for (__pyx_t_26 = 0; __pyx_t_26 < __pyx_t_24; __pyx_t_26+=1) {
      __pyx_v_i = __pyx_t_26;
+0162:             set_neighbourhood.clear()
      __pyx_v_set_neighbourhood.clear();
+0163:             for neighbour in original_neighbourhood[i]:
      __pyx_t_28 = &(__pyx_v_9CACompute_original_neighbourhood[__pyx_v_i]);
      __pyx_t_27 = __pyx_t_28->begin();
      for (;;) {
        if (!(__pyx_t_27 != __pyx_t_28->end())) break;
        __pyx_t_25 = *__pyx_t_27;
        ++__pyx_t_27;
        __pyx_v_neighbour = __pyx_t_25;
/* … */
      }
+0164:                 for neighbour2 in original_neighbourhood[i]:
        __pyx_t_30 = &(__pyx_v_9CACompute_original_neighbourhood[__pyx_v_i]);
        __pyx_t_29 = __pyx_t_30->begin();
        for (;;) {
          if (!(__pyx_t_29 != __pyx_t_30->end())) break;
          __pyx_t_25 = *__pyx_t_29;
          ++__pyx_t_29;
          __pyx_v_neighbour2 = __pyx_t_25;
/* … */
        }
+0165:                     set_neighbourhood.insert(pair[int, int] (neighbour.first + neighbour2.first,
          try {
            __pyx_t_25 = std::pair<int,int> ((__pyx_v_neighbour.first + __pyx_v_neighbour2.first), (__pyx_v_neighbour.second + __pyx_v_neighbour2.second));
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 165, __pyx_L1_error)
          }
          (void)(__pyx_v_set_neighbourhood.insert(__pyx_t_25));
 0166:                                                              neighbour.second + neighbour2.second))
+0167:                 set_neighbourhood.insert(neighbour)
        (void)(__pyx_v_set_neighbourhood.insert(__pyx_v_neighbour));
 0168: 
+0169:             pair_temp.clear()
      __pyx_v_pair_temp.clear();
+0170:             pair_temp.insert(pair_temp.end(), set_neighbourhood.begin(), set_neighbourhood.end())
      try {
        __pyx_v_pair_temp.insert(__pyx_v_pair_temp.end(), __pyx_v_set_neighbourhood.begin(), __pyx_v_set_neighbourhood.end());
      } catch(...) {
        __Pyx_CppExn2PyErr();
        __PYX_ERR(0, 170, __pyx_L1_error)
      }
+0171:             neighbourhood.push_back(pair_temp)
      try {
        __pyx_v_9CACompute_neighbourhood.push_back(__pyx_v_pair_temp);
      } catch(...) {
        __Pyx_CppExn2PyErr();
        __PYX_ERR(0, 171, __pyx_L1_error)
      }
 0172: 
+0173:             map_temp.clear()
      __pyx_v_map_temp.clear();
+0174:             for j in range(len(neighbourhood[i])):
      __pyx_t_2 = __pyx_convert_vector_to_py_std_3a__3a_pair_3c_int_2c_int_3e___((__pyx_v_9CACompute_neighbourhood[__pyx_v_i])); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 174, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_6 = PyObject_Length(__pyx_t_2); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 174, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_10 = __pyx_t_6;
      for (__pyx_t_31 = 0; __pyx_t_31 < __pyx_t_10; __pyx_t_31+=1) {
        __pyx_v_j = __pyx_t_31;
+0175:                 map_temp[neighbourhood[i][j]] = j
        (__pyx_v_map_temp[((__pyx_v_9CACompute_neighbourhood[__pyx_v_i])[__pyx_v_j])]) = __pyx_v_j;
      }
+0176:             index_map.push_back(map_temp)
      try {
        __pyx_v_9CACompute_index_map.push_back(__pyx_v_map_temp);
      } catch(...) {
        __Pyx_CppExn2PyErr();
        __PYX_ERR(0, 176, __pyx_L1_error)
      }
    }
 0177: 
+0178:     for weights in unflattened_neighbourhood_weights:
  __pyx_t_18 = __pyx_v_unflattened_neighbourhood_weights.begin();
  for (;;) {
    if (!(__pyx_t_18 != __pyx_v_unflattened_neighbourhood_weights.end())) break;
    __pyx_t_19 = *__pyx_t_18;
    ++__pyx_t_18;
    __pyx_v_weights = __pyx_t_19;
/* … */
  }
+0179:         temp.clear()
    __pyx_v_temp.clear();
+0180:         for k in weights:
    __pyx_t_32 = __pyx_v_weights.begin();
    for (;;) {
      if (!(__pyx_t_32 != __pyx_v_weights.end())) break;
      __pyx_t_33 = *__pyx_t_32;
      ++__pyx_t_32;
      __pyx_v_k = __pyx_t_33;
/* … */
    }
+0181:             for j in k:
      __pyx_t_34 = __pyx_v_k.begin();
      for (;;) {
        if (!(__pyx_t_34 != __pyx_v_k.end())) break;
        __pyx_t_12 = *__pyx_t_34;
        ++__pyx_t_34;
        __pyx_v_j = __pyx_t_12;
/* … */
      }
+0182:                 if j != 0:
        __pyx_t_8 = ((__pyx_v_j != 0) != 0);
        if (__pyx_t_8) {
/* … */
        }
+0183:                     temp.push_back(j)
          try {
            __pyx_v_temp.push_back(__pyx_v_j);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 183, __pyx_L1_error)
          }
 0184: 
+0185:         neighbourhood_weights.push_back(temp)
    try {
      __pyx_v_9CACompute_neighbourhood_weights.push_back(__pyx_v_temp);
    } catch(...) {
      __Pyx_CppExn2PyErr();
      __PYX_ERR(0, 185, __pyx_L1_error)
    }
 0186: 
+0187:     if rule_space == b"Single State":
  __pyx_t_8 = ((__pyx_v_9CACompute_rule_space == ((char const *)"Single State")) != 0);
  if (__pyx_t_8) {
/* … */
    goto __pyx_L44;
  }
+0188:         if bsconditions == b"Outer Totalistic":
    __pyx_t_8 = ((__pyx_v_9CACompute_bsconditions == ((char const *)"Outer Totalistic")) != 0);
    if (__pyx_t_8) {
/* … */
      goto __pyx_L45;
    }
+0189:             for individual_rule_string in rule_string:
      __pyx_t_35 = __pyx_v_rule_string.begin();
      for (;;) {
        if (!(__pyx_t_35 != __pyx_v_rule_string.end())) break;
        __pyx_t_1 = *__pyx_t_35;
        ++__pyx_t_35;
        __pyx_v_individual_rule_string = __pyx_t_1;
/* … */
      }
+0190:                 if individual_rule_string.find(b"/") != -1:
        __pyx_t_8 = ((__pyx_v_individual_rule_string.find(__pyx_k__13) != -1L) != 0);
        if (__pyx_t_8) {
/* … */
          goto __pyx_L48;
        }
+0191:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0192:                     for x in individual_rule_string.split(b"/")[1].split(b","):
          __pyx_t_13 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 192, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 192, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_13)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_13);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
            }
          }
          __pyx_t_5 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_13, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 192, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_5, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 192, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_split); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 192, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
            }
          }
          __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 192, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
            __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 192, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 192, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_5))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_2 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 192, __pyx_L1_error)
                #else
                __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 192, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 192, __pyx_L1_error)
                #else
                __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 192, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                #endif
              }
            } else {
              __pyx_t_2 = __pyx_t_7(__pyx_t_5);
              if (unlikely(!__pyx_t_2)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 192, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_2);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2);
            __pyx_t_2 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0193:                         set_temp.insert(int(x))
            __pyx_t_2 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 193, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 193, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0194:                     birth.push_back(set_temp)
          try {
            __pyx_v_9CACompute_birth.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 194, __pyx_L1_error)
          }
 0195: 
+0196:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0197:                     for x in individual_rule_string.split(b"/")[0].split(b","):
          __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 197, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 197, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_13);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_13, function);
            }
          }
          __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_4, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 197, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_13)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_13);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
            }
          }
          __pyx_t_5 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_13, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 197, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
            __pyx_t_2 = __pyx_t_5; __Pyx_INCREF(__pyx_t_2); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_7 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 197, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_2))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_2)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 197, __pyx_L1_error)
                #else
                __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 197, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_5);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 197, __pyx_L1_error)
                #else
                __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 197, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_5);
                #endif
              }
            } else {
              __pyx_t_5 = __pyx_t_7(__pyx_t_2);
              if (unlikely(!__pyx_t_5)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 197, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_5);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_5);
            __pyx_t_5 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0198:                         set_temp.insert(int(x))
            __pyx_t_5 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 198, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 198, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0199:                     survival.push_back(set_temp)
          try {
            __pyx_v_9CACompute_survival.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 199, __pyx_L1_error)
          }
 0200:                 else:
+0201:                     set_temp.clear()
        /*else*/ {
          __pyx_v_set_temp.clear();
+0202:                     for x in re.split(b"[bs]", individual_rule_string)[1].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_re); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 202, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 202, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 202, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_14 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_14)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_4)) {
            PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_kp_b_bs, __pyx_t_13};
            __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 202, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
            PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_kp_b_bs, __pyx_t_13};
            __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 202, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          } else
          #endif
          {
            __pyx_t_3 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 202, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            if (__pyx_t_14) {
              __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_14); __pyx_t_14 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_bs);
            __Pyx_GIVEREF(__pyx_kp_b_bs);
            PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_12, __pyx_kp_b_bs);
            __Pyx_GIVEREF(__pyx_t_13);
            PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_12, __pyx_t_13);
            __pyx_t_13 = 0;
            __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 202, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_5, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 202, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_split); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 202, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
            }
          }
          __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 202, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
            __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 202, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 202, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_5))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_2 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 202, __pyx_L1_error)
                #else
                __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 202, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 202, __pyx_L1_error)
                #else
                __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 202, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                #endif
              }
            } else {
              __pyx_t_2 = __pyx_t_7(__pyx_t_5);
              if (unlikely(!__pyx_t_2)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 202, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_2);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2);
            __pyx_t_2 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0203:                         set_temp.insert(int(x))
            __pyx_t_2 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 203, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 203, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0204:                     birth.push_back(set_temp)
          try {
            __pyx_v_9CACompute_birth.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 204, __pyx_L1_error)
          }
 0205: 
+0206:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0207:                     for x in re.split(b"[bs]", individual_rule_string)[2].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_re); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 207, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 207, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 207, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_13 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_13)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_13);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_kp_b_bs, __pyx_t_4};
            __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 207, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_kp_b_bs, __pyx_t_4};
            __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 207, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          } else
          #endif
          {
            __pyx_t_14 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 207, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            if (__pyx_t_13) {
              __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_13); __pyx_t_13 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_bs);
            __Pyx_GIVEREF(__pyx_kp_b_bs);
            PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_12, __pyx_kp_b_bs);
            __Pyx_GIVEREF(__pyx_t_4);
            PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_12, __pyx_t_4);
            __pyx_t_4 = 0;
            __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_14, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 207, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 207, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 207, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
            }
          }
          __pyx_t_5 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 207, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
            __pyx_t_2 = __pyx_t_5; __Pyx_INCREF(__pyx_t_2); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 207, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_7 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 207, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_2))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_2)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 207, __pyx_L1_error)
                #else
                __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 207, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_5);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 207, __pyx_L1_error)
                #else
                __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 207, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_5);
                #endif
              }
            } else {
              __pyx_t_5 = __pyx_t_7(__pyx_t_2);
              if (unlikely(!__pyx_t_5)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 207, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_5);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_5);
            __pyx_t_5 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0208:                         set_temp.insert(int(x))
            __pyx_t_5 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 208, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 208, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0209:                     survival.push_back(set_temp)
          try {
            __pyx_v_9CACompute_survival.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 209, __pyx_L1_error)
          }
        }
        __pyx_L48:;
+0210:         elif bsconditions == b"Double Totalistic":
    __pyx_t_8 = ((__pyx_v_9CACompute_bsconditions == ((char const *)"Double Totalistic")) != 0);
    if (__pyx_t_8) {
/* … */
    }
    __pyx_L45:;
+0211:             for individual_rule_string in rule_string:
      __pyx_t_35 = __pyx_v_rule_string.begin();
      for (;;) {
        if (!(__pyx_t_35 != __pyx_v_rule_string.end())) break;
        __pyx_t_1 = *__pyx_t_35;
        ++__pyx_t_35;
        __pyx_v_individual_rule_string = __pyx_t_1;
/* … */
      }
+0212:                 if individual_rule_string.find(b"/") != -1:
        __pyx_t_8 = ((__pyx_v_individual_rule_string.find(__pyx_k__13) != -1L) != 0);
        if (__pyx_t_8) {
/* … */
          goto __pyx_L59;
        }
+0213:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0214:                     for x in re.findall(b"\((.*?)\)", individual_rule_string.split(b"/")[1])[0].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_re); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 214, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_findall); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 214, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 214, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 214, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_13);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_13, function);
            }
          }
          __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_4, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 214, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_GetItemInt(__pyx_t_3, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 214, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_14);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_14, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_14)) {
            PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_b__14, __pyx_t_13};
            __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 214, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) {
            PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_b__14, __pyx_t_13};
            __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 214, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          } else
          #endif
          {
            __pyx_t_4 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 214, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            if (__pyx_t_3) {
              __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_kp_b__14);
            PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_12, __pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_t_13);
            PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_12, __pyx_t_13);
            __pyx_t_13 = 0;
            __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 214, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_5, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 214, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_split); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 214, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_14)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
            }
          }
          __pyx_t_2 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_14, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 214, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
            __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 214, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 214, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_5))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_2 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 214, __pyx_L1_error)
                #else
                __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 214, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 214, __pyx_L1_error)
                #else
                __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 214, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                #endif
              }
            } else {
              __pyx_t_2 = __pyx_t_7(__pyx_t_5);
              if (unlikely(!__pyx_t_2)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 214, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_2);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2);
            __pyx_t_2 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0215:                         set_temp.insert(int(x))
            __pyx_t_2 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 215, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 215, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0216:                     birth.push_back(set_temp)
          try {
            __pyx_v_9CACompute_birth.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 216, __pyx_L1_error)
          }
 0217: 
+0218:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0219:                     for x in re.findall(b"\((.*?)\)", individual_rule_string.split(b"/")[0])[0].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_re); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 219, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_findall); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 219, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_13 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 219, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 219, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_13)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_13);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
            }
          }
          __pyx_t_14 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_13, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 219, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_14, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 219, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_14)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_4)) {
            PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_kp_b__14, __pyx_t_3};
            __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 219, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
            PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_kp_b__14, __pyx_t_3};
            __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 219, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          {
            __pyx_t_13 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 219, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            if (__pyx_t_14) {
              __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_14); __pyx_t_14 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_kp_b__14);
            PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_12, __pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_t_3);
            PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_12, __pyx_t_3);
            __pyx_t_3 = 0;
            __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_13, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 219, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 219, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 219, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
            }
          }
          __pyx_t_5 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 219, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
            __pyx_t_2 = __pyx_t_5; __Pyx_INCREF(__pyx_t_2); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 219, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_7 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 219, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_2))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_2)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 219, __pyx_L1_error)
                #else
                __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 219, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_5);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 219, __pyx_L1_error)
                #else
                __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 219, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_5);
                #endif
              }
            } else {
              __pyx_t_5 = __pyx_t_7(__pyx_t_2);
              if (unlikely(!__pyx_t_5)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 219, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_5);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_5);
            __pyx_t_5 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0220:                         set_temp.insert(int(x))
            __pyx_t_5 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 220, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 220, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0221:                     survival.push_back(set_temp)
          try {
            __pyx_v_9CACompute_survival.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 221, __pyx_L1_error)
          }
 0222: 
+0223:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0224:                     for x in re.sub(b"\(.*?\)", b"", individual_rule_string.split(b"/")[1]).split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_re); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 224, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_sub); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 224, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 224, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 224, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_14);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_14, function);
            }
          }
          __pyx_t_4 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_3, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 224, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_4, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 224, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_13);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_13, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_13)) {
            PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_14};
            __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 224, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) {
            PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_14};
            __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 224, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          } else
          #endif
          {
            __pyx_t_3 = PyTuple_New(3+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 224, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            if (__pyx_t_4) {
              __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__15);
            __Pyx_GIVEREF(__pyx_kp_b__15);
            PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_12, __pyx_kp_b__15);
            __Pyx_INCREF(__pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_kp_b_);
            PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_12, __pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_t_14);
            PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_12, __pyx_t_14);
            __pyx_t_14 = 0;
            __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 224, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 224, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_13);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_13, function);
            }
          }
          __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_5, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 224, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
            __pyx_t_13 = __pyx_t_2; __Pyx_INCREF(__pyx_t_13); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 224, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_7 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 224, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_13))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_13)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_2 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 224, __pyx_L1_error)
                #else
                __pyx_t_2 = PySequence_ITEM(__pyx_t_13, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 224, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 224, __pyx_L1_error)
                #else
                __pyx_t_2 = PySequence_ITEM(__pyx_t_13, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 224, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                #endif
              }
            } else {
              __pyx_t_2 = __pyx_t_7(__pyx_t_13);
              if (unlikely(!__pyx_t_2)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 224, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_2);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2);
            __pyx_t_2 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+0225:                         set_temp.insert(int(x))
            __pyx_t_2 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 225, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 225, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0226:                     other_birth.push_back(set_temp)
          try {
            __pyx_v_9CACompute_other_birth.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 226, __pyx_L1_error)
          }
 0227: 
+0228:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0229:                     for x in re.sub(b"\(.*?\)", b"", individual_rule_string.split(b"/")[0]).split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_re); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 229, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_sub); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 229, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_14 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 229, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 229, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_14)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
            }
          }
          __pyx_t_5 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_14, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 229, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_5, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 229, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_4};
            __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 229, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_4};
            __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 229, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          } else
          #endif
          {
            __pyx_t_14 = PyTuple_New(3+__pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 229, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            if (__pyx_t_5) {
              __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_5); __pyx_t_5 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__15);
            __Pyx_GIVEREF(__pyx_kp_b__15);
            PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_12, __pyx_kp_b__15);
            __Pyx_INCREF(__pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_kp_b_);
            PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_12, __pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_t_4);
            PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_12, __pyx_t_4);
            __pyx_t_4 = 0;
            __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_14, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 229, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 229, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
            }
          }
          __pyx_t_13 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 229, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (likely(PyList_CheckExact(__pyx_t_13)) || PyTuple_CheckExact(__pyx_t_13)) {
            __pyx_t_3 = __pyx_t_13; __Pyx_INCREF(__pyx_t_3); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 229, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_7 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 229, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_3))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_3)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_13 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 229, __pyx_L1_error)
                #else
                __pyx_t_13 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 229, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_13);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 229, __pyx_L1_error)
                #else
                __pyx_t_13 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 229, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_13);
                #endif
              }
            } else {
              __pyx_t_13 = __pyx_t_7(__pyx_t_3);
              if (unlikely(!__pyx_t_13)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 229, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_13);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_13);
            __pyx_t_13 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0230:                         set_temp.insert(int(x))
            __pyx_t_13 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 230, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_13); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 230, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0231:                     other_survival.push_back(set_temp)
          try {
            __pyx_v_9CACompute_other_survival.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 231, __pyx_L1_error)
          }
 0232:                 else:
+0233:                     set_temp.clear()
        /*else*/ {
          __pyx_v_set_temp.clear();
+0234:                     for x in re.findall(b"\((.*?)\)", re.split(b"[bs]", individual_rule_string)[1])[0].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_re); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 234, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_findall); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 234, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_re); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 234, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_split); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 234, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 234, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_36 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_36 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_36)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_36);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_5)) {
            PyObject *__pyx_temp[3] = {__pyx_t_36, __pyx_kp_b_bs, __pyx_t_4};
            __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 234, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
            PyObject *__pyx_temp[3] = {__pyx_t_36, __pyx_kp_b_bs, __pyx_t_4};
            __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 234, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          } else
          #endif
          {
            __pyx_t_37 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 234, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_37);
            if (__pyx_t_36) {
              __Pyx_GIVEREF(__pyx_t_36); PyTuple_SET_ITEM(__pyx_t_37, 0, __pyx_t_36); __pyx_t_36 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_bs);
            __Pyx_GIVEREF(__pyx_kp_b_bs);
            PyTuple_SET_ITEM(__pyx_t_37, 0+__pyx_t_12, __pyx_kp_b_bs);
            __Pyx_GIVEREF(__pyx_t_4);
            PyTuple_SET_ITEM(__pyx_t_37, 1+__pyx_t_12, __pyx_t_4);
            __pyx_t_4 = 0;
            __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_37, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 234, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 234, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_14);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_14, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_14)) {
            PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_kp_b__14, __pyx_t_5};
            __pyx_t_13 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 234, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) {
            PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_kp_b__14, __pyx_t_5};
            __pyx_t_13 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 234, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          } else
          #endif
          {
            __pyx_t_37 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 234, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_37);
            if (__pyx_t_2) {
              __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_37, 0, __pyx_t_2); __pyx_t_2 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_kp_b__14);
            PyTuple_SET_ITEM(__pyx_t_37, 0+__pyx_t_12, __pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_t_5);
            PyTuple_SET_ITEM(__pyx_t_37, 1+__pyx_t_12, __pyx_t_5);
            __pyx_t_5 = 0;
            __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_37, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 234, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_13, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 234, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 234, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
            if (likely(__pyx_t_14)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_13, function);
            }
          }
          __pyx_t_3 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 234, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
            __pyx_t_13 = __pyx_t_3; __Pyx_INCREF(__pyx_t_13); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 234, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_7 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 234, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_13))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_13)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_3 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 234, __pyx_L1_error)
                #else
                __pyx_t_3 = PySequence_ITEM(__pyx_t_13, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 234, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_3);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 234, __pyx_L1_error)
                #else
                __pyx_t_3 = PySequence_ITEM(__pyx_t_13, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 234, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_3);
                #endif
              }
            } else {
              __pyx_t_3 = __pyx_t_7(__pyx_t_13);
              if (unlikely(!__pyx_t_3)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 234, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_3);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3);
            __pyx_t_3 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+0235:                         set_temp.insert(int(x))
            __pyx_t_3 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 235, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 235, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0236:                     birth.push_back(set_temp)
          try {
            __pyx_v_9CACompute_birth.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 236, __pyx_L1_error)
          }
 0237: 
+0238:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0239:                     for x in re.findall(b"\((.*?)\)", re.split(b"[bs]", individual_rule_string)[2])[0].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_re); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 239, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_37 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_findall); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 239, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_re); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 239, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 239, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 239, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_4 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_2)) {
            PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_kp_b_bs, __pyx_t_5};
            __pyx_t_14 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 239, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
            PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_kp_b_bs, __pyx_t_5};
            __pyx_t_14 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 239, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          } else
          #endif
          {
            __pyx_t_36 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 239, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            if (__pyx_t_4) {
              __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_36, 0, __pyx_t_4); __pyx_t_4 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_bs);
            __Pyx_GIVEREF(__pyx_kp_b_bs);
            PyTuple_SET_ITEM(__pyx_t_36, 0+__pyx_t_12, __pyx_kp_b_bs);
            __Pyx_GIVEREF(__pyx_t_5);
            PyTuple_SET_ITEM(__pyx_t_36, 1+__pyx_t_12, __pyx_t_5);
            __pyx_t_5 = 0;
            __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_36, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 239, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_14, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 239, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_37))) {
            __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_37);
            if (likely(__pyx_t_14)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_37);
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_37, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_37)) {
            PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_kp_b__14, __pyx_t_2};
            __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_37, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 239, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_37)) {
            PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_kp_b__14, __pyx_t_2};
            __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_37, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 239, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          } else
          #endif
          {
            __pyx_t_36 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 239, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            if (__pyx_t_14) {
              __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_36, 0, __pyx_t_14); __pyx_t_14 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_kp_b__14);
            PyTuple_SET_ITEM(__pyx_t_36, 0+__pyx_t_12, __pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_t_2);
            PyTuple_SET_ITEM(__pyx_t_36, 1+__pyx_t_12, __pyx_t_2);
            __pyx_t_2 = 0;
            __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_37, __pyx_t_36, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 239, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          }
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 239, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_37, __pyx_n_s_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 239, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_37 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_37)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_37);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
            }
          }
          __pyx_t_13 = (__pyx_t_37) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_37, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 239, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (likely(PyList_CheckExact(__pyx_t_13)) || PyTuple_CheckExact(__pyx_t_13)) {
            __pyx_t_3 = __pyx_t_13; __Pyx_INCREF(__pyx_t_3); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 239, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_7 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 239, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_3))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_3)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_13 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 239, __pyx_L1_error)
                #else
                __pyx_t_13 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 239, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_13);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 239, __pyx_L1_error)
                #else
                __pyx_t_13 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 239, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_13);
                #endif
              }
            } else {
              __pyx_t_13 = __pyx_t_7(__pyx_t_3);
              if (unlikely(!__pyx_t_13)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 239, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_13);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_13);
            __pyx_t_13 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0240:                         set_temp.insert(int(x))
            __pyx_t_13 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 240, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_13); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 240, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0241:                     survival.push_back(set_temp)
          try {
            __pyx_v_9CACompute_survival.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 241, __pyx_L1_error)
          }
 0242: 
+0243:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0244:                     for x in re.sub(b"\(.*?\)", b"", re.split(b"[bs]", individual_rule_string)[1]).split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_37, __pyx_n_s_re); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 244, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_37, __pyx_n_s_sub); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 244, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_re); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 244, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_split); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 244, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 244, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_5 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_14);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_14, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_14)) {
            PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_kp_b_bs, __pyx_t_2};
            __pyx_t_37 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 244, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_GOTREF(__pyx_t_37);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) {
            PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_kp_b_bs, __pyx_t_2};
            __pyx_t_37 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 244, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_GOTREF(__pyx_t_37);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          } else
          #endif
          {
            __pyx_t_4 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 244, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            if (__pyx_t_5) {
              __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_bs);
            __Pyx_GIVEREF(__pyx_kp_b_bs);
            PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_12, __pyx_kp_b_bs);
            __Pyx_GIVEREF(__pyx_t_2);
            PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_12, __pyx_t_2);
            __pyx_t_2 = 0;
            __pyx_t_37 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_4, NULL); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 244, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_37);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_37, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 244, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_37 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_37)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_37);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_36)) {
            PyObject *__pyx_temp[4] = {__pyx_t_37, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_14};
            __pyx_t_13 = __Pyx_PyFunction_FastCall(__pyx_t_36, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 244, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_36)) {
            PyObject *__pyx_temp[4] = {__pyx_t_37, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_14};
            __pyx_t_13 = __Pyx_PyCFunction_FastCall(__pyx_t_36, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 244, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          } else
          #endif
          {
            __pyx_t_4 = PyTuple_New(3+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 244, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            if (__pyx_t_37) {
              __Pyx_GIVEREF(__pyx_t_37); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_37); __pyx_t_37 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__15);
            __Pyx_GIVEREF(__pyx_kp_b__15);
            PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_12, __pyx_kp_b__15);
            __Pyx_INCREF(__pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_kp_b_);
            PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_12, __pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_t_14);
            PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_12, __pyx_t_14);
            __pyx_t_14 = 0;
            __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_36, __pyx_t_4, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 244, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_split); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 244, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_13)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_13);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
            }
          }
          __pyx_t_3 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_36, __pyx_t_13, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_36, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 244, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
            __pyx_t_36 = __pyx_t_3; __Pyx_INCREF(__pyx_t_36); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_36 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 244, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_7 = Py_TYPE(__pyx_t_36)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 244, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_36))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_3 = PyList_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 244, __pyx_L1_error)
                #else
                __pyx_t_3 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 244, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_3);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 244, __pyx_L1_error)
                #else
                __pyx_t_3 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 244, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_3);
                #endif
              }
            } else {
              __pyx_t_3 = __pyx_t_7(__pyx_t_36);
              if (unlikely(!__pyx_t_3)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 244, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_3);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3);
            __pyx_t_3 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
+0245:                         set_temp.insert(int(x))
            __pyx_t_3 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 245, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 245, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0246:                     other_birth.push_back(set_temp)
          try {
            __pyx_v_9CACompute_other_birth.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 246, __pyx_L1_error)
          }
 0247: 
+0248:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0249:                     for x in re.sub(b"\(.*?\)", b"", re.split(b"[bs]", individual_rule_string)[2]).split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_re); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 249, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_sub); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 249, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_re); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 249, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_37 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_split); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 249, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 249, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_2 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_37))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_37);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_37);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_37, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_37)) {
            PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_kp_b_bs, __pyx_t_14};
            __pyx_t_13 = __Pyx_PyFunction_FastCall(__pyx_t_37, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 249, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_37)) {
            PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_kp_b_bs, __pyx_t_14};
            __pyx_t_13 = __Pyx_PyCFunction_FastCall(__pyx_t_37, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 249, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          } else
          #endif
          {
            __pyx_t_5 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 249, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            if (__pyx_t_2) {
              __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_bs);
            __Pyx_GIVEREF(__pyx_kp_b_bs);
            PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_12, __pyx_kp_b_bs);
            __Pyx_GIVEREF(__pyx_t_14);
            PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_12, __pyx_t_14);
            __pyx_t_14 = 0;
            __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_37, __pyx_t_5, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 249, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          }
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = __Pyx_GetItemInt(__pyx_t_13, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 249, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_13)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_13);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_4)) {
            PyObject *__pyx_temp[4] = {__pyx_t_13, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_37};
            __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 249, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
            PyObject *__pyx_temp[4] = {__pyx_t_13, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_37};
            __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 249, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          } else
          #endif
          {
            __pyx_t_5 = PyTuple_New(3+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 249, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            if (__pyx_t_13) {
              __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_13); __pyx_t_13 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__15);
            __Pyx_GIVEREF(__pyx_kp_b__15);
            PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_12, __pyx_kp_b__15);
            __Pyx_INCREF(__pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_kp_b_);
            PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_12, __pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_t_37);
            PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_12, __pyx_t_37);
            __pyx_t_37 = 0;
            __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 249, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 249, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
            }
          }
          __pyx_t_36 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 249, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (likely(PyList_CheckExact(__pyx_t_36)) || PyTuple_CheckExact(__pyx_t_36)) {
            __pyx_t_4 = __pyx_t_36; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_36); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 249, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_7 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 249, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_4))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 249, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 249, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 249, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 249, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              }
            } else {
              __pyx_t_36 = __pyx_t_7(__pyx_t_4);
              if (unlikely(!__pyx_t_36)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 249, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_36);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_36);
            __pyx_t_36 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0250:                         set_temp.insert(int(x))
            __pyx_t_36 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 250, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_36); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 250, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0251:                     other_survival.push_back(set_temp)
          try {
            __pyx_v_9CACompute_other_survival.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 251, __pyx_L1_error)
          }
        }
        __pyx_L59:;
+0252:     elif rule_space == b"BSFKL":
  __pyx_t_8 = ((__pyx_v_9CACompute_rule_space == ((char const *)"BSFKL")) != 0);
  if (__pyx_t_8) {
/* … */
    goto __pyx_L44;
  }
+0253:         for individual_rule_string in rule_string:
    __pyx_t_35 = __pyx_v_rule_string.begin();
    for (;;) {
      if (!(__pyx_t_35 != __pyx_v_rule_string.end())) break;
      __pyx_t_1 = *__pyx_t_35;
      ++__pyx_t_35;
      __pyx_v_individual_rule_string = __pyx_t_1;
/* … */
    }
+0254:             if bsconditions == b"Outer Totalistic":
      __pyx_t_8 = ((__pyx_v_9CACompute_bsconditions == ((char const *)"Outer Totalistic")) != 0);
      if (__pyx_t_8) {
/* … */
        goto __pyx_L78;
      }
+0255:                 if individual_rule_string.find(b"/") != -1:
        __pyx_t_8 = ((__pyx_v_individual_rule_string.find(__pyx_k__13) != -1L) != 0);
        if (__pyx_t_8) {
/* … */
          goto __pyx_L79;
        }
+0256:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0257:                     for x in individual_rule_string.split(b"/")[0].split(b","):
          __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 257, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 257, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
            }
          }
          __pyx_t_36 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_3, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 257, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_36, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 257, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_split); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 257, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
            }
          }
          __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_36, __pyx_t_5, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_36, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 257, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
            __pyx_t_36 = __pyx_t_4; __Pyx_INCREF(__pyx_t_36); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_36 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 257, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_7 = Py_TYPE(__pyx_t_36)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 257, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_36))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_4 = PyList_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 257, __pyx_L1_error)
                #else
                __pyx_t_4 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 257, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_4);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 257, __pyx_L1_error)
                #else
                __pyx_t_4 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 257, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_4);
                #endif
              }
            } else {
              __pyx_t_4 = __pyx_t_7(__pyx_t_36);
              if (unlikely(!__pyx_t_4)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 257, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_4);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
            __pyx_t_4 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
+0258:                         set_temp.insert(int(x))
            __pyx_t_4 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 258, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 258, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0259:                     birth.push_back(set_temp)
          try {
            __pyx_v_9CACompute_birth.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 259, __pyx_L1_error)
          }
 0260: 
+0261:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0262:                     for x in individual_rule_string.split(b"/")[1].split(b","):
          __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 262, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 262, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
            }
          }
          __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 262, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_4, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 262, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 262, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
            }
          }
          __pyx_t_36 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 262, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (likely(PyList_CheckExact(__pyx_t_36)) || PyTuple_CheckExact(__pyx_t_36)) {
            __pyx_t_4 = __pyx_t_36; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_36); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 262, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_7 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 262, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_4))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 262, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 262, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 262, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 262, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              }
            } else {
              __pyx_t_36 = __pyx_t_7(__pyx_t_4);
              if (unlikely(!__pyx_t_36)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 262, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_36);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_36);
            __pyx_t_36 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0263:                         set_temp.insert(int(x))
            __pyx_t_36 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 263, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_36); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 263, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0264:                     survival.push_back(set_temp)
          try {
            __pyx_v_9CACompute_survival.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 264, __pyx_L1_error)
          }
 0265: 
+0266:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0267:                     for x in individual_rule_string.split(b"/")[2].split(b","):
          __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 267, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 267, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
            }
          }
          __pyx_t_36 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_3, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 267, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_36, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 267, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_split); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 267, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
            }
          }
          __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_36, __pyx_t_5, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_36, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 267, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
            __pyx_t_36 = __pyx_t_4; __Pyx_INCREF(__pyx_t_36); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_36 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 267, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_7 = Py_TYPE(__pyx_t_36)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 267, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_36))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_4 = PyList_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 267, __pyx_L1_error)
                #else
                __pyx_t_4 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 267, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_4);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 267, __pyx_L1_error)
                #else
                __pyx_t_4 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 267, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_4);
                #endif
              }
            } else {
              __pyx_t_4 = __pyx_t_7(__pyx_t_36);
              if (unlikely(!__pyx_t_4)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 267, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_4);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
            __pyx_t_4 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
+0268:                         set_temp.insert(int(x))
            __pyx_t_4 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 268, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 268, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0269:                     forcing.push_back(set_temp)
          try {
            __pyx_v_9CACompute_forcing.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 269, __pyx_L1_error)
          }
 0270: 
+0271:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0272:                     for x in individual_rule_string.split(b"/")[3].split(b","):
          __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 272, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 272, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
            }
          }
          __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 272, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_4, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 272, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 272, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
            }
          }
          __pyx_t_36 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 272, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (likely(PyList_CheckExact(__pyx_t_36)) || PyTuple_CheckExact(__pyx_t_36)) {
            __pyx_t_4 = __pyx_t_36; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_36); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 272, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_7 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 272, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_4))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 272, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 272, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 272, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 272, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              }
            } else {
              __pyx_t_36 = __pyx_t_7(__pyx_t_4);
              if (unlikely(!__pyx_t_36)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 272, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_36);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_36);
            __pyx_t_36 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0273:                         set_temp.insert(int(x))
            __pyx_t_36 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 273, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_36); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 273, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0274:                     killing.push_back(set_temp)
          try {
            __pyx_v_9CACompute_killing.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 274, __pyx_L1_error)
          }
 0275: 
+0276:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0277:                     for x in individual_rule_string.split(b"/")[4].split(b","):
          __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 277, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 277, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
            }
          }
          __pyx_t_36 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_3, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 277, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_36, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 277, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_split); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 277, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
            }
          }
          __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_36, __pyx_t_5, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_36, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 277, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
            __pyx_t_36 = __pyx_t_4; __Pyx_INCREF(__pyx_t_36); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_36 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 277, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_7 = Py_TYPE(__pyx_t_36)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 277, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_36))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_4 = PyList_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 277, __pyx_L1_error)
                #else
                __pyx_t_4 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 277, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_4);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 277, __pyx_L1_error)
                #else
                __pyx_t_4 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 277, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_4);
                #endif
              }
            } else {
              __pyx_t_4 = __pyx_t_7(__pyx_t_36);
              if (unlikely(!__pyx_t_4)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 277, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_4);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
            __pyx_t_4 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
+0278:                         set_temp.insert(int(x))
            __pyx_t_4 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 278, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 278, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0279:                     living.push_back(set_temp)
          try {
            __pyx_v_9CACompute_living.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 279, __pyx_L1_error)
          }
 0280:                 else:
+0281:                     set_temp.clear()
        /*else*/ {
          __pyx_v_set_temp.clear();
+0282:                     for x in re.split(b"[bsfkl]", individual_rule_string)[1].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_re); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 282, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 282, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 282, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_37 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_37 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_37)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_37);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[3] = {__pyx_t_37, __pyx_kp_b_bsfkl, __pyx_t_5};
            __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 282, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[3] = {__pyx_t_37, __pyx_kp_b_bsfkl, __pyx_t_5};
            __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 282, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          } else
          #endif
          {
            __pyx_t_13 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 282, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            if (__pyx_t_37) {
              __Pyx_GIVEREF(__pyx_t_37); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_37); __pyx_t_37 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_bsfkl);
            __Pyx_GIVEREF(__pyx_kp_b_bsfkl);
            PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_12, __pyx_kp_b_bsfkl);
            __Pyx_GIVEREF(__pyx_t_5);
            PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_12, __pyx_t_5);
            __pyx_t_5 = 0;
            __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_13, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 282, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_4, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 282, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 282, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
            }
          }
          __pyx_t_36 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 282, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (likely(PyList_CheckExact(__pyx_t_36)) || PyTuple_CheckExact(__pyx_t_36)) {
            __pyx_t_4 = __pyx_t_36; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_36); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 282, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_7 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 282, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_4))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 282, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 282, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 282, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 282, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              }
            } else {
              __pyx_t_36 = __pyx_t_7(__pyx_t_4);
              if (unlikely(!__pyx_t_36)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 282, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_36);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_36);
            __pyx_t_36 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0283:                         set_temp.insert(int(x))
            __pyx_t_36 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 283, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_36); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 283, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0284:                     birth.push_back(set_temp)
          try {
            __pyx_v_9CACompute_birth.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 284, __pyx_L1_error)
          }
 0285: 
+0286:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0287:                     for x in re.split(b"[bsfkl]", individual_rule_string)[2].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_re); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 287, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 287, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 287, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_5 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_13);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_13, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_13)) {
            PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_kp_b_bsfkl, __pyx_t_3};
            __pyx_t_36 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 287, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) {
            PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_kp_b_bsfkl, __pyx_t_3};
            __pyx_t_36 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 287, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          {
            __pyx_t_37 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 287, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_37);
            if (__pyx_t_5) {
              __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_37, 0, __pyx_t_5); __pyx_t_5 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_bsfkl);
            __Pyx_GIVEREF(__pyx_kp_b_bsfkl);
            PyTuple_SET_ITEM(__pyx_t_37, 0+__pyx_t_12, __pyx_kp_b_bsfkl);
            __Pyx_GIVEREF(__pyx_t_3);
            PyTuple_SET_ITEM(__pyx_t_37, 1+__pyx_t_12, __pyx_t_3);
            __pyx_t_3 = 0;
            __pyx_t_36 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_37, NULL); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 287, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_GetItemInt(__pyx_t_36, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 287, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_split); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 287, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_13)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_13);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
            }
          }
          __pyx_t_4 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_36, __pyx_t_13, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_36, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 287, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
            __pyx_t_36 = __pyx_t_4; __Pyx_INCREF(__pyx_t_36); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_36 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 287, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_7 = Py_TYPE(__pyx_t_36)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 287, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_36))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_4 = PyList_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 287, __pyx_L1_error)
                #else
                __pyx_t_4 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 287, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_4);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 287, __pyx_L1_error)
                #else
                __pyx_t_4 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 287, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_4);
                #endif
              }
            } else {
              __pyx_t_4 = __pyx_t_7(__pyx_t_36);
              if (unlikely(!__pyx_t_4)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 287, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_4);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
            __pyx_t_4 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
+0288:                         set_temp.insert(int(x))
            __pyx_t_4 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 288, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 288, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0289:                     survival.push_back(set_temp)
          try {
            __pyx_v_9CACompute_survival.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 289, __pyx_L1_error)
          }
 0290: 
+0291:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0292:                     for x in re.split(b"[bsfkl]", individual_rule_string)[3].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_re); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 292, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_37 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_split); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 292, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 292, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_3 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_37))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_37);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_37);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_37, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_37)) {
            PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_b_bsfkl, __pyx_t_13};
            __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_37, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 292, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_37)) {
            PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_b_bsfkl, __pyx_t_13};
            __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_37, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 292, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          } else
          #endif
          {
            __pyx_t_5 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 292, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            if (__pyx_t_3) {
              __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_bsfkl);
            __Pyx_GIVEREF(__pyx_kp_b_bsfkl);
            PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_12, __pyx_kp_b_bsfkl);
            __Pyx_GIVEREF(__pyx_t_13);
            PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_12, __pyx_t_13);
            __pyx_t_13 = 0;
            __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_37, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 292, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          }
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = __Pyx_GetItemInt(__pyx_t_4, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 292, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_37, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 292, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_37 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_37)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_37);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
            }
          }
          __pyx_t_36 = (__pyx_t_37) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_37, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
          if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 292, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (likely(PyList_CheckExact(__pyx_t_36)) || PyTuple_CheckExact(__pyx_t_36)) {
            __pyx_t_4 = __pyx_t_36; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_36); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 292, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_7 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 292, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_4))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 292, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 292, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 292, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 292, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              }
            } else {
              __pyx_t_36 = __pyx_t_7(__pyx_t_4);
              if (unlikely(!__pyx_t_36)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 292, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_36);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_36);
            __pyx_t_36 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0293:                         set_temp.insert(int(x))
            __pyx_t_36 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 293, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_36); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 293, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0294:                     forcing.push_back(set_temp)
          try {
            __pyx_v_9CACompute_forcing.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 294, __pyx_L1_error)
          }
 0295: 
+0296:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0297:                     for x in re.split(b"[bsfkl]", individual_rule_string)[4].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_37, __pyx_n_s_re); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 297, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_37, __pyx_n_s_split); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 297, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 297, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __pyx_t_13 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_13)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_13);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_5)) {
            PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_kp_b_bsfkl, __pyx_t_37};
            __pyx_t_36 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 297, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
            PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_kp_b_bsfkl, __pyx_t_37};
            __pyx_t_36 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 297, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          } else
          #endif
          {
            __pyx_t_3 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 297, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            if (__pyx_t_13) {
              __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_13); __pyx_t_13 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_bsfkl);
            __Pyx_GIVEREF(__pyx_kp_b_bsfkl);
            PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_12, __pyx_kp_b_bsfkl);
            __Pyx_GIVEREF(__pyx_t_37);
            PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_12, __pyx_t_37);
            __pyx_t_37 = 0;
            __pyx_t_36 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_3, NULL); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 297, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_36, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 297, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_split); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 297, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
            }
          }
          __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_36, __pyx_t_5, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_36, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 297, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
            __pyx_t_36 = __pyx_t_4; __Pyx_INCREF(__pyx_t_36); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_36 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 297, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_7 = Py_TYPE(__pyx_t_36)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 297, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_36))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_4 = PyList_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 297, __pyx_L1_error)
                #else
                __pyx_t_4 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 297, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_4);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 297, __pyx_L1_error)
                #else
                __pyx_t_4 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 297, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_4);
                #endif
              }
            } else {
              __pyx_t_4 = __pyx_t_7(__pyx_t_36);
              if (unlikely(!__pyx_t_4)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 297, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_4);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
            __pyx_t_4 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
+0298:                         set_temp.insert(int(x))
            __pyx_t_4 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 298, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 298, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0299:                     killing.push_back(set_temp)
          try {
            __pyx_v_9CACompute_killing.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 299, __pyx_L1_error)
          }
 0300: 
+0301:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0302:                     for x in re.split(b"[bsfkl]", individual_rule_string)[5].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_re); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 302, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 302, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 302, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_37 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_37 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_37)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_37);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[3] = {__pyx_t_37, __pyx_kp_b_bsfkl, __pyx_t_5};
            __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 302, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[3] = {__pyx_t_37, __pyx_kp_b_bsfkl, __pyx_t_5};
            __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 302, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          } else
          #endif
          {
            __pyx_t_13 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 302, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            if (__pyx_t_37) {
              __Pyx_GIVEREF(__pyx_t_37); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_37); __pyx_t_37 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_bsfkl);
            __Pyx_GIVEREF(__pyx_kp_b_bsfkl);
            PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_12, __pyx_kp_b_bsfkl);
            __Pyx_GIVEREF(__pyx_t_5);
            PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_12, __pyx_t_5);
            __pyx_t_5 = 0;
            __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_13, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 302, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_4, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 302, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 302, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
            }
          }
          __pyx_t_36 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 302, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (likely(PyList_CheckExact(__pyx_t_36)) || PyTuple_CheckExact(__pyx_t_36)) {
            __pyx_t_4 = __pyx_t_36; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_36); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 302, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_7 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 302, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_4))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 302, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 302, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 302, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 302, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              }
            } else {
              __pyx_t_36 = __pyx_t_7(__pyx_t_4);
              if (unlikely(!__pyx_t_36)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 302, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_36);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_36);
            __pyx_t_36 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0303:                         set_temp.insert(int(x))
            __pyx_t_36 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 303, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_36); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 303, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0304:                     living.push_back(set_temp)
          try {
            __pyx_v_9CACompute_living.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 304, __pyx_L1_error)
          }
        }
        __pyx_L79:;
+0305:             elif bsconditions == b"Double Totalistic":
      __pyx_t_8 = ((__pyx_v_9CACompute_bsconditions == ((char const *)"Double Totalistic")) != 0);
      if (__pyx_t_8) {
/* … */
      }
      __pyx_L78:;
+0306:                 if individual_rule_string.find(b"/") != -1:
        __pyx_t_8 = ((__pyx_v_individual_rule_string.find(__pyx_k__13) != -1L) != 0);
        if (__pyx_t_8) {
/* … */
          goto __pyx_L100;
        }
+0307:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0308:                     for x in re.findall(b"\((.*?)\)", individual_rule_string.split(b"/")[0])[0].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_re); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 308, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_findall); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 308, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 308, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_37 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_split); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 308, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_37))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_37);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_37);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_37, function);
            }
          }
          __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_37, __pyx_t_5, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_37, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 308, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 308, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_13);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_13, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_13)) {
            PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_b__14, __pyx_t_37};
            __pyx_t_36 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 308, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) {
            PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_b__14, __pyx_t_37};
            __pyx_t_36 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 308, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          } else
          #endif
          {
            __pyx_t_5 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 308, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            if (__pyx_t_3) {
              __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_kp_b__14);
            PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_12, __pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_t_37);
            PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_12, __pyx_t_37);
            __pyx_t_37 = 0;
            __pyx_t_36 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_5, NULL); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 308, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_GetItemInt(__pyx_t_36, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 308, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_split); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 308, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_13)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_13);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
            }
          }
          __pyx_t_4 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_36, __pyx_t_13, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_36, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 308, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
            __pyx_t_36 = __pyx_t_4; __Pyx_INCREF(__pyx_t_36); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_36 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 308, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_7 = Py_TYPE(__pyx_t_36)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 308, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_36))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_4 = PyList_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 308, __pyx_L1_error)
                #else
                __pyx_t_4 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 308, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_4);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 308, __pyx_L1_error)
                #else
                __pyx_t_4 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 308, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_4);
                #endif
              }
            } else {
              __pyx_t_4 = __pyx_t_7(__pyx_t_36);
              if (unlikely(!__pyx_t_4)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 308, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_4);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
            __pyx_t_4 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
+0309:                         set_temp.insert(int(x))
            __pyx_t_4 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 309, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 309, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0310:                     birth.push_back(set_temp)
          try {
            __pyx_v_9CACompute_birth.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 310, __pyx_L1_error)
          }
 0311: 
+0312:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0313:                     for x in re.findall(b"\((.*?)\)", individual_rule_string.split(b"/")[1])[0].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_re); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 313, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_findall); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 313, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_37 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 313, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_37, __pyx_n_s_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 313, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_37 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_37)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_37);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
            }
          }
          __pyx_t_13 = (__pyx_t_37) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_37, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 313, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_13, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 313, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_13)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_13);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_5)) {
            PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_kp_b__14, __pyx_t_3};
            __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 313, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
            PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_kp_b__14, __pyx_t_3};
            __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 313, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          {
            __pyx_t_37 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 313, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_37);
            if (__pyx_t_13) {
              __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_37, 0, __pyx_t_13); __pyx_t_13 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_kp_b__14);
            PyTuple_SET_ITEM(__pyx_t_37, 0+__pyx_t_12, __pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_t_3);
            PyTuple_SET_ITEM(__pyx_t_37, 1+__pyx_t_12, __pyx_t_3);
            __pyx_t_3 = 0;
            __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_37, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 313, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 313, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 313, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
            }
          }
          __pyx_t_36 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 313, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (likely(PyList_CheckExact(__pyx_t_36)) || PyTuple_CheckExact(__pyx_t_36)) {
            __pyx_t_4 = __pyx_t_36; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_36); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 313, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_7 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 313, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_4))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 313, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 313, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 313, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              }
            } else {
              __pyx_t_36 = __pyx_t_7(__pyx_t_4);
              if (unlikely(!__pyx_t_36)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 313, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_36);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_36);
            __pyx_t_36 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0314:                         set_temp.insert(int(x))
            __pyx_t_36 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 314, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_36); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 314, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0315:                     survival.push_back(set_temp)
          try {
            __pyx_v_9CACompute_survival.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 315, __pyx_L1_error)
          }
 0316: 
+0317:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0318:                     for x in re.findall(b"\((.*?)\)", individual_rule_string.split(b"/")[2])[0].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_re); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 318, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_37 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_findall); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 318, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 318, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 318, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_13);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_13, function);
            }
          }
          __pyx_t_5 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_3, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 318, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_GetItemInt(__pyx_t_5, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 318, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_37))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_37);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_37);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_37, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_37)) {
            PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_kp_b__14, __pyx_t_13};
            __pyx_t_36 = __Pyx_PyFunction_FastCall(__pyx_t_37, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 318, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_37)) {
            PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_kp_b__14, __pyx_t_13};
            __pyx_t_36 = __Pyx_PyCFunction_FastCall(__pyx_t_37, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 318, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          } else
          #endif
          {
            __pyx_t_3 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 318, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            if (__pyx_t_5) {
              __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5); __pyx_t_5 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_kp_b__14);
            PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_12, __pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_t_13);
            PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_12, __pyx_t_13);
            __pyx_t_13 = 0;
            __pyx_t_36 = __Pyx_PyObject_Call(__pyx_t_37, __pyx_t_3, NULL); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 318, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          }
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = __Pyx_GetItemInt(__pyx_t_36, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 318, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_37, __pyx_n_s_split); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 318, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_37 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_37)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_37);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
            }
          }
          __pyx_t_4 = (__pyx_t_37) ? __Pyx_PyObject_Call2Args(__pyx_t_36, __pyx_t_37, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_36, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 318, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
            __pyx_t_36 = __pyx_t_4; __Pyx_INCREF(__pyx_t_36); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_36 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 318, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_7 = Py_TYPE(__pyx_t_36)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 318, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_36))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_4 = PyList_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 318, __pyx_L1_error)
                #else
                __pyx_t_4 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 318, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_4);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 318, __pyx_L1_error)
                #else
                __pyx_t_4 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 318, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_4);
                #endif
              }
            } else {
              __pyx_t_4 = __pyx_t_7(__pyx_t_36);
              if (unlikely(!__pyx_t_4)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 318, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_4);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
            __pyx_t_4 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
+0319:                         set_temp.insert(int(x))
            __pyx_t_4 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 319, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 319, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0320:                     forcing.push_back(set_temp)
          try {
            __pyx_v_9CACompute_forcing.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 320, __pyx_L1_error)
          }
 0321: 
+0322:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0323:                     for x in re.findall(b"\((.*?)\)", individual_rule_string.split(b"/")[3])[0].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_37, __pyx_n_s_re); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 323, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_37, __pyx_n_s_findall); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 323, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_13 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 323, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_split); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 323, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_13)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_13);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
            }
          }
          __pyx_t_37 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_13, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 323, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_37, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 323, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_37 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_37)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_37);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[3] = {__pyx_t_37, __pyx_kp_b__14, __pyx_t_5};
            __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 323, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[3] = {__pyx_t_37, __pyx_kp_b__14, __pyx_t_5};
            __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 323, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          } else
          #endif
          {
            __pyx_t_13 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 323, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            if (__pyx_t_37) {
              __Pyx_GIVEREF(__pyx_t_37); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_37); __pyx_t_37 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_kp_b__14);
            PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_12, __pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_t_5);
            PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_12, __pyx_t_5);
            __pyx_t_5 = 0;
            __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_13, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 323, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 323, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 323, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
            }
          }
          __pyx_t_36 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 323, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (likely(PyList_CheckExact(__pyx_t_36)) || PyTuple_CheckExact(__pyx_t_36)) {
            __pyx_t_4 = __pyx_t_36; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_36); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 323, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_7 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 323, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_4))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 323, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 323, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 323, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 323, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              }
            } else {
              __pyx_t_36 = __pyx_t_7(__pyx_t_4);
              if (unlikely(!__pyx_t_36)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 323, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_36);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_36);
            __pyx_t_36 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0324:                         set_temp.insert(int(x))
            __pyx_t_36 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 324, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_36); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 324, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0325:                     killing.push_back(set_temp)
          try {
            __pyx_v_9CACompute_killing.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 325, __pyx_L1_error)
          }
 0326: 
+0327:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0328:                     for x in re.findall(b"\((.*?)\)", individual_rule_string.split(b"/")[4])[0].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_re); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 328, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_findall); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 328, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 328, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_37 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_split); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 328, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_37))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_37);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_37);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_37, function);
            }
          }
          __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_37, __pyx_t_5, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_37, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 328, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = __Pyx_GetItemInt(__pyx_t_3, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 328, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_13);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_13, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_13)) {
            PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_b__14, __pyx_t_37};
            __pyx_t_36 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 328, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) {
            PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_b__14, __pyx_t_37};
            __pyx_t_36 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 328, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          } else
          #endif
          {
            __pyx_t_5 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 328, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            if (__pyx_t_3) {
              __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_kp_b__14);
            PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_12, __pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_t_37);
            PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_12, __pyx_t_37);
            __pyx_t_37 = 0;
            __pyx_t_36 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_5, NULL); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 328, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_GetItemInt(__pyx_t_36, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 328, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_split); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 328, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_13)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_13);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
            }
          }
          __pyx_t_4 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_36, __pyx_t_13, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_36, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 328, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
            __pyx_t_36 = __pyx_t_4; __Pyx_INCREF(__pyx_t_36); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_36 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 328, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_7 = Py_TYPE(__pyx_t_36)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 328, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_36))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_4 = PyList_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 328, __pyx_L1_error)
                #else
                __pyx_t_4 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 328, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_4);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 328, __pyx_L1_error)
                #else
                __pyx_t_4 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 328, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_4);
                #endif
              }
            } else {
              __pyx_t_4 = __pyx_t_7(__pyx_t_36);
              if (unlikely(!__pyx_t_4)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 328, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_4);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
            __pyx_t_4 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
+0329:                         set_temp.insert(int(x))
            __pyx_t_4 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 329, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 329, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0330:                     living.push_back(set_temp)
          try {
            __pyx_v_9CACompute_living.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 330, __pyx_L1_error)
          }
 0331: 
+0332:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0333:                     for x in re.sub(b"\(.*?\)", b"", individual_rule_string.split(b"/")[0]).split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_re); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 333, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_sub); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 333, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_37 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 333, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_37, __pyx_n_s_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 333, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_37 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_37)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_37);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
            }
          }
          __pyx_t_13 = (__pyx_t_37) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_37, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 333, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_13, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 333, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_13)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_13);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_5)) {
            PyObject *__pyx_temp[4] = {__pyx_t_13, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_3};
            __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 333, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
            PyObject *__pyx_temp[4] = {__pyx_t_13, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_3};
            __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 333, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          {
            __pyx_t_37 = PyTuple_New(3+__pyx_t_12); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 333, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_37);
            if (__pyx_t_13) {
              __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_37, 0, __pyx_t_13); __pyx_t_13 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__15);
            __Pyx_GIVEREF(__pyx_kp_b__15);
            PyTuple_SET_ITEM(__pyx_t_37, 0+__pyx_t_12, __pyx_kp_b__15);
            __Pyx_INCREF(__pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_kp_b_);
            PyTuple_SET_ITEM(__pyx_t_37, 1+__pyx_t_12, __pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_t_3);
            PyTuple_SET_ITEM(__pyx_t_37, 2+__pyx_t_12, __pyx_t_3);
            __pyx_t_3 = 0;
            __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_37, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 333, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_split); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 333, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
            }
          }
          __pyx_t_36 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 333, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (likely(PyList_CheckExact(__pyx_t_36)) || PyTuple_CheckExact(__pyx_t_36)) {
            __pyx_t_5 = __pyx_t_36; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_36); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 333, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 333, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_5))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 333, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 333, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 333, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 333, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              }
            } else {
              __pyx_t_36 = __pyx_t_7(__pyx_t_5);
              if (unlikely(!__pyx_t_36)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 333, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_36);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_36);
            __pyx_t_36 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0334:                         set_temp.insert(int(x))
            __pyx_t_36 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 334, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_36); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 334, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0335:                     other_birth.push_back(set_temp)
          try {
            __pyx_v_9CACompute_other_birth.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 335, __pyx_L1_error)
          }
 0336: 
+0337:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0338:                     for x in re.sub(b"\(.*?\)", b"", individual_rule_string.split(b"/")[1]).split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_re); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 338, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_37 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_sub); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 338, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 338, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 338, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_13);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_13, function);
            }
          }
          __pyx_t_4 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_3, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 338, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_GetItemInt(__pyx_t_4, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 338, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_37))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_37);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_37);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_37, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_37)) {
            PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_13};
            __pyx_t_36 = __Pyx_PyFunction_FastCall(__pyx_t_37, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 338, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_37)) {
            PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_13};
            __pyx_t_36 = __Pyx_PyCFunction_FastCall(__pyx_t_37, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 338, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          } else
          #endif
          {
            __pyx_t_3 = PyTuple_New(3+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 338, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            if (__pyx_t_4) {
              __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__15);
            __Pyx_GIVEREF(__pyx_kp_b__15);
            PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_12, __pyx_kp_b__15);
            __Pyx_INCREF(__pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_kp_b_);
            PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_12, __pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_t_13);
            PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_12, __pyx_t_13);
            __pyx_t_13 = 0;
            __pyx_t_36 = __Pyx_PyObject_Call(__pyx_t_37, __pyx_t_3, NULL); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 338, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          }
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = __Pyx_PyObject_GetAttrStr(__pyx_t_36, __pyx_n_s_split); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 338, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_37))) {
            __pyx_t_36 = PyMethod_GET_SELF(__pyx_t_37);
            if (likely(__pyx_t_36)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_37);
              __Pyx_INCREF(__pyx_t_36);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_37, function);
            }
          }
          __pyx_t_5 = (__pyx_t_36) ? __Pyx_PyObject_Call2Args(__pyx_t_37, __pyx_t_36, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_37, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 338, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
            __pyx_t_37 = __pyx_t_5; __Pyx_INCREF(__pyx_t_37); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_37 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 338, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_37);
            __pyx_t_7 = Py_TYPE(__pyx_t_37)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 338, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_37))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_37)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_5 = PyList_GET_ITEM(__pyx_t_37, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 338, __pyx_L1_error)
                #else
                __pyx_t_5 = PySequence_ITEM(__pyx_t_37, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 338, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_5);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_37)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_37, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 338, __pyx_L1_error)
                #else
                __pyx_t_5 = PySequence_ITEM(__pyx_t_37, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 338, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_5);
                #endif
              }
            } else {
              __pyx_t_5 = __pyx_t_7(__pyx_t_37);
              if (unlikely(!__pyx_t_5)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 338, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_5);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_5);
            __pyx_t_5 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
+0339:                         set_temp.insert(int(x))
            __pyx_t_5 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 339, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 339, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0340:                     other_survival.push_back(set_temp)
          try {
            __pyx_v_9CACompute_other_survival.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 340, __pyx_L1_error)
          }
 0341: 
+0342:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0343:                     for x in re.sub(b"\(.*?\)", b"", individual_rule_string.split(b"/")[2]).split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_36, __pyx_n_s_re); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 343, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_36, __pyx_n_s_sub); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 343, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_13 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 343, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 343, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_13)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_13);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
            }
          }
          __pyx_t_36 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_13, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 343, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_36, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 343, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_36 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_36)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_36);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[4] = {__pyx_t_36, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_4};
            __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 343, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[4] = {__pyx_t_36, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_4};
            __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 343, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          } else
          #endif
          {
            __pyx_t_13 = PyTuple_New(3+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 343, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            if (__pyx_t_36) {
              __Pyx_GIVEREF(__pyx_t_36); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_36); __pyx_t_36 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__15);
            __Pyx_GIVEREF(__pyx_kp_b__15);
            PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_12, __pyx_kp_b__15);
            __Pyx_INCREF(__pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_kp_b_);
            PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_12, __pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_t_4);
            PyTuple_SET_ITEM(__pyx_t_13, 2+__pyx_t_12, __pyx_t_4);
            __pyx_t_4 = 0;
            __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_13, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 343, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 343, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
            }
          }
          __pyx_t_37 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 343, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (likely(PyList_CheckExact(__pyx_t_37)) || PyTuple_CheckExact(__pyx_t_37)) {
            __pyx_t_3 = __pyx_t_37; __Pyx_INCREF(__pyx_t_3); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_37); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 343, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_7 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 343, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_3))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_3)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_37 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_37); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 343, __pyx_L1_error)
                #else
                __pyx_t_37 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 343, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_37);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_37 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_37); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 343, __pyx_L1_error)
                #else
                __pyx_t_37 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 343, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_37);
                #endif
              }
            } else {
              __pyx_t_37 = __pyx_t_7(__pyx_t_3);
              if (unlikely(!__pyx_t_37)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 343, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_37);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_37);
            __pyx_t_37 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0344:                         set_temp.insert(int(x))
            __pyx_t_37 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 344, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_37);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_37); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 344, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0345:                     other_forcing.push_back(set_temp)
          try {
            __pyx_v_9CACompute_other_forcing.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 345, __pyx_L1_error)
          }
 0346: 
+0347:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0348:                     for x in re.sub(b"\(.*?\)", b"", individual_rule_string.split(b"/")[3]).split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_re); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 348, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_sub); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 348, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 348, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_split); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 348, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
            }
          }
          __pyx_t_5 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_36, __pyx_t_4, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_36, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 348, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __Pyx_GetItemInt(__pyx_t_5, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 348, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_13);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_13, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_13)) {
            PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_36};
            __pyx_t_37 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 348, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_GOTREF(__pyx_t_37);
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) {
            PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_36};
            __pyx_t_37 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 348, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_GOTREF(__pyx_t_37);
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          } else
          #endif
          {
            __pyx_t_4 = PyTuple_New(3+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 348, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            if (__pyx_t_5) {
              __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__15);
            __Pyx_GIVEREF(__pyx_kp_b__15);
            PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_12, __pyx_kp_b__15);
            __Pyx_INCREF(__pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_kp_b_);
            PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_12, __pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_t_36);
            PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_12, __pyx_t_36);
            __pyx_t_36 = 0;
            __pyx_t_37 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_4, NULL); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 348, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_37);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_37, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 348, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_37 = PyMethod_GET_SELF(__pyx_t_13);
            if (likely(__pyx_t_37)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
              __Pyx_INCREF(__pyx_t_37);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_13, function);
            }
          }
          __pyx_t_3 = (__pyx_t_37) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_37, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
          if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 348, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
            __pyx_t_13 = __pyx_t_3; __Pyx_INCREF(__pyx_t_13); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 348, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_7 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 348, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_13))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_13)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_3 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 348, __pyx_L1_error)
                #else
                __pyx_t_3 = PySequence_ITEM(__pyx_t_13, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 348, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_3);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 348, __pyx_L1_error)
                #else
                __pyx_t_3 = PySequence_ITEM(__pyx_t_13, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 348, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_3);
                #endif
              }
            } else {
              __pyx_t_3 = __pyx_t_7(__pyx_t_13);
              if (unlikely(!__pyx_t_3)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 348, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_3);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3);
            __pyx_t_3 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+0349:                         set_temp.insert(int(x))
            __pyx_t_3 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 349, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 349, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0350:                     other_killing.push_back(set_temp)
          try {
            __pyx_v_9CACompute_other_killing.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 350, __pyx_L1_error)
          }
 0351: 
+0352:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0353:                     for x in re.sub(b"\(.*?\)", b"", individual_rule_string.split(b"/")[4]).split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_37, __pyx_n_s_re); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 353, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_37, __pyx_n_s_sub); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 353, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_36 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 353, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_36, __pyx_n_s_split); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 353, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_36 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_36)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_36);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
            }
          }
          __pyx_t_37 = (__pyx_t_36) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_36, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 353, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_37, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 353, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_37 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_37)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_37);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_4)) {
            PyObject *__pyx_temp[4] = {__pyx_t_37, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_5};
            __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 353, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
            PyObject *__pyx_temp[4] = {__pyx_t_37, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_5};
            __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 353, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          } else
          #endif
          {
            __pyx_t_36 = PyTuple_New(3+__pyx_t_12); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 353, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            if (__pyx_t_37) {
              __Pyx_GIVEREF(__pyx_t_37); PyTuple_SET_ITEM(__pyx_t_36, 0, __pyx_t_37); __pyx_t_37 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__15);
            __Pyx_GIVEREF(__pyx_kp_b__15);
            PyTuple_SET_ITEM(__pyx_t_36, 0+__pyx_t_12, __pyx_kp_b__15);
            __Pyx_INCREF(__pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_kp_b_);
            PyTuple_SET_ITEM(__pyx_t_36, 1+__pyx_t_12, __pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_t_5);
            PyTuple_SET_ITEM(__pyx_t_36, 2+__pyx_t_12, __pyx_t_5);
            __pyx_t_5 = 0;
            __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_36, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 353, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 353, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
            }
          }
          __pyx_t_13 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 353, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (likely(PyList_CheckExact(__pyx_t_13)) || PyTuple_CheckExact(__pyx_t_13)) {
            __pyx_t_4 = __pyx_t_13; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 353, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_7 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 353, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_4))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_13 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 353, __pyx_L1_error)
                #else
                __pyx_t_13 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 353, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_13);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 353, __pyx_L1_error)
                #else
                __pyx_t_13 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 353, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_13);
                #endif
              }
            } else {
              __pyx_t_13 = __pyx_t_7(__pyx_t_4);
              if (unlikely(!__pyx_t_13)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 353, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_13);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_13);
            __pyx_t_13 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0354:                         set_temp.insert(int(x))
            __pyx_t_13 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 354, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_13); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 354, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0355:                     other_living.push_back(set_temp)
          try {
            __pyx_v_9CACompute_other_living.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 355, __pyx_L1_error)
          }
 0356:                 else:
+0357:                     set_temp.clear()
        /*else*/ {
          __pyx_v_set_temp.clear();
+0358:                     for x in re.findall(b"\((.*?)\)", re.split(b"[bsfkl]", individual_rule_string)[0])[0].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_re); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 358, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_findall); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 358, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_re); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 358, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_37 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_split); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 358, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 358, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_14 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_37))) {
            __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_37);
            if (likely(__pyx_t_14)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_37);
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_37, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_37)) {
            PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_kp_b_bsfkl, __pyx_t_5};
            __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_37, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 358, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_37)) {
            PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_kp_b_bsfkl, __pyx_t_5};
            __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_37, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 358, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          } else
          #endif
          {
            __pyx_t_2 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 358, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            if (__pyx_t_14) {
              __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_14); __pyx_t_14 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_bsfkl);
            __Pyx_GIVEREF(__pyx_kp_b_bsfkl);
            PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_12, __pyx_kp_b_bsfkl);
            __Pyx_GIVEREF(__pyx_t_5);
            PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_12, __pyx_t_5);
            __pyx_t_5 = 0;
            __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_37, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 358, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          }
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 358, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_36)) {
            PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_b__14, __pyx_t_37};
            __pyx_t_13 = __Pyx_PyFunction_FastCall(__pyx_t_36, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 358, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_36)) {
            PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_b__14, __pyx_t_37};
            __pyx_t_13 = __Pyx_PyCFunction_FastCall(__pyx_t_36, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 358, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          } else
          #endif
          {
            __pyx_t_2 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 358, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            if (__pyx_t_3) {
              __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_kp_b__14);
            PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_12, __pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_t_37);
            PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_12, __pyx_t_37);
            __pyx_t_37 = 0;
            __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_36, __pyx_t_2, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 358, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __Pyx_GetItemInt(__pyx_t_13, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 358, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_36, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 358, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_36 = PyMethod_GET_SELF(__pyx_t_13);
            if (likely(__pyx_t_36)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
              __Pyx_INCREF(__pyx_t_36);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_13, function);
            }
          }
          __pyx_t_4 = (__pyx_t_36) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_36, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 358, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
            __pyx_t_13 = __pyx_t_4; __Pyx_INCREF(__pyx_t_13); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 358, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_7 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 358, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_13))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_13)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_4 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 358, __pyx_L1_error)
                #else
                __pyx_t_4 = PySequence_ITEM(__pyx_t_13, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 358, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_4);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 358, __pyx_L1_error)
                #else
                __pyx_t_4 = PySequence_ITEM(__pyx_t_13, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 358, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_4);
                #endif
              }
            } else {
              __pyx_t_4 = __pyx_t_7(__pyx_t_13);
              if (unlikely(!__pyx_t_4)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 358, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_4);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
            __pyx_t_4 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+0359:                         set_temp.insert(int(x))
            __pyx_t_4 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 359, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 359, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0360:                     birth.push_back(set_temp)
          try {
            __pyx_v_9CACompute_birth.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 360, __pyx_L1_error)
          }
 0361: 
+0362:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0363:                     for x in re.findall(b"\((.*?)\)", re.split(b"[bsfkl]", individual_rule_string)[1])[0].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_36, __pyx_n_s_re); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 363, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_36, __pyx_n_s_findall); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 363, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_37, __pyx_n_s_re); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 363, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_37, __pyx_n_s_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 363, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 363, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __pyx_t_5 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_kp_b_bsfkl, __pyx_t_37};
            __pyx_t_36 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 363, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_kp_b_bsfkl, __pyx_t_37};
            __pyx_t_36 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 363, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          } else
          #endif
          {
            __pyx_t_14 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 363, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            if (__pyx_t_5) {
              __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_5); __pyx_t_5 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_bsfkl);
            __Pyx_GIVEREF(__pyx_kp_b_bsfkl);
            PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_12, __pyx_kp_b_bsfkl);
            __Pyx_GIVEREF(__pyx_t_37);
            PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_12, __pyx_t_37);
            __pyx_t_37 = 0;
            __pyx_t_36 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_14, NULL); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 363, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_36, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 363, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_36 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_36)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_36);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_2)) {
            PyObject *__pyx_temp[3] = {__pyx_t_36, __pyx_kp_b__14, __pyx_t_3};
            __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 363, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
            PyObject *__pyx_temp[3] = {__pyx_t_36, __pyx_kp_b__14, __pyx_t_3};
            __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 363, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          {
            __pyx_t_14 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 363, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            if (__pyx_t_36) {
              __Pyx_GIVEREF(__pyx_t_36); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_36); __pyx_t_36 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_kp_b__14);
            PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_12, __pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_t_3);
            PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_12, __pyx_t_3);
            __pyx_t_3 = 0;
            __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_14, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 363, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 363, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 363, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
            }
          }
          __pyx_t_13 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_2, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 363, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (likely(PyList_CheckExact(__pyx_t_13)) || PyTuple_CheckExact(__pyx_t_13)) {
            __pyx_t_4 = __pyx_t_13; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 363, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_7 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 363, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_4))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_13 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 363, __pyx_L1_error)
                #else
                __pyx_t_13 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 363, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_13);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 363, __pyx_L1_error)
                #else
                __pyx_t_13 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 363, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_13);
                #endif
              }
            } else {
              __pyx_t_13 = __pyx_t_7(__pyx_t_4);
              if (unlikely(!__pyx_t_13)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 363, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_13);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_13);
            __pyx_t_13 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0364:                         set_temp.insert(int(x))
            __pyx_t_13 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 364, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_13); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 364, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0365:                     survival.push_back(set_temp)
          try {
            __pyx_v_9CACompute_survival.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 365, __pyx_L1_error)
          }
 0366: 
+0367:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0368:                     for x in re.findall(b"\((.*?)\)", re.split(b"[bsfkl]", individual_rule_string)[2])[0].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_re); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 368, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_findall); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 368, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_re); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 368, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 368, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 368, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_37 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_37 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_37)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_37);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_36)) {
            PyObject *__pyx_temp[3] = {__pyx_t_37, __pyx_kp_b_bsfkl, __pyx_t_3};
            __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_36, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 368, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_36)) {
            PyObject *__pyx_temp[3] = {__pyx_t_37, __pyx_kp_b_bsfkl, __pyx_t_3};
            __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_36, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 368, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          {
            __pyx_t_5 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 368, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            if (__pyx_t_37) {
              __Pyx_GIVEREF(__pyx_t_37); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_37); __pyx_t_37 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_bsfkl);
            __Pyx_GIVEREF(__pyx_kp_b_bsfkl);
            PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_12, __pyx_kp_b_bsfkl);
            __Pyx_GIVEREF(__pyx_t_3);
            PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_12, __pyx_t_3);
            __pyx_t_3 = 0;
            __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_36, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 368, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __Pyx_GetItemInt(__pyx_t_2, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 368, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_14);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_14, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_14)) {
            PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_kp_b__14, __pyx_t_36};
            __pyx_t_13 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 368, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) {
            PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_kp_b__14, __pyx_t_36};
            __pyx_t_13 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 368, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          } else
          #endif
          {
            __pyx_t_5 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 368, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            if (__pyx_t_2) {
              __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_kp_b__14);
            PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_12, __pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_t_36);
            PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_12, __pyx_t_36);
            __pyx_t_36 = 0;
            __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_5, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 368, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_13, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 368, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 368, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
            if (likely(__pyx_t_14)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_13, function);
            }
          }
          __pyx_t_4 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 368, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
            __pyx_t_13 = __pyx_t_4; __Pyx_INCREF(__pyx_t_13); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 368, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_7 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 368, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_13))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_13)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_4 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 368, __pyx_L1_error)
                #else
                __pyx_t_4 = PySequence_ITEM(__pyx_t_13, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 368, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_4);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 368, __pyx_L1_error)
                #else
                __pyx_t_4 = PySequence_ITEM(__pyx_t_13, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 368, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_4);
                #endif
              }
            } else {
              __pyx_t_4 = __pyx_t_7(__pyx_t_13);
              if (unlikely(!__pyx_t_4)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 368, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_4);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
            __pyx_t_4 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+0369:                         set_temp.insert(int(x))
            __pyx_t_4 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 369, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 369, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0370:                     forcing.push_back(set_temp)
          try {
            __pyx_v_9CACompute_forcing.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 370, __pyx_L1_error)
          }
 0371: 
+0372:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0373:                     for x in re.findall(b"\((.*?)\)", re.split(b"[bsfkl]", individual_rule_string)[3])[0].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_re); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 373, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_findall); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 373, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_36, __pyx_n_s_re); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 373, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_36, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 373, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 373, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __pyx_t_3 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_2)) {
            PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_b_bsfkl, __pyx_t_36};
            __pyx_t_14 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 373, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
            PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_b_bsfkl, __pyx_t_36};
            __pyx_t_14 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 373, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          } else
          #endif
          {
            __pyx_t_37 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 373, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_37);
            if (__pyx_t_3) {
              __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_37, 0, __pyx_t_3); __pyx_t_3 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_bsfkl);
            __Pyx_GIVEREF(__pyx_kp_b_bsfkl);
            PyTuple_SET_ITEM(__pyx_t_37, 0+__pyx_t_12, __pyx_kp_b_bsfkl);
            __Pyx_GIVEREF(__pyx_t_36);
            PyTuple_SET_ITEM(__pyx_t_37, 1+__pyx_t_12, __pyx_t_36);
            __pyx_t_36 = 0;
            __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_37, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 373, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_14, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 373, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_14)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_5)) {
            PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_kp_b__14, __pyx_t_2};
            __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 373, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
            PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_kp_b__14, __pyx_t_2};
            __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 373, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          } else
          #endif
          {
            __pyx_t_37 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 373, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_37);
            if (__pyx_t_14) {
              __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_37, 0, __pyx_t_14); __pyx_t_14 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_kp_b__14);
            PyTuple_SET_ITEM(__pyx_t_37, 0+__pyx_t_12, __pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_t_2);
            PyTuple_SET_ITEM(__pyx_t_37, 1+__pyx_t_12, __pyx_t_2);
            __pyx_t_2 = 0;
            __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_37, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 373, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 373, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 373, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
            }
          }
          __pyx_t_13 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 373, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (likely(PyList_CheckExact(__pyx_t_13)) || PyTuple_CheckExact(__pyx_t_13)) {
            __pyx_t_4 = __pyx_t_13; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 373, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_7 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 373, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_4))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_13 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 373, __pyx_L1_error)
                #else
                __pyx_t_13 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 373, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_13);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 373, __pyx_L1_error)
                #else
                __pyx_t_13 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 373, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_13);
                #endif
              }
            } else {
              __pyx_t_13 = __pyx_t_7(__pyx_t_4);
              if (unlikely(!__pyx_t_13)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 373, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_13);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_13);
            __pyx_t_13 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0374:                         set_temp.insert(int(x))
            __pyx_t_13 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 374, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_13); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 374, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0375:                     killing.push_back(set_temp)
          try {
            __pyx_v_9CACompute_killing.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 375, __pyx_L1_error)
          }
 0376: 
+0377:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0378:                     for x in re.findall(b"\((.*?)\)", re.split(b"[bsfkl]", individual_rule_string)[4])[0].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_re); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 378, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_37 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_findall); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 378, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_re); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 378, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_split); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 378, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 378, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_36 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) {
            __pyx_t_36 = PyMethod_GET_SELF(__pyx_t_14);
            if (likely(__pyx_t_36)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
              __Pyx_INCREF(__pyx_t_36);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_14, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_14)) {
            PyObject *__pyx_temp[3] = {__pyx_t_36, __pyx_kp_b_bsfkl, __pyx_t_2};
            __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 378, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) {
            PyObject *__pyx_temp[3] = {__pyx_t_36, __pyx_kp_b_bsfkl, __pyx_t_2};
            __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 378, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          } else
          #endif
          {
            __pyx_t_3 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 378, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            if (__pyx_t_36) {
              __Pyx_GIVEREF(__pyx_t_36); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_36); __pyx_t_36 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_bsfkl);
            __Pyx_GIVEREF(__pyx_kp_b_bsfkl);
            PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_12, __pyx_kp_b_bsfkl);
            __Pyx_GIVEREF(__pyx_t_2);
            PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_12, __pyx_t_2);
            __pyx_t_2 = 0;
            __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 378, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_5, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 378, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_37))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_37);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_37);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_37, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_37)) {
            PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_kp_b__14, __pyx_t_14};
            __pyx_t_13 = __Pyx_PyFunction_FastCall(__pyx_t_37, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 378, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_37)) {
            PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_kp_b__14, __pyx_t_14};
            __pyx_t_13 = __Pyx_PyCFunction_FastCall(__pyx_t_37, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 378, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          } else
          #endif
          {
            __pyx_t_3 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 378, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            if (__pyx_t_5) {
              __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5); __pyx_t_5 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_kp_b__14);
            PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_12, __pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_t_14);
            PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_12, __pyx_t_14);
            __pyx_t_14 = 0;
            __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_37, __pyx_t_3, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 378, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          }
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = __Pyx_GetItemInt(__pyx_t_13, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 378, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_37, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 378, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_37 = PyMethod_GET_SELF(__pyx_t_13);
            if (likely(__pyx_t_37)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
              __Pyx_INCREF(__pyx_t_37);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_13, function);
            }
          }
          __pyx_t_4 = (__pyx_t_37) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_37, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 378, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
            __pyx_t_13 = __pyx_t_4; __Pyx_INCREF(__pyx_t_13); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 378, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_7 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 378, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_13))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_13)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_4 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 378, __pyx_L1_error)
                #else
                __pyx_t_4 = PySequence_ITEM(__pyx_t_13, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 378, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_4);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 378, __pyx_L1_error)
                #else
                __pyx_t_4 = PySequence_ITEM(__pyx_t_13, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 378, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_4);
                #endif
              }
            } else {
              __pyx_t_4 = __pyx_t_7(__pyx_t_13);
              if (unlikely(!__pyx_t_4)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 378, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_4);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
            __pyx_t_4 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+0379:                         set_temp.insert(int(x))
            __pyx_t_4 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 379, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 379, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0380:                     living.push_back(set_temp)
          try {
            __pyx_v_9CACompute_living.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 380, __pyx_L1_error)
          }
 0381: 
+0382:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0383:                     for x in re.sub(b"\(.*?\)", b"", re.split(b"[bsfkl]", individual_rule_string)[0]).split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_37, __pyx_n_s_re); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 383, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_37, __pyx_n_s_sub); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 383, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_re); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 383, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_split); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 383, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 383, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_2 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_5)) {
            PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_kp_b_bsfkl, __pyx_t_14};
            __pyx_t_37 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 383, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_GOTREF(__pyx_t_37);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
            PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_kp_b_bsfkl, __pyx_t_14};
            __pyx_t_37 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 383, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_GOTREF(__pyx_t_37);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          } else
          #endif
          {
            __pyx_t_36 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 383, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            if (__pyx_t_2) {
              __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_36, 0, __pyx_t_2); __pyx_t_2 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_bsfkl);
            __Pyx_GIVEREF(__pyx_kp_b_bsfkl);
            PyTuple_SET_ITEM(__pyx_t_36, 0+__pyx_t_12, __pyx_kp_b_bsfkl);
            __Pyx_GIVEREF(__pyx_t_14);
            PyTuple_SET_ITEM(__pyx_t_36, 1+__pyx_t_12, __pyx_t_14);
            __pyx_t_14 = 0;
            __pyx_t_37 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_36, NULL); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 383, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_37);
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_37, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 383, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_37 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_37)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_37);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[4] = {__pyx_t_37, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_5};
            __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 383, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[4] = {__pyx_t_37, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_5};
            __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 383, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          } else
          #endif
          {
            __pyx_t_36 = PyTuple_New(3+__pyx_t_12); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 383, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            if (__pyx_t_37) {
              __Pyx_GIVEREF(__pyx_t_37); PyTuple_SET_ITEM(__pyx_t_36, 0, __pyx_t_37); __pyx_t_37 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__15);
            __Pyx_GIVEREF(__pyx_kp_b__15);
            PyTuple_SET_ITEM(__pyx_t_36, 0+__pyx_t_12, __pyx_kp_b__15);
            __Pyx_INCREF(__pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_kp_b_);
            PyTuple_SET_ITEM(__pyx_t_36, 1+__pyx_t_12, __pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_t_5);
            PyTuple_SET_ITEM(__pyx_t_36, 2+__pyx_t_12, __pyx_t_5);
            __pyx_t_5 = 0;
            __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_36, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 383, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 383, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
            }
          }
          __pyx_t_13 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 383, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (likely(PyList_CheckExact(__pyx_t_13)) || PyTuple_CheckExact(__pyx_t_13)) {
            __pyx_t_3 = __pyx_t_13; __Pyx_INCREF(__pyx_t_3); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 383, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_7 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 383, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_3))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_3)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_13 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 383, __pyx_L1_error)
                #else
                __pyx_t_13 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 383, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_13);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 383, __pyx_L1_error)
                #else
                __pyx_t_13 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 383, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_13);
                #endif
              }
            } else {
              __pyx_t_13 = __pyx_t_7(__pyx_t_3);
              if (unlikely(!__pyx_t_13)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 383, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_13);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_13);
            __pyx_t_13 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0384:                         set_temp.insert(int(x))
            __pyx_t_13 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 384, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_13); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 384, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0385:                     other_birth.push_back(set_temp)
          try {
            __pyx_v_9CACompute_other_birth.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 385, __pyx_L1_error)
          }
 0386: 
+0387:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0388:                     for x in re.sub(b"\(.*?\)", b"", re.split(b"[bsfkl]", individual_rule_string)[1]).split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_re); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 388, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_sub); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 388, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_re); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 388, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_37 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_split); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 388, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 388, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_14 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_37))) {
            __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_37);
            if (likely(__pyx_t_14)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_37);
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_37, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_37)) {
            PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_kp_b_bsfkl, __pyx_t_5};
            __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_37, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 388, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_37)) {
            PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_kp_b_bsfkl, __pyx_t_5};
            __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_37, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 388, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          } else
          #endif
          {
            __pyx_t_2 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 388, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            if (__pyx_t_14) {
              __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_14); __pyx_t_14 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_bsfkl);
            __Pyx_GIVEREF(__pyx_kp_b_bsfkl);
            PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_12, __pyx_kp_b_bsfkl);
            __Pyx_GIVEREF(__pyx_t_5);
            PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_12, __pyx_t_5);
            __pyx_t_5 = 0;
            __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_37, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 388, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          }
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = __Pyx_GetItemInt(__pyx_t_4, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 388, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_36)) {
            PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_37};
            __pyx_t_13 = __Pyx_PyFunction_FastCall(__pyx_t_36, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 388, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_36)) {
            PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_37};
            __pyx_t_13 = __Pyx_PyCFunction_FastCall(__pyx_t_36, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 388, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          } else
          #endif
          {
            __pyx_t_2 = PyTuple_New(3+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 388, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            if (__pyx_t_4) {
              __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__15);
            __Pyx_GIVEREF(__pyx_kp_b__15);
            PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_12, __pyx_kp_b__15);
            __Pyx_INCREF(__pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_kp_b_);
            PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_12, __pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_t_37);
            PyTuple_SET_ITEM(__pyx_t_2, 2+__pyx_t_12, __pyx_t_37);
            __pyx_t_37 = 0;
            __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_36, __pyx_t_2, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 388, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_split); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 388, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_13)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_13);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
            }
          }
          __pyx_t_3 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_36, __pyx_t_13, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_36, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 388, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
            __pyx_t_36 = __pyx_t_3; __Pyx_INCREF(__pyx_t_36); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_36 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 388, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_7 = Py_TYPE(__pyx_t_36)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 388, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_36))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_3 = PyList_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 388, __pyx_L1_error)
                #else
                __pyx_t_3 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 388, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_3);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 388, __pyx_L1_error)
                #else
                __pyx_t_3 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 388, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_3);
                #endif
              }
            } else {
              __pyx_t_3 = __pyx_t_7(__pyx_t_36);
              if (unlikely(!__pyx_t_3)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 388, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_3);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3);
            __pyx_t_3 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
+0389:                         set_temp.insert(int(x))
            __pyx_t_3 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 389, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 389, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0390:                     other_survival.push_back(set_temp)
          try {
            __pyx_v_9CACompute_other_survival.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 390, __pyx_L1_error)
          }
 0391: 
+0392:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0393:                     for x in re.sub(b"\(.*?\)", b"", re.split(b"[bsfkl]", individual_rule_string)[2]).split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_re); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 393, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_sub); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 393, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_37, __pyx_n_s_re); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 393, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_37, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 393, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 393, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __pyx_t_5 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_4)) {
            PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_kp_b_bsfkl, __pyx_t_37};
            __pyx_t_13 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 393, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
            PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_kp_b_bsfkl, __pyx_t_37};
            __pyx_t_13 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 393, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          } else
          #endif
          {
            __pyx_t_14 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 393, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            if (__pyx_t_5) {
              __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_5); __pyx_t_5 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_bsfkl);
            __Pyx_GIVEREF(__pyx_kp_b_bsfkl);
            PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_12, __pyx_kp_b_bsfkl);
            __Pyx_GIVEREF(__pyx_t_37);
            PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_12, __pyx_t_37);
            __pyx_t_37 = 0;
            __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_14, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 393, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_13, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 393, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_13)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_13);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_2)) {
            PyObject *__pyx_temp[4] = {__pyx_t_13, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_4};
            __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 393, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
            PyObject *__pyx_temp[4] = {__pyx_t_13, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_4};
            __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 393, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          } else
          #endif
          {
            __pyx_t_14 = PyTuple_New(3+__pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 393, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            if (__pyx_t_13) {
              __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_13); __pyx_t_13 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__15);
            __Pyx_GIVEREF(__pyx_kp_b__15);
            PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_12, __pyx_kp_b__15);
            __Pyx_INCREF(__pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_kp_b_);
            PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_12, __pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_t_4);
            PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_12, __pyx_t_4);
            __pyx_t_4 = 0;
            __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_14, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 393, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 393, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
            }
          }
          __pyx_t_36 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 393, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (likely(PyList_CheckExact(__pyx_t_36)) || PyTuple_CheckExact(__pyx_t_36)) {
            __pyx_t_2 = __pyx_t_36; __Pyx_INCREF(__pyx_t_2); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_36); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 393, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_7 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 393, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_2))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_2)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 393, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 393, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 393, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 393, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              }
            } else {
              __pyx_t_36 = __pyx_t_7(__pyx_t_2);
              if (unlikely(!__pyx_t_36)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 393, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_36);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_36);
            __pyx_t_36 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0394:                         set_temp.insert(int(x))
            __pyx_t_36 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 394, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_36); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 394, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0395:                     other_forcing.push_back(set_temp)
          try {
            __pyx_v_9CACompute_other_forcing.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 395, __pyx_L1_error)
          }
 0396: 
+0397:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0398:                     for x in re.sub(b"\(.*?\)", b"", re.split(b"[bsfkl]", individual_rule_string)[3]).split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_re); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 398, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_sub); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 398, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_re); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 398, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 398, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 398, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_37 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_37 = PyMethod_GET_SELF(__pyx_t_13);
            if (likely(__pyx_t_37)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
              __Pyx_INCREF(__pyx_t_37);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_13, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_13)) {
            PyObject *__pyx_temp[3] = {__pyx_t_37, __pyx_kp_b_bsfkl, __pyx_t_4};
            __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 398, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) {
            PyObject *__pyx_temp[3] = {__pyx_t_37, __pyx_kp_b_bsfkl, __pyx_t_4};
            __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 398, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          } else
          #endif
          {
            __pyx_t_5 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 398, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            if (__pyx_t_37) {
              __Pyx_GIVEREF(__pyx_t_37); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_37); __pyx_t_37 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_bsfkl);
            __Pyx_GIVEREF(__pyx_kp_b_bsfkl);
            PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_12, __pyx_kp_b_bsfkl);
            __Pyx_GIVEREF(__pyx_t_4);
            PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_12, __pyx_t_4);
            __pyx_t_4 = 0;
            __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 398, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_GetItemInt(__pyx_t_3, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 398, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_14);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_14, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_14)) {
            PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_13};
            __pyx_t_36 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 398, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) {
            PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_13};
            __pyx_t_36 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 398, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          } else
          #endif
          {
            __pyx_t_5 = PyTuple_New(3+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 398, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            if (__pyx_t_3) {
              __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__15);
            __Pyx_GIVEREF(__pyx_kp_b__15);
            PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_12, __pyx_kp_b__15);
            __Pyx_INCREF(__pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_kp_b_);
            PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_12, __pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_t_13);
            PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_12, __pyx_t_13);
            __pyx_t_13 = 0;
            __pyx_t_36 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_5, NULL); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 398, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_36, __pyx_n_s_split); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 398, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) {
            __pyx_t_36 = PyMethod_GET_SELF(__pyx_t_14);
            if (likely(__pyx_t_36)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
              __Pyx_INCREF(__pyx_t_36);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_14, function);
            }
          }
          __pyx_t_2 = (__pyx_t_36) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_36, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 398, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
            __pyx_t_14 = __pyx_t_2; __Pyx_INCREF(__pyx_t_14); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 398, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_7 = Py_TYPE(__pyx_t_14)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 398, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_14))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_14)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_2 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 398, __pyx_L1_error)
                #else
                __pyx_t_2 = PySequence_ITEM(__pyx_t_14, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 398, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_14)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 398, __pyx_L1_error)
                #else
                __pyx_t_2 = PySequence_ITEM(__pyx_t_14, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 398, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                #endif
              }
            } else {
              __pyx_t_2 = __pyx_t_7(__pyx_t_14);
              if (unlikely(!__pyx_t_2)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 398, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_2);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2);
            __pyx_t_2 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+0399:                         set_temp.insert(int(x))
            __pyx_t_2 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 399, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 399, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0400:                     other_killing.push_back(set_temp)
          try {
            __pyx_v_9CACompute_other_killing.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 400, __pyx_L1_error)
          }
 0401: 
+0402:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0403:                     for x in re.sub(b"\(.*?\)", b"", re.split(b"[bsfkl]", individual_rule_string)[4]).split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_36, __pyx_n_s_re); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 403, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_36, __pyx_n_s_sub); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 403, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_re); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 403, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 403, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 403, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_4 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_kp_b_bsfkl, __pyx_t_13};
            __pyx_t_36 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 403, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_kp_b_bsfkl, __pyx_t_13};
            __pyx_t_36 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 403, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          } else
          #endif
          {
            __pyx_t_37 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 403, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_37);
            if (__pyx_t_4) {
              __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_37, 0, __pyx_t_4); __pyx_t_4 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_bsfkl);
            __Pyx_GIVEREF(__pyx_kp_b_bsfkl);
            PyTuple_SET_ITEM(__pyx_t_37, 0+__pyx_t_12, __pyx_kp_b_bsfkl);
            __Pyx_GIVEREF(__pyx_t_13);
            PyTuple_SET_ITEM(__pyx_t_37, 1+__pyx_t_12, __pyx_t_13);
            __pyx_t_13 = 0;
            __pyx_t_36 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_37, NULL); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 403, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_36, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 403, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_36 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_36)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_36);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_5)) {
            PyObject *__pyx_temp[4] = {__pyx_t_36, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_3};
            __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 403, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
            PyObject *__pyx_temp[4] = {__pyx_t_36, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_3};
            __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 403, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          {
            __pyx_t_37 = PyTuple_New(3+__pyx_t_12); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 403, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_37);
            if (__pyx_t_36) {
              __Pyx_GIVEREF(__pyx_t_36); PyTuple_SET_ITEM(__pyx_t_37, 0, __pyx_t_36); __pyx_t_36 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__15);
            __Pyx_GIVEREF(__pyx_kp_b__15);
            PyTuple_SET_ITEM(__pyx_t_37, 0+__pyx_t_12, __pyx_kp_b__15);
            __Pyx_INCREF(__pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_kp_b_);
            PyTuple_SET_ITEM(__pyx_t_37, 1+__pyx_t_12, __pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_t_3);
            PyTuple_SET_ITEM(__pyx_t_37, 2+__pyx_t_12, __pyx_t_3);
            __pyx_t_3 = 0;
            __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_37, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 403, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_split); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 403, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
            }
          }
          __pyx_t_14 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_2, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 403, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (likely(PyList_CheckExact(__pyx_t_14)) || PyTuple_CheckExact(__pyx_t_14)) {
            __pyx_t_5 = __pyx_t_14; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 403, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 403, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_5))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_14 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_14); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 403, __pyx_L1_error)
                #else
                __pyx_t_14 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 403, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_14 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_14); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 403, __pyx_L1_error)
                #else
                __pyx_t_14 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 403, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                #endif
              }
            } else {
              __pyx_t_14 = __pyx_t_7(__pyx_t_5);
              if (unlikely(!__pyx_t_14)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 403, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_14);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_14);
            __pyx_t_14 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0404:                         set_temp.insert(int(x))
            __pyx_t_14 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 404, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_14); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 404, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0405:                     other_living.push_back(set_temp)
          try {
            __pyx_v_9CACompute_other_living.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 405, __pyx_L1_error)
          }
        }
        __pyx_L100:;
 0406: 
+0407:     elif rule_space == b"Extended Generations":
  __pyx_t_8 = ((__pyx_v_9CACompute_rule_space == ((char const *)"Extended Generations")) != 0);
  if (__pyx_t_8) {
/* … */
    goto __pyx_L44;
  }
+0408:         for individual_rule_string in rule_string:
    __pyx_t_35 = __pyx_v_rule_string.begin();
    for (;;) {
      if (!(__pyx_t_35 != __pyx_v_rule_string.end())) break;
      __pyx_t_1 = *__pyx_t_35;
      ++__pyx_t_35;
      __pyx_v_individual_rule_string = __pyx_t_1;
/* … */
    }
+0409:             if bsconditions == b"Outer Totalistic":
      __pyx_t_8 = ((__pyx_v_9CACompute_bsconditions == ((char const *)"Outer Totalistic")) != 0);
      if (__pyx_t_8) {
/* … */
        goto __pyx_L143;
      }
+0410:                 if individual_rule_string.find(b"/") != -1:
        __pyx_t_8 = ((__pyx_v_individual_rule_string.find(__pyx_k__13) != -1L) != 0);
        if (__pyx_t_8) {
/* … */
          goto __pyx_L144;
        }
+0411:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0412:                     for x in individual_rule_string.split(b"/")[1].split(b","):
          __pyx_t_2 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 412, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_37 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_split); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 412, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_37))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_37);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_37);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_37, function);
            }
          }
          __pyx_t_14 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_37, __pyx_t_2, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_37, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 412, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = __Pyx_GetItemInt(__pyx_t_14, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 412, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_37, __pyx_n_s_split); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 412, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) {
            __pyx_t_37 = PyMethod_GET_SELF(__pyx_t_14);
            if (likely(__pyx_t_37)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
              __Pyx_INCREF(__pyx_t_37);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_14, function);
            }
          }
          __pyx_t_5 = (__pyx_t_37) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_37, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
          if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 412, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
            __pyx_t_14 = __pyx_t_5; __Pyx_INCREF(__pyx_t_14); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 412, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_7 = Py_TYPE(__pyx_t_14)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 412, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_14))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_14)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_5 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 412, __pyx_L1_error)
                #else
                __pyx_t_5 = PySequence_ITEM(__pyx_t_14, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 412, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_5);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_14)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 412, __pyx_L1_error)
                #else
                __pyx_t_5 = PySequence_ITEM(__pyx_t_14, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 412, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_5);
                #endif
              }
            } else {
              __pyx_t_5 = __pyx_t_7(__pyx_t_14);
              if (unlikely(!__pyx_t_5)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 412, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_5);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_5);
            __pyx_t_5 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+0413:                         set_temp.insert(int(x))
            __pyx_t_5 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 413, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 413, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0414:                     birth.push_back(set_temp)
          try {
            __pyx_v_9CACompute_birth.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 414, __pyx_L1_error)
          }
 0415: 
+0416:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0417:                     for x in individual_rule_string.split(b"/")[0].split(b","):
          __pyx_t_37 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 417, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_37, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 417, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_37 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_37)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_37);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
            }
          }
          __pyx_t_5 = (__pyx_t_37) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_37, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
          if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 417, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_5, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 417, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_split); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 417, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
            }
          }
          __pyx_t_14 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_2, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 417, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (likely(PyList_CheckExact(__pyx_t_14)) || PyTuple_CheckExact(__pyx_t_14)) {
            __pyx_t_5 = __pyx_t_14; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 417, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 417, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_5))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_14 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_14); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 417, __pyx_L1_error)
                #else
                __pyx_t_14 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 417, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_14 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_14); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 417, __pyx_L1_error)
                #else
                __pyx_t_14 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 417, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                #endif
              }
            } else {
              __pyx_t_14 = __pyx_t_7(__pyx_t_5);
              if (unlikely(!__pyx_t_14)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 417, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_14);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_14);
            __pyx_t_14 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0418:                         set_temp.insert(int(x))
            __pyx_t_14 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 418, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_14); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 418, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0419:                     survival.push_back(set_temp)
          try {
            __pyx_v_9CACompute_survival.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 419, __pyx_L1_error)
          }
 0420: 
+0421:                     extended.clear()
          __pyx_v_extended.clear();
+0422:                     for x in individual_rule_string.split(b"/")[2].split(b"-"):
          __pyx_t_2 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 422, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_37 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_split); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 422, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_37))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_37);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_37);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_37, function);
            }
          }
          __pyx_t_14 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_37, __pyx_t_2, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_37, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 422, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = __Pyx_GetItemInt(__pyx_t_14, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 422, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_37, __pyx_n_s_split); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 422, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) {
            __pyx_t_37 = PyMethod_GET_SELF(__pyx_t_14);
            if (likely(__pyx_t_37)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
              __Pyx_INCREF(__pyx_t_37);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_14, function);
            }
          }
          __pyx_t_5 = (__pyx_t_37) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_37, __pyx_kp_b__16) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_kp_b__16);
          __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
          if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 422, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
            __pyx_t_14 = __pyx_t_5; __Pyx_INCREF(__pyx_t_14); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 422, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_7 = Py_TYPE(__pyx_t_14)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 422, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_14))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_14)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_5 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 422, __pyx_L1_error)
                #else
                __pyx_t_5 = PySequence_ITEM(__pyx_t_14, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 422, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_5);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_14)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 422, __pyx_L1_error)
                #else
                __pyx_t_5 = PySequence_ITEM(__pyx_t_14, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 422, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_5);
                #endif
              }
            } else {
              __pyx_t_5 = __pyx_t_7(__pyx_t_14);
              if (unlikely(!__pyx_t_5)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 422, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_5);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_5);
            __pyx_t_5 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+0423:                         extended.push_back(int(x))
            __pyx_t_5 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 423, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 423, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            try {
              __pyx_v_extended.push_back(__pyx_t_12);
            } catch(...) {
              __Pyx_CppExn2PyErr();
              __PYX_ERR(0, 423, __pyx_L1_error)
            }
 0424:                 else:
+0425:                     set_temp.clear()
        /*else*/ {
          __pyx_v_set_temp.clear();
+0426:                     for x in re.split(b"[bsd]", individual_rule_string)[1].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_37, __pyx_n_s_re); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 426, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_37, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 426, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 426, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __pyx_t_3 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_2)) {
            PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_b_bsd, __pyx_t_37};
            __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 426, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
            PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_b_bsd, __pyx_t_37};
            __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 426, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          } else
          #endif
          {
            __pyx_t_36 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 426, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            if (__pyx_t_3) {
              __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_36, 0, __pyx_t_3); __pyx_t_3 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_bsd);
            __Pyx_GIVEREF(__pyx_kp_b_bsd);
            PyTuple_SET_ITEM(__pyx_t_36, 0+__pyx_t_12, __pyx_kp_b_bsd);
            __Pyx_GIVEREF(__pyx_t_37);
            PyTuple_SET_ITEM(__pyx_t_36, 1+__pyx_t_12, __pyx_t_37);
            __pyx_t_37 = 0;
            __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_36, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 426, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_5, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 426, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_split); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 426, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
            }
          }
          __pyx_t_14 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_2, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 426, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (likely(PyList_CheckExact(__pyx_t_14)) || PyTuple_CheckExact(__pyx_t_14)) {
            __pyx_t_5 = __pyx_t_14; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 426, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 426, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_5))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_14 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_14); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 426, __pyx_L1_error)
                #else
                __pyx_t_14 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 426, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_14 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_14); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 426, __pyx_L1_error)
                #else
                __pyx_t_14 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 426, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                #endif
              }
            } else {
              __pyx_t_14 = __pyx_t_7(__pyx_t_5);
              if (unlikely(!__pyx_t_14)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 426, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_14);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_14);
            __pyx_t_14 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0427:                         set_temp.insert(int(x))
            __pyx_t_14 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 427, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_14); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 427, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0428:                     birth.push_back(set_temp)
          try {
            __pyx_v_9CACompute_birth.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 428, __pyx_L1_error)
          }
 0429: 
+0430:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0431:                     for x in re.split(b"[bsd]", individual_rule_string)[2].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_re); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 431, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_split); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 431, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 431, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_37 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_37 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_37)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_37);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_36)) {
            PyObject *__pyx_temp[3] = {__pyx_t_37, __pyx_kp_b_bsd, __pyx_t_2};
            __pyx_t_14 = __Pyx_PyFunction_FastCall(__pyx_t_36, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 431, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_36)) {
            PyObject *__pyx_temp[3] = {__pyx_t_37, __pyx_kp_b_bsd, __pyx_t_2};
            __pyx_t_14 = __Pyx_PyCFunction_FastCall(__pyx_t_36, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 431, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          } else
          #endif
          {
            __pyx_t_3 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 431, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            if (__pyx_t_37) {
              __Pyx_GIVEREF(__pyx_t_37); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_37); __pyx_t_37 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_bsd);
            __Pyx_GIVEREF(__pyx_kp_b_bsd);
            PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_12, __pyx_kp_b_bsd);
            __Pyx_GIVEREF(__pyx_t_2);
            PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_12, __pyx_t_2);
            __pyx_t_2 = 0;
            __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_36, __pyx_t_3, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 431, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __Pyx_GetItemInt(__pyx_t_14, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 431, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_36, __pyx_n_s_split); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 431, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) {
            __pyx_t_36 = PyMethod_GET_SELF(__pyx_t_14);
            if (likely(__pyx_t_36)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
              __Pyx_INCREF(__pyx_t_36);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_14, function);
            }
          }
          __pyx_t_5 = (__pyx_t_36) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_36, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 431, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
            __pyx_t_14 = __pyx_t_5; __Pyx_INCREF(__pyx_t_14); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 431, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_7 = Py_TYPE(__pyx_t_14)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 431, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_14))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_14)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_5 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 431, __pyx_L1_error)
                #else
                __pyx_t_5 = PySequence_ITEM(__pyx_t_14, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 431, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_5);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_14)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 431, __pyx_L1_error)
                #else
                __pyx_t_5 = PySequence_ITEM(__pyx_t_14, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 431, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_5);
                #endif
              }
            } else {
              __pyx_t_5 = __pyx_t_7(__pyx_t_14);
              if (unlikely(!__pyx_t_5)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 431, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_5);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_5);
            __pyx_t_5 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+0432:                         set_temp.insert(int(x))
            __pyx_t_5 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 432, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 432, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0433:                     survival.push_back(set_temp)
          try {
            __pyx_v_9CACompute_survival.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 433, __pyx_L1_error)
          }
 0434: 
+0435:                     extended.clear()
          __pyx_v_extended.clear();
+0436:                     for x in re.split(b"[bsd]", individual_rule_string)[3].split(b"-"):
          __Pyx_GetModuleGlobalName(__pyx_t_36, __pyx_n_s_re); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 436, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_36, __pyx_n_s_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 436, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 436, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __pyx_t_2 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_kp_b_bsd, __pyx_t_36};
            __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 436, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_kp_b_bsd, __pyx_t_36};
            __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 436, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          } else
          #endif
          {
            __pyx_t_37 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 436, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_37);
            if (__pyx_t_2) {
              __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_37, 0, __pyx_t_2); __pyx_t_2 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_bsd);
            __Pyx_GIVEREF(__pyx_kp_b_bsd);
            PyTuple_SET_ITEM(__pyx_t_37, 0+__pyx_t_12, __pyx_kp_b_bsd);
            __Pyx_GIVEREF(__pyx_t_36);
            PyTuple_SET_ITEM(__pyx_t_37, 1+__pyx_t_12, __pyx_t_36);
            __pyx_t_36 = 0;
            __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_37, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 436, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_5, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 436, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 436, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
            }
          }
          __pyx_t_14 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_3, __pyx_kp_b__16) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_b__16);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 436, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (likely(PyList_CheckExact(__pyx_t_14)) || PyTuple_CheckExact(__pyx_t_14)) {
            __pyx_t_5 = __pyx_t_14; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 436, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 436, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_5))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_14 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_14); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 436, __pyx_L1_error)
                #else
                __pyx_t_14 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 436, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_14 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_14); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 436, __pyx_L1_error)
                #else
                __pyx_t_14 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 436, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                #endif
              }
            } else {
              __pyx_t_14 = __pyx_t_7(__pyx_t_5);
              if (unlikely(!__pyx_t_14)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 436, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_14);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_14);
            __pyx_t_14 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        }
        __pyx_L144:;
+0437:                         extended.push_back(int(x))
            __pyx_t_14 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 437, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_14); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 437, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            try {
              __pyx_v_extended.push_back(__pyx_t_12);
            } catch(...) {
              __Pyx_CppExn2PyErr();
              __PYX_ERR(0, 437, __pyx_L1_error)
            }
+0438:             elif bsconditions == b"Double Totalistic":
      __pyx_t_8 = ((__pyx_v_9CACompute_bsconditions == ((char const *)"Double Totalistic")) != 0);
      if (__pyx_t_8) {
/* … */
      }
      __pyx_L143:;
+0439:                 if individual_rule_string.find(b"/") != -1:
        __pyx_t_8 = ((__pyx_v_individual_rule_string.find(__pyx_k__13) != -1L) != 0);
        if (__pyx_t_8) {
/* … */
          goto __pyx_L157;
        }
+0440:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0441:                     for x in re.findall(b"\((.*?)\)", individual_rule_string.split(b"/")[1])[0].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_re); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 441, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_37 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_findall); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 441, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_36 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 441, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_36, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 441, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_36 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_36)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_36);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
            }
          }
          __pyx_t_3 = (__pyx_t_36) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_36, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 441, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 441, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_37))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_37);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_37);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_37, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_37)) {
            PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_b__14, __pyx_t_2};
            __pyx_t_14 = __Pyx_PyFunction_FastCall(__pyx_t_37, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 441, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_37)) {
            PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_b__14, __pyx_t_2};
            __pyx_t_14 = __Pyx_PyCFunction_FastCall(__pyx_t_37, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 441, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          } else
          #endif
          {
            __pyx_t_36 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 441, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            if (__pyx_t_3) {
              __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_36, 0, __pyx_t_3); __pyx_t_3 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_kp_b__14);
            PyTuple_SET_ITEM(__pyx_t_36, 0+__pyx_t_12, __pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_t_2);
            PyTuple_SET_ITEM(__pyx_t_36, 1+__pyx_t_12, __pyx_t_2);
            __pyx_t_2 = 0;
            __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_37, __pyx_t_36, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 441, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          }
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = __Pyx_GetItemInt(__pyx_t_14, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 441, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_37, __pyx_n_s_split); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 441, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) {
            __pyx_t_37 = PyMethod_GET_SELF(__pyx_t_14);
            if (likely(__pyx_t_37)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
              __Pyx_INCREF(__pyx_t_37);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_14, function);
            }
          }
          __pyx_t_5 = (__pyx_t_37) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_37, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
          if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 441, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
            __pyx_t_14 = __pyx_t_5; __Pyx_INCREF(__pyx_t_14); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 441, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_7 = Py_TYPE(__pyx_t_14)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 441, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_14))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_14)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_5 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 441, __pyx_L1_error)
                #else
                __pyx_t_5 = PySequence_ITEM(__pyx_t_14, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 441, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_5);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_14)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 441, __pyx_L1_error)
                #else
                __pyx_t_5 = PySequence_ITEM(__pyx_t_14, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 441, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_5);
                #endif
              }
            } else {
              __pyx_t_5 = __pyx_t_7(__pyx_t_14);
              if (unlikely(!__pyx_t_5)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 441, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_5);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_5);
            __pyx_t_5 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+0442:                         set_temp.insert(int(x))
            __pyx_t_5 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 442, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 442, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0443:                     birth.push_back(set_temp)
          try {
            __pyx_v_9CACompute_birth.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 443, __pyx_L1_error)
          }
 0444: 
+0445:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0446:                     for x in re.findall(b"\((.*?)\)", individual_rule_string.split(b"/")[0])[0].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_37, __pyx_n_s_re); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 446, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_37, __pyx_n_s_findall); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 446, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_2 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 446, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 446, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
            }
          }
          __pyx_t_37 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 446, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_37, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 446, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_37 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_37)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_37);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_36)) {
            PyObject *__pyx_temp[3] = {__pyx_t_37, __pyx_kp_b__14, __pyx_t_3};
            __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_36, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 446, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_36)) {
            PyObject *__pyx_temp[3] = {__pyx_t_37, __pyx_kp_b__14, __pyx_t_3};
            __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_36, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 446, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          {
            __pyx_t_2 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 446, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            if (__pyx_t_37) {
              __Pyx_GIVEREF(__pyx_t_37); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_37); __pyx_t_37 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_kp_b__14);
            PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_12, __pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_t_3);
            PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_12, __pyx_t_3);
            __pyx_t_3 = 0;
            __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_36, __pyx_t_2, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 446, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __Pyx_GetItemInt(__pyx_t_5, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 446, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_36, __pyx_n_s_split); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 446, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_36 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_36)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_36);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
            }
          }
          __pyx_t_14 = (__pyx_t_36) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_36, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 446, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (likely(PyList_CheckExact(__pyx_t_14)) || PyTuple_CheckExact(__pyx_t_14)) {
            __pyx_t_5 = __pyx_t_14; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 446, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 446, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_5))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_14 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_14); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 446, __pyx_L1_error)
                #else
                __pyx_t_14 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 446, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_14 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_14); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 446, __pyx_L1_error)
                #else
                __pyx_t_14 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 446, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                #endif
              }
            } else {
              __pyx_t_14 = __pyx_t_7(__pyx_t_5);
              if (unlikely(!__pyx_t_14)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 446, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_14);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_14);
            __pyx_t_14 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0447:                         set_temp.insert(int(x))
            __pyx_t_14 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 447, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_14); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 447, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0448:                     survival.push_back(set_temp)
          try {
            __pyx_v_9CACompute_survival.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 448, __pyx_L1_error)
          }
 0449: 
+0450:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0451:                     for x in re.sub(b"\(.*?\)", b"", individual_rule_string.split(b"/")[1]).split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_36, __pyx_n_s_re); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 451, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_36, __pyx_n_s_sub); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 451, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 451, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_37 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 451, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_37))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_37);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_37);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_37, function);
            }
          }
          __pyx_t_36 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_37, __pyx_t_3, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_37, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 451, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = __Pyx_GetItemInt(__pyx_t_36, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 451, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_36 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_36)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_36);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_2)) {
            PyObject *__pyx_temp[4] = {__pyx_t_36, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_37};
            __pyx_t_14 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 451, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
            PyObject *__pyx_temp[4] = {__pyx_t_36, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_37};
            __pyx_t_14 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 451, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          } else
          #endif
          {
            __pyx_t_3 = PyTuple_New(3+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 451, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            if (__pyx_t_36) {
              __Pyx_GIVEREF(__pyx_t_36); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_36); __pyx_t_36 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__15);
            __Pyx_GIVEREF(__pyx_kp_b__15);
            PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_12, __pyx_kp_b__15);
            __Pyx_INCREF(__pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_kp_b_);
            PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_12, __pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_t_37);
            PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_12, __pyx_t_37);
            __pyx_t_37 = 0;
            __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 451, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 451, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_14)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
            }
          }
          __pyx_t_5 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_14, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 451, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
            __pyx_t_2 = __pyx_t_5; __Pyx_INCREF(__pyx_t_2); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 451, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_7 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 451, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_2))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_2)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 451, __pyx_L1_error)
                #else
                __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 451, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_5);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 451, __pyx_L1_error)
                #else
                __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 451, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_5);
                #endif
              }
            } else {
              __pyx_t_5 = __pyx_t_7(__pyx_t_2);
              if (unlikely(!__pyx_t_5)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 451, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_5);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_5);
            __pyx_t_5 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0452:                         set_temp.insert(int(x))
            __pyx_t_5 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 452, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 452, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0453:                     other_birth.push_back(set_temp)
          try {
            __pyx_v_9CACompute_other_birth.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 453, __pyx_L1_error)
          }
 0454: 
+0455:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0456:                     for x in re.sub(b"\(.*?\)", b"", individual_rule_string.split(b"/")[0]).split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_re); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 456, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_sub); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 456, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_37 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 456, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_37, __pyx_n_s_split); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 456, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_37 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_37)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_37);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
            }
          }
          __pyx_t_14 = (__pyx_t_37) ? __Pyx_PyObject_Call2Args(__pyx_t_36, __pyx_t_37, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_36, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
          if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 456, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __Pyx_GetItemInt(__pyx_t_14, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 456, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_14)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[4] = {__pyx_t_14, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_36};
            __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 456, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[4] = {__pyx_t_14, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_36};
            __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 456, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          } else
          #endif
          {
            __pyx_t_37 = PyTuple_New(3+__pyx_t_12); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 456, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_37);
            if (__pyx_t_14) {
              __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_37, 0, __pyx_t_14); __pyx_t_14 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__15);
            __Pyx_GIVEREF(__pyx_kp_b__15);
            PyTuple_SET_ITEM(__pyx_t_37, 0+__pyx_t_12, __pyx_kp_b__15);
            __Pyx_INCREF(__pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_kp_b_);
            PyTuple_SET_ITEM(__pyx_t_37, 1+__pyx_t_12, __pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_t_36);
            PyTuple_SET_ITEM(__pyx_t_37, 2+__pyx_t_12, __pyx_t_36);
            __pyx_t_36 = 0;
            __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_37, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 456, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 456, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
            }
          }
          __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 456, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
            __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 456, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_7 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 456, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_3))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_3)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 456, __pyx_L1_error)
                #else
                __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 456, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 456, __pyx_L1_error)
                #else
                __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 456, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                #endif
              }
            } else {
              __pyx_t_2 = __pyx_t_7(__pyx_t_3);
              if (unlikely(!__pyx_t_2)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 456, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_2);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2);
            __pyx_t_2 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0457:                         set_temp.insert(int(x))
            __pyx_t_2 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 457, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 457, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0458:                     other_survival.push_back(set_temp)
          try {
            __pyx_v_9CACompute_other_survival.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 458, __pyx_L1_error)
          }
 0459: 
+0460:                     extended.clear()
          __pyx_v_extended.clear();
+0461:                     for x in individual_rule_string.split(b"/")[2].split(b"-"):
          __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 461, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_37 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_split); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 461, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_37))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_37);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_37);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_37, function);
            }
          }
          __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_37, __pyx_t_5, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_37, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 461, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = __Pyx_GetItemInt(__pyx_t_2, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 461, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_37, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 461, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_37 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_37)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_37);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
            }
          }
          __pyx_t_3 = (__pyx_t_37) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_37, __pyx_kp_b__16) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_b__16);
          __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
          if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 461, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
            __pyx_t_2 = __pyx_t_3; __Pyx_INCREF(__pyx_t_2); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 461, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_7 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 461, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_2))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_2)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 461, __pyx_L1_error)
                #else
                __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 461, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_3);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 461, __pyx_L1_error)
                #else
                __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 461, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_3);
                #endif
              }
            } else {
              __pyx_t_3 = __pyx_t_7(__pyx_t_2);
              if (unlikely(!__pyx_t_3)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 461, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_3);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3);
            __pyx_t_3 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0462:                         extended.push_back(int(x))
            __pyx_t_3 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 462, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 462, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            try {
              __pyx_v_extended.push_back(__pyx_t_12);
            } catch(...) {
              __Pyx_CppExn2PyErr();
              __PYX_ERR(0, 462, __pyx_L1_error)
            }
 0463:                 else:
+0464:                     set_temp.clear()
        /*else*/ {
          __pyx_v_set_temp.clear();
+0465:                     for x in re.findall(b"\((.*?)\)", re.split(b"[bsd]", individual_rule_string)[1])[0].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_37, __pyx_n_s_re); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 465, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_37, __pyx_n_s_findall); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 465, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_36, __pyx_n_s_re); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 465, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_36, __pyx_n_s_split); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 465, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 465, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __pyx_t_13 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) {
            __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_14);
            if (likely(__pyx_t_13)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
              __Pyx_INCREF(__pyx_t_13);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_14, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_14)) {
            PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_kp_b_bsd, __pyx_t_36};
            __pyx_t_37 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 465, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_GOTREF(__pyx_t_37);
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) {
            PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_kp_b_bsd, __pyx_t_36};
            __pyx_t_37 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 465, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_GOTREF(__pyx_t_37);
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          } else
          #endif
          {
            __pyx_t_4 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 465, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            if (__pyx_t_13) {
              __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_13); __pyx_t_13 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_bsd);
            __Pyx_GIVEREF(__pyx_kp_b_bsd);
            PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_12, __pyx_kp_b_bsd);
            __Pyx_GIVEREF(__pyx_t_36);
            PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_12, __pyx_t_36);
            __pyx_t_36 = 0;
            __pyx_t_37 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_4, NULL); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 465, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_37);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_37, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 465, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_37 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_37)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_37);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_5)) {
            PyObject *__pyx_temp[3] = {__pyx_t_37, __pyx_kp_b__14, __pyx_t_14};
            __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 465, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
            PyObject *__pyx_temp[3] = {__pyx_t_37, __pyx_kp_b__14, __pyx_t_14};
            __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 465, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          } else
          #endif
          {
            __pyx_t_4 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 465, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            if (__pyx_t_37) {
              __Pyx_GIVEREF(__pyx_t_37); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_37); __pyx_t_37 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_kp_b__14);
            PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_12, __pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_t_14);
            PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_12, __pyx_t_14);
            __pyx_t_14 = 0;
            __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 465, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 465, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 465, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
            }
          }
          __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 465, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
            __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 465, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_7 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 465, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_3))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_3)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 465, __pyx_L1_error)
                #else
                __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 465, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 465, __pyx_L1_error)
                #else
                __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 465, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                #endif
              }
            } else {
              __pyx_t_2 = __pyx_t_7(__pyx_t_3);
              if (unlikely(!__pyx_t_2)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 465, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_2);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2);
            __pyx_t_2 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0466:                         set_temp.insert(int(x))
            __pyx_t_2 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 466, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 466, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0467:                     birth.push_back(set_temp)
          try {
            __pyx_v_9CACompute_birth.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 467, __pyx_L1_error)
          }
 0468: 
+0469:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0470:                     for x in re.findall(b"\((.*?)\)", re.split(b"[bsd]", individual_rule_string)[2])[0].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_re); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 470, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_findall); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 470, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_re); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 470, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_37 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_split); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 470, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 470, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_36 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_37))) {
            __pyx_t_36 = PyMethod_GET_SELF(__pyx_t_37);
            if (likely(__pyx_t_36)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_37);
              __Pyx_INCREF(__pyx_t_36);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_37, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_37)) {
            PyObject *__pyx_temp[3] = {__pyx_t_36, __pyx_kp_b_bsd, __pyx_t_14};
            __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_37, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 470, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_37)) {
            PyObject *__pyx_temp[3] = {__pyx_t_36, __pyx_kp_b_bsd, __pyx_t_14};
            __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_37, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 470, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          } else
          #endif
          {
            __pyx_t_13 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 470, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            if (__pyx_t_36) {
              __Pyx_GIVEREF(__pyx_t_36); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_36); __pyx_t_36 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_bsd);
            __Pyx_GIVEREF(__pyx_kp_b_bsd);
            PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_12, __pyx_kp_b_bsd);
            __Pyx_GIVEREF(__pyx_t_14);
            PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_12, __pyx_t_14);
            __pyx_t_14 = 0;
            __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_37, __pyx_t_13, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 470, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          }
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = __Pyx_GetItemInt(__pyx_t_5, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 470, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_4)) {
            PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_kp_b__14, __pyx_t_37};
            __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 470, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
            PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_kp_b__14, __pyx_t_37};
            __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 470, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          } else
          #endif
          {
            __pyx_t_13 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 470, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            if (__pyx_t_5) {
              __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_5); __pyx_t_5 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_kp_b__14);
            PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_12, __pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_t_37);
            PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_12, __pyx_t_37);
            __pyx_t_37 = 0;
            __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_13, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 470, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 470, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 470, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
            }
          }
          __pyx_t_3 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 470, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
            __pyx_t_2 = __pyx_t_3; __Pyx_INCREF(__pyx_t_2); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 470, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_7 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 470, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_2))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_2)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 470, __pyx_L1_error)
                #else
                __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 470, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_3);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 470, __pyx_L1_error)
                #else
                __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 470, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_3);
                #endif
              }
            } else {
              __pyx_t_3 = __pyx_t_7(__pyx_t_2);
              if (unlikely(!__pyx_t_3)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 470, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_3);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3);
            __pyx_t_3 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0471:                         set_temp.insert(int(x))
            __pyx_t_3 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 471, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 471, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0472:                     survival.push_back(set_temp)
          try {
            __pyx_v_9CACompute_survival.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 472, __pyx_L1_error)
          }
 0473: 
+0474:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0475:                     for x in re.sub(b"\(.*?\)", b"", re.split(b"[bsd]", individual_rule_string)[1]).split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_re); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 475, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_sub); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 475, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_37, __pyx_n_s_re); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 475, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_37, __pyx_n_s_split); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 475, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 475, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __pyx_t_14 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_14)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_5)) {
            PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_kp_b_bsd, __pyx_t_37};
            __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 475, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
            PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_kp_b_bsd, __pyx_t_37};
            __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 475, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          } else
          #endif
          {
            __pyx_t_36 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 475, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            if (__pyx_t_14) {
              __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_36, 0, __pyx_t_14); __pyx_t_14 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_bsd);
            __Pyx_GIVEREF(__pyx_kp_b_bsd);
            PyTuple_SET_ITEM(__pyx_t_36, 0+__pyx_t_12, __pyx_kp_b_bsd);
            __Pyx_GIVEREF(__pyx_t_37);
            PyTuple_SET_ITEM(__pyx_t_36, 1+__pyx_t_12, __pyx_t_37);
            __pyx_t_37 = 0;
            __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_36, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 475, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_4, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 475, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_13);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_13, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_13)) {
            PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_5};
            __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 475, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) {
            PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_5};
            __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 475, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          } else
          #endif
          {
            __pyx_t_36 = PyTuple_New(3+__pyx_t_12); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 475, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            if (__pyx_t_4) {
              __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_36, 0, __pyx_t_4); __pyx_t_4 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__15);
            __Pyx_GIVEREF(__pyx_kp_b__15);
            PyTuple_SET_ITEM(__pyx_t_36, 0+__pyx_t_12, __pyx_kp_b__15);
            __Pyx_INCREF(__pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_kp_b_);
            PyTuple_SET_ITEM(__pyx_t_36, 1+__pyx_t_12, __pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_t_5);
            PyTuple_SET_ITEM(__pyx_t_36, 2+__pyx_t_12, __pyx_t_5);
            __pyx_t_5 = 0;
            __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_36, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 475, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 475, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_13);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_13, function);
            }
          }
          __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_3, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 475, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
            __pyx_t_13 = __pyx_t_2; __Pyx_INCREF(__pyx_t_13); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 475, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_7 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 475, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_13))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_13)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_2 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 475, __pyx_L1_error)
                #else
                __pyx_t_2 = PySequence_ITEM(__pyx_t_13, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 475, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 475, __pyx_L1_error)
                #else
                __pyx_t_2 = PySequence_ITEM(__pyx_t_13, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 475, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                #endif
              }
            } else {
              __pyx_t_2 = __pyx_t_7(__pyx_t_13);
              if (unlikely(!__pyx_t_2)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 475, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_2);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2);
            __pyx_t_2 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+0476:                         set_temp.insert(int(x))
            __pyx_t_2 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 476, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 476, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0477:                     other_birth.push_back(set_temp)
          try {
            __pyx_v_9CACompute_other_birth.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 477, __pyx_L1_error)
          }
 0478: 
+0479:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0480:                     for x in re.sub(b"\(.*?\)", b"", re.split(b"[bsd]", individual_rule_string)[2]).split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_re); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 480, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_sub); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 480, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_re); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 480, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 480, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 480, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_37 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_37 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_37)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_37);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_4)) {
            PyObject *__pyx_temp[3] = {__pyx_t_37, __pyx_kp_b_bsd, __pyx_t_5};
            __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 480, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
            PyObject *__pyx_temp[3] = {__pyx_t_37, __pyx_kp_b_bsd, __pyx_t_5};
            __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 480, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          } else
          #endif
          {
            __pyx_t_14 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 480, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            if (__pyx_t_37) {
              __Pyx_GIVEREF(__pyx_t_37); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_37); __pyx_t_37 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_bsd);
            __Pyx_GIVEREF(__pyx_kp_b_bsd);
            PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_12, __pyx_kp_b_bsd);
            __Pyx_GIVEREF(__pyx_t_5);
            PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_12, __pyx_t_5);
            __pyx_t_5 = 0;
            __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_14, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 480, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_3, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 480, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_36)) {
            PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_4};
            __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_36, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 480, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_36)) {
            PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_4};
            __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_36, __pyx_temp+1-__pyx_t_12, 3+__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 480, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          } else
          #endif
          {
            __pyx_t_14 = PyTuple_New(3+__pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 480, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            if (__pyx_t_3) {
              __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_3); __pyx_t_3 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__15);
            __Pyx_GIVEREF(__pyx_kp_b__15);
            PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_12, __pyx_kp_b__15);
            __Pyx_INCREF(__pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_kp_b_);
            PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_12, __pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_t_4);
            PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_12, __pyx_t_4);
            __pyx_t_4 = 0;
            __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_36, __pyx_t_14, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 480, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_split); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 480, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
            }
          }
          __pyx_t_13 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_36, __pyx_t_2, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_36, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 480, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (likely(PyList_CheckExact(__pyx_t_13)) || PyTuple_CheckExact(__pyx_t_13)) {
            __pyx_t_36 = __pyx_t_13; __Pyx_INCREF(__pyx_t_36); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_36 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 480, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_7 = Py_TYPE(__pyx_t_36)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 480, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_36))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_13 = PyList_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 480, __pyx_L1_error)
                #else
                __pyx_t_13 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 480, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_13);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 480, __pyx_L1_error)
                #else
                __pyx_t_13 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 480, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_13);
                #endif
              }
            } else {
              __pyx_t_13 = __pyx_t_7(__pyx_t_36);
              if (unlikely(!__pyx_t_13)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 480, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_13);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_13);
            __pyx_t_13 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
+0481:                         set_temp.insert(int(x))
            __pyx_t_13 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 481, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_13); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 481, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_12));
+0482:                     other_survival.push_back(set_temp)
          try {
            __pyx_v_9CACompute_other_survival.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 482, __pyx_L1_error)
          }
 0483: 
+0484:                     extended.clear()
          __pyx_v_extended.clear();
+0485:                     for x in re.split(b"[bsd]", individual_rule_string)[3].split(b"-"):
          __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_re); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 485, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_split); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 485, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 485, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_4 = NULL;
          __pyx_t_12 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_14);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_14, function);
              __pyx_t_12 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_14)) {
            PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_kp_b_bsd, __pyx_t_2};
            __pyx_t_13 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 485, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) {
            PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_kp_b_bsd, __pyx_t_2};
            __pyx_t_13 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_12, 2+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 485, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          } else
          #endif
          {
            __pyx_t_3 = PyTuple_New(2+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 485, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            if (__pyx_t_4) {
              __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4); __pyx_t_4 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_bsd);
            __Pyx_GIVEREF(__pyx_kp_b_bsd);
            PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_12, __pyx_kp_b_bsd);
            __Pyx_GIVEREF(__pyx_t_2);
            PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_12, __pyx_t_2);
            __pyx_t_2 = 0;
            __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_3, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 485, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_13, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 485, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 485, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
            if (likely(__pyx_t_14)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_13, function);
            }
          }
          __pyx_t_36 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_kp_b__16) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_b__16);
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 485, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (likely(PyList_CheckExact(__pyx_t_36)) || PyTuple_CheckExact(__pyx_t_36)) {
            __pyx_t_13 = __pyx_t_36; __Pyx_INCREF(__pyx_t_13); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_36); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 485, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_7 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 485, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_13))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_13)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 485, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_13, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 485, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 485, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_13, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 485, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              }
            } else {
              __pyx_t_36 = __pyx_t_7(__pyx_t_13);
              if (unlikely(!__pyx_t_36)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 485, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_36);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_36);
            __pyx_t_36 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        }
        __pyx_L157:;
+0486:                         extended.push_back(int(x))
            __pyx_t_36 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 486, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_12 = __Pyx_PyInt_As_int(__pyx_t_36); if (unlikely((__pyx_t_12 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 486, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
            try {
              __pyx_v_extended.push_back(__pyx_t_12);
            } catch(...) {
              __Pyx_CppExn2PyErr();
              __PYX_ERR(0, 486, __pyx_L1_error)
            }
 0487: 
+0488:             num, alt = 1, 1
      __pyx_t_12 = 1;
      __pyx_t_24 = 1;
      __pyx_v_num = __pyx_t_12;
      __pyx_v_alt = __pyx_t_24;
+0489:             set_temp.clear()
      __pyx_v_set_temp.clear();
+0490:             for i in extended:
      __pyx_t_34 = __pyx_v_extended.begin();
      for (;;) {
        if (!(__pyx_t_34 != __pyx_v_extended.end())) break;
        __pyx_t_24 = *__pyx_t_34;
        ++__pyx_t_34;
        __pyx_v_i = __pyx_t_24;
/* … */
      }
+0491:                 for j in range(num, i + num):
        __pyx_t_24 = (__pyx_v_i + __pyx_v_num);
        __pyx_t_12 = __pyx_t_24;
        for (__pyx_t_26 = __pyx_v_num; __pyx_t_26 < __pyx_t_12; __pyx_t_26+=1) {
          __pyx_v_j = __pyx_t_26;
+0492:                     if alt > 0:
          __pyx_t_8 = ((__pyx_v_alt > 0) != 0);
          if (__pyx_t_8) {
/* … */
          }
+0493:                         set_temp.insert(j)
            (void)(__pyx_v_set_temp.insert(__pyx_v_j));
+0494:                     num += 1
          __pyx_v_num = (__pyx_v_num + 1);
        }
+0495:                 alt *= -1
        __pyx_v_alt = (__pyx_v_alt * -1L);
 0496: 
+0497:             activity_list.push_back(set_temp)
      try {
        __pyx_v_9CACompute_activity_list.push_back(__pyx_v_set_temp);
      } catch(...) {
        __Pyx_CppExn2PyErr();
        __PYX_ERR(0, 497, __pyx_L1_error)
      }
+0498:     elif rule_space == b"Regenerating Generations":
  __pyx_t_8 = ((__pyx_v_9CACompute_rule_space == ((char const *)"Regenerating Generations")) != 0);
  if (__pyx_t_8) {
/* … */
  }
  __pyx_L44:;
+0499:         for individual_rule_string in rule_string:
    __pyx_t_35 = __pyx_v_rule_string.begin();
    for (;;) {
      if (!(__pyx_t_35 != __pyx_v_rule_string.end())) break;
      __pyx_t_1 = *__pyx_t_35;
      ++__pyx_t_35;
      __pyx_v_individual_rule_string = __pyx_t_1;
/* … */
    }
+0500:             if bsconditions == b"Outer Totalistic":
      __pyx_t_8 = ((__pyx_v_9CACompute_bsconditions == ((char const *)"Outer Totalistic")) != 0);
      if (__pyx_t_8) {
/* … */
        goto __pyx_L185;
      }
+0501:                 if individual_rule_string.find(b"/") != -1:
        __pyx_t_8 = ((__pyx_v_individual_rule_string.find(__pyx_k__13) != -1L) != 0);
        if (__pyx_t_8) {
/* … */
          goto __pyx_L186;
        }
+0502:                     birth_state = int(individual_rule_string.split(b"/")[1])
          __pyx_t_36 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 502, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_36, __pyx_n_s_split); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 502, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) {
            __pyx_t_36 = PyMethod_GET_SELF(__pyx_t_14);
            if (likely(__pyx_t_36)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
              __Pyx_INCREF(__pyx_t_36);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_14, function);
            }
          }
          __pyx_t_13 = (__pyx_t_36) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_36, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 502, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_13, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 502, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_PyNumber_Int(__pyx_t_14); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 502, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_24 = __Pyx_PyInt_As_int(__pyx_t_13); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 502, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_v_9CACompute_birth_state = __pyx_t_24;
 0503: 
+0504:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0505:                     for x in individual_rule_string.split(b"/")[2].split(b","):
          __pyx_t_36 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 505, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_36, __pyx_n_s_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 505, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_36 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_36)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_36);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
            }
          }
          __pyx_t_14 = (__pyx_t_36) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_36, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 505, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_14, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 505, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 505, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_14);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_14, function);
            }
          }
          __pyx_t_13 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_3, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 505, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (likely(PyList_CheckExact(__pyx_t_13)) || PyTuple_CheckExact(__pyx_t_13)) {
            __pyx_t_14 = __pyx_t_13; __Pyx_INCREF(__pyx_t_14); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 505, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_7 = Py_TYPE(__pyx_t_14)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 505, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_14))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_14)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_13 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 505, __pyx_L1_error)
                #else
                __pyx_t_13 = PySequence_ITEM(__pyx_t_14, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 505, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_13);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_14)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 505, __pyx_L1_error)
                #else
                __pyx_t_13 = PySequence_ITEM(__pyx_t_14, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 505, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_13);
                #endif
              }
            } else {
              __pyx_t_13 = __pyx_t_7(__pyx_t_14);
              if (unlikely(!__pyx_t_13)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 505, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_13);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_13);
            __pyx_t_13 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+0506:                         set_temp.insert(int(x))
            __pyx_t_13 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 506, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_24 = __Pyx_PyInt_As_int(__pyx_t_13); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 506, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_24));
+0507:                     birth.push_back(set_temp)
          try {
            __pyx_v_9CACompute_birth.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 507, __pyx_L1_error)
          }
 0508: 
+0509:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0510:                     for x in individual_rule_string.split(b"/")[3].split(b","):
          __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 510, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 510, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
            }
          }
          __pyx_t_13 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_36, __pyx_t_3, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_36, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 510, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __Pyx_GetItemInt(__pyx_t_13, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 510, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_36, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 510, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_36 = PyMethod_GET_SELF(__pyx_t_13);
            if (likely(__pyx_t_36)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
              __Pyx_INCREF(__pyx_t_36);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_13, function);
            }
          }
          __pyx_t_14 = (__pyx_t_36) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_36, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 510, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (likely(PyList_CheckExact(__pyx_t_14)) || PyTuple_CheckExact(__pyx_t_14)) {
            __pyx_t_13 = __pyx_t_14; __Pyx_INCREF(__pyx_t_13); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 510, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_7 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 510, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_13))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_13)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_14 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_6); __Pyx_INCREF(__pyx_t_14); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 510, __pyx_L1_error)
                #else
                __pyx_t_14 = PySequence_ITEM(__pyx_t_13, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 510, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_14 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_6); __Pyx_INCREF(__pyx_t_14); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 510, __pyx_L1_error)
                #else
                __pyx_t_14 = PySequence_ITEM(__pyx_t_13, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 510, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                #endif
              }
            } else {
              __pyx_t_14 = __pyx_t_7(__pyx_t_13);
              if (unlikely(!__pyx_t_14)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 510, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_14);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_14);
            __pyx_t_14 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+0511:                         set_temp.insert(int(x))
            __pyx_t_14 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 511, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_24 = __Pyx_PyInt_As_int(__pyx_t_14); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 511, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_24));
+0512:                     survival.push_back(set_temp)
          try {
            __pyx_v_9CACompute_survival.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 512, __pyx_L1_error)
          }
 0513: 
+0514:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0515:                     for x in individual_rule_string.split(b"/")[4].split(b","):
          __pyx_t_36 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 515, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_36, __pyx_n_s_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 515, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_36 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_36)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_36);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
            }
          }
          __pyx_t_14 = (__pyx_t_36) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_36, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 515, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_14, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 515, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 515, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_14);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_14, function);
            }
          }
          __pyx_t_13 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_3, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 515, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (likely(PyList_CheckExact(__pyx_t_13)) || PyTuple_CheckExact(__pyx_t_13)) {
            __pyx_t_14 = __pyx_t_13; __Pyx_INCREF(__pyx_t_14); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 515, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_7 = Py_TYPE(__pyx_t_14)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 515, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_14))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_14)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_13 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 515, __pyx_L1_error)
                #else
                __pyx_t_13 = PySequence_ITEM(__pyx_t_14, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 515, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_13);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_14)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 515, __pyx_L1_error)
                #else
                __pyx_t_13 = PySequence_ITEM(__pyx_t_14, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 515, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_13);
                #endif
              }
            } else {
              __pyx_t_13 = __pyx_t_7(__pyx_t_14);
              if (unlikely(!__pyx_t_13)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 515, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_13);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_13);
            __pyx_t_13 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+0516:                         set_temp.insert(int(x))
            __pyx_t_13 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 516, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_24 = __Pyx_PyInt_As_int(__pyx_t_13); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 516, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_24));
+0517:                     regen_birth.push_back(set_temp)
          try {
            __pyx_v_9CACompute_regen_birth.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 517, __pyx_L1_error)
          }
 0518: 
+0519:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0520:                     for x in individual_rule_string.split(b"/")[5].split(b","):
          __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 520, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 520, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
            }
          }
          __pyx_t_13 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_36, __pyx_t_3, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_36, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 520, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __Pyx_GetItemInt(__pyx_t_13, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 520, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_36, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 520, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_36 = PyMethod_GET_SELF(__pyx_t_13);
            if (likely(__pyx_t_36)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
              __Pyx_INCREF(__pyx_t_36);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_13, function);
            }
          }
          __pyx_t_14 = (__pyx_t_36) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_36, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 520, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (likely(PyList_CheckExact(__pyx_t_14)) || PyTuple_CheckExact(__pyx_t_14)) {
            __pyx_t_13 = __pyx_t_14; __Pyx_INCREF(__pyx_t_13); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 520, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_7 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 520, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_13))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_13)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_14 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_6); __Pyx_INCREF(__pyx_t_14); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 520, __pyx_L1_error)
                #else
                __pyx_t_14 = PySequence_ITEM(__pyx_t_13, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 520, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_14 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_6); __Pyx_INCREF(__pyx_t_14); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 520, __pyx_L1_error)
                #else
                __pyx_t_14 = PySequence_ITEM(__pyx_t_13, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 520, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                #endif
              }
            } else {
              __pyx_t_14 = __pyx_t_7(__pyx_t_13);
              if (unlikely(!__pyx_t_14)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 520, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_14);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_14);
            __pyx_t_14 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+0521:                         set_temp.insert(int(x))
            __pyx_t_14 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 521, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_24 = __Pyx_PyInt_As_int(__pyx_t_14); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 521, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_24));
+0522:                     regen_survival.push_back(set_temp)
          try {
            __pyx_v_9CACompute_regen_survival.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 522, __pyx_L1_error)
          }
 0523:                 else:
+0524:                     birth_state = int(re.split(b"rg|l|b|s|rb|rs", individual_rule_string)[2])
        /*else*/ {
          __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_re); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 524, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_split); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 524, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 524, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_3 = NULL;
          __pyx_t_24 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
              __pyx_t_24 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_36)) {
            PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_b_rg_l_b_s_rb_rs, __pyx_t_14};
            __pyx_t_13 = __Pyx_PyFunction_FastCall(__pyx_t_36, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 524, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_36)) {
            PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_b_rg_l_b_s_rb_rs, __pyx_t_14};
            __pyx_t_13 = __Pyx_PyCFunction_FastCall(__pyx_t_36, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 524, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          } else
          #endif
          {
            __pyx_t_2 = PyTuple_New(2+__pyx_t_24); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 524, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            if (__pyx_t_3) {
              __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_rg_l_b_s_rb_rs);
            __Pyx_GIVEREF(__pyx_kp_b_rg_l_b_s_rb_rs);
            PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_24, __pyx_kp_b_rg_l_b_s_rb_rs);
            __Pyx_GIVEREF(__pyx_t_14);
            PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_24, __pyx_t_14);
            __pyx_t_14 = 0;
            __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_36, __pyx_t_2, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 524, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __Pyx_GetItemInt(__pyx_t_13, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 524, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_PyNumber_Int(__pyx_t_36); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 524, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_24 = __Pyx_PyInt_As_int(__pyx_t_13); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 524, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_v_9CACompute_birth_state = __pyx_t_24;
 0525: 
+0526:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0527:                     for x in re.split(b"rg|l|b|s|rb|rs", individual_rule_string)[3].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_re); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 527, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_split); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 527, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 527, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_3 = NULL;
          __pyx_t_24 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_14);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_14, function);
              __pyx_t_24 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_14)) {
            PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_b_rg_l_b_s_rb_rs, __pyx_t_2};
            __pyx_t_36 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 527, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) {
            PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_b_rg_l_b_s_rb_rs, __pyx_t_2};
            __pyx_t_36 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 527, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          } else
          #endif
          {
            __pyx_t_4 = PyTuple_New(2+__pyx_t_24); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 527, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            if (__pyx_t_3) {
              __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_rg_l_b_s_rb_rs);
            __Pyx_GIVEREF(__pyx_kp_b_rg_l_b_s_rb_rs);
            PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_24, __pyx_kp_b_rg_l_b_s_rb_rs);
            __Pyx_GIVEREF(__pyx_t_2);
            PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_24, __pyx_t_2);
            __pyx_t_2 = 0;
            __pyx_t_36 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_4, NULL); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 527, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_36, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 527, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_split); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 527, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_14)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
            }
          }
          __pyx_t_13 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_36, __pyx_t_14, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_36, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 527, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (likely(PyList_CheckExact(__pyx_t_13)) || PyTuple_CheckExact(__pyx_t_13)) {
            __pyx_t_36 = __pyx_t_13; __Pyx_INCREF(__pyx_t_36); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_36 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 527, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_7 = Py_TYPE(__pyx_t_36)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 527, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_36))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_13 = PyList_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 527, __pyx_L1_error)
                #else
                __pyx_t_13 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 527, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_13);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 527, __pyx_L1_error)
                #else
                __pyx_t_13 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 527, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_13);
                #endif
              }
            } else {
              __pyx_t_13 = __pyx_t_7(__pyx_t_36);
              if (unlikely(!__pyx_t_13)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 527, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_13);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_13);
            __pyx_t_13 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
+0528:                         set_temp.insert(int(x))
            __pyx_t_13 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 528, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_24 = __Pyx_PyInt_As_int(__pyx_t_13); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 528, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_24));
+0529:                     birth.push_back(set_temp)
          try {
            __pyx_v_9CACompute_birth.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 529, __pyx_L1_error)
          }
 0530: 
+0531:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0532:                     for x in re.split(b"rg|l|b|s|rb|rs", individual_rule_string)[4].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_re); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 532, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 532, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 532, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_2 = NULL;
          __pyx_t_24 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
              __pyx_t_24 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_4)) {
            PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_kp_b_rg_l_b_s_rb_rs, __pyx_t_14};
            __pyx_t_13 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 532, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
            PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_kp_b_rg_l_b_s_rb_rs, __pyx_t_14};
            __pyx_t_13 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 532, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          } else
          #endif
          {
            __pyx_t_3 = PyTuple_New(2+__pyx_t_24); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 532, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            if (__pyx_t_2) {
              __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_rg_l_b_s_rb_rs);
            __Pyx_GIVEREF(__pyx_kp_b_rg_l_b_s_rb_rs);
            PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_24, __pyx_kp_b_rg_l_b_s_rb_rs);
            __Pyx_GIVEREF(__pyx_t_14);
            PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_24, __pyx_t_14);
            __pyx_t_14 = 0;
            __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 532, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_13, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 532, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 532, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_13);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_13, function);
            }
          }
          __pyx_t_36 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_4, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 532, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (likely(PyList_CheckExact(__pyx_t_36)) || PyTuple_CheckExact(__pyx_t_36)) {
            __pyx_t_13 = __pyx_t_36; __Pyx_INCREF(__pyx_t_13); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_36); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 532, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_7 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 532, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_13))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_13)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 532, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_13, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 532, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 532, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_13, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 532, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              }
            } else {
              __pyx_t_36 = __pyx_t_7(__pyx_t_13);
              if (unlikely(!__pyx_t_36)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 532, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_36);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_36);
            __pyx_t_36 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+0533:                         set_temp.insert(int(x))
            __pyx_t_36 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 533, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_24 = __Pyx_PyInt_As_int(__pyx_t_36); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 533, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_24));
+0534:                     survival.push_back(set_temp)
          try {
            __pyx_v_9CACompute_survival.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 534, __pyx_L1_error)
          }
 0535: 
+0536:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0537:                     for x in re.split(b"rg|l|b|s|rb|rs", individual_rule_string)[5].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_re); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 537, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 537, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 537, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_14 = NULL;
          __pyx_t_24 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_14)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
              __pyx_t_24 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_kp_b_rg_l_b_s_rb_rs, __pyx_t_4};
            __pyx_t_36 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 537, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_kp_b_rg_l_b_s_rb_rs, __pyx_t_4};
            __pyx_t_36 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 537, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          } else
          #endif
          {
            __pyx_t_2 = PyTuple_New(2+__pyx_t_24); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 537, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            if (__pyx_t_14) {
              __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_14); __pyx_t_14 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_rg_l_b_s_rb_rs);
            __Pyx_GIVEREF(__pyx_kp_b_rg_l_b_s_rb_rs);
            PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_24, __pyx_kp_b_rg_l_b_s_rb_rs);
            __Pyx_GIVEREF(__pyx_t_4);
            PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_24, __pyx_t_4);
            __pyx_t_4 = 0;
            __pyx_t_36 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 537, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_36, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 537, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 537, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
            }
          }
          __pyx_t_13 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_36, __pyx_t_3, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_36, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 537, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (likely(PyList_CheckExact(__pyx_t_13)) || PyTuple_CheckExact(__pyx_t_13)) {
            __pyx_t_36 = __pyx_t_13; __Pyx_INCREF(__pyx_t_36); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_36 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 537, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_7 = Py_TYPE(__pyx_t_36)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 537, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_36))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_13 = PyList_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 537, __pyx_L1_error)
                #else
                __pyx_t_13 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 537, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_13);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 537, __pyx_L1_error)
                #else
                __pyx_t_13 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 537, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_13);
                #endif
              }
            } else {
              __pyx_t_13 = __pyx_t_7(__pyx_t_36);
              if (unlikely(!__pyx_t_13)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 537, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_13);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_13);
            __pyx_t_13 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
+0538:                         set_temp.insert(int(x))
            __pyx_t_13 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 538, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_24 = __Pyx_PyInt_As_int(__pyx_t_13); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 538, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_24));
+0539:                     regen_birth.push_back(set_temp)
          try {
            __pyx_v_9CACompute_regen_birth.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 539, __pyx_L1_error)
          }
 0540: 
+0541:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0542:                     for x in re.split(b"rg|l|b|s|rb|rs", individual_rule_string)[6].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_re); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 542, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 542, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 542, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_4 = NULL;
          __pyx_t_24 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
              __pyx_t_24 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_2)) {
            PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_kp_b_rg_l_b_s_rb_rs, __pyx_t_3};
            __pyx_t_13 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 542, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
            PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_kp_b_rg_l_b_s_rb_rs, __pyx_t_3};
            __pyx_t_13 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 542, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          {
            __pyx_t_14 = PyTuple_New(2+__pyx_t_24); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 542, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            if (__pyx_t_4) {
              __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_rg_l_b_s_rb_rs);
            __Pyx_GIVEREF(__pyx_kp_b_rg_l_b_s_rb_rs);
            PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_24, __pyx_kp_b_rg_l_b_s_rb_rs);
            __Pyx_GIVEREF(__pyx_t_3);
            PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_24, __pyx_t_3);
            __pyx_t_3 = 0;
            __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_14, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 542, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_13, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 542, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 542, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_13);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_13, function);
            }
          }
          __pyx_t_36 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_2, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 542, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (likely(PyList_CheckExact(__pyx_t_36)) || PyTuple_CheckExact(__pyx_t_36)) {
            __pyx_t_13 = __pyx_t_36; __Pyx_INCREF(__pyx_t_13); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_36); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 542, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_7 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 542, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_13))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_13)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 542, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_13, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 542, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 542, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_13, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 542, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              }
            } else {
              __pyx_t_36 = __pyx_t_7(__pyx_t_13);
              if (unlikely(!__pyx_t_36)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 542, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_36);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_36);
            __pyx_t_36 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+0543:                         set_temp.insert(int(x))
            __pyx_t_36 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 543, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_24 = __Pyx_PyInt_As_int(__pyx_t_36); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 543, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_24));
+0544:                     regen_survival.push_back(set_temp)
          try {
            __pyx_v_9CACompute_regen_survival.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 544, __pyx_L1_error)
          }
        }
        __pyx_L186:;
+0545:             elif bsconditions == b"Double Totalistic":
      __pyx_t_8 = ((__pyx_v_9CACompute_bsconditions == ((char const *)"Double Totalistic")) != 0);
      if (__pyx_t_8) {
/* … */
      }
      __pyx_L185:;
+0546:                 if individual_rule_string.find(b"/") != -1:
        __pyx_t_8 = ((__pyx_v_individual_rule_string.find(__pyx_k__13) != -1L) != 0);
        if (__pyx_t_8) {
/* … */
          goto __pyx_L203;
        }
+0547:                     birth_state = int(individual_rule_string.split(b"/")[1])
          __pyx_t_36 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 547, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_36, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 547, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_36 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_36)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_36);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
            }
          }
          __pyx_t_13 = (__pyx_t_36) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_36, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 547, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_13, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 547, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_PyNumber_Int(__pyx_t_2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 547, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_24 = __Pyx_PyInt_As_int(__pyx_t_13); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 547, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_v_9CACompute_birth_state = __pyx_t_24;
 0548: 
+0549:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0550:                     for x in re.findall(b"\((.*?)\)", individual_rule_string.split(b"/")[2])[0].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_36, __pyx_n_s_re); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 550, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_36, __pyx_n_s_findall); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 550, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 550, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 550, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
            }
          }
          __pyx_t_36 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_3, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 550, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_36, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 550, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = NULL;
          __pyx_t_24 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) {
            __pyx_t_36 = PyMethod_GET_SELF(__pyx_t_14);
            if (likely(__pyx_t_36)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
              __Pyx_INCREF(__pyx_t_36);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_14, function);
              __pyx_t_24 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_14)) {
            PyObject *__pyx_temp[3] = {__pyx_t_36, __pyx_kp_b__14, __pyx_t_4};
            __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 550, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) {
            PyObject *__pyx_temp[3] = {__pyx_t_36, __pyx_kp_b__14, __pyx_t_4};
            __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 550, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          } else
          #endif
          {
            __pyx_t_3 = PyTuple_New(2+__pyx_t_24); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 550, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            if (__pyx_t_36) {
              __Pyx_GIVEREF(__pyx_t_36); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_36); __pyx_t_36 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_kp_b__14);
            PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_24, __pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_t_4);
            PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_24, __pyx_t_4);
            __pyx_t_4 = 0;
            __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 550, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 550, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 550, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_14)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
            }
          }
          __pyx_t_13 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_14, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 550, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (likely(PyList_CheckExact(__pyx_t_13)) || PyTuple_CheckExact(__pyx_t_13)) {
            __pyx_t_2 = __pyx_t_13; __Pyx_INCREF(__pyx_t_2); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 550, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_7 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 550, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_2))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_2)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_13 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 550, __pyx_L1_error)
                #else
                __pyx_t_13 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 550, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_13);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 550, __pyx_L1_error)
                #else
                __pyx_t_13 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 550, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_13);
                #endif
              }
            } else {
              __pyx_t_13 = __pyx_t_7(__pyx_t_2);
              if (unlikely(!__pyx_t_13)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 550, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_13);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_13);
            __pyx_t_13 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0551:                         set_temp.insert(int(x))
            __pyx_t_13 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 551, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_24 = __Pyx_PyInt_As_int(__pyx_t_13); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 551, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_24));
+0552:                     birth.push_back(set_temp)
          try {
            __pyx_v_9CACompute_birth.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 552, __pyx_L1_error)
          }
 0553: 
+0554:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0555:                     for x in re.findall(b"\((.*?)\)", individual_rule_string.split(b"/")[3])[0].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_re); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 555, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_findall); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 555, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 555, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_split); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 555, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
            }
          }
          __pyx_t_14 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_36, __pyx_t_4, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_36, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 555, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __Pyx_GetItemInt(__pyx_t_14, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 555, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = NULL;
          __pyx_t_24 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_14)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
              __pyx_t_24 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_kp_b__14, __pyx_t_36};
            __pyx_t_13 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 555, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_kp_b__14, __pyx_t_36};
            __pyx_t_13 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 555, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          } else
          #endif
          {
            __pyx_t_4 = PyTuple_New(2+__pyx_t_24); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 555, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            if (__pyx_t_14) {
              __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_14); __pyx_t_14 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_kp_b__14);
            PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_24, __pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_t_36);
            PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_24, __pyx_t_36);
            __pyx_t_36 = 0;
            __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 555, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_13, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 555, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 555, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_13);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_13, function);
            }
          }
          __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_3, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 555, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
            __pyx_t_13 = __pyx_t_2; __Pyx_INCREF(__pyx_t_13); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 555, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_7 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 555, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_13))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_13)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_2 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 555, __pyx_L1_error)
                #else
                __pyx_t_2 = PySequence_ITEM(__pyx_t_13, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 555, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 555, __pyx_L1_error)
                #else
                __pyx_t_2 = PySequence_ITEM(__pyx_t_13, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 555, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                #endif
              }
            } else {
              __pyx_t_2 = __pyx_t_7(__pyx_t_13);
              if (unlikely(!__pyx_t_2)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 555, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_2);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2);
            __pyx_t_2 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+0556:                         set_temp.insert(int(x))
            __pyx_t_2 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 556, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_24 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 556, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_24));
+0557:                     survival.push_back(set_temp)
          try {
            __pyx_v_9CACompute_survival.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 557, __pyx_L1_error)
          }
 0558: 
+0559:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0560:                     for x in re.sub(b"\(.*?\)", b"", individual_rule_string.split(b"/")[2]).split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_re); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 560, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_sub); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 560, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_36 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 560, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_36, __pyx_n_s_split); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 560, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) {
            __pyx_t_36 = PyMethod_GET_SELF(__pyx_t_14);
            if (likely(__pyx_t_36)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
              __Pyx_INCREF(__pyx_t_36);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_14, function);
            }
          }
          __pyx_t_3 = (__pyx_t_36) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_36, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 560, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_3, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 560, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          __pyx_t_24 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
              __pyx_t_24 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_4)) {
            PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_14};
            __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_24, 3+__pyx_t_24); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 560, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
            PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_14};
            __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_24, 3+__pyx_t_24); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 560, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          } else
          #endif
          {
            __pyx_t_36 = PyTuple_New(3+__pyx_t_24); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 560, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            if (__pyx_t_3) {
              __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_36, 0, __pyx_t_3); __pyx_t_3 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__15);
            __Pyx_GIVEREF(__pyx_kp_b__15);
            PyTuple_SET_ITEM(__pyx_t_36, 0+__pyx_t_24, __pyx_kp_b__15);
            __Pyx_INCREF(__pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_kp_b_);
            PyTuple_SET_ITEM(__pyx_t_36, 1+__pyx_t_24, __pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_t_14);
            PyTuple_SET_ITEM(__pyx_t_36, 2+__pyx_t_24, __pyx_t_14);
            __pyx_t_14 = 0;
            __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_36, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 560, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 560, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
            }
          }
          __pyx_t_13 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_2, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 560, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (likely(PyList_CheckExact(__pyx_t_13)) || PyTuple_CheckExact(__pyx_t_13)) {
            __pyx_t_4 = __pyx_t_13; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 560, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_7 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 560, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_4))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_13 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 560, __pyx_L1_error)
                #else
                __pyx_t_13 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 560, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_13);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 560, __pyx_L1_error)
                #else
                __pyx_t_13 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 560, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_13);
                #endif
              }
            } else {
              __pyx_t_13 = __pyx_t_7(__pyx_t_4);
              if (unlikely(!__pyx_t_13)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 560, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_13);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_13);
            __pyx_t_13 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0561:                         set_temp.insert(int(x))
            __pyx_t_13 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 561, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_24 = __Pyx_PyInt_As_int(__pyx_t_13); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 561, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_24));
+0562:                     other_birth.push_back(set_temp)
          try {
            __pyx_v_9CACompute_other_birth.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 562, __pyx_L1_error)
          }
 0563: 
+0564:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0565:                     for x in re.sub(b"\(.*?\)", b"", individual_rule_string.split(b"/")[3]).split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_re); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 565, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_sub); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 565, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_14 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 565, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 565, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_14)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
            }
          }
          __pyx_t_2 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_14, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 565, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 565, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = NULL;
          __pyx_t_24 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
              __pyx_t_24 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_36)) {
            PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_3};
            __pyx_t_13 = __Pyx_PyFunction_FastCall(__pyx_t_36, __pyx_temp+1-__pyx_t_24, 3+__pyx_t_24); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 565, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_36)) {
            PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_3};
            __pyx_t_13 = __Pyx_PyCFunction_FastCall(__pyx_t_36, __pyx_temp+1-__pyx_t_24, 3+__pyx_t_24); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 565, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          {
            __pyx_t_14 = PyTuple_New(3+__pyx_t_24); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 565, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            if (__pyx_t_2) {
              __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_2); __pyx_t_2 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__15);
            __Pyx_GIVEREF(__pyx_kp_b__15);
            PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_24, __pyx_kp_b__15);
            __Pyx_INCREF(__pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_kp_b_);
            PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_24, __pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_t_3);
            PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_24, __pyx_t_3);
            __pyx_t_3 = 0;
            __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_36, __pyx_t_14, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 565, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_split); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 565, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_13)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_13);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
            }
          }
          __pyx_t_4 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_36, __pyx_t_13, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_36, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 565, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
            __pyx_t_36 = __pyx_t_4; __Pyx_INCREF(__pyx_t_36); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_36 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 565, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_7 = Py_TYPE(__pyx_t_36)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 565, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_36))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_4 = PyList_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 565, __pyx_L1_error)
                #else
                __pyx_t_4 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 565, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_4);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 565, __pyx_L1_error)
                #else
                __pyx_t_4 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 565, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_4);
                #endif
              }
            } else {
              __pyx_t_4 = __pyx_t_7(__pyx_t_36);
              if (unlikely(!__pyx_t_4)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 565, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_4);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
            __pyx_t_4 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
+0566:                         set_temp.insert(int(x))
            __pyx_t_4 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 566, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_24 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 566, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_24));
+0567:                     other_survival.push_back(set_temp)
          try {
            __pyx_v_9CACompute_other_survival.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 567, __pyx_L1_error)
          }
 0568: 
+0569:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0570:                     for x in re.findall(b"\((.*?)\)", individual_rule_string.split(b"/")[4])[0].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_re); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 570, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_findall); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 570, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 570, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 570, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
            }
          }
          __pyx_t_13 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 570, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_13, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 570, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = NULL;
          __pyx_t_24 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) {
            __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_14);
            if (likely(__pyx_t_13)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
              __Pyx_INCREF(__pyx_t_13);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_14, function);
              __pyx_t_24 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_14)) {
            PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_kp_b__14, __pyx_t_2};
            __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 570, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) {
            PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_kp_b__14, __pyx_t_2};
            __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 570, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          } else
          #endif
          {
            __pyx_t_3 = PyTuple_New(2+__pyx_t_24); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 570, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            if (__pyx_t_13) {
              __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_13); __pyx_t_13 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_kp_b__14);
            PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_24, __pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_t_2);
            PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_24, __pyx_t_2);
            __pyx_t_2 = 0;
            __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 570, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 570, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 570, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_14)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
            }
          }
          __pyx_t_36 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_14, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 570, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (likely(PyList_CheckExact(__pyx_t_36)) || PyTuple_CheckExact(__pyx_t_36)) {
            __pyx_t_4 = __pyx_t_36; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_36); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 570, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_7 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 570, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_4))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 570, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 570, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 570, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 570, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              }
            } else {
              __pyx_t_36 = __pyx_t_7(__pyx_t_4);
              if (unlikely(!__pyx_t_36)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 570, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_36);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_36);
            __pyx_t_36 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0571:                         set_temp.insert(int(x))
            __pyx_t_36 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 571, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_24 = __Pyx_PyInt_As_int(__pyx_t_36); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 571, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_24));
+0572:                     regen_birth.push_back(set_temp)
          try {
            __pyx_v_9CACompute_regen_birth.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 572, __pyx_L1_error)
          }
 0573: 
+0574:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0575:                     for x in re.findall(b"\((.*?)\)", individual_rule_string.split(b"/")[5])[0].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_re); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 575, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_findall); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 575, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_2 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 575, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 575, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_13);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_13, function);
            }
          }
          __pyx_t_14 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_2, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 575, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_GetItemInt(__pyx_t_14, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 575, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = NULL;
          __pyx_t_24 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_14)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
              __pyx_t_24 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_kp_b__14, __pyx_t_13};
            __pyx_t_36 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 575, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_kp_b__14, __pyx_t_13};
            __pyx_t_36 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 575, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          } else
          #endif
          {
            __pyx_t_2 = PyTuple_New(2+__pyx_t_24); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 575, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            if (__pyx_t_14) {
              __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_14); __pyx_t_14 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_kp_b__14);
            PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_24, __pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_t_13);
            PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_24, __pyx_t_13);
            __pyx_t_13 = 0;
            __pyx_t_36 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 575, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_36, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 575, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 575, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
            }
          }
          __pyx_t_4 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_36, __pyx_t_3, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_36, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 575, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
            __pyx_t_36 = __pyx_t_4; __Pyx_INCREF(__pyx_t_36); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_36 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 575, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_7 = Py_TYPE(__pyx_t_36)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 575, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_36))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_4 = PyList_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 575, __pyx_L1_error)
                #else
                __pyx_t_4 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 575, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_4);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 575, __pyx_L1_error)
                #else
                __pyx_t_4 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 575, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_4);
                #endif
              }
            } else {
              __pyx_t_4 = __pyx_t_7(__pyx_t_36);
              if (unlikely(!__pyx_t_4)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 575, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_4);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
            __pyx_t_4 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
+0576:                         set_temp.insert(int(x))
            __pyx_t_4 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 576, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_24 = __Pyx_PyInt_As_int(__pyx_t_4); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 576, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_24));
+0577:                     regen_survival.push_back(set_temp)
          try {
            __pyx_v_9CACompute_regen_survival.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 577, __pyx_L1_error)
          }
 0578: 
+0579:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0580:                     for x in re.sub(b"\(.*?\)", b"", individual_rule_string.split(b"/")[4]).split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_re); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 580, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_sub); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 580, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_13 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 580, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_split); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 580, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) {
            __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_14);
            if (likely(__pyx_t_13)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
              __Pyx_INCREF(__pyx_t_13);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_14, function);
            }
          }
          __pyx_t_3 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_13, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 580, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_3, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 580, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          __pyx_t_24 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
              __pyx_t_24 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_2)) {
            PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_14};
            __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_24, 3+__pyx_t_24); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 580, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
            PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_14};
            __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_24, 3+__pyx_t_24); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 580, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          } else
          #endif
          {
            __pyx_t_13 = PyTuple_New(3+__pyx_t_24); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 580, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            if (__pyx_t_3) {
              __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_3); __pyx_t_3 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__15);
            __Pyx_GIVEREF(__pyx_kp_b__15);
            PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_24, __pyx_kp_b__15);
            __Pyx_INCREF(__pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_kp_b_);
            PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_24, __pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_t_14);
            PyTuple_SET_ITEM(__pyx_t_13, 2+__pyx_t_24, __pyx_t_14);
            __pyx_t_14 = 0;
            __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_13, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 580, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 580, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
            }
          }
          __pyx_t_36 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_4, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 580, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (likely(PyList_CheckExact(__pyx_t_36)) || PyTuple_CheckExact(__pyx_t_36)) {
            __pyx_t_2 = __pyx_t_36; __Pyx_INCREF(__pyx_t_2); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_36); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 580, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_7 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 580, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_2))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_2)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 580, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 580, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 580, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 580, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              }
            } else {
              __pyx_t_36 = __pyx_t_7(__pyx_t_2);
              if (unlikely(!__pyx_t_36)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 580, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_36);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_36);
            __pyx_t_36 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0581:                         set_temp.insert(int(x))
            __pyx_t_36 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 581, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_24 = __Pyx_PyInt_As_int(__pyx_t_36); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 581, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_24));
+0582:                     other_regen_birth.push_back(set_temp)
          try {
            __pyx_v_9CACompute_other_regen_birth.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 582, __pyx_L1_error)
          }
 0583: 
+0584:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0585:                     for x in re.sub(b"\(.*?\)", b"", individual_rule_string.split(b"/")[5]).split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_re); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 585, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_sub); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 585, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_14 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 585, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 585, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_14)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
            }
          }
          __pyx_t_4 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_14, __pyx_kp_b__13) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_b__13);
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 585, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_4, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 585, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = NULL;
          __pyx_t_24 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_13);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_13, function);
              __pyx_t_24 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_13)) {
            PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_3};
            __pyx_t_36 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_24, 3+__pyx_t_24); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 585, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) {
            PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_3};
            __pyx_t_36 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_24, 3+__pyx_t_24); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 585, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          {
            __pyx_t_14 = PyTuple_New(3+__pyx_t_24); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 585, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            if (__pyx_t_4) {
              __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__15);
            __Pyx_GIVEREF(__pyx_kp_b__15);
            PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_24, __pyx_kp_b__15);
            __Pyx_INCREF(__pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_kp_b_);
            PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_24, __pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_t_3);
            PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_24, __pyx_t_3);
            __pyx_t_3 = 0;
            __pyx_t_36 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_14, NULL); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 585, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_36, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 585, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_36 = PyMethod_GET_SELF(__pyx_t_13);
            if (likely(__pyx_t_36)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
              __Pyx_INCREF(__pyx_t_36);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_13, function);
            }
          }
          __pyx_t_2 = (__pyx_t_36) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_36, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 585, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
            __pyx_t_13 = __pyx_t_2; __Pyx_INCREF(__pyx_t_13); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 585, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_7 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 585, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_13))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_13)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_2 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 585, __pyx_L1_error)
                #else
                __pyx_t_2 = PySequence_ITEM(__pyx_t_13, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 585, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 585, __pyx_L1_error)
                #else
                __pyx_t_2 = PySequence_ITEM(__pyx_t_13, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 585, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                #endif
              }
            } else {
              __pyx_t_2 = __pyx_t_7(__pyx_t_13);
              if (unlikely(!__pyx_t_2)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 585, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_2);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2);
            __pyx_t_2 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+0586:                         set_temp.insert(int(x))
            __pyx_t_2 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 586, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_24 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 586, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_24));
+0587:                     other_regen_survival.push_back(set_temp)
          try {
            __pyx_v_9CACompute_other_regen_survival.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 587, __pyx_L1_error)
          }
 0588: 
 0589:                 else:
+0590:                     birth_state = int(re.split(b"rg|l|b|s|rb|rs", individual_rule_string)[2])
        /*else*/ {
          __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_re); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 590, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_split); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 590, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 590, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_14 = NULL;
          __pyx_t_24 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_14)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
              __pyx_t_24 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_36)) {
            PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_kp_b_rg_l_b_s_rb_rs, __pyx_t_2};
            __pyx_t_13 = __Pyx_PyFunction_FastCall(__pyx_t_36, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 590, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_36)) {
            PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_kp_b_rg_l_b_s_rb_rs, __pyx_t_2};
            __pyx_t_13 = __Pyx_PyCFunction_FastCall(__pyx_t_36, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 590, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          } else
          #endif
          {
            __pyx_t_3 = PyTuple_New(2+__pyx_t_24); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 590, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            if (__pyx_t_14) {
              __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_14); __pyx_t_14 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_rg_l_b_s_rb_rs);
            __Pyx_GIVEREF(__pyx_kp_b_rg_l_b_s_rb_rs);
            PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_24, __pyx_kp_b_rg_l_b_s_rb_rs);
            __Pyx_GIVEREF(__pyx_t_2);
            PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_24, __pyx_t_2);
            __pyx_t_2 = 0;
            __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_36, __pyx_t_3, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 590, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __Pyx_GetItemInt(__pyx_t_13, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 590, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_PyNumber_Int(__pyx_t_36); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 590, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_24 = __Pyx_PyInt_As_int(__pyx_t_13); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 590, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_v_9CACompute_birth_state = __pyx_t_24;
 0591: 
+0592:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0593:                     for x in re.findall(b"\((.*?)\)", re.split(b"rg|l|b|s|rb|rs", individual_rule_string)[3])[0].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_re); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 593, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_findall); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 593, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_re); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 593, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 593, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 593, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_5 = NULL;
          __pyx_t_24 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
              __pyx_t_24 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_4)) {
            PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_kp_b_rg_l_b_s_rb_rs, __pyx_t_14};
            __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 593, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
            PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_kp_b_rg_l_b_s_rb_rs, __pyx_t_14};
            __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 593, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          } else
          #endif
          {
            __pyx_t_37 = PyTuple_New(2+__pyx_t_24); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 593, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_37);
            if (__pyx_t_5) {
              __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_37, 0, __pyx_t_5); __pyx_t_5 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_rg_l_b_s_rb_rs);
            __Pyx_GIVEREF(__pyx_kp_b_rg_l_b_s_rb_rs);
            PyTuple_SET_ITEM(__pyx_t_37, 0+__pyx_t_24, __pyx_kp_b_rg_l_b_s_rb_rs);
            __Pyx_GIVEREF(__pyx_t_14);
            PyTuple_SET_ITEM(__pyx_t_37, 1+__pyx_t_24, __pyx_t_14);
            __pyx_t_14 = 0;
            __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_37, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 593, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_3, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 593, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          __pyx_t_24 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
              __pyx_t_24 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_2)) {
            PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_b__14, __pyx_t_4};
            __pyx_t_36 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 593, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
            PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_b__14, __pyx_t_4};
            __pyx_t_36 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 593, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          } else
          #endif
          {
            __pyx_t_37 = PyTuple_New(2+__pyx_t_24); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 593, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_37);
            if (__pyx_t_3) {
              __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_37, 0, __pyx_t_3); __pyx_t_3 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_kp_b__14);
            PyTuple_SET_ITEM(__pyx_t_37, 0+__pyx_t_24, __pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_t_4);
            PyTuple_SET_ITEM(__pyx_t_37, 1+__pyx_t_24, __pyx_t_4);
            __pyx_t_4 = 0;
            __pyx_t_36 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_37, NULL); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 593, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_36, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 593, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_split); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 593, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
            }
          }
          __pyx_t_13 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_36, __pyx_t_2, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_36, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 593, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (likely(PyList_CheckExact(__pyx_t_13)) || PyTuple_CheckExact(__pyx_t_13)) {
            __pyx_t_36 = __pyx_t_13; __Pyx_INCREF(__pyx_t_36); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_36 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 593, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_7 = Py_TYPE(__pyx_t_36)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 593, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_36))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_13 = PyList_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 593, __pyx_L1_error)
                #else
                __pyx_t_13 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 593, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_13);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_36)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_36, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 593, __pyx_L1_error)
                #else
                __pyx_t_13 = PySequence_ITEM(__pyx_t_36, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 593, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_13);
                #endif
              }
            } else {
              __pyx_t_13 = __pyx_t_7(__pyx_t_36);
              if (unlikely(!__pyx_t_13)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 593, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_13);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_13);
            __pyx_t_13 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
+0594:                         set_temp.insert(int(x))
            __pyx_t_13 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 594, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_24 = __Pyx_PyInt_As_int(__pyx_t_13); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 594, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_24));
+0595:                     birth.push_back(set_temp)
          try {
            __pyx_v_9CACompute_birth.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 595, __pyx_L1_error)
          }
 0596: 
+0597:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0598:                     for x in re.findall(b"\((.*?)\)", re.split(b"rg|l|b|s|rb|rs", individual_rule_string)[4])[0].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_re); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 598, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_37 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_findall); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 598, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_re); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 598, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 598, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 598, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_14 = NULL;
          __pyx_t_24 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_14)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
              __pyx_t_24 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_kp_b_rg_l_b_s_rb_rs, __pyx_t_4};
            __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 598, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_kp_b_rg_l_b_s_rb_rs, __pyx_t_4};
            __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 598, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          } else
          #endif
          {
            __pyx_t_5 = PyTuple_New(2+__pyx_t_24); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 598, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            if (__pyx_t_14) {
              __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_14); __pyx_t_14 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_rg_l_b_s_rb_rs);
            __Pyx_GIVEREF(__pyx_kp_b_rg_l_b_s_rb_rs);
            PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_24, __pyx_kp_b_rg_l_b_s_rb_rs);
            __Pyx_GIVEREF(__pyx_t_4);
            PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_24, __pyx_t_4);
            __pyx_t_4 = 0;
            __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 598, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 598, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = NULL;
          __pyx_t_24 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_37))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_37);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_37);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_37, function);
              __pyx_t_24 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_37)) {
            PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_kp_b__14, __pyx_t_3};
            __pyx_t_13 = __Pyx_PyFunction_FastCall(__pyx_t_37, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 598, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_37)) {
            PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_kp_b__14, __pyx_t_3};
            __pyx_t_13 = __Pyx_PyCFunction_FastCall(__pyx_t_37, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 598, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          {
            __pyx_t_5 = PyTuple_New(2+__pyx_t_24); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 598, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            if (__pyx_t_2) {
              __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_kp_b__14);
            PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_24, __pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_t_3);
            PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_24, __pyx_t_3);
            __pyx_t_3 = 0;
            __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_37, __pyx_t_5, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 598, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          }
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = __Pyx_GetItemInt(__pyx_t_13, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 598, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_37, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 598, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_37 = PyMethod_GET_SELF(__pyx_t_13);
            if (likely(__pyx_t_37)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
              __Pyx_INCREF(__pyx_t_37);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_13, function);
            }
          }
          __pyx_t_36 = (__pyx_t_37) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_37, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
          if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 598, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (likely(PyList_CheckExact(__pyx_t_36)) || PyTuple_CheckExact(__pyx_t_36)) {
            __pyx_t_13 = __pyx_t_36; __Pyx_INCREF(__pyx_t_13); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_36); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 598, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_7 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 598, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_13))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_13)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 598, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_13, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 598, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_36 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_6); __Pyx_INCREF(__pyx_t_36); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 598, __pyx_L1_error)
                #else
                __pyx_t_36 = PySequence_ITEM(__pyx_t_13, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 598, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_36);
                #endif
              }
            } else {
              __pyx_t_36 = __pyx_t_7(__pyx_t_13);
              if (unlikely(!__pyx_t_36)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 598, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_36);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_36);
            __pyx_t_36 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+0599:                         set_temp.insert(int(x))
            __pyx_t_36 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 599, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __pyx_t_24 = __Pyx_PyInt_As_int(__pyx_t_36); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 599, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_24));
+0600:                     survival.push_back(set_temp)
          try {
            __pyx_v_9CACompute_survival.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 600, __pyx_L1_error)
          }
 0601: 
+0602:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0603:                     for x in re.sub(b"\(.*?\)", b"", re.split(b"rg|l|b|s|rb|rs", individual_rule_string)[3]).split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_37, __pyx_n_s_re); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 603, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_37, __pyx_n_s_sub); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 603, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_re); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 603, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 603, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 603, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_4 = NULL;
          __pyx_t_24 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
              __pyx_t_24 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_2)) {
            PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_kp_b_rg_l_b_s_rb_rs, __pyx_t_3};
            __pyx_t_37 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 603, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_37);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
            PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_kp_b_rg_l_b_s_rb_rs, __pyx_t_3};
            __pyx_t_37 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 603, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_37);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          {
            __pyx_t_14 = PyTuple_New(2+__pyx_t_24); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 603, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            if (__pyx_t_4) {
              __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_rg_l_b_s_rb_rs);
            __Pyx_GIVEREF(__pyx_kp_b_rg_l_b_s_rb_rs);
            PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_24, __pyx_kp_b_rg_l_b_s_rb_rs);
            __Pyx_GIVEREF(__pyx_t_3);
            PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_24, __pyx_t_3);
            __pyx_t_3 = 0;
            __pyx_t_37 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_14, NULL); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 603, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_37);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_37, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 603, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = NULL;
          __pyx_t_24 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_37 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_37)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_37);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
              __pyx_t_24 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_5)) {
            PyObject *__pyx_temp[4] = {__pyx_t_37, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_2};
            __pyx_t_36 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_24, 3+__pyx_t_24); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 603, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
            PyObject *__pyx_temp[4] = {__pyx_t_37, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_2};
            __pyx_t_36 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_24, 3+__pyx_t_24); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 603, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          } else
          #endif
          {
            __pyx_t_14 = PyTuple_New(3+__pyx_t_24); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 603, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            if (__pyx_t_37) {
              __Pyx_GIVEREF(__pyx_t_37); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_37); __pyx_t_37 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__15);
            __Pyx_GIVEREF(__pyx_kp_b__15);
            PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_24, __pyx_kp_b__15);
            __Pyx_INCREF(__pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_kp_b_);
            PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_24, __pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_t_2);
            PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_24, __pyx_t_2);
            __pyx_t_2 = 0;
            __pyx_t_36 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_14, NULL); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 603, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_36, __pyx_n_s_split); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 603, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_36 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_36)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_36);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
            }
          }
          __pyx_t_13 = (__pyx_t_36) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_36, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 603, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (likely(PyList_CheckExact(__pyx_t_13)) || PyTuple_CheckExact(__pyx_t_13)) {
            __pyx_t_5 = __pyx_t_13; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 603, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 603, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_5))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_13 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 603, __pyx_L1_error)
                #else
                __pyx_t_13 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 603, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_13);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 603, __pyx_L1_error)
                #else
                __pyx_t_13 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 603, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_13);
                #endif
              }
            } else {
              __pyx_t_13 = __pyx_t_7(__pyx_t_5);
              if (unlikely(!__pyx_t_13)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 603, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_13);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_13);
            __pyx_t_13 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0604:                         set_temp.insert(int(x))
            __pyx_t_13 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 604, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_24 = __Pyx_PyInt_As_int(__pyx_t_13); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 604, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_24));
+0605:                     other_birth.push_back(set_temp)
          try {
            __pyx_v_9CACompute_other_birth.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 605, __pyx_L1_error)
          }
 0606: 
+0607:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0608:                     for x in re.sub(b"\(.*?\)", b"", re.split(b"rg|l|b|s|rb|rs", individual_rule_string)[4]).split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_36, __pyx_n_s_re); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 608, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_36, __pyx_n_s_sub); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 608, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_re); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 608, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_37 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_split); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 608, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 608, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_3 = NULL;
          __pyx_t_24 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_37))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_37);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_37);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_37, function);
              __pyx_t_24 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_37)) {
            PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_b_rg_l_b_s_rb_rs, __pyx_t_2};
            __pyx_t_36 = __Pyx_PyFunction_FastCall(__pyx_t_37, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 608, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_37)) {
            PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_kp_b_rg_l_b_s_rb_rs, __pyx_t_2};
            __pyx_t_36 = __Pyx_PyCFunction_FastCall(__pyx_t_37, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 608, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          } else
          #endif
          {
            __pyx_t_4 = PyTuple_New(2+__pyx_t_24); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 608, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            if (__pyx_t_3) {
              __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_3); __pyx_t_3 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_rg_l_b_s_rb_rs);
            __Pyx_GIVEREF(__pyx_kp_b_rg_l_b_s_rb_rs);
            PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_24, __pyx_kp_b_rg_l_b_s_rb_rs);
            __Pyx_GIVEREF(__pyx_t_2);
            PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_24, __pyx_t_2);
            __pyx_t_2 = 0;
            __pyx_t_36 = __Pyx_PyObject_Call(__pyx_t_37, __pyx_t_4, NULL); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 608, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          }
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = __Pyx_GetItemInt(__pyx_t_36, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 608, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = NULL;
          __pyx_t_24 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) {
            __pyx_t_36 = PyMethod_GET_SELF(__pyx_t_14);
            if (likely(__pyx_t_36)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
              __Pyx_INCREF(__pyx_t_36);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_14, function);
              __pyx_t_24 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_14)) {
            PyObject *__pyx_temp[4] = {__pyx_t_36, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_37};
            __pyx_t_13 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_24, 3+__pyx_t_24); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 608, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) {
            PyObject *__pyx_temp[4] = {__pyx_t_36, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_37};
            __pyx_t_13 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_24, 3+__pyx_t_24); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 608, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          } else
          #endif
          {
            __pyx_t_4 = PyTuple_New(3+__pyx_t_24); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 608, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            if (__pyx_t_36) {
              __Pyx_GIVEREF(__pyx_t_36); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_36); __pyx_t_36 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__15);
            __Pyx_GIVEREF(__pyx_kp_b__15);
            PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_24, __pyx_kp_b__15);
            __Pyx_INCREF(__pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_kp_b_);
            PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_24, __pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_t_37);
            PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_24, __pyx_t_37);
            __pyx_t_37 = 0;
            __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_4, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 608, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_split); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 608, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) {
            __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_14);
            if (likely(__pyx_t_13)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
              __Pyx_INCREF(__pyx_t_13);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_14, function);
            }
          }
          __pyx_t_5 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_13, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 608, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
            __pyx_t_14 = __pyx_t_5; __Pyx_INCREF(__pyx_t_14); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 608, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_7 = Py_TYPE(__pyx_t_14)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 608, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_14))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_14)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_5 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 608, __pyx_L1_error)
                #else
                __pyx_t_5 = PySequence_ITEM(__pyx_t_14, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 608, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_5);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_14)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 608, __pyx_L1_error)
                #else
                __pyx_t_5 = PySequence_ITEM(__pyx_t_14, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 608, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_5);
                #endif
              }
            } else {
              __pyx_t_5 = __pyx_t_7(__pyx_t_14);
              if (unlikely(!__pyx_t_5)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 608, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_5);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_5);
            __pyx_t_5 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+0609:                         set_temp.insert(int(x))
            __pyx_t_5 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 609, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_24 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 609, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_24));
+0610:                     other_survival.push_back(set_temp)
          try {
            __pyx_v_9CACompute_other_survival.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 610, __pyx_L1_error)
          }
 0611: 
+0612:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0613:                     for x in re.findall(b"\((.*?)\)", re.split(b"rg|l|b|s|rb|rs", individual_rule_string)[5])[0].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_re); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 613, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_findall); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 613, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_37, __pyx_n_s_re); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 613, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_t_37, __pyx_n_s_split); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 613, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 613, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __pyx_t_2 = NULL;
          __pyx_t_24 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_36))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_36);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_36);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_36, function);
              __pyx_t_24 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_36)) {
            PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_kp_b_rg_l_b_s_rb_rs, __pyx_t_37};
            __pyx_t_13 = __Pyx_PyFunction_FastCall(__pyx_t_36, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 613, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_36)) {
            PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_kp_b_rg_l_b_s_rb_rs, __pyx_t_37};
            __pyx_t_13 = __Pyx_PyCFunction_FastCall(__pyx_t_36, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 613, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          } else
          #endif
          {
            __pyx_t_3 = PyTuple_New(2+__pyx_t_24); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 613, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            if (__pyx_t_2) {
              __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_rg_l_b_s_rb_rs);
            __Pyx_GIVEREF(__pyx_kp_b_rg_l_b_s_rb_rs);
            PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_24, __pyx_kp_b_rg_l_b_s_rb_rs);
            __Pyx_GIVEREF(__pyx_t_37);
            PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_24, __pyx_t_37);
            __pyx_t_37 = 0;
            __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_36, __pyx_t_3, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 613, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          }
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __Pyx_GetItemInt(__pyx_t_13, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 613, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = NULL;
          __pyx_t_24 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_13)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_13);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
              __pyx_t_24 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_4)) {
            PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_kp_b__14, __pyx_t_36};
            __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 613, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
            PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_kp_b__14, __pyx_t_36};
            __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 613, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          } else
          #endif
          {
            __pyx_t_3 = PyTuple_New(2+__pyx_t_24); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 613, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            if (__pyx_t_13) {
              __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_13); __pyx_t_13 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_kp_b__14);
            PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_24, __pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_t_36);
            PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_24, __pyx_t_36);
            __pyx_t_36 = 0;
            __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 613, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_5, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 613, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_split); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 613, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
            }
          }
          __pyx_t_14 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_4, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 613, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (likely(PyList_CheckExact(__pyx_t_14)) || PyTuple_CheckExact(__pyx_t_14)) {
            __pyx_t_5 = __pyx_t_14; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 613, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 613, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_5))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_14 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_14); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 613, __pyx_L1_error)
                #else
                __pyx_t_14 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 613, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_14 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_14); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 613, __pyx_L1_error)
                #else
                __pyx_t_14 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 613, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                #endif
              }
            } else {
              __pyx_t_14 = __pyx_t_7(__pyx_t_5);
              if (unlikely(!__pyx_t_14)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 613, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_14);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_14);
            __pyx_t_14 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0614:                         set_temp.insert(int(x))
            __pyx_t_14 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 614, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_24 = __Pyx_PyInt_As_int(__pyx_t_14); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 614, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_24));
+0615:                     regen_birth.push_back(set_temp)
          try {
            __pyx_v_9CACompute_regen_birth.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 615, __pyx_L1_error)
          }
 0616: 
+0617:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0618:                     for x in re.findall(b"\((.*?)\)", re.split(b"rg|l|b|s|rb|rs", individual_rule_string)[6])[0].split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_re); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 618, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_findall); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 618, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_36, __pyx_n_s_re); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 618, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_36, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 618, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          __pyx_t_36 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 618, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_36);
          __pyx_t_37 = NULL;
          __pyx_t_24 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
            __pyx_t_37 = PyMethod_GET_SELF(__pyx_t_13);
            if (likely(__pyx_t_37)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
              __Pyx_INCREF(__pyx_t_37);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_13, function);
              __pyx_t_24 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_13)) {
            PyObject *__pyx_temp[3] = {__pyx_t_37, __pyx_kp_b_rg_l_b_s_rb_rs, __pyx_t_36};
            __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 618, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) {
            PyObject *__pyx_temp[3] = {__pyx_t_37, __pyx_kp_b_rg_l_b_s_rb_rs, __pyx_t_36};
            __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 618, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_37); __pyx_t_37 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          } else
          #endif
          {
            __pyx_t_2 = PyTuple_New(2+__pyx_t_24); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 618, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            if (__pyx_t_37) {
              __Pyx_GIVEREF(__pyx_t_37); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_37); __pyx_t_37 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_rg_l_b_s_rb_rs);
            __Pyx_GIVEREF(__pyx_kp_b_rg_l_b_s_rb_rs);
            PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_24, __pyx_kp_b_rg_l_b_s_rb_rs);
            __Pyx_GIVEREF(__pyx_t_36);
            PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_24, __pyx_t_36);
            __pyx_t_36 = 0;
            __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_2, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 618, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_GetItemInt(__pyx_t_4, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 618, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = NULL;
          __pyx_t_24 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
              __pyx_t_24 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_kp_b__14, __pyx_t_13};
            __pyx_t_14 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 618, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_kp_b__14, __pyx_t_13};
            __pyx_t_14 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 618, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          } else
          #endif
          {
            __pyx_t_2 = PyTuple_New(2+__pyx_t_24); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 618, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            if (__pyx_t_4) {
              __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_kp_b__14);
            PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_24, __pyx_kp_b__14);
            __Pyx_GIVEREF(__pyx_t_13);
            PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_24, __pyx_t_13);
            __pyx_t_13 = 0;
            __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 618, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_14, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 618, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_split); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 618, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_14);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_14, function);
            }
          }
          __pyx_t_5 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_3, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 618, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
            __pyx_t_14 = __pyx_t_5; __Pyx_INCREF(__pyx_t_14); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 618, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_7 = Py_TYPE(__pyx_t_14)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 618, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_14))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_14)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_5 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 618, __pyx_L1_error)
                #else
                __pyx_t_5 = PySequence_ITEM(__pyx_t_14, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 618, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_5);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_14)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 618, __pyx_L1_error)
                #else
                __pyx_t_5 = PySequence_ITEM(__pyx_t_14, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 618, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_5);
                #endif
              }
            } else {
              __pyx_t_5 = __pyx_t_7(__pyx_t_14);
              if (unlikely(!__pyx_t_5)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 618, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_5);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_5);
            __pyx_t_5 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+0619:                         set_temp.insert(int(x))
            __pyx_t_5 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 619, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_24 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 619, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_24));
+0620:                     regen_survival.push_back(set_temp)
          try {
            __pyx_v_9CACompute_regen_survival.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 620, __pyx_L1_error)
          }
 0621: 
+0622:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0623:                     for x in re.sub(b"\(.*?\)", b"", re.split(b"rg|l|b|s|rb|rs", individual_rule_string)[5]).split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_re); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 623, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_sub); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 623, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_re); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 623, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_split); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 623, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 623, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_36 = NULL;
          __pyx_t_24 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_36 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_36)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_36);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
              __pyx_t_24 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_4)) {
            PyObject *__pyx_temp[3] = {__pyx_t_36, __pyx_kp_b_rg_l_b_s_rb_rs, __pyx_t_13};
            __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 623, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
            PyObject *__pyx_temp[3] = {__pyx_t_36, __pyx_kp_b_rg_l_b_s_rb_rs, __pyx_t_13};
            __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 623, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_36); __pyx_t_36 = 0;
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          } else
          #endif
          {
            __pyx_t_37 = PyTuple_New(2+__pyx_t_24); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 623, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_37);
            if (__pyx_t_36) {
              __Pyx_GIVEREF(__pyx_t_36); PyTuple_SET_ITEM(__pyx_t_37, 0, __pyx_t_36); __pyx_t_36 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_rg_l_b_s_rb_rs);
            __Pyx_GIVEREF(__pyx_kp_b_rg_l_b_s_rb_rs);
            PyTuple_SET_ITEM(__pyx_t_37, 0+__pyx_t_24, __pyx_kp_b_rg_l_b_s_rb_rs);
            __Pyx_GIVEREF(__pyx_t_13);
            PyTuple_SET_ITEM(__pyx_t_37, 1+__pyx_t_24, __pyx_t_13);
            __pyx_t_13 = 0;
            __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_37, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 623, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_3, 5, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 623, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          __pyx_t_24 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
              __pyx_t_24 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_2)) {
            PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_4};
            __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_24, 3+__pyx_t_24); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 623, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
            PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_4};
            __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_24, 3+__pyx_t_24); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 623, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          } else
          #endif
          {
            __pyx_t_37 = PyTuple_New(3+__pyx_t_24); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 623, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_37);
            if (__pyx_t_3) {
              __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_37, 0, __pyx_t_3); __pyx_t_3 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__15);
            __Pyx_GIVEREF(__pyx_kp_b__15);
            PyTuple_SET_ITEM(__pyx_t_37, 0+__pyx_t_24, __pyx_kp_b__15);
            __Pyx_INCREF(__pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_kp_b_);
            PyTuple_SET_ITEM(__pyx_t_37, 1+__pyx_t_24, __pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_t_4);
            PyTuple_SET_ITEM(__pyx_t_37, 2+__pyx_t_24, __pyx_t_4);
            __pyx_t_4 = 0;
            __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_37, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 623, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_split); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 623, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
            }
          }
          __pyx_t_14 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 623, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (likely(PyList_CheckExact(__pyx_t_14)) || PyTuple_CheckExact(__pyx_t_14)) {
            __pyx_t_2 = __pyx_t_14; __Pyx_INCREF(__pyx_t_2); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 623, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_7 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 623, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_2))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_2)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_14 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_14); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 623, __pyx_L1_error)
                #else
                __pyx_t_14 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 623, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_14 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_14); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 623, __pyx_L1_error)
                #else
                __pyx_t_14 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 623, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                #endif
              }
            } else {
              __pyx_t_14 = __pyx_t_7(__pyx_t_2);
              if (unlikely(!__pyx_t_14)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 623, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_14);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_14);
            __pyx_t_14 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0624:                         set_temp.insert(int(x))
            __pyx_t_14 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 624, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_24 = __Pyx_PyInt_As_int(__pyx_t_14); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 624, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_24));
+0625:                     other_regen_birth.push_back(set_temp)
          try {
            __pyx_v_9CACompute_other_regen_birth.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 625, __pyx_L1_error)
          }
 0626: 
+0627:                     set_temp.clear()
          __pyx_v_set_temp.clear();
+0628:                     for x in re.sub(b"\(.*?\)", b"", re.split(b"rg|l|b|s|rb|rs", individual_rule_string)[6]).split(b","):
          __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_re); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 628, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_37 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_sub); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 628, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_re); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 628, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_split); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 628, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_v_individual_rule_string); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 628, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_13 = NULL;
          __pyx_t_24 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_13)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_13);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
              __pyx_t_24 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_kp_b_rg_l_b_s_rb_rs, __pyx_t_4};
            __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 628, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[3] = {__pyx_t_13, __pyx_kp_b_rg_l_b_s_rb_rs, __pyx_t_4};
            __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_24, 2+__pyx_t_24); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 628, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          } else
          #endif
          {
            __pyx_t_36 = PyTuple_New(2+__pyx_t_24); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 628, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            if (__pyx_t_13) {
              __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_36, 0, __pyx_t_13); __pyx_t_13 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b_rg_l_b_s_rb_rs);
            __Pyx_GIVEREF(__pyx_kp_b_rg_l_b_s_rb_rs);
            PyTuple_SET_ITEM(__pyx_t_36, 0+__pyx_t_24, __pyx_kp_b_rg_l_b_s_rb_rs);
            __Pyx_GIVEREF(__pyx_t_4);
            PyTuple_SET_ITEM(__pyx_t_36, 1+__pyx_t_24, __pyx_t_4);
            __pyx_t_4 = 0;
            __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_36, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 628, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_5, 6, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 628, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = NULL;
          __pyx_t_24 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_37))) {
            __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_37);
            if (likely(__pyx_t_5)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_37);
              __Pyx_INCREF(__pyx_t_5);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_37, function);
              __pyx_t_24 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_37)) {
            PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_3};
            __pyx_t_14 = __Pyx_PyFunction_FastCall(__pyx_t_37, __pyx_temp+1-__pyx_t_24, 3+__pyx_t_24); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 628, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_37)) {
            PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_kp_b__15, __pyx_kp_b_, __pyx_t_3};
            __pyx_t_14 = __Pyx_PyCFunction_FastCall(__pyx_t_37, __pyx_temp+1-__pyx_t_24, 3+__pyx_t_24); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 628, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          {
            __pyx_t_36 = PyTuple_New(3+__pyx_t_24); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 628, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_36);
            if (__pyx_t_5) {
              __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_36, 0, __pyx_t_5); __pyx_t_5 = NULL;
            }
            __Pyx_INCREF(__pyx_kp_b__15);
            __Pyx_GIVEREF(__pyx_kp_b__15);
            PyTuple_SET_ITEM(__pyx_t_36, 0+__pyx_t_24, __pyx_kp_b__15);
            __Pyx_INCREF(__pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_kp_b_);
            PyTuple_SET_ITEM(__pyx_t_36, 1+__pyx_t_24, __pyx_kp_b_);
            __Pyx_GIVEREF(__pyx_t_3);
            PyTuple_SET_ITEM(__pyx_t_36, 2+__pyx_t_24, __pyx_t_3);
            __pyx_t_3 = 0;
            __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_37, __pyx_t_36, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 628, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_36); __pyx_t_36 = 0;
          }
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          __pyx_t_37 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_split); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 628, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_37);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_37))) {
            __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_37);
            if (likely(__pyx_t_14)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_37);
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_37, function);
            }
          }
          __pyx_t_2 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_37, __pyx_t_14, __pyx_kp_b__4) : __Pyx_PyObject_CallOneArg(__pyx_t_37, __pyx_kp_b__4);
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 628, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
          if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
            __pyx_t_37 = __pyx_t_2; __Pyx_INCREF(__pyx_t_37); __pyx_t_6 = 0;
            __pyx_t_7 = NULL;
          } else {
            __pyx_t_6 = -1; __pyx_t_37 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 628, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_37);
            __pyx_t_7 = Py_TYPE(__pyx_t_37)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 628, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          for (;;) {
            if (likely(!__pyx_t_7)) {
              if (likely(PyList_CheckExact(__pyx_t_37))) {
                if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_37)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_2 = PyList_GET_ITEM(__pyx_t_37, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 628, __pyx_L1_error)
                #else
                __pyx_t_2 = PySequence_ITEM(__pyx_t_37, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 628, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                #endif
              } else {
                if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_37)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_37, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 628, __pyx_L1_error)
                #else
                __pyx_t_2 = PySequence_ITEM(__pyx_t_37, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 628, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                #endif
              }
            } else {
              __pyx_t_2 = __pyx_t_7(__pyx_t_37);
              if (unlikely(!__pyx_t_2)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 628, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_2);
            }
            __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2);
            __pyx_t_2 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_37); __pyx_t_37 = 0;
+0629:                         set_temp.insert(int(x))
            __pyx_t_2 = __Pyx_PyNumber_Int(__pyx_v_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 629, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_24 = __Pyx_PyInt_As_int(__pyx_t_2); if (unlikely((__pyx_t_24 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 629, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            (void)(__pyx_v_set_temp.insert(__pyx_t_24));
+0630:                     other_regen_survival.push_back(set_temp)
          try {
            __pyx_v_9CACompute_other_regen_survival.push_back(__pyx_v_set_temp);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 630, __pyx_L1_error)
          }
        }
        __pyx_L203:;
 0631: 
+0632: cpdef vector[pair[int, int]] get_neighbourhood(int generations):
static PyObject *__pyx_pw_9CACompute_3get_neighbourhood(PyObject *__pyx_self, PyObject *__pyx_arg_generations); /*proto*/
static std::vector<std::pair<int,int> >  __pyx_f_9CACompute_get_neighbourhood(int __pyx_v_generations, CYTHON_UNUSED int __pyx_skip_dispatch) {
  std::vector<std::pair<int,int> >  __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_neighbourhood", 0);
/* … */
  /* function exit code */
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9CACompute_3get_neighbourhood(PyObject *__pyx_self, PyObject *__pyx_arg_generations); /*proto*/
static PyObject *__pyx_pw_9CACompute_3get_neighbourhood(PyObject *__pyx_self, PyObject *__pyx_arg_generations) {
  int __pyx_v_generations;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_neighbourhood (wrapper)", 0);
  assert(__pyx_arg_generations); {
    __pyx_v_generations = __Pyx_PyInt_As_int(__pyx_arg_generations); if (unlikely((__pyx_v_generations == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 632, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("CACompute.get_neighbourhood", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9CACompute_2get_neighbourhood(__pyx_self, ((int)__pyx_v_generations));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9CACompute_2get_neighbourhood(CYTHON_UNUSED PyObject *__pyx_self, int __pyx_v_generations) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_neighbourhood", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_convert_vector_to_py_std_3a__3a_pair_3c_int_2c_int_3e___(__pyx_f_9CACompute_get_neighbourhood(__pyx_v_generations, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 632, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("CACompute.get_neighbourhood", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+0633:     return neighbourhood[generations % alternating_period]
  __pyx_r = (__pyx_v_9CACompute_neighbourhood[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]);
  goto __pyx_L0;
 0634: 
+0635: cpdef int get_n_states():
static PyObject *__pyx_pw_9CACompute_5get_n_states(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static int __pyx_f_9CACompute_get_n_states(CYTHON_UNUSED int __pyx_skip_dispatch) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_n_states", 0);
/* … */
  /* function exit code */
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9CACompute_5get_n_states(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_9CACompute_5get_n_states(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_n_states (wrapper)", 0);
  __pyx_r = __pyx_pf_9CACompute_4get_n_states(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9CACompute_4get_n_states(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_n_states", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_f_9CACompute_get_n_states(0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("CACompute.get_n_states", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+0636:     return n_states
  __pyx_r = __pyx_v_9CACompute_n_states;
  goto __pyx_L0;
 0637: 
+0638: cpdef vector[vector[int]] get_colour_palette():
static PyObject *__pyx_pw_9CACompute_7get_colour_palette(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static std::vector<std::vector<int> >  __pyx_f_9CACompute_get_colour_palette(CYTHON_UNUSED int __pyx_skip_dispatch) {
  std::vector<std::vector<int> >  __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_colour_palette", 0);
/* … */
  /* function exit code */
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9CACompute_7get_colour_palette(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_9CACompute_7get_colour_palette(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_colour_palette (wrapper)", 0);
  __pyx_r = __pyx_pf_9CACompute_6get_colour_palette(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9CACompute_6get_colour_palette(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_colour_palette", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_convert_vector_to_py_std_3a__3a_vector_3c_int_3e___(__pyx_f_9CACompute_get_colour_palette(0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 638, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("CACompute.get_colour_palette", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+0639:     return colour_palette
  __pyx_r = __pyx_v_9CACompute_colour_palette;
  goto __pyx_L0;
 0640: 
+0641: cpdef string get_rule_name():
static PyObject *__pyx_pw_9CACompute_9get_rule_name(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static std::string __pyx_f_9CACompute_get_rule_name(CYTHON_UNUSED int __pyx_skip_dispatch) {
  std::string __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_rule_name", 0);
/* … */
  /* function exit code */
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9CACompute_9get_rule_name(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
static PyObject *__pyx_pw_9CACompute_9get_rule_name(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_rule_name (wrapper)", 0);
  __pyx_r = __pyx_pf_9CACompute_8get_rule_name(__pyx_self);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9CACompute_8get_rule_name(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("get_rule_name", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_convert_PyBytes_string_to_py_std__in_string(__pyx_f_9CACompute_get_rule_name(0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 641, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("CACompute.get_rule_name", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+0642:     return rule_name
  __pyx_r = __pyx_v_9CACompute_rule_name;
  goto __pyx_L0;
 0643: 
+0644: cdef int transition_func(vector[int] neighbours, int generations):
static int __pyx_f_9CACompute_transition_func(std::vector<int>  __pyx_v_neighbours, int __pyx_v_generations) {
  int __pyx_v_n_living;
  int __pyx_v_n_destructive;
  int __pyx_v_n;
  int __pyx_v_n_birth;
  int __pyx_v_n_survival;
  int __pyx_v_idx;
  int __pyx_v_n_regen_birth;
  int __pyx_v_n_regen_survival;
  int __pyx_v_n_forcing;
  int __pyx_v_n_killing;
  int __pyx_v_n1;
  int __pyx_v_n2;
  std::pair<int,int>  __pyx_v_neighbour;
  std::pair<int,int>  __pyx_v_neighbour2;
  std::vector<int> ::size_type __pyx_v_i;
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("transition_func", 0);
/* … */
  /* function exit code */
  __pyx_r = 0;
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_WriteUnraisable("CACompute.transition_func", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+0645:     cdef int n_living = 0, n_destructive = 0, n = 0, n_birth = 0, n_survival = 0, index, found_index, idx, \
  __pyx_v_n_living = 0;
  __pyx_v_n_destructive = 0;
  __pyx_v_n = 0;
  __pyx_v_n_birth = 0;
  __pyx_v_n_survival = 0;
  __pyx_v_n_regen_birth = 0;
  __pyx_v_n_regen_survival = 0;
  __pyx_v_n_forcing = 0;
  __pyx_v_n_killing = 0;
  __pyx_v_n1 = 0;
  __pyx_v_n2 = 0;
 0646:         n_regen_birth = 0, n_regen_survival = 0, n_forcing = 0, n_killing = 0, n1 = 0, n2 = 0
 0647:     cdef pair[int, int] neighbour, neighbour2
+0648:     if rule_space == b"BSFKL":
  __pyx_t_1 = ((__pyx_v_9CACompute_rule_space == ((char const *)"BSFKL")) != 0);
  if (__pyx_t_1) {
/* … */
    goto __pyx_L3;
  }
+0649:         if bsconditions == b"Outer Totalistic":
    __pyx_t_1 = ((__pyx_v_9CACompute_bsconditions == ((char const *)"Outer Totalistic")) != 0);
    if (__pyx_t_1) {
/* … */
    }
+0650:             for i in range(neighbours.size() - 1):
      __pyx_t_2 = (__pyx_v_neighbours.size() - 1);
      __pyx_t_3 = __pyx_t_2;
      for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
        __pyx_v_i = __pyx_t_4;
+0651:                 if neighbours[i] == 1:
        __pyx_t_1 = (((__pyx_v_neighbours[__pyx_v_i]) == 1) != 0);
        if (__pyx_t_1) {
/* … */
          goto __pyx_L7;
        }
+0652:                     n_living += neighbourhood_weights[generations % alternating_period][i]
          __pyx_v_n_living = (__pyx_v_n_living + ((__pyx_v_9CACompute_neighbourhood_weights[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)])[__pyx_v_i]));
+0653:                 elif neighbours[i] == 2:
        __pyx_t_1 = (((__pyx_v_neighbours[__pyx_v_i]) == 2) != 0);
        if (__pyx_t_1) {
/* … */
        }
        __pyx_L7:;
      }
+0654:                     n_destructive += neighbourhood_weights[generations % alternating_period][i]
          __pyx_v_n_destructive = (__pyx_v_n_destructive + ((__pyx_v_9CACompute_neighbourhood_weights[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)])[__pyx_v_i]));
 0655: 
+0656:             if neighbours[neighbours.size() - 1] == 1:
      __pyx_t_1 = (((__pyx_v_neighbours[(__pyx_v_neighbours.size() - 1)]) == 1) != 0);
      if (__pyx_t_1) {
/* … */
      }
+0657:                 if killing[generations % alternating_period].find(n_destructive) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_killing[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n_destructive) != (__pyx_v_9CACompute_killing[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0658:                         killing[generations % alternating_period].end():
+0659:                     return 0
          __pyx_r = 0;
          goto __pyx_L0;
+0660:                 elif survival[generations % alternating_period].find(n_living) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_survival[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n_living) != (__pyx_v_9CACompute_survival[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0661:                         survival[generations % alternating_period].end():
+0662:                     return 1
          __pyx_r = 1;
          goto __pyx_L0;
+0663:                 return 2
        __pyx_r = 2;
        goto __pyx_L0;
 0664: 
+0665:             elif neighbours[neighbours.size() - 1] == 2:
      __pyx_t_1 = (((__pyx_v_neighbours[(__pyx_v_neighbours.size() - 1)]) == 2) != 0);
      if (__pyx_t_1) {
/* … */
      }
+0666:                 if living[generations % alternating_period].find(n_living) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_living[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n_living) != (__pyx_v_9CACompute_living[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0667:                         living[generations % alternating_period].end():
+0668:                     return 0
          __pyx_r = 0;
          goto __pyx_L0;
+0669:                 return 2
        __pyx_r = 2;
        goto __pyx_L0;
 0670: 
 0671:             else:
+0672:                 if forcing[generations % alternating_period].find(n_destructive) != \
      /*else*/ {
/* … */
        __pyx_t_5 = (((__pyx_v_9CACompute_forcing[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n_destructive) != (__pyx_v_9CACompute_forcing[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_5) {
        } else {
          __pyx_t_1 = __pyx_t_5;
          goto __pyx_L12_bool_binop_done;
        }
/* … */
        if (__pyx_t_1) {
/* … */
        }
 0673:                         forcing[generations % alternating_period].end() and \
+0674:                         birth[generations % alternating_period].find(n_living) != \
        __pyx_t_5 = (((__pyx_v_9CACompute_birth[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n_living) != (__pyx_v_9CACompute_birth[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        __pyx_t_1 = __pyx_t_5;
        __pyx_L12_bool_binop_done:;
 0675:                         birth[generations % alternating_period].end():
+0676:                     return 1
          __pyx_r = 1;
          goto __pyx_L0;
+0677:                 return 0
        __pyx_r = 0;
        goto __pyx_L0;
      }
+0678:         elif bsconditions == b"Double Totalistic":
    __pyx_t_1 = ((__pyx_v_9CACompute_bsconditions == ((char const *)"Double Totalistic")) != 0);
    if (__pyx_t_1) {
/* … */
    }
+0679:             n_birth = 0
      __pyx_v_n_birth = 0;
+0680:             n_survival = 0
      __pyx_v_n_survival = 0;
+0681:             n_living = 0
      __pyx_v_n_living = 0;
+0682:             n_forcing = 0
      __pyx_v_n_forcing = 0;
+0683:             n_killing = 0
      __pyx_v_n_killing = 0;
+0684:             for neighbour in original_neighbourhood[generations % alternating_period]:
      __pyx_t_7 = &(__pyx_v_9CACompute_original_neighbourhood[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]);
      __pyx_t_6 = __pyx_t_7->begin();
      for (;;) {
        if (!(__pyx_t_6 != __pyx_t_7->end())) break;
        __pyx_t_8 = *__pyx_t_6;
        ++__pyx_t_6;
        __pyx_v_neighbour = __pyx_t_8;
/* … */
      }
+0685:                 n1, n2 = 0, 0
        __pyx_t_9 = 0;
        __pyx_t_10 = 0;
        __pyx_v_n1 = __pyx_t_9;
        __pyx_v_n2 = __pyx_t_10;
+0686:                 idx = 0
        __pyx_v_idx = 0;
+0687:                 for neighbour2 in original_neighbourhood[generations % alternating_period]:
        __pyx_t_12 = &(__pyx_v_9CACompute_original_neighbourhood[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]);
        __pyx_t_11 = __pyx_t_12->begin();
        for (;;) {
          if (!(__pyx_t_11 != __pyx_t_12->end())) break;
          __pyx_t_8 = *__pyx_t_11;
          ++__pyx_t_11;
          __pyx_v_neighbour2 = __pyx_t_8;
/* … */
        }
+0688:                     if neighbours[index_map[generations % alternating_period][pair[int, int]
          if (__pyx_t_1) {
/* … */
          }
+0689:                          (neighbour.first + neighbour2.first, neighbour.second + neighbour2.second)]] == 1:
          try {
            __pyx_t_8 = std::pair<int,int> ((__pyx_v_neighbour.first + __pyx_v_neighbour2.first), (__pyx_v_neighbour.second + __pyx_v_neighbour2.second));
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 689, __pyx_L1_error)
          }
/* … */
          __pyx_t_1 = (((__pyx_v_neighbours[((__pyx_v_9CACompute_index_map[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)])[__pyx_t_8])]) == 1) != 0);
+0690:                         n1 += neighbourhood_weights[generations % alternating_period][idx]
            __pyx_v_n1 = (__pyx_v_n1 + ((__pyx_v_9CACompute_neighbourhood_weights[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)])[__pyx_v_idx]));
+0691:                     if neighbours[index_map[generations % alternating_period][pair[int, int]
          if (__pyx_t_1) {
/* … */
          }
+0692:                          (neighbour.first + neighbour2.first, neighbour.second + neighbour2.second)]] == 2:
          try {
            __pyx_t_8 = std::pair<int,int> ((__pyx_v_neighbour.first + __pyx_v_neighbour2.first), (__pyx_v_neighbour.second + __pyx_v_neighbour2.second));
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 692, __pyx_L1_error)
          }
/* … */
          __pyx_t_1 = (((__pyx_v_neighbours[((__pyx_v_9CACompute_index_map[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)])[__pyx_t_8])]) == 2) != 0);
+0693:                         n2 += neighbourhood_weights[generations % alternating_period][idx]
            __pyx_v_n2 = (__pyx_v_n2 + ((__pyx_v_9CACompute_neighbourhood_weights[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)])[__pyx_v_idx]));
+0694:                     idx += 1
          __pyx_v_idx = (__pyx_v_idx + 1);
 0695: 
+0696:                 if other_birth[generations % alternating_period].find(n1) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_other_birth[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n1) != (__pyx_v_9CACompute_other_birth[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0697:                         other_birth[generations % alternating_period].end():
+0698:                     n_birth += 1
          __pyx_v_n_birth = (__pyx_v_n_birth + 1);
+0699:                 if other_survival[generations % alternating_period].find(n1) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_other_survival[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n1) != (__pyx_v_9CACompute_other_survival[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0700:                         other_survival[generations % alternating_period].end():
+0701:                     n_survival += 1
          __pyx_v_n_survival = (__pyx_v_n_survival + 1);
+0702:                 if other_living[generations % alternating_period].find(n1) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_other_living[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n1) != (__pyx_v_9CACompute_other_living[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0703:                         other_living[generations % alternating_period].end():
+0704:                     n_living += 1
          __pyx_v_n_living = (__pyx_v_n_living + 1);
+0705:                 if other_forcing[generations % alternating_period].find(n2) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_other_forcing[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n2) != (__pyx_v_9CACompute_other_forcing[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0706:                         other_forcing[generations % alternating_period].end():
+0707:                     n_forcing += 1
          __pyx_v_n_forcing = (__pyx_v_n_forcing + 1);
+0708:                 if other_killing[generations % alternating_period].find(n2) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_other_killing[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n2) != (__pyx_v_9CACompute_other_killing[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0709:                         other_killing[generations % alternating_period].end():
+0710:                     n_killing += 1
          __pyx_v_n_killing = (__pyx_v_n_killing + 1);
 0711: 
+0712:             if neighbours[neighbours.size() - 1] == 1:
      __pyx_t_1 = (((__pyx_v_neighbours[(__pyx_v_neighbours.size() - 1)]) == 1) != 0);
      if (__pyx_t_1) {
/* … */
      }
+0713:                 if killing[generations % alternating_period].find(n_killing) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_killing[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n_killing) != (__pyx_v_9CACompute_killing[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0714:                         killing[generations % alternating_period].end():
+0715:                     return 0
          __pyx_r = 0;
          goto __pyx_L0;
+0716:                 elif survival[generations % alternating_period].find(n_survival) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_survival[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n_survival) != (__pyx_v_9CACompute_survival[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0717:                         survival[generations % alternating_period].end():
+0718:                     return 1
          __pyx_r = 1;
          goto __pyx_L0;
+0719:                 return 2
        __pyx_r = 2;
        goto __pyx_L0;
 0720: 
+0721:             elif neighbours[neighbours.size() - 1] == 2:
      __pyx_t_1 = (((__pyx_v_neighbours[(__pyx_v_neighbours.size() - 1)]) == 2) != 0);
      if (__pyx_t_1) {
/* … */
      }
+0722:                 if living[generations % alternating_period].find(n_living) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_living[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n_living) != (__pyx_v_9CACompute_living[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0723:                         living[generations % alternating_period].end():
+0724:                     return 0
          __pyx_r = 0;
          goto __pyx_L0;
+0725:                 return 2
        __pyx_r = 2;
        goto __pyx_L0;
 0726: 
 0727:             else:
+0728:                 if forcing[generations % alternating_period].find(n_forcing) != \
      /*else*/ {
/* … */
        __pyx_t_5 = (((__pyx_v_9CACompute_forcing[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n_forcing) != (__pyx_v_9CACompute_forcing[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_5) {
        } else {
          __pyx_t_1 = __pyx_t_5;
          goto __pyx_L29_bool_binop_done;
        }
/* … */
        if (__pyx_t_1) {
/* … */
        }
 0729:                         forcing[generations % alternating_period].end() and \
+0730:                         birth[generations % alternating_period].find(n_birth) != \
        __pyx_t_5 = (((__pyx_v_9CACompute_birth[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n_birth) != (__pyx_v_9CACompute_birth[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        __pyx_t_1 = __pyx_t_5;
        __pyx_L29_bool_binop_done:;
 0731:                         birth[generations % alternating_period].end():
+0732:                     return 1
          __pyx_r = 1;
          goto __pyx_L0;
+0733:                 return 0
        __pyx_r = 0;
        goto __pyx_L0;
      }
+0734:     elif rule_space == b"Extended Generations":
  __pyx_t_1 = ((__pyx_v_9CACompute_rule_space == ((char const *)"Extended Generations")) != 0);
  if (__pyx_t_1) {
/* … */
    goto __pyx_L3;
  }
+0735:         if bsconditions == b"Outer Totalistic":
    __pyx_t_1 = ((__pyx_v_9CACompute_bsconditions == ((char const *)"Outer Totalistic")) != 0);
    if (__pyx_t_1) {
/* … */
      goto __pyx_L31;
    }
+0736:             for i in range(neighbours.size() - 1):
      __pyx_t_2 = (__pyx_v_neighbours.size() - 1);
      __pyx_t_3 = __pyx_t_2;
      for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
        __pyx_v_i = __pyx_t_4;
+0737:                 n += neighbourhood_weights[generations % alternating_period][i] * \
        __pyx_v_n = (__pyx_v_n + (((__pyx_v_9CACompute_neighbourhood_weights[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)])[__pyx_v_i]) * ((__pyx_v_9CACompute_state_weights[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)])[(__pyx_v_neighbours[__pyx_v_i])])));
      }
 0738:                      state_weights[generations % alternating_period][neighbours[i]]
 0739: 
+0740:             if activity_list[generations % alternating_period].find(neighbours[neighbours.size() - 1]) != \
      __pyx_t_1 = (((__pyx_v_9CACompute_activity_list[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find((__pyx_v_neighbours[(__pyx_v_neighbours.size() - 1)])) != (__pyx_v_9CACompute_activity_list[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
      if (__pyx_t_1) {
/* … */
      }
 0741:                     activity_list[generations % alternating_period].end():
+0742:                 if survival[generations % alternating_period].find(n) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_survival[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n) != (__pyx_v_9CACompute_survival[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0743:                         survival[generations % alternating_period].end():
+0744:                     return neighbours[neighbours.size() - 1]
          __pyx_r = (__pyx_v_neighbours[(__pyx_v_neighbours.size() - 1)]);
          goto __pyx_L0;
+0745:                 return (neighbours[neighbours.size() - 1] + 1) % n_states
        __pyx_r = (((__pyx_v_neighbours[(__pyx_v_neighbours.size() - 1)]) + 1) % __pyx_v_9CACompute_n_states);
        goto __pyx_L0;
 0746: 
+0747:             elif neighbours[neighbours.size() - 1] == 0:
      __pyx_t_1 = (((__pyx_v_neighbours[(__pyx_v_neighbours.size() - 1)]) == 0) != 0);
      if (__pyx_t_1) {
/* … */
      }
+0748:                 if birth[generations % alternating_period].find(n) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_birth[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n) != (__pyx_v_9CACompute_birth[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0749:                         birth[generations % alternating_period].end():
+0750:                     return 1
          __pyx_r = 1;
          goto __pyx_L0;
+0751:                 return 0
        __pyx_r = 0;
        goto __pyx_L0;
+0752:         elif bsconditions == b"Double Totalistic":
    __pyx_t_1 = ((__pyx_v_9CACompute_bsconditions == ((char const *)"Double Totalistic")) != 0);
    if (__pyx_t_1) {
/* … */
    }
    __pyx_L31:;
+0753:             n_birth = 0
      __pyx_v_n_birth = 0;
+0754:             n_survival = 0
      __pyx_v_n_survival = 0;
+0755:             for neighbour in original_neighbourhood[generations % alternating_period]:
      __pyx_t_7 = &(__pyx_v_9CACompute_original_neighbourhood[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]);
      __pyx_t_6 = __pyx_t_7->begin();
      for (;;) {
        if (!(__pyx_t_6 != __pyx_t_7->end())) break;
        __pyx_t_8 = *__pyx_t_6;
        ++__pyx_t_6;
        __pyx_v_neighbour = __pyx_t_8;
/* … */
      }
+0756:                 n = 0
        __pyx_v_n = 0;
+0757:                 idx = 0
        __pyx_v_idx = 0;
+0758:                 for neighbour2 in original_neighbourhood[generations % alternating_period]:
        __pyx_t_12 = &(__pyx_v_9CACompute_original_neighbourhood[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]);
        __pyx_t_11 = __pyx_t_12->begin();
        for (;;) {
          if (!(__pyx_t_11 != __pyx_t_12->end())) break;
          __pyx_t_8 = *__pyx_t_11;
          ++__pyx_t_11;
          __pyx_v_neighbour2 = __pyx_t_8;
/* … */
        }
+0759:                     n += neighbourhood_weights[generations % alternating_period][idx] * \
          __pyx_v_n = (__pyx_v_n + (((__pyx_v_9CACompute_neighbourhood_weights[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)])[__pyx_v_idx]) * ((__pyx_v_9CACompute_state_weights[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)])[(__pyx_v_neighbours[((__pyx_v_9CACompute_index_map[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)])[__pyx_t_8])])])));
 0760:                          state_weights[generations % alternating_period][neighbours[index_map[
 0761:                              generations % alternating_period][pair[int, int]
+0762:                          (neighbour.first + neighbour2.first, neighbour.second + neighbour2.second)]]]
          try {
            __pyx_t_8 = std::pair<int,int> ((__pyx_v_neighbour.first + __pyx_v_neighbour2.first), (__pyx_v_neighbour.second + __pyx_v_neighbour2.second));
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 762, __pyx_L1_error)
          }
+0763:                     idx += 1
          __pyx_v_idx = (__pyx_v_idx + 1);
 0764: 
+0765:                 if other_birth[generations % alternating_period].find(n) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_other_birth[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n) != (__pyx_v_9CACompute_other_birth[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0766:                         other_birth[generations % alternating_period].end():
+0767:                     n_birth += 1
          __pyx_v_n_birth = (__pyx_v_n_birth + 1);
+0768:                 if other_survival[generations % alternating_period].find(n) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_other_survival[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n) != (__pyx_v_9CACompute_other_survival[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0769:                         other_survival[generations % alternating_period].end():
+0770:                     n_survival += 1
          __pyx_v_n_survival = (__pyx_v_n_survival + 1);
 0771: 
+0772:             if activity_list[generations % alternating_period].find(neighbours[neighbours.size() - 1]) != \
      __pyx_t_1 = (((__pyx_v_9CACompute_activity_list[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find((__pyx_v_neighbours[(__pyx_v_neighbours.size() - 1)])) != (__pyx_v_9CACompute_activity_list[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
      if (__pyx_t_1) {
/* … */
      }
 0773:                     activity_list[generations % alternating_period].end():
+0774:                 if survival[generations % alternating_period].find(n_survival) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_survival[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n_survival) != (__pyx_v_9CACompute_survival[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0775:                     survival[generations % alternating_period].end():
+0776:                     return 1
          __pyx_r = 1;
          goto __pyx_L0;
+0777:                 return 2
        __pyx_r = 2;
        goto __pyx_L0;
 0778: 
+0779:             elif neighbours[neighbours.size() - 1] == 0:
      __pyx_t_1 = (((__pyx_v_neighbours[(__pyx_v_neighbours.size() - 1)]) == 0) != 0);
      if (__pyx_t_1) {
/* … */
      }
+0780:                 if birth[generations % alternating_period].find(n_birth) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_birth[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n_birth) != (__pyx_v_9CACompute_birth[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0781:                     birth[generations % alternating_period].end():
+0782:                     return 1
          __pyx_r = 1;
          goto __pyx_L0;
+0783:                 return 0
        __pyx_r = 0;
        goto __pyx_L0;
+0784:     elif rule_space == b"Single State":
  __pyx_t_1 = ((__pyx_v_9CACompute_rule_space == ((char const *)"Single State")) != 0);
  if (__pyx_t_1) {
/* … */
    goto __pyx_L3;
  }
+0785:         if bsconditions == b"Outer Totalistic":
    __pyx_t_1 = ((__pyx_v_9CACompute_bsconditions == ((char const *)"Outer Totalistic")) != 0);
    if (__pyx_t_1) {
/* … */
    }
+0786:             for i in range(neighbours.size() - 1):
      __pyx_t_2 = (__pyx_v_neighbours.size() - 1);
      __pyx_t_3 = __pyx_t_2;
      for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
        __pyx_v_i = __pyx_t_4;
+0787:                 n += neighbourhood_weights[generations % alternating_period][i] * \
        __pyx_v_n = (__pyx_v_n + (((__pyx_v_9CACompute_neighbourhood_weights[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)])[__pyx_v_i]) * ((__pyx_v_9CACompute_state_weights[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)])[(__pyx_v_neighbours[__pyx_v_i])])));
      }
 0788:                      state_weights[generations % alternating_period][neighbours[i]]
 0789: 
+0790:             if neighbours[neighbours.size() - 1] == 1:
      __pyx_t_1 = (((__pyx_v_neighbours[(__pyx_v_neighbours.size() - 1)]) == 1) != 0);
      if (__pyx_t_1) {
/* … */
      }
+0791:                 if survival[generations % alternating_period].find(n) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_survival[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n) != (__pyx_v_9CACompute_survival[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0792:                         survival[generations % alternating_period].end():
+0793:                     return 1
          __pyx_r = 1;
          goto __pyx_L0;
+0794:                 return 0
        __pyx_r = 0;
        goto __pyx_L0;
 0795:             else:
+0796:                 if birth[generations % alternating_period].find(n) != \
      /*else*/ {
/* … */
        __pyx_t_1 = (((__pyx_v_9CACompute_birth[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n) != (__pyx_v_9CACompute_birth[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
/* … */
        if (__pyx_t_1) {
/* … */
        }
 0797:                         birth[generations % alternating_period].end():
+0798:                     return 1
          __pyx_r = 1;
          goto __pyx_L0;
+0799:                 return 0
        __pyx_r = 0;
        goto __pyx_L0;
      }
+0800:         elif bsconditions == b"Double Totalistic":
    __pyx_t_1 = ((__pyx_v_9CACompute_bsconditions == ((char const *)"Double Totalistic")) != 0);
    if (__pyx_t_1) {
/* … */
    }
+0801:             n_birth = 0
      __pyx_v_n_birth = 0;
+0802:             n_survival = 0
      __pyx_v_n_survival = 0;
+0803:             for neighbour in original_neighbourhood[generations % alternating_period]:
      __pyx_t_7 = &(__pyx_v_9CACompute_original_neighbourhood[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]);
      __pyx_t_6 = __pyx_t_7->begin();
      for (;;) {
        if (!(__pyx_t_6 != __pyx_t_7->end())) break;
        __pyx_t_8 = *__pyx_t_6;
        ++__pyx_t_6;
        __pyx_v_neighbour = __pyx_t_8;
/* … */
      }
+0804:                 n = 0
        __pyx_v_n = 0;
+0805:                 idx = 0
        __pyx_v_idx = 0;
+0806:                 for neighbour2 in original_neighbourhood[generations % alternating_period]:
        __pyx_t_12 = &(__pyx_v_9CACompute_original_neighbourhood[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]);
        __pyx_t_11 = __pyx_t_12->begin();
        for (;;) {
          if (!(__pyx_t_11 != __pyx_t_12->end())) break;
          __pyx_t_8 = *__pyx_t_11;
          ++__pyx_t_11;
          __pyx_v_neighbour2 = __pyx_t_8;
/* … */
        }
+0807:                     n += neighbourhood_weights[generations % alternating_period][idx] * \
          __pyx_v_n = (__pyx_v_n + (((__pyx_v_9CACompute_neighbourhood_weights[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)])[__pyx_v_idx]) * ((__pyx_v_9CACompute_state_weights[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)])[(__pyx_v_neighbours[((__pyx_v_9CACompute_index_map[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)])[__pyx_t_8])])])));
 0808:                          state_weights[generations % alternating_period][neighbours[index_map[
 0809:                              generations % alternating_period][pair[int, int]
+0810:                          (neighbour.first + neighbour2.first, neighbour.second + neighbour2.second)]]]
          try {
            __pyx_t_8 = std::pair<int,int> ((__pyx_v_neighbour.first + __pyx_v_neighbour2.first), (__pyx_v_neighbour.second + __pyx_v_neighbour2.second));
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 810, __pyx_L1_error)
          }
+0811:                     idx += 1
          __pyx_v_idx = (__pyx_v_idx + 1);
 0812: 
+0813:                 if other_birth[generations % alternating_period].find(n) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_other_birth[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n) != (__pyx_v_9CACompute_other_birth[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0814:                         other_birth[generations % alternating_period].end():
+0815:                     n_birth += 1
          __pyx_v_n_birth = (__pyx_v_n_birth + 1);
+0816:                 if other_survival[generations % alternating_period].find(n) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_other_survival[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n) != (__pyx_v_9CACompute_other_survival[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0817:                         other_survival[generations % alternating_period].end():
+0818:                     n_survival += 1
          __pyx_v_n_survival = (__pyx_v_n_survival + 1);
 0819: 
+0820:             if neighbours[neighbours.size() - 1] == 1:
      __pyx_t_1 = (((__pyx_v_neighbours[(__pyx_v_neighbours.size() - 1)]) == 1) != 0);
      if (__pyx_t_1) {
/* … */
      }
+0821:                 if survival[generations % alternating_period].find(n_survival) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_survival[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n_survival) != (__pyx_v_9CACompute_survival[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0822:                     survival[generations % alternating_period].end():
+0823:                     return 1
          __pyx_r = 1;
          goto __pyx_L0;
+0824:                 return 0
        __pyx_r = 0;
        goto __pyx_L0;
 0825: 
+0826:             elif neighbours[neighbours.size() - 1] == 0:
      __pyx_t_1 = (((__pyx_v_neighbours[(__pyx_v_neighbours.size() - 1)]) == 0) != 0);
      if (__pyx_t_1) {
/* … */
      }
+0827:                 if birth[generations % alternating_period].find(n_birth) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_birth[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n_birth) != (__pyx_v_9CACompute_birth[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0828:                     birth[generations % alternating_period].end():
+0829:                     return 1
          __pyx_r = 1;
          goto __pyx_L0;
+0830:                 return 0
        __pyx_r = 0;
        goto __pyx_L0;
+0831:     elif rule_space == b"Regenerating Generations":
  __pyx_t_1 = ((__pyx_v_9CACompute_rule_space == ((char const *)"Regenerating Generations")) != 0);
  if (__pyx_t_1) {
/* … */
  }
  __pyx_L3:;
+0832:         if bsconditions == b"Outer Totalistic":
    __pyx_t_1 = ((__pyx_v_9CACompute_bsconditions == ((char const *)"Outer Totalistic")) != 0);
    if (__pyx_t_1) {
/* … */
    }
+0833:             for i in range(neighbours.size() - 1):
      __pyx_t_2 = (__pyx_v_neighbours.size() - 1);
      __pyx_t_3 = __pyx_t_2;
      for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
        __pyx_v_i = __pyx_t_4;
+0834:                 n += neighbourhood_weights[generations % alternating_period][i] * \
        __pyx_v_n = (__pyx_v_n + (((__pyx_v_9CACompute_neighbourhood_weights[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)])[__pyx_v_i]) * ((__pyx_v_9CACompute_state_weights[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)])[(__pyx_v_neighbours[__pyx_v_i])])));
      }
 0835:                      state_weights[generations % alternating_period][neighbours[i]]
 0836: 
+0837:             if neighbours[neighbours.size() - 1] == 0:
      __pyx_t_1 = (((__pyx_v_neighbours[(__pyx_v_neighbours.size() - 1)]) == 0) != 0);
      if (__pyx_t_1) {
/* … */
      }
+0838:                 if birth[generations % alternating_period].find(n) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_birth[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n) != (__pyx_v_9CACompute_birth[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0839:                         birth[generations % alternating_period].end():
+0840:                     return birth_state
          __pyx_r = __pyx_v_9CACompute_birth_state;
          goto __pyx_L0;
+0841:                 return 0
        __pyx_r = 0;
        goto __pyx_L0;
+0842:             elif neighbours[neighbours.size() - 1] == 1:
      __pyx_t_1 = (((__pyx_v_neighbours[(__pyx_v_neighbours.size() - 1)]) == 1) != 0);
      if (__pyx_t_1) {
/* … */
      }
+0843:                 if survival[generations % alternating_period].find(n) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_survival[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n) != (__pyx_v_9CACompute_survival[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0844:                         survival[generations % alternating_period].end():
+0845:                     return 1
          __pyx_r = 1;
          goto __pyx_L0;
+0846:                 return 2
        __pyx_r = 2;
        goto __pyx_L0;
 0847:             else:
+0848:                 if regen_birth[generations % alternating_period].find(n) != \
      /*else*/ {
/* … */
        __pyx_t_1 = (((__pyx_v_9CACompute_regen_birth[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n) != (__pyx_v_9CACompute_regen_birth[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
/* … */
        if (__pyx_t_1) {
/* … */
        }
 0849:                         regen_birth[generations % alternating_period].end():
+0850:                     return neighbours[neighbours.size() - 1] - 1
          __pyx_r = ((__pyx_v_neighbours[(__pyx_v_neighbours.size() - 1)]) - 1);
          goto __pyx_L0;
+0851:                 elif regen_survival[generations % alternating_period].find(n) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_regen_survival[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n) != (__pyx_v_9CACompute_regen_survival[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0852:                         regen_survival[generations % alternating_period].end():
+0853:                     return neighbours[neighbours.size() - 1]
          __pyx_r = (__pyx_v_neighbours[(__pyx_v_neighbours.size() - 1)]);
          goto __pyx_L0;
+0854:                 return (neighbours[neighbours.size() - 1] + 1) % n_states
        __pyx_r = (((__pyx_v_neighbours[(__pyx_v_neighbours.size() - 1)]) + 1) % __pyx_v_9CACompute_n_states);
        goto __pyx_L0;
      }
+0855:         elif bsconditions == b"Double Totalistic":
    __pyx_t_1 = ((__pyx_v_9CACompute_bsconditions == ((char const *)"Double Totalistic")) != 0);
    if (__pyx_t_1) {
/* … */
    }
+0856:             n_birth, n_survival, n_regen_birth, n_regen_survival = 0, 0, 0, 0
      __pyx_t_10 = 0;
      __pyx_t_9 = 0;
      __pyx_t_13 = 0;
      __pyx_t_14 = 0;
      __pyx_v_n_birth = __pyx_t_10;
      __pyx_v_n_survival = __pyx_t_9;
      __pyx_v_n_regen_birth = __pyx_t_13;
      __pyx_v_n_regen_survival = __pyx_t_14;
+0857:             for neighbour in original_neighbourhood[generations % alternating_period]:
      __pyx_t_7 = &(__pyx_v_9CACompute_original_neighbourhood[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]);
      __pyx_t_6 = __pyx_t_7->begin();
      for (;;) {
        if (!(__pyx_t_6 != __pyx_t_7->end())) break;
        __pyx_t_8 = *__pyx_t_6;
        ++__pyx_t_6;
        __pyx_v_neighbour = __pyx_t_8;
/* … */
      }
+0858:                 n = 0
        __pyx_v_n = 0;
+0859:                 idx = 0
        __pyx_v_idx = 0;
+0860:                 for neighbour2 in original_neighbourhood[generations % alternating_period]:
        __pyx_t_12 = &(__pyx_v_9CACompute_original_neighbourhood[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]);
        __pyx_t_11 = __pyx_t_12->begin();
        for (;;) {
          if (!(__pyx_t_11 != __pyx_t_12->end())) break;
          __pyx_t_8 = *__pyx_t_11;
          ++__pyx_t_11;
          __pyx_v_neighbour2 = __pyx_t_8;
/* … */
        }
+0861:                     n += neighbourhood_weights[generations % alternating_period][idx] * \
          __pyx_v_n = (__pyx_v_n + (((__pyx_v_9CACompute_neighbourhood_weights[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)])[__pyx_v_idx]) * ((__pyx_v_9CACompute_state_weights[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)])[(__pyx_v_neighbours[((__pyx_v_9CACompute_index_map[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)])[__pyx_t_8])])])));
 0862:                          state_weights[generations % alternating_period][neighbours[index_map[
 0863:                              generations % alternating_period][pair[int, int]
+0864:                          (neighbour.first + neighbour2.first, neighbour.second + neighbour2.second)]]]
          try {
            __pyx_t_8 = std::pair<int,int> ((__pyx_v_neighbour.first + __pyx_v_neighbour2.first), (__pyx_v_neighbour.second + __pyx_v_neighbour2.second));
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 864, __pyx_L1_error)
          }
+0865:                     idx += 1
          __pyx_v_idx = (__pyx_v_idx + 1);
+0866:                 if other_birth[generations % alternating_period].find(n) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_other_birth[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n) != (__pyx_v_9CACompute_other_birth[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0867:                         other_birth[generations % alternating_period].end():
+0868:                     n_birth += 1
          __pyx_v_n_birth = (__pyx_v_n_birth + 1);
+0869:                 if other_survival[generations % alternating_period].find(n) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_other_survival[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n) != (__pyx_v_9CACompute_other_survival[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0870:                         other_survival[generations % alternating_period].end():
+0871:                     n_survival += 1
          __pyx_v_n_survival = (__pyx_v_n_survival + 1);
+0872:                 if other_regen_birth[generations % alternating_period].find(n) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_other_regen_birth[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n) != (__pyx_v_9CACompute_other_regen_birth[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0873:                         other_regen_birth[generations % alternating_period].end():
+0874:                     n_regen_birth += 1
          __pyx_v_n_regen_birth = (__pyx_v_n_regen_birth + 1);
+0875:                 if other_regen_survival[generations % alternating_period].find(n) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_other_regen_survival[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n) != (__pyx_v_9CACompute_other_regen_survival[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0876:                         other_regen_survival[generations % alternating_period].end():
+0877:                     n_regen_survival += 1
          __pyx_v_n_regen_survival = (__pyx_v_n_regen_survival + 1);
 0878: 
+0879:             if neighbours[neighbours.size() - 1] == 0:
      __pyx_t_1 = (((__pyx_v_neighbours[(__pyx_v_neighbours.size() - 1)]) == 0) != 0);
      if (__pyx_t_1) {
/* … */
      }
+0880:                 if birth[generations % alternating_period].find(n_birth) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_birth[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n_birth) != (__pyx_v_9CACompute_birth[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0881:                         birth[generations % alternating_period].end():
+0882:                     return birth_state
          __pyx_r = __pyx_v_9CACompute_birth_state;
          goto __pyx_L0;
+0883:                 return 0
        __pyx_r = 0;
        goto __pyx_L0;
+0884:             elif neighbours[neighbours.size() - 1] == 1:
      __pyx_t_1 = (((__pyx_v_neighbours[(__pyx_v_neighbours.size() - 1)]) == 1) != 0);
      if (__pyx_t_1) {
/* … */
      }
+0885:                 if survival[generations % alternating_period].find(n_survival) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_survival[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n_survival) != (__pyx_v_9CACompute_survival[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0886:                         survival[generations % alternating_period].end():
+0887:                     return 1
          __pyx_r = 1;
          goto __pyx_L0;
+0888:                 return 2
        __pyx_r = 2;
        goto __pyx_L0;
 0889:             else:
+0890:                 if regen_birth[generations % alternating_period].find(n_regen_birth) != \
      /*else*/ {
/* … */
        __pyx_t_1 = (((__pyx_v_9CACompute_regen_birth[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n_regen_birth) != (__pyx_v_9CACompute_regen_birth[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
/* … */
        if (__pyx_t_1) {
/* … */
        }
 0891:                         regen_birth[generations % alternating_period].end():
+0892:                     return neighbours[neighbours.size() - 1] - 1
          __pyx_r = ((__pyx_v_neighbours[(__pyx_v_neighbours.size() - 1)]) - 1);
          goto __pyx_L0;
+0893:                 elif regen_survival[generations % alternating_period].find(n_regen_survival) != \
        __pyx_t_1 = (((__pyx_v_9CACompute_regen_survival[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_n_regen_survival) != (__pyx_v_9CACompute_regen_survival[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
        if (__pyx_t_1) {
/* … */
        }
 0894:                         regen_survival[generations % alternating_period].end():
+0895:                     return neighbours[neighbours.size() - 1]
          __pyx_r = (__pyx_v_neighbours[(__pyx_v_neighbours.size() - 1)]);
          goto __pyx_L0;
+0896:                 return (neighbours[neighbours.size() - 1] + 1) % n_states
        __pyx_r = (((__pyx_v_neighbours[(__pyx_v_neighbours.size() - 1)]) + 1) % __pyx_v_9CACompute_n_states);
        goto __pyx_L0;
      }
 0897: 
+0898: cdef int depend_on_neighbours(int state, int generations):
static int __pyx_f_9CACompute_depend_on_neighbours(int __pyx_v_state, int __pyx_v_generations) {
  int __pyx_r;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("depend_on_neighbours", 0);
/* … */
  /* function exit code */
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
+0899:     if rule_space == b"BSFKL" or rule_space == b"Single State" or rule_space == b"Regenerating Generations":
  __pyx_t_2 = ((__pyx_v_9CACompute_rule_space == ((char const *)"BSFKL")) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_9CACompute_rule_space == ((char const *)"Single State")) != 0);
  if (!__pyx_t_2) {
  } else {
    __pyx_t_1 = __pyx_t_2;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = ((__pyx_v_9CACompute_rule_space == ((char const *)"Regenerating Generations")) != 0);
  __pyx_t_1 = __pyx_t_2;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {
/* … */
  }
+0900:         return -1
    __pyx_r = -1;
    goto __pyx_L0;
+0901:     elif rule_space == b"Extended Generations":
  __pyx_t_1 = ((__pyx_v_9CACompute_rule_space == ((char const *)"Extended Generations")) != 0);
  if (__pyx_t_1) {
/* … */
  }
+0902:         if activity_list[generations % alternating_period].find(state) != \
    __pyx_t_2 = (((__pyx_v_9CACompute_activity_list[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).find(__pyx_v_state) != (__pyx_v_9CACompute_activity_list[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).end()) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_1 = __pyx_t_2;
      goto __pyx_L8_bool_binop_done;
    }
/* … */
    if (__pyx_t_1) {
/* … */
    }
+0903:                 activity_list[generations % alternating_period].end() or state == 0:
    __pyx_t_2 = ((__pyx_v_state == 0) != 0);
    __pyx_t_1 = __pyx_t_2;
    __pyx_L8_bool_binop_done:;
+0904:             return -1
      __pyx_r = -1;
      goto __pyx_L0;
 0905:         else:
+0906:             return (state + 1) % n_states
    /*else*/ {
      __pyx_r = ((__pyx_v_state + 1) % __pyx_v_9CACompute_n_states);
      goto __pyx_L0;
    }
 0907: 
 0908: cdef unordered_map[pair[int, int], int] depends_cache
 0909: cdef map[pair[vector[int], int], int] transition_func_cache
+0910: cpdef compute(unordered_set[pair[int, int]] cells_changed,
static PyObject *__pyx_pw_9CACompute_11compute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_f_9CACompute_compute(std::unordered_set<std::pair<int,int> >  __pyx_v_cells_changed, std::unordered_map<std::pair<int,int> ,int>  __pyx_v_copy_grid, std::unordered_map<std::pair<int,int> ,int>  __pyx_v_dict_grid, int __pyx_v_generations, CYTHON_UNUSED int __pyx_skip_dispatch) {
  std::vector<int>  __pyx_v_neighbours;
  std::unordered_set<std::pair<int,int> >  __pyx_v_cells_to_check;
  int __pyx_v_ans;
  std::pair<int,int>  __pyx_v_coordinates;
  std::pair<int,int>  __pyx_v_coordinates2;
  std::pair<int,int>  __pyx_v_neighbour;
  std::pair<int,int>  __pyx_v_coor;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("compute", 0);
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("CACompute.compute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = 0;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_9CACompute_11compute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyObject *__pyx_pw_9CACompute_11compute(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  std::unordered_set<std::pair<int,int> >  __pyx_v_cells_changed;
  std::unordered_map<std::pair<int,int> ,int>  __pyx_v_copy_grid;
  std::unordered_map<std::pair<int,int> ,int>  __pyx_v_dict_grid;
  int __pyx_v_generations;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("compute (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_cells_changed,&__pyx_n_s_copy_grid,&__pyx_n_s_dict_grid,&__pyx_n_s_generations,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cells_changed)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_copy_grid)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("compute", 1, 4, 4, 1); __PYX_ERR(0, 910, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dict_grid)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("compute", 1, 4, 4, 2); __PYX_ERR(0, 910, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_generations)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("compute", 1, 4, 4, 3); __PYX_ERR(0, 910, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "compute") < 0)) __PYX_ERR(0, 910, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_cells_changed = __pyx_convert_unordered_set_from_py_std_3a__3a_pair_3c_int_2c_int_3e___(values[0]); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 910, __pyx_L3_error)
    __pyx_v_copy_grid = __pyx_convert_unordered_map_from_py_std_3a__3a_pair_3c_int_2c_int_3e_____and_int(values[1]); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 911, __pyx_L3_error)
    __pyx_v_dict_grid = __pyx_convert_unordered_map_from_py_std_3a__3a_pair_3c_int_2c_int_3e_____and_int(values[2]); if (unlikely(PyErr_Occurred())) __PYX_ERR(0, 911, __pyx_L3_error)
    __pyx_v_generations = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_generations == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 912, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("compute", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 910, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("CACompute.compute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_9CACompute_10compute(__pyx_self, __pyx_v_cells_changed, __pyx_v_copy_grid, __pyx_v_dict_grid, __pyx_v_generations);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_9CACompute_10compute(CYTHON_UNUSED PyObject *__pyx_self, std::unordered_set<std::pair<int,int> >  __pyx_v_cells_changed, std::unordered_map<std::pair<int,int> ,int>  __pyx_v_copy_grid, std::unordered_map<std::pair<int,int> ,int>  __pyx_v_dict_grid, int __pyx_v_generations) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("compute", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __pyx_f_9CACompute_compute(__pyx_v_cells_changed, __pyx_v_copy_grid, __pyx_v_dict_grid, __pyx_v_generations, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 910, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("CACompute.compute", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
 0911:               unordered_map[pair[int, int], int] copy_grid, unordered_map[pair[int, int], int] dict_grid,
 0912:               int generations):
 0913: 
 0914:     cdef vector[int] neighbours
+0915:     neighbours.reserve(neighbourhood[generations % alternating_period].size() + 1)
  __pyx_v_neighbours.reserve(((__pyx_v_9CACompute_neighbourhood[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]).size() + 1));
 0916: 
 0917:     cdef unordered_set[pair[int, int]] cells_to_check
 0918: 
 0919:     cdef int i, j
 0920:     cdef int ans
 0921:     cdef pair[int, int] coordinates, coordinates2
 0922:     cdef pair[int, int] neighbour
 0923: 
+0924:     for coor in cells_changed:
  __pyx_t_1 = __pyx_v_cells_changed.begin();
  for (;;) {
    if (!(__pyx_t_1 != __pyx_v_cells_changed.end())) break;
    __pyx_t_2 = *__pyx_t_1;
    ++__pyx_t_1;
    __pyx_v_coor = __pyx_t_2;
/* … */
  }
+0925:         for neighbour in neighbourhood[generations % alternating_period]:
    __pyx_t_4 = &(__pyx_v_9CACompute_neighbourhood[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]);
    __pyx_t_3 = __pyx_t_4->begin();
    for (;;) {
      if (!(__pyx_t_3 != __pyx_t_4->end())) break;
      __pyx_t_2 = *__pyx_t_3;
      ++__pyx_t_3;
      __pyx_v_neighbour = __pyx_t_2;
/* … */
    }
+0926:             coordinates.first = coor.first + neighbour.first
      __pyx_v_coordinates.first = (__pyx_v_coor.first + __pyx_v_neighbour.first);
+0927:             coordinates.second = coor.second + neighbour.second
      __pyx_v_coordinates.second = (__pyx_v_coor.second + __pyx_v_neighbour.second);
+0928:             cells_to_check.insert(coordinates)
      (void)(__pyx_v_cells_to_check.insert(__pyx_v_coordinates));
 0929: 
+0930:         cells_to_check.insert(coor)
    (void)(__pyx_v_cells_to_check.insert(__pyx_v_coor));
 0931: 
+0932:     if alternating_period > 1:
  __pyx_t_5 = ((__pyx_v_9CACompute_alternating_period > 1) != 0);
  if (__pyx_t_5) {
/* … */
    goto __pyx_L7;
  }
+0933:         if generations % (alternating_period - 1) == 0:
    __pyx_t_5 = (((__pyx_v_generations % (__pyx_v_9CACompute_alternating_period - 1)) == 0) != 0);
    if (__pyx_t_5) {
/* … */
    }
+0934:             cells_changed.clear()
      __pyx_v_cells_changed.clear();
 0935:     else:
+0936:         cells_changed.clear()
  /*else*/ {
    __pyx_v_cells_changed.clear();
  }
  __pyx_L7:;
 0937: 
+0938:     for coordinates in cells_to_check:
  __pyx_t_1 = __pyx_v_cells_to_check.begin();
  for (;;) {
    if (!(__pyx_t_1 != __pyx_v_cells_to_check.end())) break;
    __pyx_t_2 = *__pyx_t_1;
    ++__pyx_t_1;
    __pyx_v_coordinates = __pyx_t_2;
/* … */
  }
+0939:         neighbours.clear()
    __pyx_v_neighbours.clear();
+0940:         ans = -1
    __pyx_v_ans = -1;
 0941: 
+0942:         if copy_grid.find(coordinates) == copy_grid.end():
    __pyx_t_5 = ((__pyx_v_copy_grid.find(__pyx_v_coordinates) == __pyx_v_copy_grid.end()) != 0);
    if (__pyx_t_5) {
/* … */
      goto __pyx_L11;
    }
+0943:             if depends_cache.find(pair[int, int] (0, generations % alternating_period)) == \
      try {
        __pyx_t_2 = std::pair<int,int> (0, (__pyx_v_generations % __pyx_v_9CACompute_alternating_period));
      } catch(...) {
        __Pyx_CppExn2PyErr();
        __PYX_ERR(0, 943, __pyx_L1_error)
      }
/* … */
      __pyx_t_5 = ((__pyx_v_9CACompute_depends_cache.find(__pyx_t_2) == __pyx_v_9CACompute_depends_cache.end()) != 0);
/* … */
      if (__pyx_t_5) {
/* … */
        goto __pyx_L12;
      }
 0944:                     depends_cache.end():
+0945:                 ans = depend_on_neighbours(0, generations % alternating_period)
        __pyx_v_ans = __pyx_f_9CACompute_depend_on_neighbours(0, (__pyx_v_generations % __pyx_v_9CACompute_alternating_period));
+0946:                 depends_cache[pair[int, int] (0, generations % alternating_period)] = ans
        try {
          __pyx_t_2 = std::pair<int,int> (0, (__pyx_v_generations % __pyx_v_9CACompute_alternating_period));
        } catch(...) {
          __Pyx_CppExn2PyErr();
          __PYX_ERR(0, 946, __pyx_L1_error)
        }
        (__pyx_v_9CACompute_depends_cache[__pyx_t_2]) = __pyx_v_ans;
 0947:             else:
+0948:                 ans = depends_cache[pair[int, int] (0, generations % alternating_period)]
      /*else*/ {
        try {
          __pyx_t_2 = std::pair<int,int> (0, (__pyx_v_generations % __pyx_v_9CACompute_alternating_period));
        } catch(...) {
          __Pyx_CppExn2PyErr();
          __PYX_ERR(0, 948, __pyx_L1_error)
        }
        __pyx_v_ans = (__pyx_v_9CACompute_depends_cache[__pyx_t_2]);
      }
      __pyx_L12:;
 0949:         else:
+0950:             if depends_cache.find(pair[int, int] (copy_grid[coordinates],
    /*else*/ {
/* … */
      try {
        __pyx_t_2 = std::pair<int,int> ((__pyx_v_copy_grid[__pyx_v_coordinates]), (__pyx_v_generations % __pyx_v_9CACompute_alternating_period));
      } catch(...) {
        __Pyx_CppExn2PyErr();
        __PYX_ERR(0, 950, __pyx_L1_error)
      }
/* … */
      if (__pyx_t_5) {
/* … */
        goto __pyx_L13;
      }
+0951:                                                   generations % alternating_period)) == \
      __pyx_t_5 = ((__pyx_v_9CACompute_depends_cache.find(__pyx_t_2) == __pyx_v_9CACompute_depends_cache.end()) != 0);
 0952:                     depends_cache.end():
+0953:                 ans = depend_on_neighbours(copy_grid[coordinates], generations % alternating_period)
        __pyx_v_ans = __pyx_f_9CACompute_depend_on_neighbours((__pyx_v_copy_grid[__pyx_v_coordinates]), (__pyx_v_generations % __pyx_v_9CACompute_alternating_period));
+0954:                 depends_cache[pair[int, int] (copy_grid[coordinates], generations % alternating_period)] = ans
        try {
          __pyx_t_2 = std::pair<int,int> ((__pyx_v_copy_grid[__pyx_v_coordinates]), (__pyx_v_generations % __pyx_v_9CACompute_alternating_period));
        } catch(...) {
          __Pyx_CppExn2PyErr();
          __PYX_ERR(0, 954, __pyx_L1_error)
        }
        (__pyx_v_9CACompute_depends_cache[__pyx_t_2]) = __pyx_v_ans;
 0955:             else:
+0956:                 ans = depends_cache[pair[int, int] (copy_grid[coordinates], generations % alternating_period)]
      /*else*/ {
        try {
          __pyx_t_2 = std::pair<int,int> ((__pyx_v_copy_grid[__pyx_v_coordinates]), (__pyx_v_generations % __pyx_v_9CACompute_alternating_period));
        } catch(...) {
          __Pyx_CppExn2PyErr();
          __PYX_ERR(0, 956, __pyx_L1_error)
        }
        __pyx_v_ans = (__pyx_v_9CACompute_depends_cache[__pyx_t_2]);
      }
      __pyx_L13:;
    }
    __pyx_L11:;
 0957: 
+0958:         if ans == -1:
    __pyx_t_5 = ((__pyx_v_ans == -1L) != 0);
    if (__pyx_t_5) {
/* … */
    }
+0959:             for neighbour in neighbourhood[generations % alternating_period]:
      __pyx_t_4 = &(__pyx_v_9CACompute_neighbourhood[(__pyx_v_generations % __pyx_v_9CACompute_alternating_period)]);
      __pyx_t_3 = __pyx_t_4->begin();
      for (;;) {
        if (!(__pyx_t_3 != __pyx_t_4->end())) break;
        __pyx_t_2 = *__pyx_t_3;
        ++__pyx_t_3;
        __pyx_v_neighbour = __pyx_t_2;
/* … */
      }
+0960:                 coordinates2 = pair[int, int] (coordinates.first + neighbour.first,
        try {
          __pyx_t_2 = std::pair<int,int> ((__pyx_v_coordinates.first + __pyx_v_neighbour.first), (__pyx_v_coordinates.second + __pyx_v_neighbour.second));
        } catch(...) {
          __Pyx_CppExn2PyErr();
          __PYX_ERR(0, 960, __pyx_L1_error)
        }
        __pyx_v_coordinates2 = __pyx_t_2;
 0961:                                                coordinates.second + neighbour.second)
+0962:                 if copy_grid.find(coordinates2) != copy_grid.end():
        __pyx_t_5 = ((__pyx_v_copy_grid.find(__pyx_v_coordinates2) != __pyx_v_copy_grid.end()) != 0);
        if (__pyx_t_5) {
/* … */
          goto __pyx_L17;
        }
+0963:                     neighbours.push_back(copy_grid[coordinates2])
          try {
            __pyx_v_neighbours.push_back((__pyx_v_copy_grid[__pyx_v_coordinates2]));
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 963, __pyx_L1_error)
          }
 0964:                 else:
+0965:                     neighbours.push_back(0)
        /*else*/ {
          try {
            __pyx_v_neighbours.push_back(0);
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 965, __pyx_L1_error)
          }
        }
        __pyx_L17:;
 0966: 
+0967:         if copy_grid.find(coordinates) != copy_grid.end():
    __pyx_t_5 = ((__pyx_v_copy_grid.find(__pyx_v_coordinates) != __pyx_v_copy_grid.end()) != 0);
    if (__pyx_t_5) {
/* … */
      goto __pyx_L18;
    }
+0968:             neighbours.push_back(copy_grid[coordinates])
      try {
        __pyx_v_neighbours.push_back((__pyx_v_copy_grid[__pyx_v_coordinates]));
      } catch(...) {
        __Pyx_CppExn2PyErr();
        __PYX_ERR(0, 968, __pyx_L1_error)
      }
+0969:             if transition_func_cache.find(
      if (__pyx_t_5) {
/* … */
        goto __pyx_L19;
      }
+0970:                     pair[vector[int], int] (neighbours, generations % alternating_period)) == \
      try {
        __pyx_t_6 = std::pair<std::vector<int> ,int> (__pyx_v_neighbours, (__pyx_v_generations % __pyx_v_9CACompute_alternating_period));
      } catch(...) {
        __Pyx_CppExn2PyErr();
        __PYX_ERR(0, 970, __pyx_L1_error)
      }
/* … */
      __pyx_t_5 = ((__pyx_v_9CACompute_transition_func_cache.find(__pyx_t_6) == __pyx_v_9CACompute_transition_func_cache.end()) != 0);
 0971:                     transition_func_cache.end():
+0972:                 if ans == -1:
        __pyx_t_5 = ((__pyx_v_ans == -1L) != 0);
        if (__pyx_t_5) {
/* … */
        }
+0973:                     ans = transition_func(neighbours, generations % alternating_period)
          __pyx_v_ans = __pyx_f_9CACompute_transition_func(__pyx_v_neighbours, (__pyx_v_generations % __pyx_v_9CACompute_alternating_period));
 0974:                     transition_func_cache[
+0975:                         pair[vector[int], int] (neighbours, generations % alternating_period)] = ans
          try {
            __pyx_t_6 = std::pair<std::vector<int> ,int> (__pyx_v_neighbours, (__pyx_v_generations % __pyx_v_9CACompute_alternating_period));
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 975, __pyx_L1_error)
          }
          (__pyx_v_9CACompute_transition_func_cache[__pyx_t_6]) = __pyx_v_ans;
 0976:             else:
+0977:                 if ans == -1: ans = transition_func_cache[
      /*else*/ {
        __pyx_t_5 = ((__pyx_v_ans == -1L) != 0);
        if (__pyx_t_5) {
/* … */
          __pyx_v_ans = (__pyx_v_9CACompute_transition_func_cache[__pyx_t_6]);
        }
      }
      __pyx_L19:;
+0978:                     pair[vector[int], int] (neighbours, generations % alternating_period)]
          try {
            __pyx_t_6 = std::pair<std::vector<int> ,int> (__pyx_v_neighbours, (__pyx_v_generations % __pyx_v_9CACompute_alternating_period));
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 978, __pyx_L1_error)
          }
 0979: 
+0980:             if ans == 0:
      __pyx_t_5 = ((__pyx_v_ans == 0) != 0);
      if (__pyx_t_5) {
/* … */
        goto __pyx_L22;
      }
+0981:                 dict_grid.erase(coordinates)
        (void)(__pyx_v_dict_grid.erase(__pyx_v_coordinates));
+0982:                 cells_changed.insert(coordinates)
        (void)(__pyx_v_cells_changed.insert(__pyx_v_coordinates));
+0983:             elif ans != copy_grid[coordinates]:
      __pyx_t_5 = ((__pyx_v_ans != (__pyx_v_copy_grid[__pyx_v_coordinates])) != 0);
      if (__pyx_t_5) {
/* … */
      }
      __pyx_L22:;
+0984:                 dict_grid[coordinates] = ans
        (__pyx_v_dict_grid[__pyx_v_coordinates]) = __pyx_v_ans;
+0985:                 cells_changed.insert(coordinates)
        (void)(__pyx_v_cells_changed.insert(__pyx_v_coordinates));
 0986:         else:
+0987:             neighbours.push_back(0)
    /*else*/ {
      try {
        __pyx_v_neighbours.push_back(0);
      } catch(...) {
        __Pyx_CppExn2PyErr();
        __PYX_ERR(0, 987, __pyx_L1_error)
      }
+0988:             if transition_func_cache.find(
      if (__pyx_t_5) {
/* … */
        goto __pyx_L23;
      }
+0989:                     pair[vector[int], int] (neighbours, generations % alternating_period)) == \
      try {
        __pyx_t_6 = std::pair<std::vector<int> ,int> (__pyx_v_neighbours, (__pyx_v_generations % __pyx_v_9CACompute_alternating_period));
      } catch(...) {
        __Pyx_CppExn2PyErr();
        __PYX_ERR(0, 989, __pyx_L1_error)
      }
/* … */
      __pyx_t_5 = ((__pyx_v_9CACompute_transition_func_cache.find(__pyx_t_6) == __pyx_v_9CACompute_transition_func_cache.end()) != 0);
 0990:                     transition_func_cache.end():
+0991:                 if ans == -1:
        __pyx_t_5 = ((__pyx_v_ans == -1L) != 0);
        if (__pyx_t_5) {
/* … */
        }
+0992:                     ans = transition_func(neighbours, generations % alternating_period)
          __pyx_v_ans = __pyx_f_9CACompute_transition_func(__pyx_v_neighbours, (__pyx_v_generations % __pyx_v_9CACompute_alternating_period));
 0993:                     transition_func_cache[
+0994:                         pair[vector[int], int] (neighbours, generations % alternating_period)] = ans
          try {
            __pyx_t_6 = std::pair<std::vector<int> ,int> (__pyx_v_neighbours, (__pyx_v_generations % __pyx_v_9CACompute_alternating_period));
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 994, __pyx_L1_error)
          }
          (__pyx_v_9CACompute_transition_func_cache[__pyx_t_6]) = __pyx_v_ans;
 0995:             else:
+0996:                 if ans == -1: ans = transition_func_cache[
      /*else*/ {
        __pyx_t_5 = ((__pyx_v_ans == -1L) != 0);
        if (__pyx_t_5) {
/* … */
          __pyx_v_ans = (__pyx_v_9CACompute_transition_func_cache[__pyx_t_6]);
        }
      }
      __pyx_L23:;
+0997:                     pair[vector[int], int] (neighbours, generations % alternating_period)]
          try {
            __pyx_t_6 = std::pair<std::vector<int> ,int> (__pyx_v_neighbours, (__pyx_v_generations % __pyx_v_9CACompute_alternating_period));
          } catch(...) {
            __Pyx_CppExn2PyErr();
            __PYX_ERR(0, 997, __pyx_L1_error)
          }
 0998: 
+0999:             if ans != 0:
      __pyx_t_5 = ((__pyx_v_ans != 0) != 0);
      if (__pyx_t_5) {
/* … */
      }
    }
    __pyx_L18:;
+1000:                 dict_grid.insert(pair[pair[int, int], int] (coordinates, ans))
        try {
          __pyx_t_7 = std::pair<std::pair<int,int> ,int> (__pyx_v_coordinates, __pyx_v_ans);
        } catch(...) {
          __Pyx_CppExn2PyErr();
          __PYX_ERR(0, 1000, __pyx_L1_error)
        }
        (void)(__pyx_v_dict_grid.insert(__pyx_t_7));
+1001:                 cells_changed.insert(coordinates)
        (void)(__pyx_v_cells_changed.insert(__pyx_v_coordinates));
 1002: 
+1003:     return cells_changed, dict_grid
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = __pyx_convert_unordered_set_to_py_std_3a__3a_pair_3c_int_2c_int_3e___(__pyx_v_cells_changed); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1003, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __pyx_convert_unordered_map_to_py_std_3a__3a_pair_3c_int_2c_int_3e_______int(__pyx_v_dict_grid); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1003, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1003, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_9);
  __pyx_t_8 = 0;
  __pyx_t_9 = 0;
  __pyx_r = __pyx_t_10;
  __pyx_t_10 = 0;
  goto __pyx_L0;